summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStef Walter <stefw@collabora.co.uk>2011-10-06 12:51:08 +0200
committerStef Walter <stefw@collabora.co.uk>2011-10-06 13:22:43 +0200
commitf28d3d768f0e4057f727e8c3b93ba50c19f5db24 (patch)
tree288ef581590dfccbfddcad3c87d98ce3a4ed0a97
parent626eef363c0ece57713c5be5939677784e8115cc (diff)
downloadgnome-keyring-f28d3d768f0e4057f727e8c3b93ba50c19f5db24.tar.gz
Split Gcr and Gck libraries out of gnome-keyringsplit
-rw-r--r--.gitignore52
-rw-r--r--Makefile.am7
-rw-r--r--configure.ac115
-rw-r--r--daemon/Makefile.am1
-rw-r--r--daemon/control/Makefile.am3
-rw-r--r--daemon/dbus/gkd-dbus-secrets.c2
-rw-r--r--daemon/dbus/gkd-secret-change.h2
-rw-r--r--daemon/dbus/gkd-secret-create.h2
-rw-r--r--daemon/dbus/gkd-secret-exchange.c2
-rw-r--r--daemon/dbus/gkd-secret-exchange.h2
-rw-r--r--daemon/dbus/gkd-secret-objects.h2
-rw-r--r--daemon/dbus/gkd-secret-prompt.h2
-rw-r--r--daemon/dbus/gkd-secret-property.h2
-rw-r--r--daemon/dbus/gkd-secret-service.c2
-rw-r--r--daemon/dbus/gkd-secret-service.h2
-rw-r--r--daemon/dbus/gkd-secret-unlock.h2
-rw-r--r--daemon/gkd-glue.c4
-rw-r--r--daemon/gkd-main.c1
-rw-r--r--daemon/gpg-agent/Makefile.am4
-rw-r--r--daemon/gpg-agent/gkd-gpg-agent-ops.c2
-rw-r--r--daemon/gpg-agent/gkd-gpg-agent-standalone.c2
-rw-r--r--daemon/login/Makefile.am3
-rw-r--r--daemon/login/gkd-login.c2
-rw-r--r--daemon/login/gkd-login.h2
-rw-r--r--daemon/ssh-agent/Makefile.am3
-rw-r--r--daemon/ssh-agent/gkd-ssh-agent-ops.c2
-rw-r--r--daemon/ssh-agent/gkd-ssh-agent-standalone.c2
-rw-r--r--docs/Makefile.am5
-rw-r--r--docs/reference/.gitignore11
-rw-r--r--docs/reference/COPYING30
-rw-r--r--docs/reference/Makefile.am2
-rw-r--r--docs/reference/gck/.gitignore8
-rw-r--r--docs/reference/gck/Makefile.am100
-rw-r--r--docs/reference/gck/gck-docs.sgml35
-rw-r--r--docs/reference/gck/gck-overrides.txt2
-rw-r--r--docs/reference/gck/gck-pkcs11-links.xml25
-rw-r--r--docs/reference/gck/gck-sections.txt389
-rw-r--r--docs/reference/gck/version.xml.in1
-rw-r--r--docs/reference/gcr/.gitignore9
-rw-r--r--docs/reference/gcr/Makefile.am169
-rw-r--r--docs/reference/gcr/gcr-docs.sgml68
-rw-r--r--docs/reference/gcr/gcr-overrides.txt2
-rw-r--r--docs/reference/gcr/gcr-sections.txt642
-rw-r--r--docs/reference/gcr/gcr-shooter.c466
-rw-r--r--docs/reference/gcr/gcr-shooter.h23
-rw-r--r--docs/reference/gcr/gcr-visual-index.xml27
-rw-r--r--docs/reference/gcr/gcr-widgets.c236
-rw-r--r--docs/reference/gcr/gcr.types24
-rw-r--r--docs/reference/gcr/images/certificate-widget.pngbin16144 -> 0 bytes
-rw-r--r--docs/reference/gcr/images/combo-selector.pngbin7065 -> 0 bytes
-rw-r--r--docs/reference/gcr/images/import-button.pngbin2925 -> 0 bytes
-rw-r--r--docs/reference/gcr/images/key-widget.pngbin10159 -> 0 bytes
-rw-r--r--docs/reference/gcr/images/list-selector.pngbin10123 -> 0 bytes
-rw-r--r--docs/reference/gcr/images/tree-selector.pngbin10628 -> 0 bytes
-rw-r--r--docs/reference/gcr/images/viewer-widget.pngbin13167 -> 0 bytes
-rw-r--r--docs/reference/gcr/version.xml.in1
-rw-r--r--egg/Makefile.am1
-rw-r--r--egg/egg-decimal.c101
-rw-r--r--egg/egg-decimal.h33
-rw-r--r--egg/tests/Makefile.am1
-rw-r--r--egg/tests/test-decimal.c136
-rw-r--r--egg/tests/test-hex.c2
-rw-r--r--gck/.gitignore2
-rw-r--r--gck/Makefile.am161
-rw-r--r--gck/gck-attributes.c1877
-rw-r--r--gck/gck-call.c542
-rw-r--r--gck/gck-debug.c118
-rw-r--r--gck/gck-debug.h88
-rw-r--r--gck/gck-deprecated.h51
-rw-r--r--gck/gck-dump.c361
-rw-r--r--gck/gck-enum-types.c.template43
-rw-r--r--gck/gck-enum-types.h.template28
-rw-r--r--gck/gck-enumerator.c917
-rw-r--r--gck/gck-interaction.c176
-rw-r--r--gck/gck-marshal.list3
-rw-r--r--gck/gck-misc.c465
-rw-r--r--gck/gck-mock.c1808
-rw-r--r--gck/gck-mock.h420
-rw-r--r--gck/gck-module.c748
-rw-r--r--gck/gck-modules.c433
-rw-r--r--gck/gck-object.c1326
-rw-r--r--gck/gck-password.c255
-rw-r--r--gck/gck-private.h209
-rw-r--r--gck/gck-session.c2980
-rw-r--r--gck/gck-slot.c1302
-rw-r--r--gck/gck-test.c165
-rw-r--r--gck/gck-test.h64
-rw-r--r--gck/gck-uri.c365
-rw-r--r--gck/gck.h1324
-rw-r--r--gck/gck.pc.in14
-rw-r--r--gck/gck.symbols237
-rw-r--r--gck/pkcs11-trust-assertions.h56
-rw-r--r--gck/pkcs11.h30
-rw-r--r--gck/tests/Makefile.am58
-rw-r--r--gck/tests/mock-interaction.c97
-rw-r--r--gck/tests/mock-interaction.h43
-rw-r--r--gck/tests/mock-test-module.c10
-rw-r--r--gck/tests/test-gck-attributes.c617
-rw-r--r--gck/tests/test-gck-crypto.c647
-rw-r--r--gck/tests/test-gck-enumerator.c359
-rw-r--r--gck/tests/test-gck-module.c176
-rw-r--r--gck/tests/test-gck-modules.c210
-rw-r--r--gck/tests/test-gck-object.c419
-rw-r--r--gck/tests/test-gck-session.c319
-rw-r--r--gck/tests/test-gck-slot.c257
-rw-r--r--gck/tests/test-gck-uri.c556
-rw-r--r--gcr/.gitignore7
-rw-r--r--gcr/Makefile.am376
-rw-r--r--gcr/gcr-base.h55
-rw-r--r--gcr/gcr-base.pc.in16
-rw-r--r--gcr/gcr-base.symbols157
-rw-r--r--gcr/gcr-callback-output-stream.c132
-rw-r--r--gcr/gcr-callback-output-stream.h58
-rw-r--r--gcr/gcr-certificate-basics-widget.c75
-rw-r--r--gcr/gcr-certificate-basics-widget.h62
-rw-r--r--gcr/gcr-certificate-chain.c825
-rw-r--r--gcr/gcr-certificate-chain.h113
-rw-r--r--gcr/gcr-certificate-details-widget.c75
-rw-r--r--gcr/gcr-certificate-details-widget.h62
-rw-r--r--gcr/gcr-certificate-exporter.c567
-rw-r--r--gcr/gcr-certificate-exporter.h74
-rw-r--r--gcr/gcr-certificate-extensions.c295
-rw-r--r--gcr/gcr-certificate-extensions.h88
-rw-r--r--gcr/gcr-certificate-renderer.c909
-rw-r--r--gcr/gcr-certificate-renderer.h77
-rw-r--r--gcr/gcr-certificate-widget.c266
-rw-r--r--gcr/gcr-certificate-widget.h67
-rw-r--r--gcr/gcr-certificate.c1082
-rw-r--r--gcr/gcr-certificate.h130
-rw-r--r--gcr/gcr-collection-model.c1575
-rw-r--r--gcr/gcr-collection-model.h89
-rw-r--r--gcr/gcr-collection.c178
-rw-r--r--gcr/gcr-collection.h82
-rw-r--r--gcr/gcr-column.c66
-rw-r--r--gcr/gcr-column.h55
-rw-r--r--gcr/gcr-combo-selector.c269
-rw-r--r--gcr/gcr-combo-selector.h67
-rw-r--r--gcr/gcr-comparable.c146
-rw-r--r--gcr/gcr-comparable.h54
-rw-r--r--gcr/gcr-crypto-types.xml151
-rw-r--r--gcr/gcr-debug.c111
-rw-r--r--gcr/gcr-debug.h90
-rw-r--r--gcr/gcr-deprecated-base.h73
-rw-r--r--gcr/gcr-deprecated.h48
-rw-r--r--gcr/gcr-dialog-util.c182
-rw-r--r--gcr/gcr-dialog-util.h42
-rw-r--r--gcr/gcr-display-scrolled.c176
-rw-r--r--gcr/gcr-display-scrolled.h57
-rw-r--r--gcr/gcr-display-view.c1243
-rw-r--r--gcr/gcr-display-view.h115
-rw-r--r--gcr/gcr-enum-types.c.template43
-rw-r--r--gcr/gcr-enum-types.h.template28
-rw-r--r--gcr/gcr-failure-renderer.c224
-rw-r--r--gcr/gcr-failure-renderer.h67
-rw-r--r--gcr/gcr-fingerprint.c384
-rw-r--r--gcr/gcr-fingerprint.h49
-rw-r--r--gcr/gcr-gnupg-collection.c754
-rw-r--r--gcr/gcr-gnupg-collection.h70
-rw-r--r--gcr/gcr-gnupg-importer.c333
-rw-r--r--gcr/gcr-gnupg-importer.h67
-rw-r--r--gcr/gcr-gnupg-key.c530
-rw-r--r--gcr/gcr-gnupg-key.h81
-rw-r--r--gcr/gcr-gnupg-process.c1157
-rw-r--r--gcr/gcr-gnupg-process.h103
-rw-r--r--gcr/gcr-gnupg-records.c267
-rw-r--r--gcr/gcr-gnupg-records.h52
-rw-r--r--gcr/gcr-gnupg-renderer.c853
-rw-r--r--gcr/gcr-gnupg-renderer.h77
-rw-r--r--gcr/gcr-gnupg-util.c87
-rw-r--r--gcr/gcr-gnupg-util.h41
-rw-r--r--gcr/gcr-icons.c55
-rw-r--r--gcr/gcr-icons.h46
-rw-r--r--gcr/gcr-import-button.c560
-rw-r--r--gcr/gcr-import-button.h68
-rw-r--r--gcr/gcr-import-interaction.c205
-rw-r--r--gcr/gcr-import-interaction.h94
-rw-r--r--gcr/gcr-importer.c628
-rw-r--r--gcr/gcr-importer.h107
-rw-r--r--gcr/gcr-internal.h37
-rw-r--r--gcr/gcr-key-renderer.c404
-rw-r--r--gcr/gcr-key-renderer.h68
-rw-r--r--gcr/gcr-key-widget.c224
-rw-r--r--gcr/gcr-key-widget.h61
-rw-r--r--gcr/gcr-library.c558
-rw-r--r--gcr/gcr-library.h67
-rw-r--r--gcr/gcr-list-selector-private.h40
-rw-r--r--gcr/gcr-list-selector.c456
-rw-r--r--gcr/gcr-list-selector.h71
-rw-r--r--gcr/gcr-live-search.c672
-rw-r--r--gcr/gcr-live-search.h84
-rw-r--r--gcr/gcr-marshal.list7
-rw-r--r--gcr/gcr-memory-icon.c225
-rw-r--r--gcr/gcr-memory-icon.h66
-rw-r--r--gcr/gcr-memory.c92
-rw-r--r--gcr/gcr-menu-button.c372
-rw-r--r--gcr/gcr-menu-button.h61
-rw-r--r--gcr/gcr-mkoids85
-rw-r--r--gcr/gcr-oids.list22
-rw-r--r--gcr/gcr-openpgp.c1304
-rw-r--r--gcr/gcr-openpgp.h66
-rw-r--r--gcr/gcr-openssh.c491
-rw-r--r--gcr/gcr-openssh.h51
-rw-r--r--gcr/gcr-parser.c2934
-rw-r--r--gcr/gcr-parser.h136
-rw-r--r--gcr/gcr-pkcs11-certificate.c452
-rw-r--r--gcr/gcr-pkcs11-certificate.h79
-rw-r--r--gcr/gcr-pkcs11-import-dialog.c278
-rw-r--r--gcr/gcr-pkcs11-import-dialog.h67
-rw-r--r--gcr/gcr-pkcs11-import-dialog.ui251
-rw-r--r--gcr/gcr-pkcs11-import-interaction.c259
-rw-r--r--gcr/gcr-pkcs11-import-interaction.h45
-rw-r--r--gcr/gcr-pkcs11-importer.c910
-rw-r--r--gcr/gcr-pkcs11-importer.h62
-rw-r--r--gcr/gcr-record.c811
-rw-r--r--gcr/gcr-record.h281
-rw-r--r--gcr/gcr-renderer.c294
-rw-r--r--gcr/gcr-renderer.h85
-rw-r--r--gcr/gcr-secret-exchange.c848
-rw-r--r--gcr/gcr-secret-exchange.h109
-rw-r--r--gcr/gcr-simple-certificate.c185
-rw-r--r--gcr/gcr-simple-certificate.h67
-rw-r--r--gcr/gcr-simple-collection.c208
-rw-r--r--gcr/gcr-simple-collection.h66
-rw-r--r--gcr/gcr-single-collection.c157
-rw-r--r--gcr/gcr-single-collection.h55
-rw-r--r--gcr/gcr-tree-selector.c361
-rw-r--r--gcr/gcr-tree-selector.h70
-rw-r--r--gcr/gcr-trust.c878
-rw-r--r--gcr/gcr-trust.h102
-rw-r--r--gcr/gcr-types.h116
-rw-r--r--gcr/gcr-union-collection.c340
-rw-r--r--gcr/gcr-union-collection.h76
-rw-r--r--gcr/gcr-unlock-options-widget.c515
-rw-r--r--gcr/gcr-unlock-options-widget.h82
-rw-r--r--gcr/gcr-unlock-options-widget.ui117
-rw-r--r--gcr/gcr-unlock-options.h32
-rw-r--r--gcr/gcr-unlock-renderer.c345
-rw-r--r--gcr/gcr-unlock-renderer.h79
-rw-r--r--gcr/gcr-util.c66
-rw-r--r--gcr/gcr-util.h41
-rw-r--r--gcr/gcr-viewer-tool.c130
-rw-r--r--gcr/gcr-viewer-widget.c504
-rw-r--r--gcr/gcr-viewer-widget.h55
-rw-r--r--gcr/gcr-viewer-window.c178
-rw-r--r--gcr/gcr-viewer-window.h64
-rw-r--r--gcr/gcr-viewer.c191
-rw-r--r--gcr/gcr-viewer.desktop.in.in10
-rw-r--r--gcr/gcr-viewer.h87
-rw-r--r--gcr/gcr.h60
-rw-r--r--gcr/gcr.pc.in16
-rw-r--r--gcr/gcr.symbols103
-rw-r--r--gcr/icons/16x16/Makefile.am11
-rw-r--r--gcr/icons/16x16/gcr-key-pair.pngbin878 -> 0 bytes
-rw-r--r--gcr/icons/16x16/gcr-key.pngbin675 -> 0 bytes
-rw-r--r--gcr/icons/16x16/gcr-smart-card.pngbin509 -> 0 bytes
-rw-r--r--gcr/icons/22x22/Makefile.am9
-rw-r--r--gcr/icons/22x22/gcr-smart-card.pngbin662 -> 0 bytes
-rw-r--r--gcr/icons/24x24/Makefile.am11
-rw-r--r--gcr/icons/24x24/gcr-key-pair.pngbin1221 -> 0 bytes
-rw-r--r--gcr/icons/24x24/gcr-key.pngbin875 -> 0 bytes
-rw-r--r--gcr/icons/24x24/gcr-smart-card.pngbin636 -> 0 bytes
-rw-r--r--gcr/icons/256x256/Makefile.am9
-rw-r--r--gcr/icons/256x256/gcr-smart-card.pngbin9294 -> 0 bytes
-rw-r--r--gcr/icons/32x32/Makefile.am11
-rw-r--r--gcr/icons/32x32/gcr-key-pair.pngbin1882 -> 0 bytes
-rw-r--r--gcr/icons/32x32/gcr-key.pngbin1201 -> 0 bytes
-rw-r--r--gcr/icons/32x32/gcr-smart-card.pngbin1093 -> 0 bytes
-rw-r--r--gcr/icons/48x48/Makefile.am11
-rw-r--r--gcr/icons/48x48/gcr-key-pair.pngbin3480 -> 0 bytes
-rw-r--r--gcr/icons/48x48/gcr-key.pngbin2087 -> 0 bytes
-rw-r--r--gcr/icons/48x48/gcr-smart-card.pngbin1684 -> 0 bytes
-rw-r--r--gcr/icons/Makefile.am20
-rw-r--r--gcr/icons/key-and-keypair.svg3921
-rwxr-xr-xgcr/icons/render-icons.py174
-rw-r--r--gcr/icons/src/gcr-smart-card.svg1165
-rw-r--r--gcr/tests/.gitignore5
-rw-r--r--gcr/tests/Makefile.am68
-rw-r--r--gcr/tests/files/RSA_Root_Certificate_1.pem19
-rw-r--r--gcr/tests/files/RSA_Security_1024_v3.pem16
-rw-r--r--gcr/tests/files/RSA_Security_2048_v3.pem22
-rw-r--r--gcr/tests/files/Thawte_Personal_Basic_CA.pem20
-rw-r--r--gcr/tests/files/Thawte_Personal_Freemail_CA.pem21
-rw-r--r--gcr/tests/files/Thawte_Personal_Premium_CA.pem21
-rw-r--r--gcr/tests/files/Thawte_Premium_Server_CA.pem21
-rw-r--r--gcr/tests/files/Thawte_Server_CA.pem20
-rw-r--r--gcr/tests/files/Thawte_Time_Stamping_CA.pem18
-rw-r--r--gcr/tests/files/ca-certificates.crt2560
-rw-r--r--gcr/tests/files/cacert.org.cerbin1857 -> 0 bytes
-rw-r--r--gcr/tests/files/cacert.org.pem41
-rw-r--r--gcr/tests/files/client.crtbin736 -> 0 bytes
-rw-r--r--gcr/tests/files/client.key27
-rw-r--r--gcr/tests/files/client.pem18
-rw-r--r--gcr/tests/files/collabora-ca.cerbin1536 -> 0 bytes
-rwxr-xr-xgcr/tests/files/der-certificate-dsa.cerbin1639 -> 0 bytes
-rw-r--r--gcr/tests/files/der-certificate.crtbin747 -> 0 bytes
-rw-r--r--gcr/tests/files/der-dsa-1024.keybin447 -> 0 bytes
-rw-r--r--gcr/tests/files/der-key-PBE-MD5-DES.p8bin677 -> 0 bytes
-rw-r--r--gcr/tests/files/der-key-PBE-SHA1-3DES.p8bin678 -> 0 bytes
-rw-r--r--gcr/tests/files/der-key-PBE-SHA1-DES.p8bin677 -> 0 bytes
-rw-r--r--gcr/tests/files/der-key-PBE-SHA1-RC2-40.p8bin678 -> 0 bytes
-rw-r--r--gcr/tests/files/der-key-PBE-SHA1-RC4-128.p8bin673 -> 0 bytes
-rw-r--r--gcr/tests/files/der-key-dsa.p8bin335 -> 0 bytes
-rw-r--r--gcr/tests/files/der-key-encrypted-pkcs5.p8bin677 -> 0 bytes
-rw-r--r--gcr/tests/files/der-key-v2-des.p8bin711 -> 0 bytes
-rw-r--r--gcr/tests/files/der-key-v2-des3.p8bin714 -> 0 bytes
-rw-r--r--gcr/tests/files/der-key.p8bin635 -> 0 bytes
-rw-r--r--gcr/tests/files/der-rsa-1024.keybin609 -> 0 bytes
-rw-r--r--gcr/tests/files/dhansak-collabora.cerbin1200 -> 0 bytes
-rw-r--r--gcr/tests/files/email.p12bin2488 -> 0 bytes
-rw-r--r--gcr/tests/files/generic-dsa.crtbin918 -> 0 bytes
-rw-r--r--gcr/tests/files/generic-dsa.key12
-rw-r--r--gcr/tests/files/generic-dsa.pem22
-rw-r--r--gcr/tests/files/gnupg-homedir/pubring.gpgbin21969 -> 0 bytes
-rw-r--r--gcr/tests/files/gnupg-homedir/secring.gpgbin4398 -> 0 bytes
-rw-r--r--gcr/tests/files/gnupg-homedir/trustdb.gpgbin1400 -> 0 bytes
-rwxr-xr-xgcr/tests/files/gnupg-mock/mock-arguments-environ22
-rwxr-xr-xgcr/tests/files/gnupg-mock/mock-echo8
-rwxr-xr-xgcr/tests/files/gnupg-mock/mock-fail-exit6
-rwxr-xr-xgcr/tests/files/gnupg-mock/mock-fail-signal8
-rwxr-xr-xgcr/tests/files/gnupg-mock/mock-simple-error9
-rwxr-xr-xgcr/tests/files/gnupg-mock/mock-simple-output8
-rwxr-xr-xgcr/tests/files/gnupg-mock/mock-status-and-attribute34
-rwxr-xr-xgcr/tests/files/gnupg-mock/mock-status-and-output24
-rwxr-xr-xgcr/tests/files/gnupg-mock/mock-with-homedir22
-rw-r--r--gcr/tests/files/openssh_keys.pub2
-rw-r--r--gcr/tests/files/pem-dsa-1024.key12
-rw-r--r--gcr/tests/files/pem-pkcs8.key17
-rw-r--r--gcr/tests/files/pem-rsa-enc.key18
-rw-r--r--gcr/tests/files/personal.p12bin3396 -> 0 bytes
-rw-r--r--gcr/tests/files/pubring.gpgbin21969 -> 0 bytes
-rw-r--r--gcr/tests/files/secring.gpgbin4398 -> 0 bytes
-rwxr-xr-xgcr/tests/files/test-x509-swiss.p7bbin1002 -> 0 bytes
-rw-r--r--gcr/tests/files/unclient.p12bin1476 -> 0 bytes
-rw-r--r--gcr/tests/files/werner-koch.asc71
-rw-r--r--gcr/tests/frob-certificate.c92
-rw-r--r--gcr/tests/frob-combo-selector.c95
-rw-r--r--gcr/tests/frob-gnupg-selector.c95
-rw-r--r--gcr/tests/frob-key.c87
-rw-r--r--gcr/tests/frob-openpgp.c122
-rw-r--r--gcr/tests/frob-parser.c132
-rw-r--r--gcr/tests/frob-tree-selector.c208
-rw-r--r--gcr/tests/frob-unlock-options.c84
-rw-r--r--gcr/tests/frob-unlock.c112
-rw-r--r--gcr/tests/test-certificate-chain.c658
-rw-r--r--gcr/tests/test-certificate.c279
-rw-r--r--gcr/tests/test-fingerprint.c212
-rw-r--r--gcr/tests/test-gnupg-collection.c222
-rw-r--r--gcr/tests/test-gnupg-key.c228
-rw-r--r--gcr/tests/test-gnupg-process.c600
-rw-r--r--gcr/tests/test-memory-icon.c206
-rw-r--r--gcr/tests/test-openpgp.c354
-rw-r--r--gcr/tests/test-openssh.c196
-rw-r--r--gcr/tests/test-parser.c249
-rw-r--r--gcr/tests/test-pkcs11-certificate.c279
-rw-r--r--gcr/tests/test-record.c294
-rw-r--r--gcr/tests/test-secret-exchange.c162
-rw-r--r--gcr/tests/test-simple-certificate.c104
-rw-r--r--gcr/tests/test-trust.c327
-rw-r--r--gcr/tests/test-util.c112
-rw-r--r--pkcs11/Makefile.am9
-rw-r--r--pkcs11/wrap-layer/Makefile.am3
-rw-r--r--pkcs11/wrap-layer/gkm-wrap-prompt.c2
-rw-r--r--pkcs11/wrap-layer/tests/Makefile.am2
-rw-r--r--po/POTFILES.in30
-rw-r--r--po/af.po689
-rw-r--r--po/ar.po1415
-rw-r--r--po/as.po1277
-rw-r--r--po/ast.po1330
-rw-r--r--po/az.po664
-rw-r--r--po/be.po843
-rw-r--r--po/be@latin.po1442
-rw-r--r--po/bg.po636
-rw-r--r--po/bn.po837
-rw-r--r--po/bn_IN.po1441
-rw-r--r--po/bs.po664
-rw-r--r--po/ca.po1429
-rw-r--r--po/ca@valencia.po1429
-rw-r--r--po/cs.po641
-rw-r--r--po/cy.po684
-rw-r--r--po/da.po637
-rw-r--r--po/de.po890
-rw-r--r--po/dz.po767
-rw-r--r--po/el.po860
-rw-r--r--po/en@shaw.po1094
-rw-r--r--po/en_CA.po694
-rw-r--r--po/en_GB.po1419
-rw-r--r--po/eo.po711
-rw-r--r--po/es.po1438
-rw-r--r--po/et.po598
-rw-r--r--po/eu.po951
-rw-r--r--po/fa.po715
-rw-r--r--po/fi.po932
-rw-r--r--po/fr.po647
-rw-r--r--po/ga.po1215
-rw-r--r--po/gl.po981
-rw-r--r--po/gu.po733
-rw-r--r--po/he.po1450
-rw-r--r--po/hi.po1424
-rw-r--r--po/hr.po1092
-rw-r--r--po/hu.po638
-rw-r--r--po/id.po716
-rw-r--r--po/is.po548
-rw-r--r--po/it.po656
-rw-r--r--po/ja.po811
-rw-r--r--po/ka.po609
-rw-r--r--po/kn.po1458
-rw-r--r--po/ko.po639
-rw-r--r--po/lt.po785
-rw-r--r--po/lv.po1347
-rw-r--r--po/mai.po1244
-rw-r--r--po/mg.po699
-rw-r--r--po/mk.po1209
-rw-r--r--po/ml.po1454
-rw-r--r--po/mn.po679
-rw-r--r--po/mr.po1425
-rw-r--r--po/ms.po1241
-rw-r--r--po/nb.po634
-rw-r--r--po/ne.po720
-rw-r--r--po/nl.po843
-rw-r--r--po/nn.po1102
-rw-r--r--po/oc.po573
-rw-r--r--po/or.po1099
-rw-r--r--po/pa.po1299
-rw-r--r--po/pl.po641
-rw-r--r--po/pt.po1421
-rw-r--r--po/pt_BR.po1383
-rw-r--r--po/ro.po1210
-rw-r--r--po/ru.po734
-rw-r--r--po/rw.po662
-rw-r--r--po/si.po640
-rw-r--r--po/sk.po1125
-rw-r--r--po/sl.po1058
-rw-r--r--po/sq.po1236
-rw-r--r--po/sr.po935
-rw-r--r--po/sr@latin.po935
-rw-r--r--po/sv.po1367
-rw-r--r--po/ta.po1284
-rw-r--r--po/te.po637
-rw-r--r--po/th.po1379
-rw-r--r--po/tr.po1248
-rw-r--r--po/ug.po1622
-rw-r--r--po/uk.po808
-rw-r--r--po/vi.po799
-rw-r--r--po/xh.po676
-rw-r--r--po/zh_CN.po1369
-rw-r--r--po/zh_HK.po637
-rw-r--r--po/zh_TW.po633
-rw-r--r--schema/Makefile.am7
-rw-r--r--schema/org.gnome.crypto.pgp.convert6
-rw-r--r--schema/org.gnome.crypto.pgp.gschema.xml34
-rw-r--r--schema/org.gnome.crypto.pgp_keyservers.convert2
-rw-r--r--testing/Makefile.am3
-rw-r--r--testing/ca-example/certs/ca.crt23
-rw-r--r--testing/ca-example/certs/client-future.crt18
-rw-r--r--testing/ca-example/certs/client-past.crt18
-rw-r--r--testing/ca-example/certs/client.crt18
-rw-r--r--testing/ca-example/certs/email.crt19
-rw-r--r--testing/ca-example/certs/generic-dsa.crt22
-rw-r--r--testing/ca-example/certs/personal.crt16
-rw-r--r--testing/ca-example/certs/personal.p12bin3396 -> 0 bytes
-rw-r--r--testing/ca-example/certs/server-self.crt11
-rw-r--r--testing/ca-example/certs/server.crt14
-rw-r--r--testing/ca-example/commands.txt16
-rw-r--r--testing/ca-example/database.txt0
-rw-r--r--testing/ca-example/keys/ca.key15
-rw-r--r--testing/ca-example/keys/client.key27
-rw-r--r--testing/ca-example/keys/dsa.params9
-rw-r--r--testing/ca-example/keys/email.key27
-rw-r--r--testing/ca-example/keys/generic-dsa.key12
-rw-r--r--testing/ca-example/keys/personal.key30
-rw-r--r--testing/ca-example/keys/server.key9
-rw-r--r--testing/ca-example/profiles/ca.conf32
-rw-r--r--testing/ca-example/profiles/extensions.conf16
-rw-r--r--testing/ca-example/profiles/request.conf18
-rw-r--r--testing/ca-example/requests/client.req17
-rw-r--r--testing/ca-example/requests/email.req17
-rw-r--r--testing/ca-example/requests/generic-dsa.req16
-rw-r--r--testing/ca-example/requests/personal.req15
-rw-r--r--testing/ca-example/requests/server.req8
-rw-r--r--testing/ca-example/serial.txt1
-rw-r--r--testing/gnupg-example/pubring.gpgbin21969 -> 0 bytes
-rw-r--r--testing/gnupg-example/secring.gpgbin4398 -> 0 bytes
-rw-r--r--testing/gnupg-example/trustdb.gpgbin1400 -> 0 bytes
-rw-r--r--testing/ssh-example/README1
-rw-r--r--testing/ssh-example/id_dsa15
-rw-r--r--testing/ssh-example/id_dsa.pub1
-rw-r--r--testing/ssh-example/id_rsa30
-rw-r--r--testing/ssh-example/id_rsa.pub1
-rw-r--r--testing/ssh-example/identitybin988 -> 0 bytes
-rw-r--r--testing/ssh-example/identity.pub1
-rw-r--r--tool/Makefile.am19
-rw-r--r--tool/gkr-tool-import.c4
-rw-r--r--tool/gkr-tool-trust.c5
-rw-r--r--tool/gkr-tool-version.c5
-rw-r--r--ui/Makefile.am23
-rw-r--r--ui/gku-prompt-tool.c2
-rw-r--r--ui/gku-prompt.c2
497 files changed, 13038 insertions, 142612 deletions
diff --git a/.gitignore b/.gitignore
index b5938d44..37da3b05 100644
--- a/.gitignore
+++ b/.gitignore
@@ -80,12 +80,6 @@ run-tests
/junk
/TODO.tasks
-# Old directories
-/gp11
-/docs/reference/gp11
-/docs/reference/gck/version.xml
-/docs/reference/gcr/version.xml
-
/egg/tests/test-asn1
/egg/tests/test-cleanup
/egg/tests/test-decimal
@@ -105,49 +99,6 @@ run-tests
/daemon/control/tests/frob-control-quit
/daemon/control/tests/frob-control-unlock
-/gck/gck-enum-types.[ch]
-
-/gck/tests/test-gck-attributes
-/gck/tests/test-gck-crypto
-/gck/tests/test-gck-enumerator
-/gck/tests/test-gck-module
-/gck/tests/test-gck-modules
-/gck/tests/test-gck-object
-/gck/tests/test-gck-session
-/gck/tests/test-gck-slot
-/gck/tests/test-gck-uri
-
-/gcr/gcr-oids.[ch]
-/gcr/gcr-enum-types.[ch]
-/gcr/gcr-enum-types-base.[ch]
-/gcr/tests/frob-certificate
-/gcr/tests/frob-key
-/gcr/tests/frob-gnupg-selector
-/gcr/tests/frob-selector
-/gcr/tests/frob-combo-selector
-/gcr/tests/frob-tree-selector
-/gcr/tests/frob-unlock-options
-/gcr/tests/frob-openpgp
-/gcr/tests/frob-parser
-/gcr/tests/frob-unlock
-/gcr/tests/test-certificate
-/gcr/tests/test-certificate-chain
-/gcr/tests/test-colons
-/gcr/tests/test-fingerprint
-/gcr/tests/test-gnupg-collection
-/gcr/tests/test-gnupg-key
-/gcr/tests/test-gnupg-process
-/gcr/tests/test-memory-icon
-/gcr/tests/test-openpgp
-/gcr/tests/test-openssh
-/gcr/tests/test-parser
-/gcr/tests/test-pkcs11-certificate
-/gcr/tests/test-record
-/gcr/tests/test-secret-exchange
-/gcr/tests/test-simple-certificate
-/gcr/tests/test-trust
-/gcr/tests/test-util
-
/pkcs11/gkm/tests/test-attributes
/pkcs11/gkm/tests/test-credential
/pkcs11/gkm/tests/test-data-asn1
@@ -198,8 +149,6 @@ run-tests
/pkcs11/xdg-store/tests/test-xdg-module
/pkcs11/xdg-store/tests/test-xdg-trust
-/gcr/gcr-viewer
-
/daemon/dbus/tests/test-secret-util
/ui/gnome-keyring-prompt.desktop
@@ -208,4 +157,3 @@ run-tests
/docs/reference/*/*-scan
/docs/reference/*/*-scan.c
-/docs/reference/*/gcr-shooter
diff --git a/Makefile.am b/Makefile.am
index ed9db2da..bc893538 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -7,8 +7,6 @@ endif
SUBDIRS = \
. \
egg \
- gck \
- gcr \
ui \
pkcs11 \
schema \
@@ -73,8 +71,3 @@ clear-coverage:
$(LCOV) --directory . --zerocounters
endif
-
-if WITH_GNU_MAKE
-# Include this local file if it exists
--include Makefile.local
-endif
diff --git a/configure.ac b/configure.ac
index 77b7113b..c7097d87 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5,35 +5,8 @@ AM_CONFIG_HEADER(config.h)
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
dnl ****************************************************************************
-dnl Library package and libtool versioning
-dnl
-dnl Updating the libtool versions, follow these instructions sequentially:
-dnl 1. If the library source code has changed at all since the last update, then increment revision (‘c:r:a’ becomes ‘c:r+1:a’).
-dnl 2. If any interfaces have been added, removed, or changed since the last update, increment current, and set revision to 0.
-dnl 3. If any interfaces have been added since the last public release, then increment age.
-dnl 4. If any interfaces have been removed or changed since the last public release, then set age to 0.
-
-# GCK package versioning
-GCK_MAJOR=1
-GCK_MINOR=0
-GCK_MICRO=0
-
-# GCK libtool versioning
-GCK_CURRENT=0
-GCK_REVISION=0
-GCK_AGE=0
-
-# GCR package versioning
-GCR_MAJOR=3
-GCR_MINOR=0
-GCR_MICRO=0
-
-# GCR libtool versioning
-GCR_CURRENT=1
-GCR_REVISION=0
-GCR_AGE=0
-dnl ****************************************************************************
+GKR_MAJOR=3
version_bits=`echo $VERSION | tr '.' ' '`
full_version=`printf %03d%03d%03d $version_bits`
@@ -60,8 +33,6 @@ AC_TYPE_SIGNAL
AC_TYPE_SIZE_T
AC_TYPE_UID_T
-GOBJECT_INTROSPECTION_CHECK([1.29])
-
GTK_DOC_CHECK(1.9)
DISTCHECK_CONFIGURE_FLAGS="--enable-gtk-doc"
AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)
@@ -97,7 +68,6 @@ AC_SUBST(GETTEXT_PACKAGE)
AM_GLIB_GNU_GETTEXT
AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
-AC_PATH_PROG(GLIB_MKENUMS, glib-mkenums)
GLIB_GSETTINGS
@@ -220,6 +190,23 @@ if test $have_socket = no; then
fi
# --------------------------------------------------------------------
+# GCR and GCK libraries
+
+PKG_CHECK_MODULES(GCK, gck-1 >= 3.3.1)
+PKG_CHECK_MODULES(GCR, gcr-3 >= 3.3.1)
+PKG_CHECK_MODULES(GCR_BASE, gcr-base-3 >= 3.3.1)
+
+DAEMON_CFLAGS="$DAEMON_CFLAGS $GCK_CFLAGS $GCR_BASE_CFLAGS"
+DAEMON_LIBS="$DAEMON_LIBS $GCK_LIBS $GCR_BASE_CFLAGS"
+
+AC_SUBST(GCK_CFLAGS)
+AC_SUBST(GCR_CFLAGS)
+AC_SUBST(GCR_BASE_CFLAGS)
+AC_SUBST(GCK_LIBS)
+AC_SUBST(GCR_LIBS)
+AC_SUBST(GCR_BASE_LIBS)
+
+# --------------------------------------------------------------------
# DBus Checks
#
@@ -284,10 +271,6 @@ AC_SUBST(DL_LIBS)
# --------------------------------------------------------------------
# p11-kit
-PKG_CHECK_MODULES([P11_KIT], p11-kit-1 >= 0.6)
-AC_SUBST(P11_KIT_CFLAGS)
-AC_SUBST(P11_KIT_LIBS)
-
AC_MSG_CHECKING([where to put pkcs11 module configuration])
P11_SYSTEM_CONFIG_MODULES=$($PKG_CONFIG p11-kit-1 --variable=p11_system_config_modules)
AC_MSG_RESULT($P11_SYSTEM_CONFIG_MODULES)
@@ -367,12 +350,6 @@ fi
AM_CONDITIONAL(WITH_GPG, test "$enable_gpg_agent" != "no")
# --------------------------------------------------------------------
-# GPG support
-
-AC_PATH_PROGS([GNUPG], [gpg gpg2], ["gpg"])
-AC_DEFINE_UNQUOTED([GPG_EXECUTABLE], ["$GNUPG"], [Path to gpg executable.])
-
-# --------------------------------------------------------------------
# Trusted Root Certificates Directory
#
@@ -406,13 +383,6 @@ else
fi
# --------------------------------------------------------------------
-# Check for /dev/random
-#
-
-AC_CHECK_FILE(/dev/random, AC_DEFINE(HAVE_DEVRANDOM,1,[Have /dev/random]))
-
-
-# --------------------------------------------------------------------
# libgcrypt
#
@@ -441,13 +411,6 @@ AC_SUBST([LIBGCRYPT_LIBS])
GKR_LIBTASN1_VERSION=0.3.4
-PKG_CHECK_MODULES(LIBTASN1,libtasn1 >= $GKR_LIBTASN1_VERSION)
-AC_SUBST([LIBTASN1_LIBS])
-AC_SUBST([LIBTASN1_CFLAGS])
-
-DAEMON_CFLAGS="$DAEMON_CFLAGS $LIBTASN1_CFLAGS"
-DAEMON_LIBS="$DAEMON_LIBS"
-
AC_PATH_PROG(ASN1PARSER, asn1Parser, no)
if test "$ASN1PARSER" = "no" ; then
AC_MSG_ERROR([asn1Parser tool is not installed, try libtasn1 or a related package])
@@ -520,14 +483,6 @@ if test "$p11_tests_status" = "yes"; then
AC_DEFINE_UNQUOTED(WITH_P11_TESTS, 1, [Run p11-tests module testing])
fi
-# ----------------------------------------------------------------------
-# mime-database
-
-AC_ARG_ENABLE(update-mime,
- AC_HELP_STRING([--disable-update-mime],
- [don't run update-mime-database utility (useful for packages) ]))
-AM_CONDITIONAL(WITH_UPDATE_MIME, test "$enable_update_mime" != "no")
-
# --------------------------------------------------------------------
# Compilation and linking options
#
@@ -700,15 +655,7 @@ fi
# ----------------------------------------------------------------------
-GCK_LT_RELEASE=$GCK_CURRENT:$GCK_REVISION:$GCK_AGE
-AC_SUBST(GCK_LT_RELEASE)
-AC_SUBST(GCK_MAJOR)
-AC_SUBST(GCK_MINOR)
-
-GCR_LT_RELEASE=$GCR_CURRENT:$GCR_REVISION:$GCR_AGE
-AC_SUBST(GCR_LT_RELEASE)
-AC_SUBST(GCR_MAJOR)
-AC_SUBST(GCR_MINOR)
+AC_SUBST(GKR_MAJOR)
AC_SUBST(DAEMON_CFLAGS)
AC_SUBST(DAEMON_LIBS)
@@ -716,9 +663,6 @@ AC_SUBST(DAEMON_LIBS)
AC_SUBST(P11_TESTS_CFLAGS)
AC_SUBST(P11_TESTS_LIBS)
-# Are we running with GNU Make?
-AM_CONDITIONAL([WITH_GNU_MAKE], [make --version | grep -q 'GNU Make' > /dev/null])
-
# HACK: Because autoconf is nasty
if test "${prefix}" = "NONE"; then
prefix=/usr/local
@@ -750,28 +694,8 @@ daemon/gpg-agent/Makefile
daemon/login/Makefile
daemon/ssh-agent/Makefile
docs/Makefile
-docs/reference/Makefile
-docs/reference/gck/Makefile
-docs/reference/gck/version.xml
-docs/reference/gcr/Makefile
-docs/reference/gcr/version.xml
egg/Makefile
egg/tests/Makefile
-gck/gck.pc
-gck/Makefile
-gck/tests/Makefile
-gcr/gcr.pc
-gcr/gcr-base.pc
-gcr/gcr-viewer.desktop.in
-gcr/Makefile
-gcr/icons/Makefile
-gcr/icons/16x16/Makefile
-gcr/icons/22x22/Makefile
-gcr/icons/24x24/Makefile
-gcr/icons/32x32/Makefile
-gcr/icons/48x48/Makefile
-gcr/icons/256x256/Makefile
-gcr/tests/Makefile
pam/Makefile
pkcs11/Makefile
pkcs11/gkm/Makefile
@@ -817,7 +741,6 @@ echo
echo "BUILD"
echo " Debug Build: $debug_status"
echo " Strict Compilation: $strict_status"
-echo " Introspection: $found_introspection"
echo " Valgrind: $valgrind_status"
echo " PKCS#11 Tests $p11_tests_status"
echo " Test Coverage: $enable_coverage"
diff --git a/daemon/Makefile.am b/daemon/Makefile.am
index 825ab4aa..c0773f5f 100644
--- a/daemon/Makefile.am
+++ b/daemon/Makefile.am
@@ -45,7 +45,6 @@ gnome_keyring_daemon_LDADD = \
$(top_builddir)/pkcs11/gnome2-store/libgkm-gnome2-store.la \
$(top_builddir)/pkcs11/xdg-store/libgkm-xdg-store.la \
$(top_builddir)/pkcs11/gkm/libgkm.la \
- $(top_builddir)/gck/libgck-@GCK_MAJOR@.la \
$(top_builddir)/egg/libegg-dbus.la \
$(DAEMON_LIBS) \
$(GOBJECT_LIBS) \
diff --git a/daemon/control/Makefile.am b/daemon/control/Makefile.am
index 6f4f70cc..2b53d7ba 100644
--- a/daemon/control/Makefile.am
+++ b/daemon/control/Makefile.am
@@ -9,8 +9,7 @@ INCLUDES= \
-I$(top_srcdir) \
-I$(top_srcdir)/daemon \
-I$(top_builddir) \
- $(GLIB_CFLAGS) \
- -DGCK_API_SUBJECT_TO_CHANGE
+ $(GLIB_CFLAGS)
# ------------------------------------------------------------------
# DAEMON CODE
diff --git a/daemon/dbus/gkd-dbus-secrets.c b/daemon/dbus/gkd-dbus-secrets.c
index c9323aa3..c71893c2 100644
--- a/daemon/dbus/gkd-dbus-secrets.c
+++ b/daemon/dbus/gkd-dbus-secrets.c
@@ -32,7 +32,7 @@
#include "egg/egg-cleanup.h"
#include "egg/egg-error.h"
-#include "gck/gck.h"
+#include <gck/gck.h>
static DBusConnection *dbus_conn = NULL;
static GkdSecretService *secrets_service = NULL;
diff --git a/daemon/dbus/gkd-secret-change.h b/daemon/dbus/gkd-secret-change.h
index 91228135..2f2daf43 100644
--- a/daemon/dbus/gkd-secret-change.h
+++ b/daemon/dbus/gkd-secret-change.h
@@ -27,7 +27,7 @@
#include "gkd-secret-prompt.h"
#include "gkd-secret-types.h"
-#include "gck/gck.h"
+#include <gck/gck.h>
#define GKD_SECRET_TYPE_CHANGE (gkd_secret_change_get_type ())
#define GKD_SECRET_CHANGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GKD_SECRET_TYPE_CHANGE, GkdSecretChange))
diff --git a/daemon/dbus/gkd-secret-create.h b/daemon/dbus/gkd-secret-create.h
index d24afe99..75c3c6eb 100644
--- a/daemon/dbus/gkd-secret-create.h
+++ b/daemon/dbus/gkd-secret-create.h
@@ -27,7 +27,7 @@
#include "gkd-secret-prompt.h"
#include "gkd-secret-types.h"
-#include "gck/gck.h"
+#include <gck/gck.h>
#define GKD_SECRET_TYPE_CREATE (gkd_secret_create_get_type ())
#define GKD_SECRET_CREATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GKD_SECRET_TYPE_CREATE, GkdSecretCreate))
diff --git a/daemon/dbus/gkd-secret-exchange.c b/daemon/dbus/gkd-secret-exchange.c
index 7469dd68..0cf36d7e 100644
--- a/daemon/dbus/gkd-secret-exchange.c
+++ b/daemon/dbus/gkd-secret-exchange.c
@@ -28,7 +28,7 @@
#include "gkd-secret-service.h"
#include "gkd-secret-session.h"
-#include "gcr/gcr-secret-exchange.h"
+#include <gcr/gcr-base.h>
#include <glib/gi18n.h>
diff --git a/daemon/dbus/gkd-secret-exchange.h b/daemon/dbus/gkd-secret-exchange.h
index f8ed12c4..c5e04795 100644
--- a/daemon/dbus/gkd-secret-exchange.h
+++ b/daemon/dbus/gkd-secret-exchange.h
@@ -29,8 +29,6 @@
#include "gkd-secret-prompt.h"
#include "gkd-secret-types.h"
-#include "gck/gck.h"
-
#define GKD_TYPE_SECRET_EXCHANGE (gkd_secret_exchange_get_type ())
#define GKD_SECRET_EXCHANGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GKD_TYPE_SECRET_EXCHANGE, GkdSecretExchange))
#define GKD_SECRET_EXCHANGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GKD_TYPE_SECRET_EXCHANGE, GkdSecretExchangeClass))
diff --git a/daemon/dbus/gkd-secret-objects.h b/daemon/dbus/gkd-secret-objects.h
index 91388565..234efd3b 100644
--- a/daemon/dbus/gkd-secret-objects.h
+++ b/daemon/dbus/gkd-secret-objects.h
@@ -24,7 +24,7 @@
#include "gkd-secret-types.h"
-#include "gck/gck.h"
+#include <gck/gck.h>
#include <glib-object.h>
diff --git a/daemon/dbus/gkd-secret-prompt.h b/daemon/dbus/gkd-secret-prompt.h
index a177ad9a..84fc187b 100644
--- a/daemon/dbus/gkd-secret-prompt.h
+++ b/daemon/dbus/gkd-secret-prompt.h
@@ -28,7 +28,7 @@
#include "ui/gku-prompt.h"
-#include "gck/gck.h"
+#include <gck/gck.h>
#include <dbus/dbus.h>
diff --git a/daemon/dbus/gkd-secret-property.h b/daemon/dbus/gkd-secret-property.h
index d04c414d..bdcaba5a 100644
--- a/daemon/dbus/gkd-secret-property.h
+++ b/daemon/dbus/gkd-secret-property.h
@@ -24,7 +24,7 @@
#include "gkd-secret-types.h"
-#include "gck/gck.h"
+#include <gck/gck.h>
#include <dbus/dbus.h>
diff --git a/daemon/dbus/gkd-secret-service.c b/daemon/dbus/gkd-secret-service.c
index 0cd208ad..3dab7e38 100644
--- a/daemon/dbus/gkd-secret-service.c
+++ b/daemon/dbus/gkd-secret-service.c
@@ -41,7 +41,7 @@
#include "egg/egg-error.h"
#include "egg/egg-unix-credentials.h"
-#include "gck/gck.h"
+#include <gck/gck.h>
#include "pkcs11/pkcs11i.h"
diff --git a/daemon/dbus/gkd-secret-service.h b/daemon/dbus/gkd-secret-service.h
index 9425ea73..9fc303d4 100644
--- a/daemon/dbus/gkd-secret-service.h
+++ b/daemon/dbus/gkd-secret-service.h
@@ -24,7 +24,7 @@
#include "gkd-secret-types.h"
-#include "gck/gck.h"
+#include <gck/gck.h>
#include <dbus/dbus.h>
diff --git a/daemon/dbus/gkd-secret-unlock.h b/daemon/dbus/gkd-secret-unlock.h
index c5e3e50a..fdd7c8a6 100644
--- a/daemon/dbus/gkd-secret-unlock.h
+++ b/daemon/dbus/gkd-secret-unlock.h
@@ -26,6 +26,8 @@
#include "gkd-secret-types.h"
+#include <gck/gck.h>
+
#define GKD_SECRET_TYPE_UNLOCK (gkd_secret_unlock_get_type ())
#define GKD_SECRET_UNLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GKD_SECRET_TYPE_UNLOCK, GkdSecretUnlock))
#define GKD_SECRET_UNLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GKD_SECRET_TYPE_UNLOCK, GkdSecretUnlockClass))
diff --git a/daemon/gkd-glue.c b/daemon/gkd-glue.c
index 0811f6b8..5b95c7c3 100644
--- a/daemon/gkd-glue.c
+++ b/daemon/gkd-glue.c
@@ -61,7 +61,7 @@ gkd_daemon_startup_ssh (void)
g_io_add_watch (channel, G_IO_IN | G_IO_HUP, accept_ssh_client, NULL);
g_io_channel_unref (channel);
- /* gck-ssh-agent sets the environment variable */
+ /* ssh-agent sets the environment variable */
gkd_util_push_environment ("SSH_AUTH_SOCK", g_getenv ("SSH_AUTH_SOCK"));
egg_cleanup_register (pkcs11_ssh_cleanup, NULL);
@@ -101,7 +101,7 @@ gkd_daemon_startup_gpg (void)
g_io_add_watch (channel, G_IO_IN | G_IO_HUP, accept_gpg_client, NULL);
g_io_channel_unref (channel);
- /* gck-gpg-agent sets the environment variable */
+ /* gpg-agent sets the environment variable */
gkd_util_push_environment ("GPG_AGENT_INFO", g_getenv ("GPG_AGENT_INFO"));
egg_cleanup_register (pkcs11_gpg_cleanup, NULL);
diff --git a/daemon/gkd-main.c b/daemon/gkd-main.c
index 0b9294c8..12d3de92 100644
--- a/daemon/gkd-main.c
+++ b/daemon/gkd-main.c
@@ -60,6 +60,7 @@
#include <glib.h>
#include <glib/gi18n.h>
+#include <glib-object.h>
#include <gcrypt.h>
diff --git a/daemon/gpg-agent/Makefile.am b/daemon/gpg-agent/Makefile.am
index 7f95ace0..5532d6b2 100644
--- a/daemon/gpg-agent/Makefile.am
+++ b/daemon/gpg-agent/Makefile.am
@@ -5,7 +5,9 @@ INCLUDES = \
-I$(top_srcdir)/pkcs11 \
-DGCK_API_SUBJECT_TO_CHANGE \
$(GOBJECT_CFLAGS) \
+ $(GCR_BASE_CFLAGS) \
$(GIO_CFLAGS) \
+ $(GCK_CFLAGS) \
$(GLIB_CFLAGS)
# ------------------------------------------------------------------------------
@@ -31,8 +33,8 @@ gkd_gpg_agent_standalone_SOURCES = \
gkd_gpg_agent_standalone_LDADD = \
libgkd-gpg-agent.la \
$(top_builddir)/ui/libgku-prompt.la \
- $(top_builddir)/gck/libgck-@GCK_MAJOR@.la \
$(top_builddir)/egg/libegg.la \
+ $(GCK_LIBS) \
$(GOBJECT_LIBS) \
$(GTHREAD_LIBS) \
$(GIO_LIBS) \
diff --git a/daemon/gpg-agent/gkd-gpg-agent-ops.c b/daemon/gpg-agent/gkd-gpg-agent-ops.c
index a8ffefc5..42ddffba 100644
--- a/daemon/gpg-agent/gkd-gpg-agent-ops.c
+++ b/daemon/gpg-agent/gkd-gpg-agent-ops.c
@@ -27,7 +27,7 @@
#include "egg/egg-error.h"
#include "egg/egg-secure-memory.h"
-#include "gcr/gcr-unlock-options.h"
+#include <gcr/gcr-unlock-options.h>
#include "pkcs11/pkcs11i.h"
diff --git a/daemon/gpg-agent/gkd-gpg-agent-standalone.c b/daemon/gpg-agent/gkd-gpg-agent-standalone.c
index 4b56dc20..c573e478 100644
--- a/daemon/gpg-agent/gkd-gpg-agent-standalone.c
+++ b/daemon/gpg-agent/gkd-gpg-agent-standalone.c
@@ -27,7 +27,7 @@
#include "egg/egg-error.h"
#include "egg/egg-secure-memory.h"
-#include "gck/gck.h"
+#include <gck/gck.h>
#include <glib.h>
#include <glib-object.h>
diff --git a/daemon/login/Makefile.am b/daemon/login/Makefile.am
index 119264af..7d5fd670 100644
--- a/daemon/login/Makefile.am
+++ b/daemon/login/Makefile.am
@@ -7,6 +7,7 @@ INCLUDES= \
-I$(top_srcdir) \
-I$(top_srcdir)/daemon \
-I$(top_builddir) \
+ $(GCK_CFLAGS) \
$(GOBJECT_CFLAGS) \
$(GLIB_CFLAGS) \
-DGCK_API_SUBJECT_TO_CHANGE
@@ -20,6 +21,6 @@ libgkd_login_la_SOURCES = \
gkd-login.c gkd-login.h
libgkd_login_la_LIBADD = \
- $(top_builddir)/gck/libgck-@GCK_MAJOR@.la \
+ $(GCK_LIBS) \
$(GOBJECT_LIBS) \
$(GLIB_LIBS)
diff --git a/daemon/login/gkd-login.c b/daemon/login/gkd-login.c
index 8da57d99..d94115e5 100644
--- a/daemon/login/gkd-login.c
+++ b/daemon/login/gkd-login.c
@@ -31,6 +31,8 @@
#include "pkcs11/pkcs11i.h"
#include "pkcs11/wrap-layer/gkm-wrap-layer.h"
+#include <gck/gck.h>
+
#include <glib/gi18n.h>
#include <string.h>
diff --git a/daemon/login/gkd-login.h b/daemon/login/gkd-login.h
index 01b4ddba..ca88aaaa 100644
--- a/daemon/login/gkd-login.h
+++ b/daemon/login/gkd-login.h
@@ -24,8 +24,6 @@
#include <glib.h>
-#include "gck/gck.h"
-
gboolean gkd_login_unlock (const gchar *master);
gboolean gkd_login_change_lock (const gchar *original,
diff --git a/daemon/ssh-agent/Makefile.am b/daemon/ssh-agent/Makefile.am
index 8d643b80..aa8cbbe9 100644
--- a/daemon/ssh-agent/Makefile.am
+++ b/daemon/ssh-agent/Makefile.am
@@ -5,6 +5,7 @@ INCLUDES = \
-I$(top_srcdir)/pkcs11 \
$(GOBJECT_CFLAGS) \
$(GLIB_CFLAGS) \
+ $(GCK_CFLAGS) \
-DGCK_API_SUBJECT_TO_CHANGE
# ------------------------------------------------------------------------------
@@ -30,9 +31,9 @@ gkd_ssh_agent_standalone_SOURCES = \
gkd_ssh_agent_standalone_LDADD = \
libgkd-ssh-agent.la \
- $(top_builddir)/gck/libgck-@GCK_MAJOR@.la \
$(top_builddir)/egg/libegg-buffer.la \
$(top_builddir)/egg/libegg-secure.la \
+ $(GCK_LIBS) \
$(GOBJECT_LIBS) \
$(GTHREAD_LIBS) \
$(LIBGCRYPT_LIBS) \
diff --git a/daemon/ssh-agent/gkd-ssh-agent-ops.c b/daemon/ssh-agent/gkd-ssh-agent-ops.c
index a87e28e0..2e35e90f 100644
--- a/daemon/ssh-agent/gkd-ssh-agent-ops.c
+++ b/daemon/ssh-agent/gkd-ssh-agent-ops.c
@@ -24,7 +24,7 @@
#include "gkd-ssh-agent-private.h"
-#include "gck/gck.h"
+#include <gck/gck.h>
#include "pkcs11/pkcs11.h"
#include "pkcs11/pkcs11i.h"
diff --git a/daemon/ssh-agent/gkd-ssh-agent-standalone.c b/daemon/ssh-agent/gkd-ssh-agent-standalone.c
index e6920d1f..5879d178 100644
--- a/daemon/ssh-agent/gkd-ssh-agent-standalone.c
+++ b/daemon/ssh-agent/gkd-ssh-agent-standalone.c
@@ -28,7 +28,7 @@
#include "egg/egg-error.h"
#include "egg/egg-secure-memory.h"
-#include "gck/gck.h"
+#include <gck/gck.h>
#include <glib.h>
#include <glib-object.h>
diff --git a/docs/Makefile.am b/docs/Makefile.am
index cac25f2d..3f519b7f 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -1,2 +1,5 @@
-SUBDIRS = reference
+EXTRA_DIST = \
+ file-format.txt \
+ keyring-intro.txt \
+ gnome-keyring.svg \ No newline at end of file
diff --git a/docs/reference/.gitignore b/docs/reference/.gitignore
deleted file mode 100644
index 7c09c11a..00000000
--- a/docs/reference/.gitignore
+++ /dev/null
@@ -1,11 +0,0 @@
-# Directories created by gtk-doc
-xml/
-tmpl/
-html/
-
-# Reports generated by gtk-doc
-*-undeclared.txt
-*-undocumented.txt
-*-unused.txt
-
-
diff --git a/docs/reference/COPYING b/docs/reference/COPYING
deleted file mode 100644
index d5c1293c..00000000
--- a/docs/reference/COPYING
+++ /dev/null
@@ -1,30 +0,0 @@
-This work may be reproduced and distributed in whole or in part, in
-any medium, physical or electronic, so as long as this copyright
-notice remains intact and unchanged on all copies. Commercial
-redistribution is permitted and encouraged, but you may not
-redistribute, in whole or in part, under terms more restrictive than
-those under which you received it. If you redistribute a modified or
-translated version of this work, you must also make the source code to
-the modified or translated version available in electronic form
-without charge. However, mere aggregation as part of a larger work
-shall not count as a modification for this purpose.
-
-All code examples in this work are placed into the public domain,
-and may be used, modified and redistributed without restriction.
-
-BECAUSE THIS WORK IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE WORK, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE WORK "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. SHOULD THE WORK PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY REPAIR OR CORRECTION.
-
-IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE WORK AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-WORK, EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am
deleted file mode 100644
index 6a9b2af2..00000000
--- a/docs/reference/Makefile.am
+++ /dev/null
@@ -1,2 +0,0 @@
-
-SUBDIRS = gcr gck
diff --git a/docs/reference/gck/.gitignore b/docs/reference/gck/.gitignore
deleted file mode 100644
index 7522b0c7..00000000
--- a/docs/reference/gck/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-# Commit these files if you edit them
-*-decl-list.txt
-*-decl.txt
-*.args
-*.hierarchy
-*.interfaces
-*.prerequisites
-*.signals
diff --git a/docs/reference/gck/Makefile.am b/docs/reference/gck/Makefile.am
deleted file mode 100644
index a14f92ca..00000000
--- a/docs/reference/gck/Makefile.am
+++ /dev/null
@@ -1,100 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-# We require automake 1.6 at least.
-AUTOMAKE_OPTIONS = 1.6
-
-# The name of the module, e.g. 'glib'.
-DOC_MODULE=gck
-
-# Uncomment for versioned docs and specify the version of the module, e.g. '2'.
-#DOC_MODULE_VERSION=2
-
-
-# The top-level SGML file. You can change this if you want to.
-DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
-
-# The directory containing the source code. Relative to $(srcdir).
-# gtk-doc will search all .c & .h files beneath here for inline comments
-# documenting the functions and macros.
-# e.g. DOC_SOURCE_DIR=../../../gtk
-DOC_SOURCE_DIR=../../../gck
-
-# Extra options to pass to gtkdoc-scangobj. Not normally needed.
-SCANGOBJ_OPTIONS=
-
-# Extra options to supply to gtkdoc-scan.
-# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
-SCAN_OPTIONS=--deprecated-guards="GCK_DISABLE_DEPRECATED"
-
-# Extra options to supply to gtkdoc-mkdb.
-# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml
-MKDB_OPTIONS=--sgml-mode --output-format=xml
-
-# Extra options to supply to gtkdoc-mktmpl
-# e.g. MKTMPL_OPTIONS=--only-section-tmpl
-MKTMPL_OPTIONS=
-
-# Extra options to supply to gtkdoc-mkhtml
-MKHTML_OPTIONS=
-
-# Extra options to supply to gtkdoc-fixref. Not normally needed.
-# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
-FIXXREF_OPTIONS=
-
-# Used for dependencies. The docs will be rebuilt if any of these change.
-# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
-# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
-HFILE_GLOB=$(top_srcdir)/$(DOC_MODULE)/*.h
-CFILE_GLOB=$(top_srcdir)/$(DOC_MODULE)/*.c
-
-# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
-# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h
-EXTRA_HFILES=
-
-# Header files to ignore when scanning. Use base file name, no paths
-# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
-IGNORE_HFILES= \
- gck-debug.h \
- gck-private.h \
- test-suite.h \
- gck-mock.h \
- gck-test.h \
- pkcs11-trust-assertions.h
-
-# Images to copy into HTML directory.
-# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
-HTML_IMAGES=
-
-# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
-# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
-content_files= \
- gck-pkcs11-links.xml
-
-# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
-# These files must be listed here *and* in content_files
-# e.g. expand_content_files=running.sgml
-expand_content_files=
-
-# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
-# Only needed if you are using gtkdoc-scangobj to dynamically query widget
-# signals and properties.
-# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
-# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
-GTKDOC_CFLAGS= -I$(top_srcdir) -I$(top_builddir) $(GOBJECT_CFLAGS) -Wno-error
-GTKDOC_LIBS= $(GOBJECT_LIBS) $(top_builddir)/$(DOC_MODULE)/lib$(DOC_MODULE).la
-
-# This includes the standard gtk-doc make rules, copied by gtkdocize.
-include $(top_srcdir)/gtk-doc.make
-
-# Other files to distribute
-# e.g. EXTRA_DIST += version.xml.in
-EXTRA_DIST +=
-
-# Files not to distribute
-# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
-# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
-DISTCLEANFILES = tmpl/gck-unused.sgml
-
-# Comment this out if you want your docs-status tested during 'make check'
-#TESTS_ENVIRONMENT = cd $(srcsrc)
-#TESTS = $(GTKDOC_CHECK)
diff --git a/docs/reference/gck/gck-docs.sgml b/docs/reference/gck/gck-docs.sgml
deleted file mode 100644
index f5668f3e..00000000
--- a/docs/reference/gck/gck-docs.sgml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
-<!ENTITY version SYSTEM "version.xml">
-]>
-<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
- <bookinfo>
- <title>Gck Library Reference Manual</title>
- <releaseinfo>
- For Gck &version;.
- An online version of this documentation can be found at
- <ulink role="online-location" url="http://developer.gnome.org/gck/stable/">http://developer.gnome.org/gck/stable/</ulink>.
- </releaseinfo>
- </bookinfo>
-
- <chapter id="reference">
- <title>PKCS#11 GObject Bindings</title>
- <xi:include href="xml/gck-module.xml"/>
- <xi:include href="xml/gck-slot.xml"/>
- <xi:include href="xml/gck-session.xml"/>
- <xi:include href="xml/gck-object.xml"/>
- <xi:include href="xml/gck-attribute.xml"/>
- <xi:include href="xml/gck-attributes.xml"/>
- <xi:include href="xml/gck-enumerator.xml"/>
- <xi:include href="xml/gck-modules.xml"/>
- <xi:include href="xml/gck-error.xml"/>
- <xi:include href="xml/gck-uri.xml"/>
- <xi:include href="xml/gck-misc.xml"/>
- </chapter>
-
- <xi:include href="gck-pkcs11-links.xml"/>
- <xi:include href="xml/annotation-glossary.xml">
- <xi:fallback />
- </xi:include>
-</book>
diff --git a/docs/reference/gck/gck-overrides.txt b/docs/reference/gck/gck-overrides.txt
deleted file mode 100644
index 13f485f1..00000000
--- a/docs/reference/gck/gck-overrides.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-# These are manually-edited to override or add declarations to those scanned
-# from the header files.
diff --git a/docs/reference/gck/gck-pkcs11-links.xml b/docs/reference/gck/gck-pkcs11-links.xml
deleted file mode 100644
index 9341ccf1..00000000
--- a/docs/reference/gck/gck-pkcs11-links.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
-]>
-<chapter xml:id="pkcs11-links">
- <title>About PKCS#11</title>
-
- <anchor id="CK-NOTIFY:CAPS"/>
- <anchor id="CK-SLOT-ID:CAPS"/>
- <anchor id="CK-FUNCTION-LIST-PTR:CAPS"/>
- <anchor id="CK-RV:CAPS"/>
- <anchor id="CK-SESSION-HANDLE:CAPS"/>
- <anchor id="CK-OBJECT-HANDLE:CAPS"/>
- <anchor id="CK-OBJECT-HANDLE-PTR:CAPS"/>
- <anchor id="CK-ULONG:CAPS"/>
- <anchor id="CK-BBOOL:CAPS"/>
-
- <para>PKCS#11 is an API for storing and using crypto objects, and performing
- crypto operations on them.</para>
-
- <para>It is specified at the
- <ulink href="http://www.rsa.com/rsalabs/node.asp?id=2133">RSA website</ulink>
- and a <ulink href="http://www.cryptsoft.com/pkcs11doc/">handy reference</ulink> is also
- available.</para>
-
-</chapter>
diff --git a/docs/reference/gck/gck-sections.txt b/docs/reference/gck/gck-sections.txt
deleted file mode 100644
index f6b2c7c8..00000000
--- a/docs/reference/gck/gck-sections.txt
+++ /dev/null
@@ -1,389 +0,0 @@
-<SECTION>
-<FILE>gck-attribute</FILE>
-GckAttribute
-gck_attribute_init
-gck_attribute_init_invalid
-gck_attribute_init_empty
-gck_attribute_init_boolean
-gck_attribute_init_date
-gck_attribute_init_ulong
-gck_attribute_init_string
-gck_attribute_init_copy
-gck_attribute_new
-gck_attribute_new_invalid
-gck_attribute_new_empty
-gck_attribute_new_boolean
-gck_attribute_new_date
-gck_attribute_new_ulong
-gck_attribute_new_string
-gck_attribute_is_invalid
-gck_attribute_get_boolean
-gck_attribute_get_ulong
-gck_attribute_get_string
-gck_attribute_get_date
-gck_attribute_dup
-gck_attribute_clear
-gck_attribute_free
-gck_attribute_dump
-gck_attribute_equal
-<SUBSECTION Private>
-GCK_TYPE_ATTRIBUTE
-gck_attribute_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gck-attributes</FILE>
-GckAttributes
-gck_attributes_new
-gck_attributes_new_empty
-gck_attributes_at
-gck_attributes_add
-gck_attributes_add_data
-gck_attributes_add_invalid
-gck_attributes_add_empty
-gck_attributes_add_boolean
-gck_attributes_add_string
-gck_attributes_add_date
-gck_attributes_add_ulong
-gck_attributes_add_all
-gck_attributes_set_boolean
-gck_attributes_set_string
-gck_attributes_set_date
-gck_attributes_set_ulong
-gck_attributes_find
-gck_attributes_find_boolean
-gck_attributes_find_ulong
-gck_attributes_find_string
-gck_attributes_find_date
-gck_attributes_count
-gck_attributes_ref
-gck_attributes_unref
-gck_attributes_contains
-gck_attributes_dump
-gck_attributes_new_full
-GckAllocator
-<SUBSECTION Standard>
-gck_attributes_get_type
-GCK_TYPE_ATTRIBUTES
-gck_attributes_get_boxed_type
-</SECTION>
-
-<SECTION>
-<FILE>gck-module</FILE>
-GckModule
-gck_module_initialize
-gck_module_initialize_async
-gck_module_initialize_finish
-gck_module_new
-gck_module_equal
-gck_module_hash
-gck_module_match
-gck_module_get_path
-gck_module_get_functions
-gck_module_get_info
-gck_module_get_slots
-GckModuleInfo
-gck_module_info_copy
-gck_module_info_free
-<SUBSECTION Standard>
-GckModuleClass
-gck_module_get_type
-GCK_IS_MODULE
-GCK_IS_MODULE_CLASS
-GCK_MODULE
-GCK_MODULE_CLASS
-GCK_MODULE_GET_CLASS
-GCK_TYPE_MODULE
-GckModulePrivate
-GCK_TYPE_MODULE_INFO
-gck_module_info_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gck-modules</FILE>
-gck_modules_initialize_registered
-gck_modules_initialize_registered_async
-gck_modules_initialize_registered_finish
-gck_modules_enumerate_objects
-gck_modules_enumerate_uri
-gck_modules_get_slots
-gck_modules_object_for_uri
-gck_modules_objects_for_uri
-gck_modules_token_for_uri
-gck_modules_tokens_for_uri
-</SECTION>
-
-<SECTION>
-<FILE>gck-slot</FILE>
-GckMechanismInfo
-gck_mechanism_info_copy
-gck_mechanism_info_free
-gck_mechanisms_length
-gck_mechanisms_at
-gck_mechanisms_check
-GckSessionOptions
-GckSlot
-gck_slot_equal
-gck_slot_hash
-gck_slot_get_module
-gck_slot_get_handle
-gck_slot_get_info
-gck_slot_get_interaction
-gck_slot_set_interaction
-gck_slot_match
-gck_slot_get_token_info
-gck_slot_get_mechanisms
-gck_slot_get_mechanism_info
-gck_slot_has_flags
-gck_slots_enumerate_objects
-gck_slot_open_session
-gck_slot_open_session_full
-gck_slot_open_session_full_async
-gck_slot_open_session_async
-gck_slot_open_session_finish
-gck_slot_from_handle
-GckSlotInfo
-gck_slot_info_copy
-gck_slot_info_free
-GckTokenInfo
-gck_token_info_copy
-gck_token_info_free
-<SUBSECTION Standard>
-GckSlotClass
-gck_slot_get_type
-GCK_IS_SLOT
-GCK_IS_SLOT_CLASS
-GCK_SLOT
-GCK_SLOT_CLASS
-GCK_SLOT_GET_CLASS
-GCK_TYPE_SLOT
-GckSlotPrivate
-GCK_TYPE_MECHANISM_INFO
-GCK_TYPE_SLOT_INFO
-GCK_TYPE_TOKEN_INFO
-GckMechanisms
-gck_mechanisms_free
-gck_mechanism_info_get_type
-gck_slot_info_get_type
-gck_token_info_get_type
-GCK_TYPE_SESSION_OPTIONS
-gck_session_options_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gck-session</FILE>
-GckSession
-gck_session_from_handle
-gck_session_get_module
-gck_session_get_slot
-gck_session_get_handle
-gck_session_get_info
-gck_session_get_interaction
-gck_session_login
-gck_session_login_async
-gck_session_login_finish
-gck_session_logout
-gck_session_logout_async
-gck_session_logout_finish
-gck_session_create_object
-gck_session_create_object_async
-gck_session_create_object_finish
-gck_session_find_objects
-gck_session_find_objects_async
-gck_session_find_objects_finish
-gck_session_encrypt
-gck_session_encrypt_full
-gck_session_encrypt_async
-gck_session_encrypt_finish
-gck_session_decrypt
-gck_session_decrypt_full
-gck_session_decrypt_async
-gck_session_decrypt_finish
-gck_session_sign
-gck_session_sign_full
-gck_session_sign_async
-gck_session_sign_finish
-gck_session_verify
-gck_session_verify_full
-gck_session_verify_async
-gck_session_verify_finish
-gck_session_derive_key
-gck_session_derive_key_async
-gck_session_derive_key_finish
-gck_session_derive_key_full
-gck_session_generate_key_pair
-gck_session_generate_key_pair_async
-gck_session_generate_key_pair_finish
-gck_session_generate_key_pair_full
-gck_session_get_options
-gck_session_get_state
-gck_session_init_pin
-gck_session_init_pin_async
-gck_session_init_pin_finish
-gck_session_set_pin
-gck_session_set_pin_async
-gck_session_set_pin_finish
-gck_session_unwrap_key
-gck_session_unwrap_key_async
-gck_session_unwrap_key_finish
-gck_session_unwrap_key_full
-gck_session_wrap_key
-gck_session_wrap_key_async
-gck_session_wrap_key_finish
-gck_session_wrap_key_full
-GckSessionInfo
-gck_session_info_copy
-gck_session_info_free
-GckMechanism
-<SUBSECTION Standard>
-gck_session_get_type
-GckSessionClass
-GCK_IS_SESSION
-GCK_IS_SESSION_CLASS
-GCK_SESSION
-GCK_SESSION_CLASS
-GCK_SESSION_GET_CLASS
-GCK_TYPE_SESSION
-GckSessionPrivate
-GCK_TYPE_SESSION_INFO
-gck_session_info_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gck-object</FILE>
-GckObject
-gck_object_from_handle
-gck_objects_from_handle_array
-gck_object_equal
-gck_object_hash
-gck_object_get_module
-gck_object_get_handle
-gck_object_get_session
-gck_object_destroy
-gck_object_destroy_async
-gck_object_destroy_finish
-gck_object_set
-gck_object_set_async
-gck_object_set_finish
-gck_object_get
-gck_object_get_async
-gck_object_get_finish
-gck_object_get_data
-gck_object_get_data_full
-gck_object_get_data_async
-gck_object_get_data_finish
-gck_object_get_full
-gck_object_get_template
-gck_object_get_template_async
-gck_object_get_template_finish
-gck_object_set_template
-gck_object_set_template_async
-gck_object_set_template_finish
-<SUBSECTION Standard>
-GckObjectClass
-gck_object_get_type
-GCK_IS_OBJECT
-GCK_IS_OBJECT_CLASS
-GCK_OBJECT
-GCK_OBJECT_CLASS
-GCK_OBJECT_GET_CLASS
-GCK_TYPE_OBJECT
-GckObjectPrivate
-</SECTION>
-
-<SECTION>
-<FILE>gck-error</FILE>
-GCK_VENDOR_CODE
-GCK_ERROR
-gck_message_from_rv
-</SECTION>
-
-<SECTION>
-<FILE>gck-uri</FILE>
-GckUriData
-GckUriError
-GckUriFlags
-GCK_URI_FOR_MODULE_WITH_VERSION
-GCK_URI_FOR_OBJECT_ON_TOKEN
-GCK_URI_FOR_OBJECT_ON_TOKEN_AND_MODULE
-gck_uri_data_new
-gck_uri_parse
-gck_uri_build
-gck_uri_data_copy
-gck_uri_data_free
-GCK_URI_ERROR
-<SUBSECTION Private>
-gck_uri_get_error_quark
-GCK_URI_DATA_TYPE
-gck_uri_data_get_type
-gck_uri_error_get_quark
-GCK_TYPE_URI_ERROR
-GCK_TYPE_URI_FLAGS
-gck_uri_error_get_type
-gck_uri_flags_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gck-enumerator</FILE>
-GckEnumerator
-gck_enumerator_get_interaction
-gck_enumerator_set_interaction
-gck_enumerator_next
-gck_enumerator_next_async
-gck_enumerator_next_finish
-gck_enumerator_next_n
-<SUBSECTION Standard>
-GckEnumeratorClass
-gck_enumerator_get_type
-GckEnumeratorPrivate
-GCK_ENUMERATOR
-GCK_ENUMERATOR_CLASS
-GCK_ENUMERATOR_GET_CLASS
-GCK_IS_ENUMERATOR
-GCK_IS_ENUMERATOR_CLASS
-GCK_TYPE_ENUMERATOR
-</SECTION>
-
-<SECTION>
-<FILE>gck-password</FILE>
-GckPassword
-GckPasswordClass
-gck_password_get_key
-gck_password_get_module
-gck_password_get_token
-<SUBSECTION Private>
-gck_password_get_type
-GckPasswordPrivate
-GCK_IS_PASSWORD
-GCK_IS_PASSWORD_CLASS
-GCK_PASSWORD
-GCK_PASSWORD_CLASS
-GCK_PASSWORD_GET_CLASS
-GCK_TYPE_PASSWORD
-</SECTION>
-
-<SECTION>
-<FILE>gck-misc</FILE>
-GckError
-gck_list_ref_copy
-gck_list_unref_free
-gck_string_from_chars
-gck_string_to_chars
-gck_value_to_boolean
-gck_value_to_ulong
-GCK_INVALID
-<SUBSECTION Private>
-gck_get_error_quark
-gck_error_get_quark
-GCK_TYPE_LIST
-gck_list_get_boxed_type
-GCK_TYPE_ERROR
-gck_error_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gck-private</FILE>
-<SUBSECTION Private>
-GCK_URI_BAD_PREFIX
-CKR_GCK_MODULE_PROBLEM
-</SECTION> \ No newline at end of file
diff --git a/docs/reference/gck/version.xml.in b/docs/reference/gck/version.xml.in
deleted file mode 100644
index 27323dad..00000000
--- a/docs/reference/gck/version.xml.in
+++ /dev/null
@@ -1 +0,0 @@
-@VERSION@ \ No newline at end of file
diff --git a/docs/reference/gcr/.gitignore b/docs/reference/gcr/.gitignore
deleted file mode 100644
index 72bc88fc..00000000
--- a/docs/reference/gcr/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-# Commit these files if you edit them
-*-decl-list.txt
-*-decl.txt
-*.args
-*.hierarchy
-*.interfaces
-*.prerequisites
-*.signals
-
diff --git a/docs/reference/gcr/Makefile.am b/docs/reference/gcr/Makefile.am
deleted file mode 100644
index f7554f49..00000000
--- a/docs/reference/gcr/Makefile.am
+++ /dev/null
@@ -1,169 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-# We require automake 1.6 at least.
-AUTOMAKE_OPTIONS = 1.6
-
-# This is a blank Makefile.am for using gtk-doc.
-# Copy this to your project's API docs directory and modify the variables to
-# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
-# of using the various options.
-
-# The name the module, e.g. 'glib'.
-DOC_MODULE=gcr
-
-# Uncomment for versioned docs and specify the version of the module, e.g. '2'.
-DOC_MODULE_VERSION=@GCR_MAJOR@
-
-# The top-level SGML file. You can change this if you want to.
-DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
-
-# The directory containing the source code. Relative to $(srcdir).
-# gtk-doc will search all .c & .h files beneath here for inline comments
-# documenting the functions and macros.
-# e.g. DOC_SOURCE_DIR=../../../gtk
-DOC_SOURCE_DIR=../../../$(DOC_MODULE)
-
-# Extra options to pass to gtkdoc-scangobj. Not normally needed.
-SCANGOBJ_OPTIONS=
-
-# Extra options to supply to gtkdoc-scan.
-# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
-SCAN_OPTIONS=--deprecated-guards="GCR_DISABLE_DEPRECATED"
-
-# Extra options to supply to gtkdoc-mkdb.
-# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml
-MKDB_OPTIONS=--sgml-mode --output-format=xml
-
-# Extra options to supply to gtkdoc-mktmpl
-# e.g. MKTMPL_OPTIONS=--only-section-tmpl
-MKTMPL_OPTIONS=
-
-# Extra options to supply to gtkdoc-mkhtml
-MKHTML_OPTIONS=
-
-# Extra options to supply to gtkdoc-fixref. Not normally needed.
-# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
-FIXXREF_OPTIONS=
-
-# Used for dependencies. The docs will be rebuilt if any of these change.
-# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
-# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
-HFILE_GLOB=$(top_srcdir)/$(DOC_MODULE)/*.h
-CFILE_GLOB=$(top_srcdir)/$(DOC_MODULE)/*.c
-
-# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
-# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h
-EXTRA_HFILES=
-
-# Header files to ignore when scanning. Use base file name, no paths
-# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
-IGNORE_HFILES= \
- gcr-callback-output-stream.h \
- gcr-certificate-exporter.h \
- gcr-certificate-basics-widget.h \
- gcr-certificate-details-widget.h \
- gcr-deprecated.h \
- gcr-deprecated-base.h \
- gcr-display-scrolled.h \
- gcr-display-view.h \
- gcr-failure-renderer.h \
- gcr-gnupg-importer.h \
- gcr-gnupg-renderer.h \
- gcr-icons.h \
- gcr-import-dialog.h \
- gcr-internal.h \
- gcr-live-search.h \
- gcr-marshal.h \
- gcr-menu-button.h \
- gcr-openpgp.h \
- gcr-pkcs11-importer.h \
- gcr-pkcs11-import-interaction.h \
- gcr-pkcs11-import-dialog.h \
- gcr-pkcs11-renderer.h \
- gcr-record.h \
- gcr-single-collection.h \
- gcr-unlock-renderer.h \
- gcr-viewer-window.h \
- gcr-xxx.h \
- gcr-zzz.h
-
-# Images to copy into HTML directory.
-# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
-HTML_IMAGES= \
- $(srcdir)/images/certificate-widget.png \
- $(srcdir)/images/combo-selector.png \
- $(srcdir)/images/import-button.png \
- $(srcdir)/images/list-selector.png \
- $(srcdir)/images/key-widget.png \
- $(srcdir)/images/tree-selector.png \
- $(srcdir)/images/viewer-widget.png
-
-# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
-# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
-content_files=gcr-visual-index.xml
-
-# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
-# These files must be listed here *and* in content_files
-# e.g. expand_content_files=running.sgml
-expand_content_files=
-
-# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
-# Only needed if you are using gtkdoc-scangobj to dynamically query widget
-# signals and properties.
-# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
-# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
-GTKDOC_CFLAGS= -I$(top_srcdir) -I$(top_builddir) $(GOBJECT_CFLAGS) -Wno-error
-GTKDOC_LIBS= $(GOBJECT_LIBS) \
- $(top_builddir)/$(DOC_MODULE)/libgcr-@GCR_MAJOR@.la \
- $(top_builddir)/gck/libgck-@GCK_MAJOR@.la
-
-# This includes the standard gtk-doc make rules, copied by gtkdocize.
-include $(top_srcdir)/gtk-doc.make
-
-# Other files to distribute
-# e.g. EXTRA_DIST += version.xml.in
-# EXTRA_DIST +=
-
-# Files not to distribute
-# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
-# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
-DISTCLEANFILES = tmpl/gcr-unused.sgml
-
-# Comment this out if you want your docs-status tested during 'make check'
-#TESTS_ENVIRONMENT = cd $(srcsrc)
-#TESTS = $(GTKDOC_CHECK)
-
-# ------------------------------------------------------------------------------
-# SHOOTER
-
-WIDGETS = \
- certificate-widget \
- combo-selector \
- import-button \
- key-widget \
- list-selector \
- tree-selector \
- viewer-widget
-
-shots: gcr-shooter
- mkdir -p $(builddir)/images
- for widget in $(WIDGETS); do ./gcr-shooter $$widget $(builddir)/images; done
-
-SHOOTER_SRCS = \
- gcr-shooter.c \
- gcr-widgets.c
-
-SHOOTER_HEADS = \
- gcr-shooter.h
-
-gcr-shooter: $(SHOOTER_SRCS) $(SHOOTER_HEADERS) Makefile
- $(AM_V_CC) libtool --mode=link gcc -o gcr-shooter -Wall -Werror $(GTK_CFLAGS) \
- -I$(top_srcdir)/gcr -DGCR_API_SUBJECT_TO_CHANGE \
- -DSRCDIR=\"$(srcdir)\" -DTOPDIR=\"$(top_srcdir)\" \
- `pkg-config x11 xext --cflags --libs` \
- $(GTK_LDFLAGS) -lm $(top_builddir)/gcr/libgcr-testable.la \
- $(SHOOTER_SRCS)
-
-EXTRA_DIST += $(SHOOTER_SRCS) \
- $(SHOOTER_HEADERS) \
- images \ No newline at end of file
diff --git a/docs/reference/gcr/gcr-docs.sgml b/docs/reference/gcr/gcr-docs.sgml
deleted file mode 100644
index 3af98371..00000000
--- a/docs/reference/gcr/gcr-docs.sgml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
-<!ENTITY version SYSTEM "version.xml">
-]>
-<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
- <bookinfo>
- <title>Gcr Library Reference Manual</title>
- <releaseinfo>
- for Gcr &version;.
- An online version of this documentation can be found at
- <ulink role="online-location" url="http://developer.gnome.org/gcr/stable/">http://developer.gnome.org/gcr/stable/</ulink>.
- </releaseinfo>
- </bookinfo>
-
- <part id="certificates">
- <title>Certificates</title>
- <xi:include href="xml/gcr-certificate.xml"/>
- <xi:include href="xml/gcr-simple-certificate.xml"/>
- <xi:include href="xml/gcr-pkcs11-certificate.xml"/>
- <xi:include href="xml/gcr-certificate-chain.xml"/>
- </part>
-
- <part id="collections">
- <title>Collections</title>
- <xi:include href="xml/gcr-collection.xml"/>
- <xi:include href="xml/gcr-comparable.xml"/>
- <xi:include href="xml/gcr-simple-collection.xml"/>
- <xi:include href="xml/gcr-collection-model.xml"/>
- </part>
-
- <part id="widgets">
- <title>Widgets</title>
- <xi:include href="xml/gcr-certificate-widget.xml"/>
- <xi:include href="xml/gcr-key-widget.xml"/>
- <xi:include href="xml/gcr-column.xml"/>
- <xi:include href="xml/gcr-combo-selector.xml"/>
- <xi:include href="xml/gcr-import-button.xml"/>
- <xi:include href="xml/gcr-list-selector.xml"/>
- <xi:include href="xml/gcr-tree-selector.xml"/>
- <xi:include href="xml/gcr-renderer.xml"/>
- <xi:include href="xml/gcr-viewer.xml"/>
- <xi:include href="xml/gcr-viewer-widget.xml"/>
- <chapter>
- <title>Widget Gallery</title>
- <xi:include href="gcr-visual-index.xml" />
- </chapter>
- </part>
-
- <part id="storage">
- <title>Storage</title>
- <xi:include href="xml/gcr-trust.xml"/>
- <xi:include href="xml/gcr-importer.xml"/>
- <xi:include href="xml/gcr-parser.xml"/>
- </part>
-
- <part id="misc">
- <title>Miscellaneous</title>
- <xi:include href="xml/gcr-library.xml"/>
- <xi:include href="xml/gcr-fingerprint.xml"/>
- <xi:include href="xml/gcr-secret-exchange.xml"/>
- <xi:include href="xml/gcr-misc.xml"/>
- </part>
-
- <xi:include href="xml/annotation-glossary.xml">
- <xi:fallback />
- </xi:include>
-</book>
diff --git a/docs/reference/gcr/gcr-overrides.txt b/docs/reference/gcr/gcr-overrides.txt
deleted file mode 100644
index 13f485f1..00000000
--- a/docs/reference/gcr/gcr-overrides.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-# These are manually-edited to override or add declarations to those scanned
-# from the header files.
diff --git a/docs/reference/gcr/gcr-sections.txt b/docs/reference/gcr/gcr-sections.txt
deleted file mode 100644
index 31558e44..00000000
--- a/docs/reference/gcr/gcr-sections.txt
+++ /dev/null
@@ -1,642 +0,0 @@
-<SECTION>
-<FILE>gcr-parser</FILE>
-<TITLE>GcrParser</TITLE>
-GCR_DATA_ERROR
-GcrDataError
-GcrDataFormat
-GcrParser
-GcrParserClass
-gcr_parser_new
-gcr_parser_parse_data
-gcr_parser_parse_stream
-gcr_parser_parse_stream_async
-gcr_parser_parse_stream_finish
-gcr_parser_format_enable
-gcr_parser_format_disable
-gcr_parser_format_supported
-gcr_parser_add_password
-gcr_parser_get_parsed_label
-gcr_parser_get_parsed_description
-gcr_parser_get_parsed_attributes
-gcr_parser_get_parsed_block
-gcr_parser_get_parsed_format
-GcrParsed
-gcr_parsed_ref
-gcr_parsed_unref
-gcr_parsed_get_attributes
-gcr_parsed_get_data
-gcr_parsed_get_description
-gcr_parsed_get_format
-gcr_parsed_get_label
-gcr_parser_get_parsed
-<SUBSECTION Standard>
-GCR_TYPE_PARSED
-GcrParserPrivate
-gcr_parsed_get_type
-GCR_PARSER
-GCR_IS_PARSER
-GCR_TYPE_PARSER
-gcr_parser_get_type
-GCR_PARSER_CLASS
-GCR_IS_PARSER_CLASS
-GCR_PARSER_GET_CLASS
-GCK_API_SUBJECT_TO_CHANGE
-gcr_data_error_get_domain
-GCR_TYPE_DATA_ERROR
-GCR_TYPE_DATA_FORMAT
-gcr_data_error_get_type
-gcr_data_format_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gcr-certificate</FILE>
-GcrCertificate
-GcrCertificateIface
-gcr_certificate_get_der_data
-gcr_certificate_get_issuer_cn
-gcr_certificate_get_issuer_dn
-gcr_certificate_get_issuer_part
-gcr_certificate_get_issuer_raw
-gcr_certificate_is_issuer
-gcr_certificate_get_subject_cn
-gcr_certificate_get_subject_dn
-gcr_certificate_get_subject_part
-gcr_certificate_get_subject_raw
-gcr_certificate_get_issued_date
-gcr_certificate_get_expiry_date
-gcr_certificate_get_serial_number
-gcr_certificate_get_serial_number_hex
-gcr_certificate_get_key_size
-gcr_certificate_get_fingerprint
-gcr_certificate_get_fingerprint_hex
-gcr_certificate_mixin_class_init
-gcr_certificate_mixin_get_property
-GCR_CERTIFICATE_MIXIN_IMPLEMENT_COMPARABLE
-gcr_certificate_mixin_comparable_init
-gcr_certificate_compare
-gcr_certificate_get_icon
-<SUBSECTION Standard>
-gcr_certificate_get_columns
-GCR_CERTIFICATE
-GCR_IS_CERTIFICATE
-GCR_TYPE_CERTIFICATE
-GCR_CERTIFICATE_GET_INTERFACE
-gcr_certificate_get_type
-<SUBSECTION Private>
-GcrCertificateExtensionKeyUsage
-GcrGeneralName
-GcrGeneralNameType
-</SECTION>
-
-<SECTION>
-<FILE>gcr-importer</FILE>
-GcrImporter
-GcrImporterIface
-gcr_importer_get_interaction
-gcr_importer_set_interaction
-gcr_importer_import
-gcr_importer_import_async
-gcr_importer_import_finish
-gcr_importer_register
-gcr_importer_register_well_known
-gcr_importer_create_for_parsed
-gcr_importer_queue_for_parsed
-gcr_importer_queue_and_filter_for_parsed
-gcr_import_interaction_supplement_prep
-gcr_import_interaction_supplement
-gcr_import_interaction_supplement_async
-gcr_import_interaction_supplement_finish
-<SUBSECTION Standard>
-GCR_IMPORTER
-GCR_IS_IMPORTER
-GCR_TYPE_IMPORTER
-gcr_importer_get_type
-GCR_IMPORTER_GET_INTERFACE
-GCR_IMPORT_INTERACTION
-GCR_IMPORT_INTERACTION_GET_INTERFACE
-GCR_IS_IMPORT_INTERACTION
-GCR_TYPE_IMPORT_INTERACTION
-GcrImportInteraction
-GcrImportInteractionIface
-gcr_import_interaction_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gcr-import-button</FILE>
-GcrImportButton
-GcrImportButtonClass
-gcr_import_button_new
-gcr_import_button_add_parsed
-<SUBSECTION Standard>
-GCR_IMPORT_BUTTON
-GCR_IMPORT_BUTTON_CLASS
-GCR_IMPORT_BUTTON_GET_CLASS
-GCR_IS_IMPORT_BUTTON
-GCR_IS_IMPORT_BUTTON_CLASS
-gcr_import_button_get_type
-GCR_TYPE_IMPORT_BUTTON
-<SUBSECTION Private>
-GcrImportButtonPrivate
-</SECTION>
-
-<SECTION>
-<FILE>gcr-simple-certificate</FILE>
-<TITLE>GcrSimpleCertificate</TITLE>
-GcrSimpleCertificate
-GcrSimpleCertificateClass
-gcr_simple_certificate_new
-gcr_simple_certificate_new_static
-<SUBSECTION Standard>
-GcrSimpleCertificatePrivate
-GCR_SIMPLE_CERTIFICATE
-GCR_IS_SIMPLE_CERTIFICATE
-GCR_TYPE_SIMPLE_CERTIFICATE
-gcr_simple_certificate_get_type
-GCR_SIMPLE_CERTIFICATE_CLASS
-GCR_IS_SIMPLE_CERTIFICATE_CLASS
-GCR_SIMPLE_CERTIFICATE_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>gcr-pkcs11-certificate</FILE>
-<TITLE>GcrPkcs11Certificate</TITLE>
-GcrPkcs11Certificate
-GcrPkcs11CertificateClass
-gcr_pkcs11_certificate_lookup_issuer
-gcr_pkcs11_certificate_lookup_issuer_async
-gcr_pkcs11_certificate_lookup_issuer_finish
-gcr_pkcs11_certificate_get_attributes
-<SUBSECTION Standard>
-gcr_pkcs11_certificate_get_type
-GCR_IS_PKCS11_CERTIFICATE
-GCR_IS_PKCS11_CERTIFICATE_CLASS
-GcrPkcs11CertificatePrivate
-GCR_PKCS11_CERTIFICATE
-GCR_PKCS11_CERTIFICATE_CLASS
-GCR_PKCS11_CERTIFICATE_GET_CLASS
-GCR_TYPE_PKCS11_CERTIFICATE
-</SECTION>
-
-<SECTION>
-<FILE>gcr-trust</FILE>
-GCR_PURPOSE_SERVER_AUTH
-GCR_PURPOSE_CLIENT_AUTH
-GCR_PURPOSE_EMAIL
-GCR_PURPOSE_CODE_SIGNING
-gcr_trust_is_certificate_anchored
-gcr_trust_is_certificate_anchored_async
-gcr_trust_is_certificate_anchored_finish
-gcr_trust_is_certificate_pinned
-gcr_trust_is_certificate_pinned_async
-gcr_trust_is_certificate_pinned_finish
-gcr_trust_add_pinned_certificate
-gcr_trust_add_pinned_certificate_async
-gcr_trust_add_pinned_certificate_finish
-gcr_trust_remove_pinned_certificate
-gcr_trust_remove_pinned_certificate_async
-gcr_trust_remove_pinned_certificate_finish
-</SECTION>
-
-<SECTION>
-<FILE>gcr-library</FILE>
-gcr_pkcs11_initialize
-gcr_pkcs11_initialize_async
-gcr_pkcs11_initialize_finish
-gcr_pkcs11_get_modules
-gcr_pkcs11_set_modules
-gcr_pkcs11_add_module
-gcr_pkcs11_add_module_from_file
-gcr_pkcs11_get_trust_lookup_slots
-gcr_pkcs11_get_trust_store_slot
-gcr_pkcs11_get_trust_lookup_uris
-gcr_pkcs11_set_trust_lookup_uris
-gcr_pkcs11_get_trust_store_uri
-gcr_pkcs11_set_trust_store_uri
-<SUBSECTION Private>
-GcrDebugFlags
-</SECTION>
-
-<SECTION>
-<FILE>gcr-certificate-chain</FILE>
-GcrCertificateChain
-GcrCertificateChainClass
-GcrCertificateChainStatus
-gcr_certificate_chain_new
-gcr_certificate_chain_add
-gcr_certificate_chain_get_certificate
-gcr_certificate_chain_get_status
-gcr_certificate_chain_get_anchor
-gcr_certificate_chain_get_endpoint
-gcr_certificate_chain_get_length
-GcrCertificateChainFlags
-gcr_certificate_chain_build
-gcr_certificate_chain_build_async
-gcr_certificate_chain_build_finish
-GCR_TYPE_CERTIFICATE_CHAIN_FLAGS
-GCR_TYPE_CERTIFICATE_CHAIN_STATUS
-<SUBSECTION Standard>
-gcr_certificate_chain_flags_get_type
-gcr_certificate_chain_status_get_type
-gcr_certificate_chain_get_type
-GCR_CERTIFICATE_CHAIN
-GCR_TYPE_CERTIFICATE_CHAIN
-GCR_CERTIFICATE_CHAIN_CLASS
-GCR_CERTIFICATE_CHAIN_GET_CLASS
-GCR_IS_CERTIFICATE_CHAIN
-GCR_IS_CERTIFICATE_CHAIN_CLASS
-GcrCertificateChainPrivate
-</SECTION>
-
-<SECTION>
-<FILE>gcr-comparable</FILE>
-GcrComparable
-GcrComparableIface
-gcr_comparable_compare
-gcr_comparable_memcmp
-<SUBSECTION Standard>
-gcr_comparable_get_type
-GCR_COMPARABLE
-GCR_COMPARABLE_GET_INTERFACE
-GCR_IS_COMPARABLE
-GCR_TYPE_COMPARABLE
-</SECTION>
-
-<SECTION>
-<FILE>gcr-collection</FILE>
-GcrCollection
-gcr_collection_get_length
-gcr_collection_get_objects
-gcr_collection_contains
-gcr_collection_emit_added
-gcr_collection_emit_removed
-<SUBSECTION Standard>
-gcr_collection_get_type
-GCR_COLLECTION
-GCR_COLLECTION_GET_INTERFACE
-GCR_IS_COLLECTION
-GCR_TYPE_COLLECTION
-GcrCollectionIface
-</SECTION>
-
-<SECTION>
-<FILE>gcr-simple-collection</FILE>
-GcrSimpleCollection
-GcrSimpleCollectionClass
-gcr_simple_collection_new
-gcr_simple_collection_add
-gcr_simple_collection_remove
-<SUBSECTION Standard>
-gcr_simple_collection_get_type
-GCR_IS_SIMPLE_COLLECTION
-GCR_IS_SIMPLE_COLLECTION_CLASS
-GCR_SIMPLE_COLLECTION
-GCR_SIMPLE_COLLECTION_CLASS
-GCR_SIMPLE_COLLECTION_GET_CLASS
-GCR_TYPE_SIMPLE_COLLECTION
-GcrSimpleCollectionPrivate
-</SECTION>
-
-<SECTION>
-<FILE>gcr-union-collection</FILE>
-GcrUnionCollection
-GcrUnionCollectionClass
-gcr_union_collection_new
-gcr_union_collection_add
-gcr_union_collection_take
-gcr_union_collection_remove
-gcr_union_collection_have
-gcr_union_collection_size
-<SUBSECTION Standard>
-GCR_IS_UNION_COLLECTION
-GCR_IS_UNION_COLLECTION_CLASS
-GCR_TYPE_UNION_COLLECTION
-GCR_UNION_COLLECTION
-GCR_UNION_COLLECTION_CLASS
-GCR_UNION_COLLECTION_GET_CLASS
-GcrUnionCollectionPrivate
-gcr_union_collection_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gcr-collection-model</FILE>
-GcrCollectionModel
-GcrCollectionModelClass
-gcr_collection_model_new
-gcr_collection_model_new_full
-gcr_collection_model_set_columns
-gcr_collection_model_get_collection
-gcr_collection_model_iter_for_object
-gcr_collection_model_object_for_iter
-gcr_collection_model_is_selected
-gcr_collection_model_change_selected
-gcr_collection_model_toggle_selected
-gcr_collection_model_get_selected_objects
-gcr_collection_model_set_selected_objects
-gcr_collection_model_column_for_selected
-<SUBSECTION Standard>
-gcr_collection_model_get_type
-GCR_COLLECTION_MODEL
-GCR_COLLECTION_MODEL_CLASS
-GCR_COLLECTION_MODEL_GET_CLASS
-GCR_IS_COLLECTION_MODEL
-GCR_IS_COLLECTION_MODEL_CLASS
-GCR_TYPE_COLLECTION_MODEL
-GcrCollectionModelPrivate
-</SECTION>
-
-<SECTION>
-<FILE>gcr-column</FILE>
-GcrColumn
-GcrColumnFlags
-<SUBSECTION Standard>
-GCR_TYPE_COLUMN_FLAGS
-gcr_column_flags_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gcr-tree-selector</FILE>
-GcrTreeSelector
-GcrTreeSelectorClass
-gcr_tree_selector_get_collection
-gcr_tree_selector_get_columns
-gcr_tree_selector_new
-gcr_tree_selector_get_selected
-gcr_tree_selector_set_selected
-<SUBSECTION Standard>
-gcr_tree_selector_get_type
-GCR_IS_TREE_SELECTOR
-GCR_IS_TREE_SELECTOR_CLASS
-GCR_TREE_SELECTOR
-GCR_TREE_SELECTOR_CLASS
-GCR_TREE_SELECTOR_GET_CLASS
-GCR_TYPE_TREE_SELECTOR
-GcrTreeSelectorPrivate
-</SECTION>
-
-<SECTION>
-<FILE>gcr-list-selector</FILE>
-GcrListSelector
-GcrListSelectorClass
-gcr_list_selector_new
-gcr_list_selector_get_collection
-gcr_list_selector_get_selected
-gcr_list_selector_set_selected
-<SUBSECTION Standard>
-gcr_list_selector_get_type
-GcrListSelectorPrivate
-GCR_IS_LIST_SELECTOR
-GCR_IS_LIST_SELECTOR_CLASS
-GCR_LIST_SELECTOR
-GCR_LIST_SELECTOR_CLASS
-GCR_LIST_SELECTOR_GET_CLASS
-GCR_TYPE_LIST_SELECTOR
-</SECTION>
-
-<SECTION>
-<FILE>gcr-combo-selector</FILE>
-GcrComboSelector
-GcrComboSelectorClass
-gcr_combo_selector_get_collection
-gcr_combo_selector_new
-gcr_combo_selector_get_selected
-gcr_combo_selector_set_selected
-<SUBSECTION Standard>
-gcr_combo_selector_get_type
-GCR_IS_COMBO_SELECTOR
-GCR_IS_COMBO_SELECTOR_CLASS
-GCR_COMBO_SELECTOR
-GCR_COMBO_SELECTOR_CLASS
-GCR_COMBO_SELECTOR_GET_CLASS
-GCR_TYPE_COMBO_SELECTOR
-GcrComboSelectorPrivate
-</SECTION>
-
-<SECTION>
-<FILE>gcr-renderer</FILE>
-GcrRenderer
-GcrRendererIface
-gcr_renderer_create
-gcr_renderer_register
-gcr_renderer_popuplate_popup
-gcr_renderer_render_view
-gcr_renderer_emit_data_changed
-gcr_renderer_register_well_known
-<SUBSECTION Standard>
-gcr_renderer_get_type
-GCR_IS_RENDERER
-GCR_RENDERER
-GCR_RENDERER_GET_INTERFACE
-GCR_TYPE_RENDERER
-</SECTION>
-
-<SECTION>
-<FILE>gcr-viewer</FILE>
-GcrViewer
-GcrViewerIface
-gcr_viewer_new
-gcr_viewer_new_scrolled
-gcr_viewer_add_renderer
-gcr_viewer_insert_renderer
-gcr_viewer_remove_renderer
-gcr_viewer_count_renderers
-gcr_viewer_get_renderer
-<SUBSECTION Standard>
-gcr_viewer_get_type
-GCR_IS_VIEWER
-GCR_TYPE_VIEWER
-GCR_VIEWER
-GCR_VIEWER_GET_INTERFACE
-</SECTION>
-
-<SECTION>
-<FILE>gcr-certificate-widget</FILE>
-GCR_CERTIFICATE_COLUMNS
-GcrCertificateWidget
-GcrCertificateWidgetClass
-GcrCertificateRenderer
-GcrCertificateRendererClass
-gcr_certificate_widget_new
-gcr_certificate_widget_get_attributes
-gcr_certificate_widget_set_attributes
-gcr_certificate_widget_get_certificate
-gcr_certificate_widget_set_certificate
-gcr_certificate_renderer_new
-gcr_certificate_renderer_new_for_attributes
-gcr_certificate_renderer_get_attributes
-gcr_certificate_renderer_set_attributes
-gcr_certificate_renderer_get_certificate
-gcr_certificate_renderer_set_certificate
-<SUBSECTION Standard>
-gcr_certificate_widget_get_type
-GCR_CERTIFICATE_RENDERER
-GCR_CERTIFICATE_RENDERER_CLASS
-GCR_CERTIFICATE_RENDERER_GET_CLASS
-GCR_IS_CERTIFICATE_RENDERER
-GCR_IS_CERTIFICATE_RENDERER_CLASS
-GCR_CERTIFICATE_WIDGET
-GCR_CERTIFICATE_WIDGET_CLASS
-GCR_CERTIFICATE_WIDGET_GET_CLASS
-GCR_IS_CERTIFICATE_WIDGET
-GCR_IS_CERTIFICATE_WIDGET_CLASS
-GCR_TYPE_CERTIFICATE_RENDERER
-GCR_TYPE_CERTIFICATE_WIDGET
-GcrCertificateRendererPrivate
-GcrCertificateWidgetPrivate
-gcr_certificate_renderer_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gcr-key-widget</FILE>
-GcrKeyWidget
-GcrKeyWidgetClass
-GcrKeyRenderer
-GcrKeyRendererClass
-gcr_key_widget_new
-gcr_key_widget_get_attributes
-gcr_key_widget_set_attributes
-gcr_key_renderer_new
-gcr_key_renderer_get_attributes
-gcr_key_renderer_set_attributes
-<SUBSECTION Standard>
-gcr_key_renderer_get_type
-gcr_key_widget_get_type
-GCR_IS_KEY_RENDERER
-GCR_IS_KEY_RENDERER_CLASS
-GCR_IS_KEY_WIDGET
-GCR_IS_KEY_WIDGET_CLASS
-GCR_KEY_RENDERER
-GCR_KEY_RENDERER_CLASS
-GCR_KEY_RENDERER_GET_CLASS
-GCR_KEY_WIDGET
-GCR_KEY_WIDGET_CLASS
-GCR_KEY_WIDGET_GET_CLASS
-GCR_TYPE_KEY_RENDERER
-GCR_TYPE_KEY_WIDGET
-GcrKeyRendererPrivate
-GcrKeyWidgetPrivate
-</SECTION>
-
-<SECTION>
-<FILE>gcr-unlock-options-widget</FILE>
-GcrUnlockOptionsWidget
-GcrUnlockOptionsWidgetClass
-GCR_UNLOCK_OPTION_ALWAYS
-GCR_UNLOCK_OPTION_IDLE
-GCR_UNLOCK_OPTION_SESSION
-GCR_UNLOCK_OPTION_TIMEOUT
-gcr_unlock_options_widget_new
-gcr_unlock_options_widget_get_choice
-gcr_unlock_options_widget_set_choice
-gcr_unlock_options_widget_get_label
-gcr_unlock_options_widget_set_label
-gcr_unlock_options_widget_get_ttl
-gcr_unlock_options_widget_set_ttl
-gcr_unlock_options_widget_get_sensitive
-gcr_unlock_options_widget_set_sensitive
-<SUBSECTION Standard>
-gcr_unlock_options_widget_get_type
-GCR_IS_UNLOCK_OPTIONS_WIDGET
-GCR_IS_UNLOCK_OPTIONS_WIDGET_CLASS
-GCR_TYPE_UNLOCK_OPTIONS_WIDGET
-GCR_UNLOCK_OPTIONS_WIDGET
-GCR_UNLOCK_OPTIONS_WIDGET_CLASS
-GCR_UNLOCK_OPTIONS_WIDGET_GET_CLASS
-GcrUnlockOptionsWidgetPrivate
-</SECTION>
-
-<SECTION>
-<FILE>gcr-viewer-widget</FILE>
-GcrViewerWidget
-GcrViewerWidgetClass
-gcr_viewer_widget_new
-gcr_viewer_widget_load_data
-gcr_viewer_widget_load_file
-gcr_viewer_widget_get_parser
-<SUBSECTION Standard>
-gcr_viewer_widget_get_type
-GCR_TYPE_VIEWER_WIDGET
-GCR_IS_VIEWER_WIDGET
-GCR_IS_VIEWER_WIDGET_CLASS
-GCR_VIEWER_WIDGET
-GCR_VIEWER_WIDGET_CLASS
-GCR_VIEWER_WIDGET_GET_CLASS
-<SUBSECTION Private>
-GcrViewerWidgetPrivate
-</SECTION>
-
-<SECTION>
-<FILE>gcr-secret-exchange</FILE>
-GcrSecretExchange
-GcrSecretExchangeClass
-GCR_SECRET_EXCHANGE_PROTOCOL_1
-gcr_secret_exchange_new
-gcr_secret_exchange_begin
-gcr_secret_exchange_receive
-gcr_secret_exchange_get_protocol
-gcr_secret_exchange_get_secret
-gcr_secret_exchange_send
-<SUBSECTION Standard>
-gcr_secret_exchange_get_type
-GCR_IS_SECRET_EXCHANGE
-GCR_IS_SECRET_EXCHANGE_CLASS
-GCR_SECRET_EXCHANGE
-GCR_SECRET_EXCHANGE_CLASS
-GCR_SECRET_EXCHANGE_GET_CLASS
-GCR_TYPE_SECRET_EXCHANGE
-GcrSecretExchangePrivate
-</SECTION>
-
-<SECTION>
-<FILE>gcr-fingerprint</FILE>
-gcr_fingerprint_from_attributes
-gcr_fingerprint_from_certificate_public_key
-gcr_fingerprint_from_subject_public_key_info
-</SECTION>
-
-<SECTION>
-<FILE>gcr-private</FILE>
-<SUBSECTION Private>
-GCR_GNUPG_COLLECTION
-GCR_GNUPG_COLLECTION_CLASS
-GCR_GNUPG_COLLECTION_GET_CLASS
-GCR_GNUPG_KEY
-GCR_GNUPG_KEY_CLASS
-GCR_GNUPG_KEY_COLUMNS
-GCR_GNUPG_KEY_GET_CLASS
-GCR_IS_GNUPG_COLLECTION
-GCR_IS_GNUPG_COLLECTION_CLASS
-GCR_IS_GNUPG_KEY
-GCR_IS_GNUPG_KEY_CLASS
-GCR_TYPE_GNUPG_COLLECTION
-GCR_TYPE_GNUPG_KEY
-GCR_GNUPG_PROCESS
-GCR_GNUPG_PROCESS_CLASS
-GCR_GNUPG_PROCESS_GET_CLASS
-GCR_IS_GNUPG_PROCESS
-GCR_IS_GNUPG_PROCESS_CLASS
-GCR_TYPE_GNUPG_PROCESS
-GcrGnupgProcess
-GcrGnupgProcessClass
-GcrGnupgProcessPrivate
-GcrGnupgProcessFlags
-GcrGnupgCollection
-GcrGnupgCollectionClass
-GcrGnupgCollectionPrivate
-GcrGnupgKey
-GcrGnupgKeyClass
-GcrGnupgKeyPrivate
-GcrLineCallback
-GCR_IS_MEMORY_ICON
-GCR_IS_MEMORY_ICON_CLASS
-GCR_MEMORY_ICON
-GCR_MEMORY_ICON_CLASS
-GCR_MEMORY_ICON_COLUMNS
-GCR_MEMORY_ICON_GET_CLASS
-GCR_TYPE_MEMORY_ICON
-GcrMemoryIcon
-GcrMemoryIconClass
-GcrMemoryIconPrivate
-GcrOpensshPubCallback
-GCR_TYPE_IMPORTER_PROMPT_BEHAVIOR
-gcr_importer_prompt_behavior_get_type
-</SECTION>
diff --git a/docs/reference/gcr/gcr-shooter.c b/docs/reference/gcr/gcr-shooter.c
deleted file mode 100644
index 0ae3827a..00000000
--- a/docs/reference/gcr/gcr-shooter.c
+++ /dev/null
@@ -1,466 +0,0 @@
-
-#include "gcr-shooter.h"
-
-#include <gdk/gdk.h>
-#include <gtk/gtk.h>
-#include <gdk/gdkx.h>
-#include <stdio.h>
-#include <errno.h>
-#include <sys/wait.h>
-#include <unistd.h>
-#include <X11/extensions/shape.h>
-
-#include <gdk-pixbuf/gdk-pixbuf.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/wait.h>
-#include <signal.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <locale.h>
-#include <math.h>
-
-#define MAXIMUM_WM_REPARENTING_DEPTH 4
-
-#define SMALL_WIDTH 240
-#define SMALL_HEIGHT 75
-#define MEDIUM_WIDTH 240
-#define MEDIUM_HEIGHT 165
-#define LARGE_WIDTH 240
-#define LARGE_HEIGHT 240
-
-static Window
-find_toplevel_window (Window xid)
-{
- Window root, parent, *children;
- guint nchildren;
-
- do {
- if (XQueryTree (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), xid, &root,
- &parent, &children, &nchildren) == 0) {
- g_warning ("Couldn't find window manager window");
- return None;
- }
-
- if (root == parent)
- return xid;
-
- xid = parent;
- } while (TRUE);
-}
-
-
-static gboolean
-adjust_size_callback (GcrShooterInfo *info)
-{
- Window toplevel;
- Window root;
- GdkWindow *window;
- gint tx;
- gint ty;
- guint twidth;
- guint theight;
- guint tborder_width;
- guint tdepth;
- gint target_width = 0;
- gint target_height = 0;
-
- window = gtk_widget_get_window (info->window);
- toplevel = find_toplevel_window (GDK_WINDOW_XID (window));
- XGetGeometry (GDK_WINDOW_XDISPLAY (window), toplevel,
- &root, &tx, &ty, &twidth, &theight, &tborder_width, &tdepth);
-
- switch (info->size) {
- case GCR_SHOOTER_SMALL:
- target_width = SMALL_WIDTH;
- target_height = SMALL_HEIGHT;
- break;
- case GCR_SHOOTER_MEDIUM:
- target_width = MEDIUM_WIDTH;
- target_height = MEDIUM_HEIGHT;
- break;
- case GCR_SHOOTER_LARGE:
- target_width = LARGE_WIDTH;
- target_height = LARGE_HEIGHT;
- break;
- case GCR_SHOOTER_ASIS:
- target_width = twidth;
- target_height = theight;
- break;
- }
-
- if (twidth > target_width || theight > target_height) {
- gtk_widget_set_size_request (info->window,
- 2 + target_width - (twidth - target_width), /* Dunno why I need the +2 fudge factor; */
- 2 + target_height - (theight - target_height));
- }
- return FALSE;
-}
-
-static void
-realize_callback (GtkWidget *widget, GcrShooterInfo *info)
-{
- gdk_threads_add_timeout (500, (GSourceFunc)adjust_size_callback, info);
-}
-
-GcrShooterInfo*
-gcr_shooter_info_new (const gchar *name, GtkWidget *widget, GcrShooterSize size)
-{
- GcrShooterInfo *info;
-
- info = g_new0 (GcrShooterInfo, 1);
- info->name = g_strdup (name);
- info->size = size;
- if (GTK_IS_WINDOW (widget)) {
- info->window = widget;
- gtk_window_set_resizable (GTK_WINDOW (info->window), FALSE);
- info->include_decorations = TRUE;
- g_signal_connect (info->window, "realize", G_CALLBACK (realize_callback), info);
- } else {
- info->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_window_set_has_resize_grip (GTK_WINDOW (info->window), FALSE);
- info->include_decorations = FALSE;
- gtk_widget_show_all (widget);
- gtk_container_add (GTK_CONTAINER (info->window), widget);
- }
- info->no_focus = TRUE;
-
- gtk_widget_set_app_paintable (info->window, TRUE);
- g_signal_connect (info->window, "focus", G_CALLBACK (gtk_true), NULL);
- gtk_container_set_border_width (GTK_CONTAINER (info->window), 12);
-
- switch (size) {
- case GCR_SHOOTER_SMALL:
- gtk_widget_set_size_request (info->window, 240, 75);
- break;
- case GCR_SHOOTER_MEDIUM:
- gtk_widget_set_size_request (info->window, 240, 165);
- break;
- case GCR_SHOOTER_LARGE:
- gtk_widget_set_size_request (info->window, 240, 240);
- break;
- default:
- break;
- }
-
- return info;
-}
-
-#define BLUR_RADIUS 5
-#define SHADOW_OFFSET (BLUR_RADIUS * 4 / 5)
-#define SHADOW_OPACITY 0.75
-
-typedef struct {
- int size;
- double *data;
-} ConvFilter;
-
-static double
-gaussian (double x, double y, double r)
-{
- return ((1 / (2 * M_PI * r)) *
- exp ((- (x * x + y * y)) / (2 * r * r)));
-}
-
-static ConvFilter *
-create_blur_filter (int radius)
-{
- ConvFilter *filter;
- int x, y;
- double sum;
-
- filter = g_new0 (ConvFilter, 1);
- filter->size = radius * 2 + 1;
- filter->data = g_new (double, filter->size * filter->size);
-
- sum = 0.0;
-
- for (y = 0 ; y < filter->size; y++) {
- for (x = 0 ; x < filter->size; x++) {
- sum += filter->data[y * filter->size + x] = gaussian (x - (filter->size >> 1),
- y - (filter->size >> 1),
- radius);
- }
- }
-
- for (y = 0; y < filter->size; y++) {
- for (x = 0; x < filter->size; x++) {
- filter->data[y * filter->size + x] /= sum;
- }
- }
-
- return filter;
-
-}
-
-static GdkPixbuf *
-create_shadow (GdkPixbuf *src)
-{
- int x, y, i, j;
- int width, height;
- GdkPixbuf *dest;
- static ConvFilter *filter = NULL;
- int src_rowstride, dest_rowstride;
- int src_bpp, dest_bpp;
- guchar *src_pixels, *dest_pixels;
-
- if (!filter)
- filter = create_blur_filter (BLUR_RADIUS);
-
- width = gdk_pixbuf_get_width (src) + BLUR_RADIUS * 2 + SHADOW_OFFSET;
- height = gdk_pixbuf_get_height (src) + BLUR_RADIUS * 2 + SHADOW_OFFSET;
-
- dest = gdk_pixbuf_new (gdk_pixbuf_get_colorspace (src),
- gdk_pixbuf_get_has_alpha (src),
- gdk_pixbuf_get_bits_per_sample (src),
- width, height);
- gdk_pixbuf_fill (dest, 0);
- src_pixels = gdk_pixbuf_get_pixels (src);
- src_rowstride = gdk_pixbuf_get_rowstride (src);
- src_bpp = gdk_pixbuf_get_has_alpha (src) ? 4 : 3;
-
- dest_pixels = gdk_pixbuf_get_pixels (dest);
- dest_rowstride = gdk_pixbuf_get_rowstride (dest);
- dest_bpp = gdk_pixbuf_get_has_alpha (dest) ? 4 : 3;
-
- for (y = 0; y < height; y++) {
- for (x = 0; x < width; x++) {
- int sumr = 0, sumg = 0, sumb = 0, suma = 0;
-
- for (i = 0; i < filter->size; i++) {
- for (j = 0; j < filter->size; j++) {
- int src_x, src_y;
-
- src_y = -(BLUR_RADIUS + SHADOW_OFFSET) + y - (filter->size >> 1) + i;
- src_x = -(BLUR_RADIUS + SHADOW_OFFSET) + x - (filter->size >> 1) + j;
-
- if (src_y < 0 || src_y > gdk_pixbuf_get_height (src) ||
- src_x < 0 || src_x > gdk_pixbuf_get_width (src))
- continue;
-
- sumr += src_pixels [src_y * src_rowstride +
- src_x * src_bpp + 0] *
- filter->data [i * filter->size + j];
- sumg += src_pixels [src_y * src_rowstride +
- src_x * src_bpp + 1] *
- filter->data [i * filter->size + j];
-
- sumb += src_pixels [src_y * src_rowstride +
- src_x * src_bpp + 2] *
- filter->data [i * filter->size + j];
-
- if (src_bpp == 4)
- suma += src_pixels [src_y * src_rowstride +
- src_x * src_bpp + 3] *
- filter->data [i * filter->size + j];
- }
- }
-
- if (dest_bpp == 4)
- dest_pixels [y * dest_rowstride +
- x * dest_bpp + 3] = suma * SHADOW_OPACITY;
- }
- }
-
- return dest;
-}
-
-GdkPixbuf *
-create_shadowed_pixbuf (GdkPixbuf *src)
-{
- GdkPixbuf *dest;
-
- dest = create_shadow (src);
-
- gdk_pixbuf_composite (src, dest,
- BLUR_RADIUS, BLUR_RADIUS,
- gdk_pixbuf_get_width (src),
- gdk_pixbuf_get_height (src),
- BLUR_RADIUS, BLUR_RADIUS, 1.0, 1.0,
- GDK_INTERP_NEAREST, 255);
- return dest;
-}
-static GdkPixbuf *
-add_border_to_shot (GdkPixbuf *pixbuf)
-{
- GdkPixbuf *retval;
-
- retval = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8,
- gdk_pixbuf_get_width (pixbuf) + 2,
- gdk_pixbuf_get_height (pixbuf) + 2);
-
- /* Fill with solid black */
- gdk_pixbuf_fill (retval, 0xFF);
- gdk_pixbuf_copy_area (pixbuf,
- 0, 0,
- gdk_pixbuf_get_width (pixbuf),
- gdk_pixbuf_get_height (pixbuf),
- retval, 1, 1);
-
- return retval;
-}
-
-static GdkPixbuf *
-remove_shaped_area (GdkPixbuf *pixbuf, Window window)
-{
- GdkPixbuf *retval;
- XRectangle *rectangles;
- int rectangle_count, rectangle_order;
- int i;
-
- retval = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8,
- gdk_pixbuf_get_width (pixbuf),
- gdk_pixbuf_get_height (pixbuf));
-
- gdk_pixbuf_fill (retval, 0);
- rectangles = XShapeGetRectangles (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), window,
- ShapeBounding, &rectangle_count, &rectangle_order);
-
- for (i = 0; i < rectangle_count; i++) {
- int y, x;
-
- for (y = rectangles[i].y; y < rectangles[i].y + rectangles[i].height; y++) {
- guchar *src_pixels, *dest_pixels;
-
- src_pixels = gdk_pixbuf_get_pixels (pixbuf) +
- y * gdk_pixbuf_get_rowstride (pixbuf) +
- rectangles[i].x * (gdk_pixbuf_get_has_alpha (pixbuf) ? 4 : 3);
- dest_pixels = gdk_pixbuf_get_pixels (retval) +
- y * gdk_pixbuf_get_rowstride (retval) +
- rectangles[i].x * 4;
-
- for (x = rectangles[i].x; x < rectangles[i].x + rectangles[i].width; x++) {
- *dest_pixels++ = *src_pixels ++;
- *dest_pixels++ = *src_pixels ++;
- *dest_pixels++ = *src_pixels ++;
- *dest_pixels++ = 255;
-
- if (gdk_pixbuf_get_has_alpha (pixbuf))
- src_pixels++;
- }
- }
- }
-
- return retval;
-}
-
-static GdkPixbuf *
-take_window_shot (Window child, gboolean include_decoration)
-{
- GdkWindow *window;
- Window xid;
- gint x_orig, y_orig;
- gint x = 0, y = 0;
- gint width, height;
-
- GdkPixbuf *tmp, *tmp2;
- GdkPixbuf *retval;
-
- if (include_decoration)
- xid = find_toplevel_window (child);
- else
- xid = child;
-
- window = gdk_x11_window_foreign_new_for_display (gdk_display_get_default (), xid);
-
- width = gdk_window_get_width (window);
- height = gdk_window_get_height (window);
- gdk_window_get_origin (window, &x_orig, &y_orig);
-
- if (x_orig < 0) {
- x = - x_orig;
- width = width + x_orig;
- x_orig = 0;
- }
-
- if (y_orig < 0) {
- y = - y_orig;
- height = height + y_orig;
- y_orig = 0;
- }
-
- if (x_orig + width > gdk_screen_width ())
- width = gdk_screen_width () - x_orig;
-
- if (y_orig + height > gdk_screen_height ())
- height = gdk_screen_height () - y_orig;
-
- tmp = gdk_pixbuf_get_from_window (window, x, y, width, height);
-
- if (include_decoration)
- tmp2 = remove_shaped_area (tmp, xid);
- else
- tmp2 = add_border_to_shot (tmp);
-
- retval = create_shadowed_pixbuf (tmp2);
- g_object_unref (tmp);
- g_object_unref (tmp2);
-
- return retval;
-}
-
-int
-main (int argc, char **argv)
-{
- GdkPixbuf *screenshot = NULL;
- GError *error = NULL;
- GtkAllocation allocation;
- GcrShooterInfo *info;
- GdkWindow *window;
- const gchar *outdir;
- XID id;
- char *filename;
-
- /*
- * If there's no DISPLAY, we silently error out. We don't want to break
- * headless builds.
- */
-
- if (!gtk_init_check (&argc, &argv))
- return 0;
-
- if (argc < 2 || !argv[1]) {
- g_printerr ("specify name of widget\n");
- return 2;
- }
-
- info = gcr_widgets_create (argv[1]);
- if (info == NULL) {
- g_printerr ("no such widget: %s\n", argv[1]);
- return 1;
- }
-
- gtk_widget_show (info->window);
- window = gtk_widget_get_window (info->window);
- gtk_widget_get_allocation (info->window, &allocation);
-
- gtk_widget_show_now (info->window);
- gtk_widget_queue_draw_area (info->window,
- allocation.x, allocation.y,
- allocation.width, allocation.height);
- gdk_window_process_updates (window, TRUE);
-
- while (gtk_events_pending ())
- gtk_main_iteration ();
- sleep (1);
-
- while (gtk_events_pending ())
- gtk_main_iteration ();
-
- id = gdk_x11_window_get_xid (window);
- screenshot = take_window_shot (id, info->include_decorations);
-
- outdir = (argc >= 3) ? argv[2] : ".";
- filename = g_strdup_printf ("%s/%s.png", outdir, info->name);
- if (!gdk_pixbuf_save (screenshot, filename, "png", &error, NULL)) {
- g_printerr ("couldn't write screenshot: %s: %s\n", filename, error->message);
- g_clear_error (&error);
- return 1;
- }
- g_free(filename);
- gtk_widget_hide (info->window);
-
- return 0;
-}
diff --git a/docs/reference/gcr/gcr-shooter.h b/docs/reference/gcr/gcr-shooter.h
deleted file mode 100644
index 407a3641..00000000
--- a/docs/reference/gcr/gcr-shooter.h
+++ /dev/null
@@ -1,23 +0,0 @@
-
-#include <gtk/gtk.h>
-
-typedef enum {
- GCR_SHOOTER_SMALL,
- GCR_SHOOTER_MEDIUM,
- GCR_SHOOTER_LARGE,
- GCR_SHOOTER_ASIS
-} GcrShooterSize;
-
-typedef struct GcrShooterInfo {
- GtkWidget *window;
- gchar *name;
- gboolean no_focus;
- gboolean include_decorations;
- GcrShooterSize size;
-} GcrShooterInfo;
-
-GcrShooterInfo* gcr_widgets_create (const gchar *name);
-
-GcrShooterInfo* gcr_shooter_info_new (const gchar *name,
- GtkWidget *widget,
- GcrShooterSize size);
diff --git a/docs/reference/gcr/gcr-visual-index.xml b/docs/reference/gcr/gcr-visual-index.xml
deleted file mode 100644
index ced540a1..00000000
--- a/docs/reference/gcr/gcr-visual-index.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE para PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
- "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
-]>
-<para role="gallery">
- <link linkend="GcrCertificateWidget">
- <inlinegraphic fileref="certificate-widget.png" format="PNG"></inlinegraphic>
- </link>
- <link linkend="GcrComboSelector">
- <inlinegraphic fileref="combo-selector.png" format="PNG"></inlinegraphic>
- </link>
- <link linkend="GcrImportButton">
- <inlinegraphic fileref="import-button.png" format="PNG"></inlinegraphic>
- </link>
- <link linkend="GcrListSelector">
- <inlinegraphic fileref="list-selector.png" format="PNG"></inlinegraphic>
- </link>
- <link linkend="GcrKeyWidget">
- <inlinegraphic fileref="key-widget.png" format="PNG"></inlinegraphic>
- </link>
- <link linkend="GcrTreeSelector">
- <inlinegraphic fileref="tree-selector.png" format="PNG"></inlinegraphic>
- </link>
- <link linkend="GcrViewerWidget">
- <inlinegraphic fileref="viewer-widget.png" format="PNG"></inlinegraphic>
- </link>
-</para> \ No newline at end of file
diff --git a/docs/reference/gcr/gcr-widgets.c b/docs/reference/gcr/gcr-widgets.c
deleted file mode 100644
index d8458eda..00000000
--- a/docs/reference/gcr/gcr-widgets.c
+++ /dev/null
@@ -1,236 +0,0 @@
-
-#include "gcr-shooter.h"
-#include "gcr.h"
-
-static gpointer
-load_gcr_test_file (const gchar *name, gsize *length)
-{
- GError *error = NULL;
- gchar *contents;
- gchar *filename;
-
- filename = g_build_filename (TOPDIR, "gcr", "tests", "files", name, NULL);
- if (!g_file_get_contents (filename, &contents, length, &error))
- g_error ("couldn't read file: %s: %s", filename, error->message);
- g_free (filename);
- return contents;
-}
-
-static GcrShooterInfo *
-create_certificate_widget (const gchar *name)
-{
- GcrCertificate *certificate;
- GtkWidget *widget;
- GtkWidget *align;
- gchar *contents;
- gsize length;
-
- contents = load_gcr_test_file ("cacert.org.cer", &length);
- certificate = gcr_simple_certificate_new (contents, length);
- g_free (contents);
-
- widget = GTK_WIDGET (gcr_certificate_widget_new (certificate));
- g_object_unref (certificate);
-
- align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
- gtk_container_add (GTK_CONTAINER (align), widget);
-
- return gcr_shooter_info_new (name, align, GCR_SHOOTER_LARGE);
-}
-
-static void
-on_parser_key_parsed (GcrParser *parser, gpointer unused)
-{
- GckAttributes **attrs = unused;
- *attrs = gck_attributes_ref (gcr_parser_get_parsed_attributes (parser));
-}
-
-static GcrShooterInfo *
-create_key_widget (const gchar *name)
-{
- GError *error = NULL;
- GckAttributes *attrs = NULL;
- GtkWidget *widget;
- GtkWidget *align;
- GcrParser *parser;
- gchar *contents;
- gsize length;
-
- contents = load_gcr_test_file ("der-dsa-1024.key", &length);
- parser = gcr_parser_new ();
- g_signal_connect (parser, "parsed", G_CALLBACK (on_parser_key_parsed), &attrs);
- if (!gcr_parser_parse_data (parser, contents, length, &error))
- g_error ("couldn't parse data: %s", error->message);
- g_object_unref (parser);
- g_free (contents);
-
- g_assert (attrs);
- widget = GTK_WIDGET (gcr_key_widget_new (attrs));
- gck_attributes_unref (attrs);
-
- align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
- gtk_container_add (GTK_CONTAINER (align), widget);
-
- return gcr_shooter_info_new (name, align, GCR_SHOOTER_LARGE);
-}
-
-static GcrShooterInfo *
-create_combo_selector (const gchar *name)
-{
- GcrComboSelector *selector;
- GcrCertificate *certificate;
- GcrCollection *collection;
- GtkWidget *align;
- gchar *contents;
- gsize length;
-
- contents = load_gcr_test_file ("cacert.org.cer", &length);
- certificate = gcr_simple_certificate_new (contents, length);
- g_free (contents);
-
- collection = gcr_simple_collection_new ();
- gcr_simple_collection_add (GCR_SIMPLE_COLLECTION (collection), G_OBJECT (certificate));
-
- selector = gcr_combo_selector_new (collection);
- g_object_unref (collection);
-
- gcr_combo_selector_set_selected (selector, G_OBJECT (certificate));
- g_object_unref (certificate);
-
- align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
- gtk_container_add (GTK_CONTAINER (align), GTK_WIDGET (selector));
-
- return gcr_shooter_info_new (name, align, GCR_SHOOTER_MEDIUM);
-}
-
-static GcrShooterInfo *
-create_tree_selector (const gchar *name)
-{
- GcrTreeSelector *selector;
- GcrCertificate *certificate;
- GcrCollection *collection;
- GtkWidget *align;
- gchar *contents;
- gsize length;
- GList *selected = NULL;
-
- collection = gcr_simple_collection_new ();
- selector = gcr_tree_selector_new (collection, GCR_CERTIFICATE_COLUMNS);
-
- contents = load_gcr_test_file ("cacert.org.cer", &length);
- certificate = gcr_simple_certificate_new (contents, length);
- g_free (contents);
- gcr_simple_collection_add (GCR_SIMPLE_COLLECTION (collection), G_OBJECT (certificate));
- selected = g_list_append (selected, certificate);
- gcr_tree_selector_set_selected (selector, selected);
- g_list_free (selected);
- g_object_unref (certificate);
-
- contents = load_gcr_test_file ("der-certificate-dsa.cer", &length);
- certificate = gcr_simple_certificate_new (contents, length);
- g_free (contents);
- gcr_simple_collection_add (GCR_SIMPLE_COLLECTION (collection), G_OBJECT (certificate));
- g_object_unref (certificate);
-
- g_object_unref (collection);
-
- align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
- gtk_container_add (GTK_CONTAINER (align), GTK_WIDGET (selector));
-
- return gcr_shooter_info_new (name, align, GCR_SHOOTER_MEDIUM);
-}
-
-static GcrShooterInfo *
-create_list_selector (const gchar *name)
-{
- GcrListSelector *selector;
- GcrCertificate *certificate;
- GcrCollection *collection;
- GtkWidget *align;
- gchar *contents;
- gsize length;
- GList *selected = NULL;
-
- collection = gcr_simple_collection_new ();
- selector = gcr_list_selector_new (collection);
-
- contents = load_gcr_test_file ("cacert.org.cer", &length);
- certificate = gcr_simple_certificate_new (contents, length);
- g_free (contents);
- gcr_simple_collection_add (GCR_SIMPLE_COLLECTION (collection), G_OBJECT (certificate));
- selected = g_list_append (selected, certificate);
- gcr_list_selector_set_selected (selector, selected);
- g_list_free (selected);
- g_object_unref (certificate);
-
- contents = load_gcr_test_file ("der-certificate-dsa.cer", &length);
- certificate = gcr_simple_certificate_new (contents, length);
- g_free (contents);
- gcr_simple_collection_add (GCR_SIMPLE_COLLECTION (collection), G_OBJECT (certificate));
- g_object_unref (certificate);
-
- g_object_unref (collection);
-
- align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
- gtk_container_add (GTK_CONTAINER (align), GTK_WIDGET (selector));
-
- return gcr_shooter_info_new (name, align, GCR_SHOOTER_MEDIUM);
-}
-
-static GcrShooterInfo *
-create_import_button (const gchar *name)
-{
- GcrImportButton *import;
- GtkWidget *align;
-
- import = gcr_import_button_new ("Import");
-
- align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
- gtk_container_add (GTK_CONTAINER (align), GTK_WIDGET (import));
-
- return gcr_shooter_info_new (name, align, GCR_SHOOTER_MEDIUM);
-}
-
-static GcrShooterInfo *
-create_viewer_widget (const gchar *name)
-{
- GcrViewerWidget *viewer;
- GtkWidget *align;
- gchar *contents;
- gsize length;
-
- contents = load_gcr_test_file ("email.p12", &length);
- viewer = gcr_viewer_widget_new ();
- gcr_viewer_widget_load_data (viewer, "Email certificate", (gpointer)contents, length);
- g_free (contents);
-
- align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
- gtk_container_add (GTK_CONTAINER (align), GTK_WIDGET (viewer));
-
- return gcr_shooter_info_new (name, align, GCR_SHOOTER_LARGE);
-}
-
-GcrShooterInfo*
-gcr_widgets_create (const gchar *name)
-{
- g_assert (name);
-
- if (g_str_equal (name, "certificate-widget"))
- return create_certificate_widget (name);
- else if (g_str_equal (name, "combo-selector"))
- return create_combo_selector (name);
- else if (g_str_equal (name, "import-button"))
- return create_import_button (name);
- else if (g_str_equal (name, "key-widget"))
- return create_key_widget (name);
- else if (g_str_equal (name, "list-selector"))
- return create_list_selector (name);
- else if (g_str_equal (name, "tree-selector"))
- return create_tree_selector (name);
- else if (g_str_equal (name, "viewer-widget"))
- return create_viewer_widget (name);
- else
- g_assert_not_reached ();
-
- return NULL;
-}
diff --git a/docs/reference/gcr/gcr.types b/docs/reference/gcr/gcr.types
deleted file mode 100644
index fcd2dd96..00000000
--- a/docs/reference/gcr/gcr.types
+++ /dev/null
@@ -1,24 +0,0 @@
-gcr_certificate_chain_get_type
-gcr_certificate_get_type
-gcr_certificate_renderer_get_type
-gcr_certificate_widget_get_type
-gcr_collection_get_type
-gcr_collection_model_get_type
-gcr_combo_selector_get_type
-gcr_comparable_get_type
-gcr_import_button_get_type
-gcr_importer_get_type
-gcr_key_renderer_get_type
-gcr_key_widget_get_type
-gcr_list_selector_get_type
-gcr_parser_get_type
-gcr_pkcs11_certificate_get_type
-gcr_renderer_get_type
-gcr_simple_certificate_get_type
-gcr_simple_collection_get_type
-gcr_tree_selector_get_type
-gcr_union_collection_get_type
-gcr_unlock_options_widget_get_type
-gcr_viewer_get_type
-gcr_viewer_widget_get_type
-gcr_viewer_window_get_type \ No newline at end of file
diff --git a/docs/reference/gcr/images/certificate-widget.png b/docs/reference/gcr/images/certificate-widget.png
deleted file mode 100644
index e3c91582..00000000
--- a/docs/reference/gcr/images/certificate-widget.png
+++ /dev/null
Binary files differ
diff --git a/docs/reference/gcr/images/combo-selector.png b/docs/reference/gcr/images/combo-selector.png
deleted file mode 100644
index 073f4839..00000000
--- a/docs/reference/gcr/images/combo-selector.png
+++ /dev/null
Binary files differ
diff --git a/docs/reference/gcr/images/import-button.png b/docs/reference/gcr/images/import-button.png
deleted file mode 100644
index 9166bb88..00000000
--- a/docs/reference/gcr/images/import-button.png
+++ /dev/null
Binary files differ
diff --git a/docs/reference/gcr/images/key-widget.png b/docs/reference/gcr/images/key-widget.png
deleted file mode 100644
index db3a371d..00000000
--- a/docs/reference/gcr/images/key-widget.png
+++ /dev/null
Binary files differ
diff --git a/docs/reference/gcr/images/list-selector.png b/docs/reference/gcr/images/list-selector.png
deleted file mode 100644
index 7f9c6881..00000000
--- a/docs/reference/gcr/images/list-selector.png
+++ /dev/null
Binary files differ
diff --git a/docs/reference/gcr/images/tree-selector.png b/docs/reference/gcr/images/tree-selector.png
deleted file mode 100644
index 7bcd1a18..00000000
--- a/docs/reference/gcr/images/tree-selector.png
+++ /dev/null
Binary files differ
diff --git a/docs/reference/gcr/images/viewer-widget.png b/docs/reference/gcr/images/viewer-widget.png
deleted file mode 100644
index 1933e043..00000000
--- a/docs/reference/gcr/images/viewer-widget.png
+++ /dev/null
Binary files differ
diff --git a/docs/reference/gcr/version.xml.in b/docs/reference/gcr/version.xml.in
deleted file mode 100644
index 27323dad..00000000
--- a/docs/reference/gcr/version.xml.in
+++ /dev/null
@@ -1 +0,0 @@
-@VERSION@ \ No newline at end of file
diff --git a/egg/Makefile.am b/egg/Makefile.am
index 344be24f..4b4da2bd 100644
--- a/egg/Makefile.am
+++ b/egg/Makefile.am
@@ -31,7 +31,6 @@ libegg_la_SOURCES = \
egg-dh.c egg-dh.h \
egg-dn.c egg-dn.h \
egg-error.h \
- egg-decimal.c egg-decimal.h \
egg-hex.c egg-hex.h \
egg-hkdf.c egg-hkdf.h \
egg-libgcrypt.c egg-libgcrypt.h \
diff --git a/egg/egg-decimal.c b/egg/egg-decimal.c
deleted file mode 100644
index 6f3921dc..00000000
--- a/egg/egg-decimal.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "egg-decimal.h"
-
-#include <string.h>
-
-gpointer
-egg_decimal_decode (const gchar *data,
- gssize n_data,
- gsize *n_decoded)
-{
- gboolean saw_non_zero = FALSE;
- guint8 *digits = NULL;
- guint n_digits = 0;
- guchar *usg;
- gchar ch;
- guint carry;
- guint i;
- guint cleared;
- guchar *at_byte;
- guint at_bit;
- gsize length;
-
- g_return_val_if_fail (data, NULL);
-
- if (n_data < 0)
- n_data = strlen (data);
-
- /* Convert everything to an array of digits */
- digits = g_new0 (guint8, n_data);
- for (i = 0; i < n_data; i++) {
- ch = data[i];
- if (ch < '0' || ch > '9') {
- g_free (digits);
- return NULL;
- } else if (ch != '0' || saw_non_zero) {
- digits[n_digits] = ch - '0';
- n_digits++;
- saw_non_zero = TRUE;
- }
- }
-
- usg = g_new0 (guchar, n_data);
- cleared = 0;
- at_byte = usg + n_data - 1;
- at_bit = 0;
-
- /* for every digit ... */
- while (cleared < n_digits) {
- /* ... store the bit depending on whether last digit is odd */
- guchar bit = (digits[n_digits - 1] % 2);
- *at_byte |= (bit << at_bit);
- if (at_bit++ == 7) {
- at_bit = 0;
- at_byte--;
- g_assert (at_byte >= usg);
- }
-
- /* ... divide digits by two */
- carry = 0;
- for (i = cleared; i < n_digits; i++) {
- gboolean odd = (digits[i] % 2);
- digits[i] = digits[i] / 2 + carry;
- carry = odd ? 5 : 0;
- if (i == cleared && digits[i] == 0)
- cleared++;
- }
- }
-
- if (at_bit == 0)
- at_byte++;
-
- length = n_data - (at_byte - usg);
- memmove (usg, at_byte, length);
- if (n_decoded)
- *n_decoded = length;
- return usg;
-}
diff --git a/egg/egg-decimal.h b/egg/egg-decimal.h
deleted file mode 100644
index 24602d49..00000000
--- a/egg/egg-decimal.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General License for more details.
- *
- * You should have received a copy of the GNU Lesser General
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#ifndef EGG_DECIMAL_H_
-#define EGG_DECIMAL_H_
-
-#include <glib.h>
-
-gpointer egg_decimal_decode (const gchar *data,
- gssize n_data,
- gsize *n_decoded);
-
-#endif /* EGG_DECIMAL_H_ */
diff --git a/egg/tests/Makefile.am b/egg/tests/Makefile.am
index 84bc5c1a..aa5fac70 100644
--- a/egg/tests/Makefile.am
+++ b/egg/tests/Makefile.am
@@ -18,7 +18,6 @@ TEST_PROGS = \
test-asn1 \
test-dn \
test-cleanup \
- test-decimal \
test-hex \
test-hkdf \
test-oid \
diff --git a/egg/tests/test-decimal.c b/egg/tests/test-decimal.c
deleted file mode 100644
index 4996cafe..00000000
--- a/egg/tests/test-decimal.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* unit-test-util.c: Test gck-util.c
-
- Copyright (C) 2011 Collabora Ltd.
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "egg/egg-decimal.h"
-#include "egg/egg-testing.h"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-typedef struct {
- const gchar *decimal;
- const gchar *result;
- gsize length;
-} TestDecimal;
-
-static TestDecimal decimal_fixtures[] = {
- { "35", "\x23", 1 },
- { "2048", "\x08\x00", 2 },
- { "209328042309", "\x30\xBC\xEC\x71\x45", 5 },
- { "0002048", "\x08\x00", 2 },
- { "20480000", "\x01\x38\x80\x00", 4 },
- { "2521368004379664277055118629334750468402260732427135194366161280379"
- "6661942758264006541602516197962800670706891657576953487072507942596"
- "6374424122494538738176144081024494339591946626053519298721214406983"
- "3606711407748948613853344896472022957466922483835202523097287025430"
- "5078987427716449092979306938082113263545271808186244259338032237756"
- "9175402872261192563172038927792670653714043622677577357160052045893"
- "9513984477743817388078699536715866468499111753894230211101792648120"
- "1128688482121549927434503046858485918719606735307033123916744787670"
- "4316000505177621722934283063062034258685067324811300901286708201589"
- "59867993533757",
- "\xC7\xBB\x16\xF4\xB8\x04\x24\x0F\xFC\xC2\xA7\xAF\x8C\x6E\x67\xE1\x16"
- "\x7F\xEB\xFA\x7F\xAA\x9D\xFD\x7C\xF2\x75\xB8\xA5\x1F\x27\x35\xF2\xD4"
- "\x9D\x78\xFB\xF6\x5C\xED\x10\xB4\xE4\x32\x58\x2D\xC9\x1E\x86\x54\xF7"
- "\x89\x7F\x03\x84\x68\x32\x76\xA9\xA7\x97\xC3\xA3\x6F\x7A\x46\x85\x43"
- "\x5E\x14\x4D\x47\x01\x81\x06\xE5\xC0\x61\xD7\xC8\x7C\x9B\xE1\x9D\x84"
- "\x87\x75\x77\x80\x0E\xAE\x91\xB1\x05\x12\xDE\x92\xF2\x98\x84\x1F\x43"
- "\xD4\xC4\x57\x77\x95\xC5\xE6\x82\xEE\xEA\x0A\xB3\xDD\x8C\x44\x45\x9A"
- "\x12\xAC\xF9\xC2\x22\xA1\x3F\x03\x31\xDD\x84\xF7\x75\x51\xE0\xFA\x24"
- "\x8E\x6F\xE9\x58\x4C\xA3\x42\x73\xB9\x5E\x2F\x0D\xCC\xDC\x22\x8A\x48"
- "\x75\x4A\x76\xA2\x9D\x03\xBA\x5F\xC8\x57\xB5\x1F\x5C\x85\x7E\x8C\x0F"
- "\xF2\x73\xDA\x96\x67\x7C\xC6\x4D\x54\x2C\x45\x63\xD1\xA6\x7F\xF1\xA0"
- "\x1F\x3F\x9E\xDF\xF3\x7F\x24\x3D\x6E\xB8\xF7\x4C\xC8\xA7\x27\x95\xA1"
- "\xDA\x8F\x98\x32\x32\x1B\x7D\xB6\x1B\xFC\x8D\x73\x7C\xD1\x48\x99\xD0"
- "\xAC\x7C\xF1\x5B\x95\xA5\xFE\xD8\x12\x57\x5C\x7A\x6B\xC5\x5C\x7D\x92"
- "\xB1\x91\x88\x36\x58\x19\x30\x67\x2D\x73\xF3\x5A\xA6\x31\xC4\x5C\x2D"
- "\x3D"
- , 256 }
-};
-
-static const gchar *decimal_failures[] = {
- "-35",
- "abcd",
- " 3 33",
-};
-
-static void
-test_decode_success (gconstpointer data)
-{
- const TestDecimal *fixture = data;
- guchar *decoded;
- gsize n_decoded;
-
- decoded = egg_decimal_decode (fixture->decimal, -1, &n_decoded);
- egg_assert_cmpmem (fixture->result, fixture->length, ==, decoded, n_decoded);
- g_free (decoded);
-}
-
-static void
-test_decode_failure (gconstpointer data)
-{
- const gchar *failure = data;
- guchar *decoded;
- gsize n_decoded;
-
- decoded = egg_decimal_decode (failure, -1, &n_decoded);
- g_assert (decoded == NULL);
-}
-
-int
-main (int argc, char **argv)
-{
- gchar *name;
- gchar *decimal;
- const gchar *suffix;
- guint i;
-
- g_test_init (&argc, &argv, NULL);
-
- for (i = 0; i < G_N_ELEMENTS (decimal_fixtures); i++) {
- /* Ellipsize long numbers in test names */
- decimal = g_strndup (decimal_fixtures[i].decimal, 41);
- if (strlen (decimal) == 41) {
- decimal[40] = 0;
- suffix = "_long";
- } else {
- suffix = "";
- }
- name = g_strdup_printf ("/decimal/decode-success/%s%s", decimal, suffix);
- g_test_add_data_func (name, &decimal_fixtures[i], test_decode_success);
- g_free (name);
- g_free (decimal);
- }
-
- for (i = 0; i < G_N_ELEMENTS (decimal_failures); i++) {
- name = g_strdup_printf ("/decimal/decode-failure/%s", decimal_failures[i]);
- g_strcanon (name, "abcdefghijklmnopqrstuvwxyz-_/0123456789", '_');
- g_test_add_data_func (name, decimal_failures[i], test_decode_failure);
- g_free (name);
- }
-
- return g_test_run ();
-}
diff --git a/egg/tests/test-hex.c b/egg/tests/test-hex.c
index e2cb9f06..97d25178 100644
--- a/egg/tests/test-hex.c
+++ b/egg/tests/test-hex.c
@@ -1,5 +1,5 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* unit-test-util.c: Test gck-util.c
+/* unit-test-util.c: Test hex routines
Copyright (C) 2007 Stefan Walter
diff --git a/gck/.gitignore b/gck/.gitignore
deleted file mode 100644
index 4fbdec3a..00000000
--- a/gck/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/gck-*.pc
-/gck.pc
diff --git a/gck/Makefile.am b/gck/Makefile.am
deleted file mode 100644
index 6a2a6c35..00000000
--- a/gck/Makefile.am
+++ /dev/null
@@ -1,161 +0,0 @@
-
-SUBDIRS = . tests
-
-incdir = $(includedir)/gck-@GCK_MAJOR@/gck
-
-HEADER_FILES = \
- gck.h \
- gck-deprecated.h
-
-inc_HEADERS = \
- $(HEADER_FILES) \
- gck-enum-types.h
-
-INCLUDES = \
- -I$(top_builddir) \
- -I$(top_srcdir) \
- $(P11_KIT_CFLAGS) \
- $(GOBJECT_CFLAGS) \
- $(GTHREAD_CFLAGS) \
- $(GLIB_CFLAGS) \
- -DG_LOG_DOMAIN=\"Gck\" \
- -DGCK_API_SUBJECT_TO_CHANGE \
- -DP11_KIT_API_SUBJECT_TO_CHANGE \
- -DPKCS11_REGISTRY_DIR=\"$(libdir)/pkcs11\"
-
-BUILT_SOURCES = \
- gck-marshal.c gck-marshal.h \
- gck-enum-types.c gck-enum-types.h
-
-lib_LTLIBRARIES = libgck-@GCK_MAJOR@.la
-
-PUBLIC_FILES = \
- gck.h \
- gck-enum-types.h \
- gck-attributes.c \
- gck-dump.c \
- gck-enumerator.c \
- gck-misc.c \
- gck-module.c \
- gck-modules.c \
- gck-object.c \
- gck-password.c \
- gck-session.c \
- gck-slot.c \
- gck-uri.c
-
-INTERNAL_FILES = \
- gck-call.c \
- gck-debug.c gck-debug.h \
- gck-deprecated.h \
- gck-interaction.c \
- gck-private.h \
- pkcs11.h
-
-libgck_@GCK_MAJOR@_la_SOURCES = \
- $(PUBLIC_FILES) \
- $(INTERNAL_FILES) \
- $(BUILT_SOURCES)
-
-libgck_@GCK_MAJOR@_la_LDFLAGS = \
- -version-info $(GCK_LT_RELEASE) \
- -no-undefined \
- -export-symbols-regex '^gck_*'
-
-libgck_@GCK_MAJOR@_la_LIBADD = \
- $(top_builddir)/egg/libegg-hex.la \
- $(P11_KIT_LIBS) \
- $(GOBJECT_LIBS) \
- $(GTHREAD_LIBS) \
- $(GIO_LIBS) \
- $(GLIB_LIBS)
-
-noinst_LTLIBRARIES = libgck-testable.la
-libgck_testable_la_SOURCES = \
- gck-mock.c \
- gck-mock.h \
- gck-test.c \
- gck-test.h
-libgck_testable_la_LIBADD = $(libgck_@GCK_MAJOR@_la_OBJECTS) \
- $(libgck_@GCK_MAJOR@_la_LIBADD)
-libgck_testable_la_DEPENDENCIES = $(libgck_@GCK_MAJOR@_la_OBJECTS)
-
-gck-marshal.h: gck-marshal.list $(GLIB_GENMARSHAL)
- $(GLIB_GENMARSHAL) $< --header --prefix=_gck_marshal > $@
-
-gck-marshal.c: gck-marshal.list $(GLIB_GENMARSHAL)
- echo "#include \"gck-marshal.h\"" > $@ && \
- $(GLIB_GENMARSHAL) $< --body --prefix=_gck_marshal >> $@
-
-gck-enum-types.h: gck.h gck-enum-types.h.template
- $(AM_V_GEN) $(GLIB_MKENUMS) --template $(srcdir)/gck-enum-types.h.template \
- $(HEADER_FILES) > $@
-
-gck-enum-types.c: gck.h gck-enum-types.c.template
- $(AM_V_GEN) $(GLIB_MKENUMS) --template $(srcdir)/gck-enum-types.c.template \
- $(HEADER_FILES) > $@
-
-# ------------------------------------------------------------------
-# INTROSPECTION
-
-if HAVE_INTROSPECTION
-
-include $(INTROSPECTION_MAKEFILE)
-
-INTROSPECTION_GIRS = Gck-@GCK_MAJOR@.gir
-INTROSPECTION_SCANNER_ARGS = $(INTROSPECTION_FLAGS) --warn-all --add-include-path=$(srcdir) --add-include-path=.
-INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) --includedir=.
-
-Gck-@GCK_MAJOR@.gir: libgck-@GCK_MAJOR@.la
-
-Gck_@GCK_MAJOR@_gir_PACKAGES = gobject-2.0 gio-2.0 p11-kit-1
-Gck_@GCK_MAJOR@_gir_EXPORT_PACKAGES = gck-@GCK_MAJOR@
-Gck_@GCK_MAJOR@_gir_INCLUDES = GObject-2.0 Gio-2.0
-Gck_@GCK_MAJOR@_gir_LIBS = libgck-@GCK_MAJOR@.la
-Gck_@GCK_MAJOR@_gir_CFLAGS = -I$(top_srcdir) -I$(top_builddir) -DGCK_COMPILATION -DGCK_API_SUBJECT_TO_CHANGE
-Gck_@GCK_MAJOR@_gir_FILES = $(PUBLIC_FILES)
-Gck_@GCK_MAJOR@_gir_SCANNERFLAGS = --c-include "gck.h"
-
-girdir = $(datadir)/gir-1.0
-gir_DATA = $(INTROSPECTION_GIRS)
-
-typelibsdir = $(libdir)/girepository-1.0
-typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
-
-endif
-
-# ----------------------------------------------------------------
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = gck-$(GCK_MAJOR).pc
-
-gck-expected.abi: gck.symbols
- $(AM_V_GEN) cpp -P $< | sort > $@
-
-gck-actual.abi: $(builddir)/.libs/libgck-@GCK_MAJOR@.so
- $(AM_V_GEN) $(NM) -D -g --defined-only $< | \
- cut -d ' ' -f 3 | grep -Ev '^(__bss_start|_edata|_end)' | sort > $@
-
-check-symbols: gck-expected.abi gck-actual.abi
- $(AM_V_GEN) diff -U0 --ignore-blank-lines gck-expected.abi gck-actual.abi || \
- (echo "check-symbols: Symbols have CHANGED. Fix gck.symbols"; exit 1)
-
-check-local: check-symbols
-
-EXTRA_DIST = \
- gck.pc.in \
- gck-marshal.list \
- gck.symbols \
- gck-enum-types.h.template \
- gck-enum-types.c.template \
- pkcs11-trust-assertions.h
-
-CLEANFILES = \
- gck-actual.abi \
- gck-expected.abi
-
-DISTCLEANFILES = \
- gck-$(GCK_MAJOR).pc
-
-gck-$(GCK_MAJOR).pc: gck.pc
- cp gck.pc gck-$(GCK_MAJOR).pc
diff --git a/gck/gck-attributes.c b/gck/gck-attributes.c
deleted file mode 100644
index cb48ca17..00000000
--- a/gck/gck-attributes.c
+++ /dev/null
@@ -1,1877 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gck-attribute.c - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2008, Stefan Walter
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <nielsen@memberwebs.com>
-*/
-
-#include "config.h"
-
-#include "gck.h"
-#include "gck-private.h"
-#include "pkcs11-trust-assertions.h"
-
-#include <stdlib.h>
-#include <string.h>
-
-/**
- * SECTION:gck-attribute
- * @title: GckAttribute
- * @short_description: A PKCS11 attribute.
- *
- * This structure represents a PKCS11 CK_ATTRIBUTE. These attributes contain information
- * about a PKCS11 object. Use gck_object_get() or gck_object_set() to set and retrieve
- * attributes on an object.
- */
-
-/**
- * GckAttribute:
- * @type: The attribute type, such as CKA_LABEL.
- * @value: (array length=length): The value of the attribute. May be NULL.
- * @length: The length of the attribute. May be G_MAXULONG if the attribute is invalid.
- *
- * This structure represents a PKCS11 CK_ATTRIBUTE.
- */
-
-/**
- * GCK_TYPE_ATTRIBUTES:
- *
- * Boxed type for #GckAttributes
- */
-
-static void
-attribute_init (GckAttribute *attr, gulong attr_type,
- gconstpointer value, gsize length,
- GckAllocator allocator)
-{
- g_assert (sizeof (GckAttribute) == sizeof (CK_ATTRIBUTE));
- g_assert (allocator);
-
- memset (attr, 0, sizeof (GckAttribute));
- attr->type = attr_type;
- attr->length = length;
- if (value) {
- attr->value = (allocator) (NULL, length ? length : 1);
- g_assert (attr->value);
- memcpy ((gpointer)attr->value, value, length);
- }
-}
-
-/**
- * gck_attribute_init: (skip)
- * @attr: An uninitialized attribute.
- * @attr_type: The PKCS\#11 attribute type to set on the attribute.
- * @value: (array length=length): The raw value of the attribute.
- * @length: The length of the raw value.
- *
- * Initialize a PKCS\#11 attribute. This copies the value memory
- * into an internal buffer.
- *
- * When done with the attribute you should use gck_attribute_clear()
- * to free the internal memory.
- **/
-void
-gck_attribute_init (GckAttribute *attr,
- gulong attr_type,
- const guchar *value,
- gsize length)
-{
- g_return_if_fail (attr);
- attribute_init (attr, attr_type, value, length, g_realloc);
-}
-
-/**
- * gck_attribute_init_invalid: (skip)
- * @attr: An uninitialized attribute.
- * @attr_type: The PKCS\#11 attribute type to set on the attribute.
- *
- * Initialize a PKCS\#11 attribute to an 'invalid' or 'not found'
- * state. Specifically this sets the value length to (CK_ULONG)-1
- * as specified in the PKCS\#11 specification.
- *
- * When done with the attribute you should use gck_attribute_clear()
- * to free the internal memory.
- **/
-void
-gck_attribute_init_invalid (GckAttribute *attr, gulong attr_type)
-{
- g_return_if_fail (attr);
- g_assert (sizeof (GckAttribute) == sizeof (CK_ATTRIBUTE));
- memset (attr, 0, sizeof (GckAttribute));
- attr->type = attr_type;
- attr->length = (gulong)-1;
-}
-
-/**
- * gck_attribute_init_empty: (skip)
- * @attr: An uninitialized attribute.
- * @attr_type: The PKCS\#11 attribute type to set on the attribute.
- *
- * Initialize a PKCS\#11 attribute to an empty state. The attribute
- * type will be set, but no data will be set.
- *
- * When done with the attribute you should use gck_attribute_clear()
- * to free the internal memory.
- **/
-void
-gck_attribute_init_empty (GckAttribute *attr, gulong attr_type)
-{
- g_return_if_fail (attr);
- g_assert (sizeof (GckAttribute) == sizeof (CK_ATTRIBUTE));
- memset (attr, 0, sizeof (GckAttribute));
- attr->type = attr_type;
- attr->length = 0;
- attr->value = 0;
-}
-
-static void
-attribute_init_boolean (GckAttribute *attr, gulong attr_type,
- gboolean value, GckAllocator allocator)
-{
- CK_BBOOL bvalue = value ? CK_TRUE : CK_FALSE;
- attribute_init (attr, attr_type, &bvalue, sizeof (bvalue), allocator);
-}
-
-/**
- * gck_attribute_init_boolean: (skip)
- * @attr: An uninitialized attribute.
- * @attr_type: The PKCS\#11 attribute type to set on the attribute.
- * @value: The boolean value of the attribute.
- *
- * Initialize a PKCS\#11 attribute to boolean. This will result
- * in a CK_BBOOL attribute from the PKCS\#11 specs.
- *
- * When done with the attribute you should use gck_attribute_clear()
- * to free the internal memory.
- **/
-void
-gck_attribute_init_boolean (GckAttribute *attr, gulong attr_type,
- gboolean value)
-{
- g_return_if_fail (attr);
- attribute_init_boolean (attr, attr_type, value, g_realloc);
-}
-
-static void
-attribute_init_date (GckAttribute *attr, gulong attr_type,
- const GDate *value, GckAllocator allocator)
-{
- gchar buffer[9];
- CK_DATE date;
- g_assert (value);
- g_snprintf (buffer, sizeof (buffer), "%04d%02d%02d",
- (int)g_date_get_year (value),
- (int)g_date_get_month (value),
- (int)g_date_get_day (value));
- memcpy (&date.year, buffer + 0, 4);
- memcpy (&date.month, buffer + 4, 2);
- memcpy (&date.day, buffer + 6, 2);
- attribute_init (attr, attr_type, &date, sizeof (CK_DATE), allocator);
-}
-
-/**
- * gck_attribute_init_date: (skip)
- * @attr: An uninitialized attribute.
- * @attr_type: The PKCS\#11 attribute type to set on the attribute.
- * @value: The date value of the attribute.
- *
- * Initialize a PKCS\#11 attribute to a date. This will result
- * in a CK_DATE attribute from the PKCS\#11 specs.
- *
- * When done with the attribute you should use gck_attribute_clear()
- * to free the internal memory.
- **/
-void
-gck_attribute_init_date (GckAttribute *attr, gulong attr_type,
- const GDate *value)
-{
- g_return_if_fail (attr);
- g_return_if_fail (value);
- attribute_init_date (attr, attr_type, value, g_realloc);
-}
-
-static void
-attribute_init_ulong (GckAttribute *attr, gulong attr_type,
- gulong value, GckAllocator allocator)
-{
- CK_ULONG uvalue = value;
- attribute_init (attr, attr_type, &uvalue, sizeof (uvalue), allocator);
-}
-
-/**
- * gck_attribute_init_ulong: (skip)
- * @attr: An uninitialized attribute.
- * @attr_type: The PKCS\#11 attribute type to set on the attribute.
- * @value: The ulong value of the attribute.
- *
- * Initialize a PKCS\#11 attribute to a unsigned long. This will result
- * in a CK_ULONG attribute from the PKCS\#11 specs.
- *
- * When done with the attribute you should use gck_attribute_clear()
- * to free the internal memory.
- **/
-void
-gck_attribute_init_ulong (GckAttribute *attr, gulong attr_type,
- gulong value)
-{
- g_return_if_fail (attr);
- attribute_init_ulong (attr, attr_type, value, g_realloc);
-}
-
-static void
-attribute_init_string (GckAttribute *attr, gulong attr_type,
- const gchar *value, GckAllocator allocator)
-{
- gsize len = value ? strlen (value) : 0;
- attribute_init (attr, attr_type, (gpointer)value, len, allocator);
-}
-
-/**
- * gck_attribute_init_string: (skip)
- * @attr: An uninitialized attribute.
- * @attr_type: The PKCS\#11 attribute type to set on the attribute.
- * @value: The null terminated string value of the attribute.
- *
- * Initialize a PKCS\#11 attribute to a string. This will result
- * in an attribute containing the text, but not the null terminator.
- * The text in the attribute will be of the same encoding as you pass
- * to this function.
- *
- * When done with the attribute you should use gck_attribute_clear()
- * to free the internal memory.
- **/
-void
-gck_attribute_init_string (GckAttribute *attr, gulong attr_type,
- const gchar *value)
-{
- g_return_if_fail (attr);
- attribute_init_string (attr, attr_type, value, g_realloc);
-}
-
-GType
-gck_attribute_get_type (void)
-{
- static volatile gsize initialized = 0;
- static GType type = 0;
- if (g_once_init_enter (&initialized)) {
- type = g_boxed_type_register_static ("GckAttribute",
- (GBoxedCopyFunc)gck_attribute_dup,
- (GBoxedFreeFunc)gck_attribute_free);
- g_once_init_leave (&initialized, 1);
- }
- return type;
-}
-
-/**
- * gck_attribute_new:
- * @attr_type: The PKCS\#11 attribute type to set on the attribute.
- * @value: The raw value of the attribute.
- * @length: The length of the attribute.
- *
- * Create a new PKCS\#11 attribute. The value will be copied
- * into the new attribute.
- *
- * Returns: (transfer full): the new attribute; when done with the attribute
- * use gck_attribute_free() to free it
- **/
-GckAttribute*
-gck_attribute_new (gulong attr_type, gpointer value, gsize length)
-{
- GckAttribute *attr = g_slice_new0 (GckAttribute);
- attribute_init (attr, attr_type, value, length, g_realloc);
- return attr;
-}
-
-/**
- * gck_attribute_new_invalid:
- * @attr_type: The PKCS\#11 attribute type to set on the attribute.
- *
- * Create a new PKCS\#11 attribute as 'invalid' or 'not found'
- * state. Specifically this sets the value length to (CK_ULONG)-1
- * as specified in the PKCS\#11 specification.
- *
- * Returns: (transfer full): the new attribute; when done with the attribute
- * use gck_attribute_free() to free it
- **/
-GckAttribute*
-gck_attribute_new_invalid (gulong attr_type)
-{
- GckAttribute *attr = g_slice_new0 (GckAttribute);
- gck_attribute_init_invalid (attr, attr_type);
- return attr;
-}
-
-/**
- * gck_attribute_new_empty:
- * @attr_type: The PKCS\#11 attribute type to set on the attribute.
- *
- * Create a new PKCS\#11 attribute with empty data.
- *
- * Returns: (transfer full): the new attribute; when done with the attribute
- * use gck_attribute_free() to free it
- */
-GckAttribute*
-gck_attribute_new_empty (gulong attr_type)
-{
- GckAttribute *attr = g_slice_new0 (GckAttribute);
- gck_attribute_init_empty (attr, attr_type);
- return attr;
-}
-
-/**
- * gck_attribute_new_boolean:
- * @attr_type: The PKCS\#11 attribute type to set on the attribute.
- * @value: The boolean value of the attribute.
- *
- * Initialize a PKCS\#11 attribute to boolean. This will result
- * in a CK_BBOOL attribute from the PKCS\#11 specs.
- *
- * Returns: (transfer full): the new attribute; when done with the attribute use
- * gck_attribute_free() to free it
- **/
-GckAttribute*
-gck_attribute_new_boolean (gulong attr_type, gboolean value)
-{
- GckAttribute *attr = g_slice_new0 (GckAttribute);
- attribute_init_boolean (attr, attr_type, value, g_realloc);
- return attr;
-}
-
-/**
- * gck_attribute_new_date:
- * @attr_type: The PKCS\#11 attribute type to set on the attribute.
- * @value: The date value of the attribute.
- *
- * Initialize a PKCS\#11 attribute to a date. This will result
- * in a CK_DATE attribute from the PKCS\#11 specs.
- *
- * Returns: (transfer full): the new attribute; when done with the attribute use
- * gck_attribute_free() to free it
- **/
-GckAttribute*
-gck_attribute_new_date (gulong attr_type, const GDate *value)
-{
- GckAttribute *attr = g_slice_new0 (GckAttribute);
- attribute_init_date (attr, attr_type, value, g_realloc);
- return attr;
-}
-
-/**
- * gck_attribute_new_ulong:
- * @attr_type: The PKCS\#11 attribute type to set on the attribute.
- * @value: The ulong value of the attribute.
- *
- * Initialize a PKCS\#11 attribute to a unsigned long. This will result
- * in a CK_ULONG attribute from the PKCS\#11 specs.
- *
- * Returns: (transfer full): the new attribute; when done with the attribute use
- * gck_attribute_free() to free it
- **/
-GckAttribute*
-gck_attribute_new_ulong (gulong attr_type, gulong value)
-{
- GckAttribute *attr = g_slice_new0 (GckAttribute);
- attribute_init_ulong (attr, attr_type, value, g_realloc);
- return attr;
-}
-
-/**
- * gck_attribute_new_string:
- * @attr_type: The PKCS\#11 attribute type to set on the attribute.
- * @value: The null terminated string value of the attribute.
- *
- * Initialize a PKCS\#11 attribute to a string. This will result
- * in an attribute containing the text, but not the null terminator.
- * The text in the attribute will be of the same encoding as you pass
- * to this function.
- *
- * Returns: (transfer full): the new attribute; when done with the attribute use
- * gck_attribute_free() to free it
- **/
-GckAttribute*
-gck_attribute_new_string (gulong attr_type, const gchar *value)
-{
- GckAttribute *attr = g_slice_new0 (GckAttribute);
- attribute_init_string (attr, attr_type, value, g_realloc);
- return attr;
-}
-
-/**
- * gck_attribute_is_invalid:
- * @attr: The attribute to check.
- *
- * Check if the PKCS\#11 attribute represents 'invalid' or 'not found'
- * according to the PKCS\#11 spec. That is, having length
- * of (CK_ULONG)-1.
- *
- * Return value: Whether the attribute represents invalid or not.
- */
-gboolean
-gck_attribute_is_invalid (GckAttribute *attr)
-{
- g_return_val_if_fail (attr, TRUE);
- return attr->length == (gulong)-1;
-}
-
-/**
- * gck_attribute_get_boolean:
- * @attr: The attribute to retrieve value from.
- *
- * Get the CK_BBOOL of a PKCS\#11 attribute. No conversion
- * is performed. It is an error to pass an attribute to this
- * function unless you're know it's supposed to contain a
- * boolean value.
- *
- * Return value: The boolean value of the attribute.
- */
-gboolean
-gck_attribute_get_boolean (GckAttribute *attr)
-{
- gboolean value;
-
- g_return_val_if_fail (attr, FALSE);
- if (gck_attribute_is_invalid (attr))
- return FALSE;
- if (!gck_value_to_boolean (attr->value, attr->length, &value))
- g_return_val_if_reached (FALSE);
- return value;
-}
-
-/**
- * gck_attribute_get_ulong:
- * @attr: The attribute to retrieve value from.
- *
- * Get the CK_ULONG value of a PKCS\#11 attribute. No
- * conversion is performed. It is an error to pass an attribute
- * to this function unless you're know it's supposed to contain
- * a value of the right type.
- *
- * Return value: The ulong value of the attribute.
- */
-gulong
-gck_attribute_get_ulong (GckAttribute *attr)
-{
- gulong value;
-
- g_return_val_if_fail (attr, FALSE);
- if (gck_attribute_is_invalid (attr))
- return 0;
- if (!gck_value_to_ulong (attr->value, attr->length, &value))
- g_return_val_if_reached ((gulong)-1);
- return value;
-}
-
-/**
- * gck_attribute_get_string:
- * @attr: The attribute to retrieve value from.
- *
- * Get the string value of a PKCS\#11 attribute. No
- * conversion is performed. It is an error to pass an attribute
- * to this function unless you're know it's supposed to contain
- * a value of the right type.
- *
- * Return value: (allow-none): a null terminated string, to be freed with
- * g_free(), or %NULL if the value was invalid
- */
-gchar*
-gck_attribute_get_string (GckAttribute *attr)
-{
- g_return_val_if_fail (attr, NULL);
-
- if (gck_attribute_is_invalid (attr))
- return NULL;
- if (!attr->value)
- return NULL;
-
- return g_strndup ((gchar*)attr->value, attr->length);
-}
-
-/**
- * gck_attribute_get_date:
- * @attr: The attribute to retrieve value from.
- * @value: The date value to fill in with the parsed date.
- *
- * Get the CK_DATE of a PKCS\#11 attribute. No
- * conversion is performed. It is an error to pass an attribute
- * to this function unless you're know it's supposed to contain
- * a value of the right type.
- */
-void
-gck_attribute_get_date (GckAttribute *attr, GDate *value)
-{
- guint year, month, day;
- gchar buffer[5];
- CK_DATE *date;
- gchar *end;
-
- g_return_if_fail (attr);
-
- if (gck_attribute_is_invalid (attr)) {
- g_date_clear (value, 1);
- return;
- }
-
- g_return_if_fail (attr->length == sizeof (CK_DATE));
- g_return_if_fail (attr->value);
- date = (CK_DATE*)attr->value;
-
- memset (&buffer, 0, sizeof (buffer));
- memcpy (buffer, date->year, 4);
- year = strtol (buffer, &end, 10);
- g_return_if_fail (end != buffer && !*end);
-
- memset (&buffer, 0, sizeof (buffer));
- memcpy (buffer, date->month, 2);
- month = strtol (buffer, &end, 10);
- g_return_if_fail (end != buffer && !*end);
-
- memset (&buffer, 0, sizeof (buffer));
- memcpy (buffer, date->day, 2);
- day = strtol (buffer, &end, 10);
- g_return_if_fail (end != buffer && !*end);
-
- g_date_set_dmy (value, day, month, year);
-}
-
-/**
- * gck_attribute_dup:
- * @attr: The attribute to duplicate.
- *
- * Duplicate the PKCS\#11 attribute. All value memory is
- * also copied.
- *
- * Returns: (transfer full): the duplicated attribute; use gck_attribute_free()
- * to free it
- */
-GckAttribute*
-gck_attribute_dup (GckAttribute *attr)
-{
- GckAttribute *copy;
-
- if (!attr)
- return NULL;
-
- copy = g_slice_new0 (GckAttribute);
- gck_attribute_init_copy (copy, attr);
- return copy;
-}
-
-static void
-attribute_init_copy (GckAttribute *dest, const GckAttribute *src, GckAllocator allocator)
-{
- g_assert (dest);
- g_assert (src);
- g_assert (allocator);
-
- /*
- * TODO: Handle stupid, dumb, broken, special cases like
- * CKA_WRAP_TEMPLATE and CKA_UNWRAP_TEMPLATE.
- */
-
- memcpy (dest, src, sizeof (GckAttribute));
- if (src->value) {
- dest->value = (allocator) (NULL, src->length ? src->length : 1);
- g_assert (dest->value);
- memcpy ((gpointer)dest->value, src->value, src->length);
- }
-}
-
-/**
- * gck_attribute_init_copy:
- * @dest: An uninitialized attribute.
- * @src: An attribute to copy.
- *
- * Initialize a PKCS\#11 attribute as a copy of another attribute.
- * This copies the value memory as well.
- *
- * When done with the copied attribute you should use
- * gck_attribute_clear() to free the internal memory.
- **/
-void
-gck_attribute_init_copy (GckAttribute *dest, const GckAttribute *src)
-{
- g_return_if_fail (dest);
- g_return_if_fail (src);
- attribute_init_copy (dest, src, g_realloc);
-}
-
-static void
-attribute_clear (GckAttribute *attr, GckAllocator allocator)
-{
- g_assert (attr);
- g_assert (allocator);
- if (attr->value)
- (allocator) ((gpointer)attr->value, 0);
- attr->value = NULL;
- attr->length = 0;
-}
-
-/**
- * gck_attribute_clear:
- * @attr: Attribute to clear.
- *
- * Clear allocated memory held by a statically allocated attribute.
- * These are usually initialized with gck_attribute_init() or a
- * similar function.
- *
- * The type of the attribute will remain set.
- **/
-void
-gck_attribute_clear (GckAttribute *attr)
-{
- g_return_if_fail (attr);
- attribute_clear (attr, g_realloc);
-}
-
-/**
- * gck_attribute_free:
- * @attr: Attribute to free.
- *
- * Free an attribute and its allocated memory. These is usually
- * used with attributes that are allocated by gck_attribute_new()
- * or a similar function.
- **/
-void
-gck_attribute_free (GckAttribute *attr)
-{
- if (attr) {
- attribute_clear (attr, g_realloc);
- g_slice_free (GckAttribute, attr);
- }
-}
-
-/**
- * gck_attribute_equal:
- * @a: (type Gck.Attribute): first attribute to compare
- * @b: (type Gck.Attribute): second attribute to compare
- *
- * Compare two attributes. Useful with <code>GHashTable</code>.
- *
- * Returns: %TRUE if the attributes are equal.
- */
-gboolean
-gck_attribute_equal (gconstpointer a, gconstpointer b)
-{
- const GckAttribute *aa = a;
- const GckAttribute *ab = b;
-
- if (!a && !b)
- return TRUE;
- if (!a || !b)
- return FALSE;
-
- if (aa->type != ab->type)
- return FALSE;
- if (aa->length != ab->length)
- return FALSE;
- if (!aa->value && !ab->value)
- return TRUE;
- if (!aa->value || !ab->value)
- return FALSE;
- return memcmp (aa->value, ab->value, aa->length) == 0;
-}
-
-/**
- * SECTION:gck-attributes
- * @title: GckAttributes
- * @short_description: A set of PKCS11 attributes.
- *
- * A set of GckAttribute structures. These attributes contain information
- * about a PKCS11 object. Use gck_object_get() or gck_object_set() to set and retrieve
- * attributes on an object.
- */
-
-/**
- * GckAttributes:
- *
- * A set of GckAttribute structures.
- */
-struct _GckAttributes {
- GArray *array;
- GckAllocator allocator;
- gboolean locked;
- gint refs;
-};
-
-/**
- * GckAllocator:
- * @data: Memory to allocate or deallocate.
- * @length: New length of memory.
- *
- * An allocator used to allocate data for the attributes in this GckAttributes set.
- *
- * This is a function that acts like g_realloc. Specifically it frees when length is
- * set to zero, it allocates when data is set to NULL, and it reallocates when both
- * are valid.
- *
- * Returns: The allocated memory, or NULL when freeing.
- **/
-
-GType
-gck_attributes_get_type (void)
-{
- static volatile gsize initialized = 0;
- static GType type = 0;
- if (g_once_init_enter (&initialized)) {
- type = g_boxed_type_register_static ("GckAttributes",
- (GBoxedCopyFunc)gck_attributes_ref,
- (GBoxedFreeFunc)gck_attributes_unref);
- g_once_init_leave (&initialized, 1);
- }
- return type;
-}
-
-GType
-gck_attributes_get_boxed_type (void)
-{
- /* Deprecated version */
- return gck_attributes_get_type ();
-}
-
-/**
- * gck_attributes_new:
- *
- * Create a new GckAttributes array.
- *
- * Returns: (transfer full): the new attributes array; when done with the array
- * release it with gck_attributes_unref().
- **/
-GckAttributes*
-gck_attributes_new (void)
-{
- return gck_attributes_new_full (g_realloc);
-}
-
-/**
- * gck_attributes_new_full: (skip)
- * @allocator: Memory allocator for attribute data, or NULL for default.
- *
- * Create a new GckAttributes array.
- *
- * Returns: (transfer full): the new attributes array; when done with the array
- * release it with gck_attributes_unref()
- **/
-GckAttributes*
-gck_attributes_new_full (GckAllocator allocator)
-{
- GckAttributes *attrs;
-
- if (!allocator)
- allocator = g_realloc;
-
- g_assert (sizeof (GckAttribute) == sizeof (CK_ATTRIBUTE));
- attrs = g_slice_new0 (GckAttributes);
- attrs->array = g_array_new (0, 1, sizeof (GckAttribute));
- attrs->allocator = allocator;
- attrs->refs = 1;
- attrs->locked = FALSE;
- return attrs;
-}
-
-/**
- * gck_attributes_new_empty: (skip)
- * @attr_type: The first attribute type to add as empty.
- * @...: The arguments should be values of attribute types, terminated with gck_INVALID.
- *
- * Creates an GckAttributes array with empty attributes. The arguments
- * should be values of attribute types, terminated with gck_INVALID.
- *
- * Returns: (transfer full): the new attributes array; when done with the array
- * release it with gck_attributes_unref()
- **/
-GckAttributes*
-gck_attributes_new_empty (gulong attr_type, ...)
-{
- GckAttributes *attrs = gck_attributes_new_full (g_realloc);
- va_list va;
-
- va_start (va, attr_type);
-
- while (attr_type != GCK_INVALID) {
- gck_attributes_add_empty (attrs, attr_type);
- attr_type = va_arg (va, gulong);
- }
-
- va_end (va);
-
- return attrs;
-}
-
-/**
- * gck_attributes_at:
- * @attrs: The attributes array.
- * @index: The attribute index to retrieve.
- *
- * Get attribute at the specified index in the attribute array.
- *
- * Use gck_attributes_count() to determine how many attributes are
- * in the array.
- *
- * Returns: (transfer none): the specified attribute
- **/
-GckAttribute*
-gck_attributes_at (GckAttributes *attrs, guint index)
-{
- g_return_val_if_fail (attrs && attrs->array, NULL);
- g_return_val_if_fail (index < attrs->array->len, NULL);
- g_return_val_if_fail (!attrs->locked, NULL);
- return &g_array_index (attrs->array, GckAttribute, index);
-}
-
-static GckAttribute*
-attributes_push (GckAttributes *attrs)
-{
- GckAttribute attr;
- g_assert (!attrs->locked);
- memset (&attr, 0, sizeof (attr));
- g_array_append_val (attrs->array, attr);
- return &g_array_index (attrs->array, GckAttribute, attrs->array->len - 1);
-}
-
-/**
- * gck_attributes_add:
- * @attrs: The attributes array to add to
- * @attr: The attribute to add.
- *
- * Add the specified attribute to the array.
- *
- * The value stored in the attribute will be copied.
- *
- * Returns: (transfer none): the attribute that was added
- **/
-GckAttribute *
-gck_attributes_add (GckAttributes *attrs, GckAttribute *attr)
-{
- GckAttribute *added;
- g_return_val_if_fail (attrs && attrs->array, NULL);
- g_return_val_if_fail (!attrs->locked, NULL);
- g_return_val_if_fail (attr, NULL);
- added = attributes_push (attrs);
- attribute_init_copy (added, attr, attrs->allocator);
- return added;
-}
-
-/**
- * gck_attributes_add_data:
- * @attrs: The attributes array to add to.
- * @attr_type: The type of attribute to add.
- * @value: (array length=length): the raw memory of the attribute value
- * @length: The length of the attribute value.
- *
- * Add an attribute with the specified type and value to the array.
- *
- * The value stored in the attribute will be copied.
- *
- * Returns: (transfer none): the attribute that was added
- **/
-GckAttribute *
-gck_attributes_add_data (GckAttributes *attrs,
- gulong attr_type,
- const guchar *value,
- gsize length)
-{
- GckAttribute *added;
- g_return_val_if_fail (attrs, NULL);
- g_return_val_if_fail (!attrs->locked, NULL);
- added = attributes_push (attrs);
- attribute_init (added, attr_type, value, length, attrs->allocator);
- return added;
-}
-
-/**
- * gck_attributes_add_invalid:
- * @attrs: The attributes array to add to.
- * @attr_type: The type of attribute to add.
- *
- * Add an attribute with the specified type and an 'invalid' value to the array.
- *
- * Returns: (transfer none): the attribute that was added
- **/
-GckAttribute *
-gck_attributes_add_invalid (GckAttributes *attrs, gulong attr_type)
-{
- GckAttribute *added;
- g_return_val_if_fail (attrs, NULL);
- g_return_val_if_fail (!attrs->locked, NULL);
- added = attributes_push (attrs);
- gck_attribute_init_invalid (added, attr_type);
- return added;
-}
-
-/**
- * gck_attributes_add_empty:
- * @attrs: The attributes array to add.
- * @attr_type: The type of attribute to add.
- *
- * Add an attribute with the specified type, with empty data.
- *
- * Returns: (transfer none): the attribute that was added
- **/
-GckAttribute *
-gck_attributes_add_empty (GckAttributes *attrs, gulong attr_type)
-{
- GckAttribute *added;
- g_return_val_if_fail (attrs, NULL);
- g_return_val_if_fail (!attrs->locked, NULL);
- added = attributes_push (attrs);
- gck_attribute_init_empty (added, attr_type);
- return added;
-}
-
-/**
- * gck_attributes_add_boolean:
- * @attrs: The attributes array to add to.
- * @attr_type: The type of attribute to add.
- * @value: The boolean value to add.
- *
- * Add an attribute with the specified type and value to the array.
- *
- * The value will be stored as a CK_BBOOL PKCS\#11 style attribute.
- *
- * Returns: (transfer none): the attribute that was added
- **/
-GckAttribute *
-gck_attributes_add_boolean (GckAttributes *attrs, gulong attr_type, gboolean value)
-{
- GckAttribute *added;
- g_return_val_if_fail (attrs, NULL);
- g_return_val_if_fail (!attrs->locked, NULL);
- added = attributes_push (attrs);
- attribute_init_boolean (added, attr_type, value, attrs->allocator);
- return added;
-}
-
-/**
- * gck_attributes_set_boolean:
- * @attrs: the attributes
- * @attr_type: the type of attribute to set
- * @value: boolean value to set
- *
- * Set the attribute of attr_type in the attribute array to the given value.
- * If no such value exists, then add one.
- */
-void
-gck_attributes_set_boolean (GckAttributes *attrs,
- gulong attr_type,
- gboolean value)
-{
- GckAttribute *attr;
-
- g_return_if_fail (attrs != NULL);
- g_return_if_fail (!attrs->locked);
-
- attr = gck_attributes_find (attrs, attr_type);
- if (attr == NULL) {
- gck_attributes_add_boolean (attrs, attr_type, value);
- } else {
- attribute_clear (attr, attrs->allocator);
- attribute_init_boolean (attr, attr_type, value, attrs->allocator);
- }
-}
-
-/**
- * gck_attributes_add_string:
- * @attrs: The attributes array to add to.
- * @attr_type: The type of attribute to add.
- * @value: The null terminated string value to add.
- *
- * Add an attribute with the specified type and value to the array.
- *
- * The value will be copied into the attribute.
- *
- * Returns: (transfer none): the attribute that was added
- **/
-GckAttribute *
-gck_attributes_add_string (GckAttributes *attrs, gulong attr_type, const gchar *value)
-{
- GckAttribute *added;
- g_return_val_if_fail (attrs, NULL);
- g_return_val_if_fail (!attrs->locked, NULL);
- added = attributes_push (attrs);
- attribute_init_string (added, attr_type, value, attrs->allocator);
- return added;
-}
-
-/**
- * gck_attributes_set_string:
- * @attrs: the attributes
- * @attr_type: the type of attribute to set
- * @value: null terminated string value to set
- *
- * Set the attribute of attr_type in the attribute array to the given value.
- * If no such value exists, then add one.
- */
-void
-gck_attributes_set_string (GckAttributes *attrs,
- gulong attr_type,
- const gchar *value)
-{
- GckAttribute *attr;
-
- g_return_if_fail (attrs != NULL);
- g_return_if_fail (!attrs->locked);
-
- attr = gck_attributes_find (attrs, attr_type);
- if (attr == NULL) {
- gck_attributes_add_string (attrs, attr_type, value);
- } else {
- attribute_clear (attr, attrs->allocator);
- attribute_init_string (attr, attr_type, value, attrs->allocator);
- }
-}
-
-/**
- * gck_attributes_add_date:
- * @attrs: The attributes array to add to.
- * @attr_type: The type of attribute to add.
- * @value: The GDate value to add.
- *
- * Add an attribute with the specified type and value to the array.
- *
- * The value will be stored as a CK_DATE PKCS\#11 style attribute.
- *
- * Returns: (transfer none): the attribute that was added
- **/
-GckAttribute *
-gck_attributes_add_date (GckAttributes *attrs, gulong attr_type, const GDate *value)
-{
- GckAttribute *added;
- g_return_val_if_fail (attrs, NULL);
- g_return_val_if_fail (!attrs->locked, NULL);
- added = attributes_push (attrs);
- attribute_init_date (added, attr_type, value, attrs->allocator);
- return added;
-}
-
-/**
- * gck_attributes_set_date:
- * @attrs: the attributes
- * @attr_type: the type of attribute to set
- * @value: date value to set
- *
- * Set the attribute of attr_type in the attribute array to the given value.
- * If no such value exists, then add one.
- */
-void
-gck_attributes_set_date (GckAttributes *attrs,
- gulong attr_type,
- const GDate *value)
-{
- GckAttribute *attr;
-
- g_return_if_fail (attrs != NULL);
- g_return_if_fail (!attrs->locked);
-
- attr = gck_attributes_find (attrs, attr_type);
- if (attr == NULL) {
- gck_attributes_add_date (attrs, attr_type, value);
- } else {
- attribute_clear (attr, attrs->allocator);
- attribute_init_date (attr, attr_type, value, attrs->allocator);
- }
-}
-
-/**
- * gck_attributes_add_ulong:
- * @attrs: The attributes array to add to.
- * @attr_type: The type of attribute to add.
- * @value: The gulong value to add.
- *
- * Add an attribute with the specified type and value to the array.
- *
- * The value will be stored as a CK_ULONG PKCS\#11 style attribute.
- *
- * Returns: (transfer none): the attribute that was added
- **/
-GckAttribute *
-gck_attributes_add_ulong (GckAttributes *attrs, gulong attr_type, gulong value)
-{
- GckAttribute *added;
- g_return_val_if_fail (attrs, NULL);
- g_return_val_if_fail (!attrs->locked, NULL);
- added = attributes_push (attrs);
- attribute_init_ulong (added, attr_type, value, attrs->allocator);
- return added;
-}
-
-/**
- * gck_attributes_set_ulong:
- * @attrs: the attributes
- * @attr_type: the type of attribute to set
- * @value: gulong value to set
- *
- * Set the attribute of attr_type in the attribute array to the given value.
- * If no such value exists, then add one.
- */
-void
-gck_attributes_set_ulong (GckAttributes *attrs,
- gulong attr_type,
- gulong value)
-{
- GckAttribute *attr;
-
- g_return_if_fail (attrs != NULL);
- g_return_if_fail (!attrs->locked);
-
- attr = gck_attributes_find (attrs, attr_type);
- if (attr == NULL) {
- gck_attributes_add_ulong (attrs, attr_type, value);
- } else {
- attribute_clear (attr, attrs->allocator);
- attribute_init_ulong (attr, attr_type, value, attrs->allocator);
- }
-}
-
-/**
- * gck_attributes_add_all:
- * @attrs: A set of attributes
- * @from: Attributes to add
- *
- * Add all attributes in @from to @attrs.
- */
-void
-gck_attributes_add_all (GckAttributes *attrs, GckAttributes *from)
-{
- GckAttribute *attr;
- guint i;
-
- g_return_if_fail (attrs && attrs->array);
- g_return_if_fail (from && from->array);
- g_return_if_fail (!attrs->locked);
-
- for (i = 0; i < from->array->len; ++i) {
- attr = &g_array_index (from->array, GckAttribute, i);
- gck_attributes_add (attrs, attr);
- }
-}
-
-/**
- * gck_attributes_count:
- * @attrs: The attributes array to count.
- *
- * Get the number of attributes in this attribute array.
- *
- * Return value: The number of contained attributes.
- **/
-gulong
-gck_attributes_count (GckAttributes *attrs)
-{
- g_return_val_if_fail (attrs, 0);
- g_return_val_if_fail (!attrs->locked, 0);
- return attrs->array->len;
-}
-
-/**
- * gck_attributes_find:
- * @attrs: The attributes array to search.
- * @attr_type: The type of attribute to find.
- *
- * Find an attribute with the specified type in the array.
- *
- * Returns: (transfer none): the first attribute found with the specified type,
- * or %NULL
- **/
-GckAttribute *
-gck_attributes_find (GckAttributes *attrs, gulong attr_type)
-{
- GckAttribute *attr;
- guint i;
-
- g_return_val_if_fail (attrs && attrs->array, NULL);
- g_return_val_if_fail (!attrs->locked, NULL);
-
- for (i = 0; i < attrs->array->len; ++i) {
- attr = gck_attributes_at (attrs, i);
- if (attr->type == attr_type)
- return attr;
- }
-
- return NULL;
-}
-
-/**
- * gck_attributes_find_boolean:
- * @attrs: The attributes array to search.
- * @attr_type: The type of attribute to find.
- * @value: The resulting gboolean value.
- *
- * Find an attribute with the specified type in the array.
- *
- * The attribute (if found) must be of the right size to store
- * a boolean value (ie: CK_BBOOL). If the attribute is marked invalid
- * then it will be treated as not found.
- *
- * Return value: Whether a value was found or not.
- **/
-gboolean
-gck_attributes_find_boolean (GckAttributes *attrs, gulong attr_type, gboolean *value)
-{
- GckAttribute *attr;
-
- g_return_val_if_fail (value, FALSE);
- g_return_val_if_fail (!attrs->locked, FALSE);
-
- attr = gck_attributes_find (attrs, attr_type);
- if (!attr || gck_attribute_is_invalid (attr))
- return FALSE;
- *value = gck_attribute_get_boolean (attr);
- return TRUE;
-}
-
-/**
- * gck_attributes_find_ulong:
- * @attrs: The attributes array to search.
- * @attr_type: The type of attribute to find.
- * @value: The resulting gulong value.
- *
- * Find an attribute with the specified type in the array.
- *
- * The attribute (if found) must be of the right size to store
- * a unsigned long value (ie: CK_ULONG). If the attribute is marked invalid
- * then it will be treated as not found.
- *
- * Return value: Whether a value was found or not.
- **/
-gboolean
-gck_attributes_find_ulong (GckAttributes *attrs, gulong attr_type, gulong *value)
-{
- GckAttribute *attr;
-
- g_return_val_if_fail (value, FALSE);
- g_return_val_if_fail (!attrs->locked, FALSE);
-
- attr = gck_attributes_find (attrs, attr_type);
- if (!attr || gck_attribute_is_invalid (attr))
- return FALSE;
- *value = gck_attribute_get_ulong (attr);
- return TRUE;
-}
-
-/**
- * gck_attributes_find_string:
- * @attrs: The attributes array to search.
- * @attr_type: The type of attribute to find.
- * @value: The resulting string value.
- *
- * Find an attribute with the specified type in the array.
- *
- * If the attribute is marked invalid then it will be treated as not found.
- * The resulting string will be null-terminated, and must be freed by the caller
- * using g_free().
- *
- * Return value: Whether a value was found or not.
- **/
-gboolean
-gck_attributes_find_string (GckAttributes *attrs, gulong attr_type, gchar **value)
-{
- GckAttribute *attr;
-
- g_return_val_if_fail (value, FALSE);
- g_return_val_if_fail (!attrs->locked, FALSE);
-
- attr = gck_attributes_find (attrs, attr_type);
- if (!attr || gck_attribute_is_invalid (attr))
- return FALSE;
- *value = gck_attribute_get_string (attr);
- return TRUE;
-}
-
-/**
- * gck_attributes_find_date:
- * @attrs: The attributes array to search.
- * @attr_type: The type of attribute to find.
- * @value: The resulting GDate value.
- *
- * Find an attribute with the specified type in the array.
- *
- * The attribute (if found) must be of the right size to store
- * a date value (ie: CK_DATE). If the attribute is marked invalid
- * then it will be treated as not found.
- *
- * Return value: Whether a value was found or not.
- **/
-gboolean
-gck_attributes_find_date (GckAttributes *attrs, gulong attr_type, GDate *value)
-{
- GckAttribute *attr;
-
- g_return_val_if_fail (value, FALSE);
- g_return_val_if_fail (!attrs->locked, FALSE);
-
- attr = gck_attributes_find (attrs, attr_type);
- if (!attr || gck_attribute_is_invalid (attr))
- return FALSE;
- gck_attribute_get_date (attr, value);
- return TRUE;
-}
-
-/**
- * gck_attributes_ref:
- * @attrs: An attribute array
- *
- * Reference this attributes array.
- *
- * Returns: (transfer full): the attributes
- **/
-GckAttributes *
-gck_attributes_ref (GckAttributes *attrs)
-{
- g_return_val_if_fail (attrs, NULL);
- g_atomic_int_inc (&attrs->refs);
- return attrs;
-}
-
-/**
- * gck_attributes_unref:
- * @attrs: An attribute array
- *
- * Unreference this attribute array.
- *
- * When all outstanding references are NULL, the array will be freed.
- */
-void
-gck_attributes_unref (GckAttributes *attrs)
-{
- guint i;
-
- if (!attrs)
- return;
-
- if (g_atomic_int_dec_and_test (&attrs->refs)) {
- g_return_if_fail (attrs->array);
- g_return_if_fail (!attrs->locked);
- for (i = 0; i < attrs->array->len; ++i)
- attribute_clear (gck_attributes_at (attrs, i), attrs->allocator);
- g_array_free (attrs->array, TRUE);
- attrs->array = NULL;
- g_slice_free (GckAttributes, attrs);
- }
-}
-
-/**
- * gck_attributes_contains:
- * @attrs: The attributes to check
- * @match: The attribute to find
- *
- * Check whether the attributes contain a certain attribute.
- *
- * Returns: %TRUE if the attributes contain the attribute.
- */
-gboolean
-gck_attributes_contains (GckAttributes *attrs, GckAttribute *match)
-{
- GckAttribute *attr;
- guint i;
-
- g_return_val_if_fail (attrs && attrs->array, FALSE);
-
- for (i = 0; i < attrs->array->len; ++i) {
- attr = gck_attributes_at (attrs, i);
- if (gck_attribute_equal (attr, match))
- return TRUE;
- }
-
- return FALSE;
-}
-
-
-
-/* -------------------------------------------------------------------------------------------
- * INTERNAL
- *
- * The idea is that while we're processing a GckAttributes array (via PKCS#11
- * C_GetAtributeValue for example) the calling application shouldn't access those
- * attributes at all, except to ref or unref them.
- *
- * We try to help debug this with our 'locked' states. The various processing
- * functions that accept GckAttributes lock the attributes while handing
- * them off to be processed (perhaps in a different thread). We check this locked
- * flag in all public functions accessing GckAttributes.
- *
- * The reason we don't use thread safe or atomic primitives here, is because:
- * a) The attributes are 'locked' by the same thread that prepares the call.
- * b) This is a debugging feature, and should not be relied on for correctness.
- */
-
-void
-_gck_attributes_lock (GckAttributes *attrs)
-{
- g_assert (attrs);
- g_assert (!attrs->locked);
- attrs->locked = TRUE;
-}
-
-void
-_gck_attributes_unlock (GckAttributes *attrs)
-{
- g_assert (attrs);
- g_assert (attrs->locked);
- attrs->locked = FALSE;
-}
-
-CK_ATTRIBUTE_PTR
-_gck_attributes_prepare_in (GckAttributes *attrs, CK_ULONG_PTR n_attrs)
-{
- GckAttribute *attr;
- guint i;
-
- g_assert (attrs);
- g_assert (n_attrs);
- g_assert (attrs->locked);
-
- /* Prepare the attributes to receive their length */
-
- for (i = 0; i < attrs->array->len; ++i) {
- attr = &g_array_index (attrs->array, GckAttribute, i);
- attribute_clear (attr, attrs->allocator);
- }
-
- *n_attrs = attrs->array->len;
- return (CK_ATTRIBUTE_PTR)attrs->array->data;
-}
-
-CK_ATTRIBUTE_PTR
-_gck_attributes_commit_in (GckAttributes *attrs, CK_ULONG_PTR n_attrs)
-{
- GckAttribute *attr;
- guint i;
-
- g_assert (attrs);
- g_assert (n_attrs);
- g_assert (attrs->locked);
-
- /* Allocate each attribute with the length that was set */
-
- for (i = 0; i < attrs->array->len; ++i) {
- attr = &g_array_index (attrs->array, GckAttribute, i);
- g_assert (!attr->value);
- if (attr->length != 0 && attr->length != (gulong)-1) {
- attr->value = (attrs->allocator) (NULL, attr->length);
- g_assert (attr->value);
- }
- }
-
- *n_attrs = attrs->array->len;
- return (CK_ATTRIBUTE_PTR)attrs->array->data;
-}
-
-CK_ATTRIBUTE_PTR
-_gck_attributes_commit_out (GckAttributes *attrs, CK_ULONG_PTR n_attrs)
-{
- g_assert (attrs);
- g_assert (n_attrs);
- g_assert (attrs->locked);
-
- *n_attrs = attrs->array->len;
- return (CK_ATTRIBUTE_PTR)attrs->array->data;
-}
-
-static gboolean
-_gck_attribute_is_ulong_of_type (GckAttribute *attr,
- gulong attr_type)
-{
- if (attr->type != attr_type)
- return FALSE;
- if (attr->length != sizeof (gulong))
- return FALSE;
- if (!attr->value)
- return FALSE;
- return TRUE;
-}
-
-static gboolean
-_gck_attribute_is_sensitive (GckAttribute *attr)
-{
- /*
- * Don't print any just attribute, since they may contain
- * sensitive data
- */
-
- switch (attr->type) {
- #define X(x) case x: return FALSE;
- X (CKA_CLASS)
- X (CKA_TOKEN)
- X (CKA_PRIVATE)
- X (CKA_LABEL)
- X (CKA_APPLICATION)
- X (CKA_OBJECT_ID)
- X (CKA_CERTIFICATE_TYPE)
- X (CKA_ISSUER)
- X (CKA_SERIAL_NUMBER)
- X (CKA_AC_ISSUER)
- X (CKA_OWNER)
- X (CKA_ATTR_TYPES)
- X (CKA_TRUSTED)
- X (CKA_CERTIFICATE_CATEGORY)
- X (CKA_JAVA_MIDP_SECURITY_DOMAIN)
- X (CKA_URL)
- X (CKA_HASH_OF_SUBJECT_PUBLIC_KEY)
- X (CKA_HASH_OF_ISSUER_PUBLIC_KEY)
- X (CKA_CHECK_VALUE)
- X (CKA_KEY_TYPE)
- X (CKA_SUBJECT)
- X (CKA_ID)
- X (CKA_SENSITIVE)
- X (CKA_ENCRYPT)
- X (CKA_DECRYPT)
- X (CKA_WRAP)
- X (CKA_UNWRAP)
- X (CKA_SIGN)
- X (CKA_SIGN_RECOVER)
- X (CKA_VERIFY)
- X (CKA_VERIFY_RECOVER)
- X (CKA_DERIVE)
- X (CKA_START_DATE)
- X (CKA_END_DATE)
- X (CKA_MODULUS_BITS)
- X (CKA_PRIME_BITS)
- /* X (CKA_SUBPRIME_BITS) */
- /* X (CKA_SUB_PRIME_BITS) */
- X (CKA_VALUE_BITS)
- X (CKA_VALUE_LEN)
- X (CKA_EXTRACTABLE)
- X (CKA_LOCAL)
- X (CKA_NEVER_EXTRACTABLE)
- X (CKA_ALWAYS_SENSITIVE)
- X (CKA_KEY_GEN_MECHANISM)
- X (CKA_MODIFIABLE)
- X (CKA_SECONDARY_AUTH)
- X (CKA_AUTH_PIN_FLAGS)
- X (CKA_ALWAYS_AUTHENTICATE)
- X (CKA_WRAP_WITH_TRUSTED)
- X (CKA_WRAP_TEMPLATE)
- X (CKA_UNWRAP_TEMPLATE)
- X (CKA_HW_FEATURE_TYPE)
- X (CKA_RESET_ON_INIT)
- X (CKA_HAS_RESET)
- X (CKA_PIXEL_X)
- X (CKA_PIXEL_Y)
- X (CKA_RESOLUTION)
- X (CKA_CHAR_ROWS)
- X (CKA_CHAR_COLUMNS)
- X (CKA_COLOR)
- X (CKA_BITS_PER_PIXEL)
- X (CKA_CHAR_SETS)
- X (CKA_ENCODING_METHODS)
- X (CKA_MIME_TYPES)
- X (CKA_MECHANISM_TYPE)
- X (CKA_REQUIRED_CMS_ATTRIBUTES)
- X (CKA_DEFAULT_CMS_ATTRIBUTES)
- X (CKA_SUPPORTED_CMS_ATTRIBUTES)
- X (CKA_ALLOWED_MECHANISMS)
- X (CKA_X_ASSERTION_TYPE)
- X (CKA_X_CERTIFICATE_VALUE)
- X (CKA_X_PURPOSE)
- X (CKA_X_PEER)
- #undef X
- }
-
- return TRUE;
-}
-
-static void
-_gck_format_class (GString *output,
- CK_OBJECT_CLASS klass)
-{
- const gchar *string = NULL;
-
- switch (klass) {
- #define X(x) case x: string = #x; break;
- X (CKO_DATA)
- X (CKO_CERTIFICATE)
- X (CKO_PUBLIC_KEY)
- X (CKO_PRIVATE_KEY)
- X (CKO_SECRET_KEY)
- X (CKO_HW_FEATURE)
- X (CKO_DOMAIN_PARAMETERS)
- X (CKO_MECHANISM)
- X (CKO_X_TRUST_ASSERTION)
- }
-
- if (string != NULL)
- g_string_append (output, string);
- else
- g_string_append_printf (output, "0x%08lX", klass);
-}
-
-static void
-_gck_format_assertion_type (GString *output,
- CK_X_ASSERTION_TYPE type)
-{
- const gchar *string = NULL;
-
- switch (type) {
- #define X(x) case x: string = #x; break;
- X (CKT_X_UNTRUSTED_CERTIFICATE)
- X (CKT_X_PINNED_CERTIFICATE)
- X (CKT_X_ANCHORED_CERTIFICATE)
- #undef X
- }
-
- if (string != NULL)
- g_string_append (output, string);
- else
- g_string_append_printf (output, "0x%08lX", type);
-}
-
-static void
-_gck_format_key_type (GString *output,
- CK_KEY_TYPE type)
-{
- const gchar *string = NULL;
-
- switch (type) {
- #define X(x) case x: string = #x; break;
- X (CKK_RSA)
- X (CKK_DSA)
- X (CKK_DH)
- /* X (CKK_ECDSA) */
- X (CKK_EC)
- X (CKK_X9_42_DH)
- X (CKK_KEA)
- X (CKK_GENERIC_SECRET)
- X (CKK_RC2)
- X (CKK_RC4)
- X (CKK_DES)
- X (CKK_DES2)
- X (CKK_DES3)
- X (CKK_CAST)
- X (CKK_CAST3)
- X (CKK_CAST128)
- X (CKK_RC5)
- X (CKK_IDEA)
- X (CKK_SKIPJACK)
- X (CKK_BATON)
- X (CKK_JUNIPER)
- X (CKK_CDMF)
- X (CKK_AES)
- X (CKK_BLOWFISH)
- X (CKK_TWOFISH)
- #undef X
- }
-
- if (string != NULL)
- g_string_append (output, string);
- else
- g_string_append_printf (output, "0x%08lX", type);
-}
-
-static void
-_gck_format_certificate_type (GString *output,
- CK_CERTIFICATE_TYPE type)
-{
- const gchar *string = NULL;
-
- switch (type) {
- #define X(x) case x: string = #x; break;
- X (CKC_X_509)
- X (CKC_X_509_ATTR_CERT)
- X (CKC_WTLS)
- }
-
- if (string != NULL)
- g_string_append (output, string);
- else
- g_string_append_printf (output, "0x%08lX", type);
-}
-
-static void
-_gck_format_attribute_type (GString *output,
- gulong type)
-{
- const gchar *string = NULL;
-
- switch (type) {
- #define X(x) case x: string = #x; break;
- X (CKA_CLASS)
- X (CKA_TOKEN)
- X (CKA_PRIVATE)
- X (CKA_LABEL)
- X (CKA_APPLICATION)
- X (CKA_VALUE)
- X (CKA_OBJECT_ID)
- X (CKA_CERTIFICATE_TYPE)
- X (CKA_ISSUER)
- X (CKA_SERIAL_NUMBER)
- X (CKA_AC_ISSUER)
- X (CKA_OWNER)
- X (CKA_ATTR_TYPES)
- X (CKA_TRUSTED)
- X (CKA_CERTIFICATE_CATEGORY)
- X (CKA_JAVA_MIDP_SECURITY_DOMAIN)
- X (CKA_URL)
- X (CKA_HASH_OF_SUBJECT_PUBLIC_KEY)
- X (CKA_HASH_OF_ISSUER_PUBLIC_KEY)
- X (CKA_CHECK_VALUE)
- X (CKA_KEY_TYPE)
- X (CKA_SUBJECT)
- X (CKA_ID)
- X (CKA_SENSITIVE)
- X (CKA_ENCRYPT)
- X (CKA_DECRYPT)
- X (CKA_WRAP)
- X (CKA_UNWRAP)
- X (CKA_SIGN)
- X (CKA_SIGN_RECOVER)
- X (CKA_VERIFY)
- X (CKA_VERIFY_RECOVER)
- X (CKA_DERIVE)
- X (CKA_START_DATE)
- X (CKA_END_DATE)
- X (CKA_MODULUS)
- X (CKA_MODULUS_BITS)
- X (CKA_PUBLIC_EXPONENT)
- X (CKA_PRIVATE_EXPONENT)
- X (CKA_PRIME_1)
- X (CKA_PRIME_2)
- X (CKA_EXPONENT_1)
- X (CKA_EXPONENT_2)
- X (CKA_COEFFICIENT)
- X (CKA_PRIME)
- X (CKA_SUBPRIME)
- X (CKA_BASE)
- X (CKA_PRIME_BITS)
- /* X (CKA_SUBPRIME_BITS) */
- /* X (CKA_SUB_PRIME_BITS) */
- X (CKA_VALUE_BITS)
- X (CKA_VALUE_LEN)
- X (CKA_EXTRACTABLE)
- X (CKA_LOCAL)
- X (CKA_NEVER_EXTRACTABLE)
- X (CKA_ALWAYS_SENSITIVE)
- X (CKA_KEY_GEN_MECHANISM)
- X (CKA_MODIFIABLE)
- X (CKA_ECDSA_PARAMS)
- /* X (CKA_EC_PARAMS) */
- X (CKA_EC_POINT)
- X (CKA_SECONDARY_AUTH)
- X (CKA_AUTH_PIN_FLAGS)
- X (CKA_ALWAYS_AUTHENTICATE)
- X (CKA_WRAP_WITH_TRUSTED)
- X (CKA_WRAP_TEMPLATE)
- X (CKA_UNWRAP_TEMPLATE)
- X (CKA_HW_FEATURE_TYPE)
- X (CKA_RESET_ON_INIT)
- X (CKA_HAS_RESET)
- X (CKA_PIXEL_X)
- X (CKA_PIXEL_Y)
- X (CKA_RESOLUTION)
- X (CKA_CHAR_ROWS)
- X (CKA_CHAR_COLUMNS)
- X (CKA_COLOR)
- X (CKA_BITS_PER_PIXEL)
- X (CKA_CHAR_SETS)
- X (CKA_ENCODING_METHODS)
- X (CKA_MIME_TYPES)
- X (CKA_MECHANISM_TYPE)
- X (CKA_REQUIRED_CMS_ATTRIBUTES)
- X (CKA_DEFAULT_CMS_ATTRIBUTES)
- X (CKA_SUPPORTED_CMS_ATTRIBUTES)
- X (CKA_ALLOWED_MECHANISMS)
- X (CKA_X_ASSERTION_TYPE)
- X (CKA_X_CERTIFICATE_VALUE)
- X (CKA_X_PURPOSE)
- X (CKA_X_PEER)
- #undef X
- }
-
- if (string != NULL)
- g_string_append (output, string);
- else
- g_string_append_printf (output, "CKA_0x%08lX", type);
-}
-
-static void
-_gck_format_some_bytes (GString *output,
- gconstpointer bytes,
- gulong length)
-{
- guchar ch;
- const guchar *data = bytes;
- gulong i;
-
- if (bytes == NULL) {
- g_string_append (output, "NULL");
- return;
- }
-
- g_string_append_c (output, '\"');
- for (i = 0; i < length && i < 128; i++) {
- ch = data[i];
- if (ch == '\t')
- g_string_append (output, "\\t");
- else if (ch == '\n')
- g_string_append (output, "\\n");
- else if (ch == '\r')
- g_string_append (output, "\\r");
- else if (ch >= 32 && ch < 127)
- g_string_append_c (output, ch);
- else
- g_string_append_printf (output, "\\x%02x", ch);
- }
-
- if (i < length)
- g_string_append_printf (output, "...");
- g_string_append_c (output, '\"');
-}
-
-static void
-_gck_format_attributes (GString *output,
- GckAttributes *attrs)
-{
- GckAttribute *attr;
- guint count, i;
-
- count = attrs->array->len;
- g_string_append_printf (output, "(%d) [", count);
- for (i = 0; i < count; i++) {
- attr = &g_array_index (attrs->array, GckAttribute, i);
- if (i > 0)
- g_string_append_c (output, ',');
- g_string_append (output, " { ");
- _gck_format_attribute_type (output, attr->type);
- g_string_append (output, " = ");
- if (attr->length == GCK_INVALID) {
- g_string_append_printf (output, " (-1) INVALID");
- } else if (_gck_attribute_is_ulong_of_type (attr, CKA_CLASS)) {
- _gck_format_class (output, *((CK_OBJECT_CLASS_PTR)attr->value));
- } else if (_gck_attribute_is_ulong_of_type (attr, CKA_X_ASSERTION_TYPE)) {
- _gck_format_assertion_type (output, *((CK_X_ASSERTION_TYPE *)attr->value));
- } else if (_gck_attribute_is_ulong_of_type (attr, CKA_CERTIFICATE_TYPE)) {
- _gck_format_certificate_type (output, *((CK_CERTIFICATE_TYPE *)attr->value));
- } else if (_gck_attribute_is_ulong_of_type (attr, CKA_KEY_TYPE)) {
- _gck_format_key_type (output, *((CK_KEY_TYPE *)attr->value));
- } else if (_gck_attribute_is_sensitive (attr)) {
- g_string_append_printf (output, " (%lu) NOT-PRINTED", attr->length);
- } else {
- g_string_append_printf (output, " (%lu) ", attr->length);
- _gck_format_some_bytes (output, attr->value, attr->length);
- }
- g_string_append (output, " }");
- }
- g_string_append (output, " ]");
-}
-
-gchar *
-_gck_attributes_format (GckAttributes *attrs)
-{
- GString *output = g_string_sized_new (128);
- _gck_format_attributes (output, attrs);
- return g_string_free (output, FALSE);
-}
diff --git a/gck/gck-call.c b/gck/gck-call.c
deleted file mode 100644
index f8393303..00000000
--- a/gck/gck-call.c
+++ /dev/null
@@ -1,542 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gck-call.c - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2008, Stefan Walter
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <nielsen@memberwebs.com>
-*/
-
-#include "config.h"
-
-#include "gck-private.h"
-
-#include <string.h>
-
-typedef struct _GckCallSource GckCallSource;
-
-static gpointer _gck_call_parent_class = NULL;
-
-struct _GckCall {
- GObject parent;
- GckModule *module;
-
- /* For making the call */
- GckPerformFunc perform;
- GckCompleteFunc complete;
- GckArguments *args;
- GCancellable *cancellable;
- GDestroyNotify destroy;
- CK_RV rv;
-
- /* For result callback only */
- gpointer object;
- GAsyncReadyCallback callback;
- gpointer user_data;
-};
-
-struct _GckCallClass {
- GObjectClass parent;
- GThreadPool *thread_pool;
- GAsyncQueue *completed_queue;
- guint completed_id;
-};
-
-struct _GckCallSource {
- GSource source;
- GckCallClass *klass;
-};
-
-/* ----------------------------------------------------------------------------
- * HELPER FUNCTIONS
- */
-
-static CK_RV
-perform_call (GckPerformFunc func, GCancellable *cancellable, GckArguments *args)
-{
- CK_RV rv;
-
- /* Double check a few things */
- g_assert (func);
- g_assert (args);
-
- if (cancellable) {
- if (g_cancellable_is_cancelled (cancellable)) {
- return CKR_FUNCTION_CANCELED;
- }
-
- /* Push for the notify callback */
- g_object_ref (cancellable);
- g_cancellable_push_current (cancellable);
- }
-
- rv = (func) (args);
-
- if (cancellable) {
- g_cancellable_pop_current (cancellable);
- g_object_unref (cancellable);
- }
-
- return rv;
-}
-
-static gboolean
-complete_call (GckCompleteFunc func, GckArguments *args, CK_RV result)
-{
- /* Double check a few things */
- g_assert (args);
-
- /* If no complete function, then just ignore */
- if (!func)
- return TRUE;
-
- return (func) (args, result);
-}
-
-
-static void
-process_async_call (gpointer data, GckCallClass *klass)
-{
- GckCall *call = GCK_CALL (data);
-
- g_assert (GCK_IS_CALL (call));
-
- call->rv = perform_call (call->perform, call->cancellable, call->args);
-
- g_async_queue_push (klass->completed_queue, call);
-
- /* Wakeup main thread if on a separate thread */
- g_main_context_wakeup (NULL);
-}
-
-static void
-process_result (GckCall *call, gpointer unused)
-{
- gboolean stop = FALSE;
-
- /* Double check a few things */
- g_assert (GCK_IS_CALL (call));
-
- if (call->cancellable) {
- /* Don't call the callback when cancelled */
- if (g_cancellable_is_cancelled (call->cancellable)) {
- call->rv = CKR_FUNCTION_CANCELED;
- stop = TRUE;
- }
- }
-
- /*
- * Hmmm, does the function want to actually be done?
- * If not, then queue this call again.
- */
- if (!stop && !complete_call (call->complete, call->args, call->rv)) {
- g_object_ref (call);
- g_thread_pool_push (GCK_CALL_GET_CLASS (call)->thread_pool, call, NULL);
-
- /* All done, finish processing */
- } else if (call->callback) {
- (call->callback) (call->object, G_ASYNC_RESULT (call),
- call->user_data);
- }
-}
-
-static gboolean
-process_completed (GckCallClass *klass)
-{
- gpointer call;
-
- g_assert (klass->completed_queue);
-
- call = g_async_queue_try_pop (klass->completed_queue);
- if (call) {
- process_result (call, NULL);
- g_object_unref (call);
- return TRUE;
- }
-
- return FALSE;
-}
-
-static gboolean
-completed_prepare(GSource* base, gint *timeout)
-{
- GckCallSource *source = (GckCallSource*)base;
- gboolean have;
-
- g_assert (source->klass->completed_queue);
- have = g_async_queue_length (source->klass->completed_queue) > 0;
- *timeout = have ? 0 : -1;
- return have;
-}
-
-static gboolean
-completed_check(GSource* base)
-{
- GckCallSource *source = (GckCallSource*)base;
- g_assert (source->klass->completed_queue);
- return g_async_queue_length (source->klass->completed_queue) > 0;
-}
-
-static gboolean
-completed_dispatch(GSource* base, GSourceFunc callback, gpointer user_data)
-{
- GckCallSource *source = (GckCallSource*)base;
- process_completed (source->klass);
- return TRUE;
-}
-
-static void
-completed_finalize(GSource* base)
-{
-
-}
-
-static GSourceFuncs completed_functions = {
- completed_prepare,
- completed_check,
- completed_dispatch,
- completed_finalize
-};
-
-/* ----------------------------------------------------------------------------
- * OBJECT
- */
-
-static void
-_gck_call_init (GckCall *call)
-{
- call->rv = CKR_OK;
-}
-
-static void
-_gck_call_finalize (GObject *obj)
-{
- GckCall *call = GCK_CALL (obj);
-
- if (call->module)
- g_object_unref (call->module);
- call->module = NULL;
-
- if (call->object)
- g_object_unref (call->object);
- call->object = NULL;
-
- if (call->cancellable)
- g_object_unref (call->cancellable);
- call->cancellable = NULL;
-
- if (call->destroy)
- (call->destroy) (call->args);
- call->destroy = NULL;
- call->args = NULL;
-
- G_OBJECT_CLASS (_gck_call_parent_class)->finalize (obj);
-}
-
-static gpointer
-_gck_call_get_user_data (GAsyncResult *async_result)
-{
- g_return_val_if_fail (GCK_IS_CALL (async_result), NULL);
- return GCK_CALL (async_result)->user_data;
-}
-
-static GObject*
-_gck_call_get_source_object (GAsyncResult *async_result)
-{
- g_return_val_if_fail (GCK_IS_CALL (async_result), NULL);
- return GCK_CALL (async_result)->object;
-}
-
-static void
-_gck_call_implement_async_result (GAsyncResultIface *iface)
-{
- iface->get_user_data = _gck_call_get_user_data;
- iface->get_source_object = _gck_call_get_source_object;
-}
-
-static void
-_gck_call_class_init (GckCallClass *klass)
-{
- GObjectClass *gobject_class = (GObjectClass*)klass;
-
- _gck_call_parent_class = g_type_class_peek_parent (klass);
- gobject_class->finalize = _gck_call_finalize;
-}
-
-static void
-_gck_call_base_init (GckCallClass *klass)
-{
- GckCallSource *source;
- GMainContext *context;
- GError *err = NULL;
-
- klass->thread_pool = g_thread_pool_new ((GFunc)process_async_call, klass, 16, FALSE, &err);
- if (!klass->thread_pool) {
- g_critical ("couldn't create thread pool: %s",
- err && err->message ? err->message : "");
- return;
- }
-
- klass->completed_queue = g_async_queue_new_full (g_object_unref);
- g_assert (klass->completed_queue);
-
- context = g_main_context_default ();
- g_assert (context);
-
- /* Add our idle handler which processes other tasks */
- source = (GckCallSource*)g_source_new (&completed_functions, sizeof (GckCallSource));
- source->klass = klass;
- klass->completed_id = g_source_attach ((GSource*)source, context);
- g_source_set_callback ((GSource*)source, NULL, NULL, NULL);
- g_source_unref ((GSource*)source);
-}
-
-static void
-_gck_call_base_finalize (GckCallClass *klass)
-{
- GMainContext *context;
- GSource *src;
-
- if (klass->thread_pool) {
- g_assert (g_thread_pool_unprocessed (klass->thread_pool) == 0);
- g_thread_pool_free (klass->thread_pool, FALSE, TRUE);
- klass->thread_pool = NULL;
- }
-
- if (klass->completed_id) {
- context = g_main_context_default ();
- g_return_if_fail (context);
-
- src = g_main_context_find_source_by_id (context, klass->completed_id);
- g_assert (src);
- g_source_destroy (src);
- klass->completed_id = 0;
- }
-
- if (klass->completed_queue) {
- g_assert (g_async_queue_length (klass->completed_queue));
- g_async_queue_unref (klass->completed_queue);
- klass->completed_queue = NULL;
- }
-}
-
-GType
-_gck_call_get_type (void)
-{
- static volatile gsize type_id__volatile = 0;
-
- if (g_once_init_enter (&type_id__volatile)) {
-
- static const GTypeInfo type_info = {
- sizeof (GckCallClass),
- (GBaseInitFunc)_gck_call_base_init,
- (GBaseFinalizeFunc)_gck_call_base_finalize,
- (GClassInitFunc)_gck_call_class_init,
- (GClassFinalizeFunc)NULL,
- NULL, // class_data
- sizeof (GckCall),
- 0, // n_preallocs
- (GInstanceInitFunc)_gck_call_init,
- };
-
- static const GInterfaceInfo interface_info = {
- (GInterfaceInitFunc)_gck_call_implement_async_result
- };
-
- GType type_id = g_type_register_static (G_TYPE_OBJECT, "_GckCall", &type_info, 0);
- g_type_add_interface_static (type_id, G_TYPE_ASYNC_RESULT, &interface_info);
-
- g_once_init_leave (&type_id__volatile, type_id);
- }
-
- return type_id__volatile;
-}
-
-/* ----------------------------------------------------------------------------
- * PUBLIC
- */
-
-void
-_gck_call_uninitialize (void)
-{
-
-}
-
-gboolean
-_gck_call_sync (gpointer object, gpointer perform, gpointer complete,
- gpointer data, GCancellable *cancellable, GError **err)
-{
- GckArguments *args = (GckArguments*)data;
- GckModule *module = NULL;
- CK_RV rv;
-
- g_assert (!object || G_IS_OBJECT (object));
- g_assert (perform);
- g_assert (args);
-
- if (object) {
- g_object_get (object, "module", &module, "handle", &args->handle, NULL);
- g_assert (GCK_IS_MODULE (module));
-
- /* We now hold a reference to module until below */
- args->pkcs11 = gck_module_get_functions (module);
- g_assert (args->pkcs11);
- }
-
- do {
- rv = perform_call (perform, cancellable, args);
- if (rv == CKR_FUNCTION_CANCELED)
- break;
-
- } while (!complete_call (complete, args, rv));
-
- if (module)
- g_object_unref (module);
-
- if (rv == CKR_OK)
- return TRUE;
-
- g_set_error (err, GCK_ERROR, rv, "%s", gck_message_from_rv (rv));
- return FALSE;
-}
-
-gpointer
-_gck_call_async_prep (gpointer object, gpointer cb_object, gpointer perform,
- gpointer complete, gsize args_size, gpointer destroy)
-{
- GckArguments *args;
- GckCall *call;
-
- g_assert (!object || G_IS_OBJECT (object));
- g_assert (!cb_object || G_IS_OBJECT (cb_object));
- g_assert (perform);
-
- if (!destroy)
- destroy = g_free;
-
- if (args_size == 0)
- args_size = sizeof (GckArguments);
- g_assert (args_size >= sizeof (GckArguments));
-
- args = g_malloc0 (args_size);
- call = g_object_new (GCK_TYPE_CALL, NULL);
- call->destroy = (GDestroyNotify)destroy;
- call->perform = (GckPerformFunc)perform;
- call->complete = (GckCompleteFunc)complete;
- call->object = cb_object ? g_object_ref (cb_object) : NULL;
-
- /* Hook the two together */
- call->args = args;
- call->args->call = call;
-
- /* Setup call object if available */
- if (object != NULL)
- _gck_call_async_object (call, object);
-
- return args;
-}
-
-void
-_gck_call_async_object (GckCall *call, gpointer object)
-{
- g_assert (GCK_IS_CALL (call));
- g_assert (call->args);
-
- if (call->module)
- g_object_unref (call->module);
- call->module = NULL;
-
- g_object_get (object, "module", &call->module, "handle", &call->args->handle, NULL);
- g_assert (GCK_IS_MODULE (call->module));
- call->args->pkcs11 = gck_module_get_functions (call->module);
-
- /* We now hold a reference on module until finalize */
-}
-
-GckCall*
-_gck_call_async_ready (gpointer data, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- GckArguments *args = (GckArguments*)data;
- g_assert (GCK_IS_CALL (args->call));
-
- args->call->cancellable = cancellable;
- if (cancellable) {
- g_assert (G_IS_CANCELLABLE (cancellable));
- g_object_ref (cancellable);
- }
-
- args->call->callback = callback;
- args->call->user_data = user_data;
-
- return args->call;
-}
-
-void
-_gck_call_async_go (GckCall *call)
-{
- g_assert (GCK_IS_CALL (call));
-
- /* To keep things balanced, process at one completed event */
- process_completed(GCK_CALL_GET_CLASS (call));
-
- g_assert (GCK_CALL_GET_CLASS (call)->thread_pool);
- g_thread_pool_push (GCK_CALL_GET_CLASS (call)->thread_pool, call, NULL);
-}
-
-void
-_gck_call_async_ready_go (gpointer data, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- GckCall *call = _gck_call_async_ready (data, cancellable, callback, user_data);
- _gck_call_async_go (call);
-}
-
-gboolean
-_gck_call_basic_finish (GAsyncResult *result, GError **err)
-{
- CK_RV rv;
-
- g_return_val_if_fail (GCK_IS_CALL (result), FALSE);
-
- rv = GCK_CALL (result)->rv;
- if (rv == CKR_OK)
- return TRUE;
-
- g_set_error (err, GCK_ERROR, rv, "%s", gck_message_from_rv (rv));
- return FALSE;
-}
-
-void
-_gck_call_async_short (GckCall *call, CK_RV rv)
-{
- g_assert (GCK_IS_CALL (call));
-
- call->rv = rv;
-
- /* Already complete, so just push it for processing in main loop */
- g_assert (GCK_CALL_GET_CLASS (call)->completed_queue);
- g_async_queue_push (GCK_CALL_GET_CLASS (call)->completed_queue, call);
- g_main_context_wakeup (NULL);
-}
-
-gpointer
-_gck_call_get_arguments (GckCall *call)
-{
- g_assert (GCK_IS_CALL (call));
- return call->args;
-}
diff --git a/gck/gck-debug.c b/gck/gck-debug.c
deleted file mode 100644
index c30da4de..00000000
--- a/gck/gck-debug.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */
-/*
- * Copyright (C) 2007 Collabora Ltd.
- * Copyright (C) 2007 Nokia Corporation
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "config.h"
-
-#include "gck.h"
-#include "gck-debug.h"
-
-#include <glib.h>
-#include <glib/gstdio.h>
-
-#include "pkcs11.h"
-
-#ifdef WITH_DEBUG
-
-static gsize initialized_flags = 0;
-static GckDebugFlags current_flags = 0;
-
-static GDebugKey keys[] = {
- { "session", GCK_DEBUG_SESSION },
- { "enumerator", GCK_DEBUG_ENUMERATOR },
- { 0, }
-};
-
-static void
-debug_set_flags (GckDebugFlags new_flags)
-{
- current_flags |= new_flags;
-}
-
-void
-_gck_debug_set_flags (const gchar *flags_string)
-{
- guint nkeys;
-
- for (nkeys = 0; keys[nkeys].value; nkeys++);
-
- if (flags_string)
- debug_set_flags (g_parse_debug_string (flags_string, keys, nkeys));
-}
-
-static void
-initialize_debug_flags (void)
-{
- if (g_once_init_enter (&initialized_flags)) {
- _gck_debug_set_flags (g_getenv ("GCK_DEBUG"));
- g_once_init_leave (&initialized_flags, 1);
- }
-}
-
-gboolean
-_gck_debug_flag_is_set (GckDebugFlags flag)
-{
- if G_UNLIKELY (!initialized_flags)
- initialize_debug_flags ();
- return (flag & current_flags) != 0;
-}
-
-void
-_gck_debug_message (GckDebugFlags flag,
- const gchar *format,
- ...)
-{
- gchar *message;
- va_list args;
-
- if G_UNLIKELY (!initialized_flags)
- initialize_debug_flags ();
-
- va_start (args, format);
- message = g_strdup_vprintf (format, args);
- va_end (args);
-
- if (flag & current_flags)
- g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s", message);
-
- g_free (message);
-}
-
-#else /* !WITH_DEBUG */
-
-gboolean
-_gck_debug_flag_is_set (GckDebugFlags flag)
-{
- return FALSE;
-}
-
-void
-_gck_debug_message (GckDebugFlags flag,
- const gchar *format,
- ...)
-{
-}
-
-void
-_gck_debug_set_flags (const gchar *flags_string)
-{
-}
-
-#endif /* !WITH_DEBUG */
diff --git a/gck/gck-debug.h b/gck/gck-debug.h
deleted file mode 100644
index 42432925..00000000
--- a/gck/gck-debug.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (C) 2007 Nokia Corporation
- * Copyright (C) 2007-2011 Collabora Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef GCK_DEBUG_H
-#define GCK_DEBUG_H
-
-#include "config.h"
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-/* Please keep this enum in sync with #keys in gck-debug.c */
-typedef enum {
- GCK_DEBUG_SESSION = 1 << 1,
- GCK_DEBUG_ENUMERATOR = 1 << 2,
-} GckDebugFlags;
-
-gboolean _gck_debug_flag_is_set (GckDebugFlags flag);
-
-void _gck_debug_set_flags (const gchar *flags_string);
-
-void _gck_debug_message (GckDebugFlags flag,
- const gchar *format,
- ...) G_GNUC_PRINTF (2, 3);
-
-void _gck_debug_init (void);
-
-G_END_DECLS
-
-#endif /* GCK_DEBUG_H */
-
-/* -----------------------------------------------------------------------------
- * Below this point is outside the GCK_DEBUG_H guard - so it can take effect
- * more than once. So you can do:
- *
- * #define DEBUG_FLAG GCK_DEBUG_ONE_THING
- * #include "gck-debug.h"
- * ...
- * DEBUG ("if we're debugging one thing");
- * ...
- * #undef DEBUG_FLAG
- * #define DEBUG_FLAG GCK_DEBUG_OTHER_THING
- * #include "gck-debug.h"
- * ...
- * DEBUG ("if we're debugging the other thing");
- * ...
- */
-
-#ifdef DEBUG_FLAG
-#ifdef WITH_DEBUG
-
-#undef _gck_debug
-#define _gck_debug(format, ...) \
- _gck_debug_message (DEBUG_FLAG, "%s: " format, G_STRFUNC, ##__VA_ARGS__)
-
-#undef _gck_debugging
-#define _gck_debugging \
- _gck_debug_flag_is_set (DEBUG_FLAG)
-
-#else /* !defined (WITH_DEBUG) */
-
-#undef _gck_debug
-#define _gck_debug(format, ...) \
- do {} while (0)
-
-#undef _gck_debugging
-#define _gck_debugging 0
-
-#endif /* !defined (WITH_DEBUG) */
-
-#endif /* defined (DEBUG_FLAG) */
diff --git a/gck/gck-deprecated.h b/gck/gck-deprecated.h
deleted file mode 100644
index 3121a9da..00000000
--- a/gck/gck-deprecated.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gck-deprecated.h - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2011 Stefan Walter
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#ifndef GCK_DEPRECATED_H
-#define GCK_DEPRECATED_H
-
-#include "gck.h"
-
-G_BEGIN_DECLS
-
-#ifndef GCK_DISABLE_DEPRECATED
-
-typedef GArray GckMechanisms;
-
-#define gck_mechanisms_free(a) (g_array_free (a, TRUE))
-
-#define CKR_GCK_MODULE_PROBLEM GCK_ERROR_MODULE_PROBLEM
-
-GQuark gck_get_error_quark (void);
-
-GQuark gck_uri_get_error_quark (void);
-
-#define GCK_URI_BAD_PREFIX GCK_URI_BAD_SCHEME
-
-GType gck_attributes_get_boxed_type (void) G_GNUC_CONST;
-
-#endif /* GCK_DISABLE_DEPRECATED */
-
-G_END_DECLS
-
-#endif /* GCK_H */
diff --git a/gck/gck-dump.c b/gck/gck-dump.c
deleted file mode 100644
index 9003ce86..00000000
--- a/gck/gck-dump.c
+++ /dev/null
@@ -1,361 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gck-dump - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2010 Collabora Ltd
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gck.h"
-#include "gck-private.h"
-
-#include "egg/egg-hex.h"
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "pkcs11/pkcs11i.h"
-#include "pkcs11/pkcs11x.h"
-
-static void
-dump_class_value (gulong klass)
-{
- switch (klass) {
- #define DX(x) case x: g_printerr ("%s", #x); break;
- DX(CKO_DATA);
- DX(CKO_CERTIFICATE);
- DX(CKO_PUBLIC_KEY);
- DX(CKO_PRIVATE_KEY);
- DX(CKO_SECRET_KEY);
- DX(CKO_HW_FEATURE);
- DX(CKO_DOMAIN_PARAMETERS);
- DX(CKO_MECHANISM);
- DX(CKO_G_COLLECTION);
- DX(CKO_G_SEARCH);
- DX(CKO_G_CREDENTIAL);
- DX(CKO_X_TRUST_ASSERTION);
- #undef DX
-
- default:
- g_printerr ("%s0x%08x",
- (klass & CKO_VENDOR_DEFINED) == CKA_VENDOR_DEFINED ?
- "CKO_VENDOR_DEFINED|" : "",
- (unsigned int)klass);
- break;
- }
-}
-
-static void
-dump_assertion_type_value (gulong type)
-{
- switch (type) {
- #define DX(x) case x: g_printerr ("%s", #x); break;
- DX(CKT_X_DISTRUSTED_CERTIFICATE);
- DX(CKT_X_PINNED_CERTIFICATE);
- DX(CKT_X_ANCHORED_CERTIFICATE);
- #undef DX
-
- default:
- g_printerr ("%u", (unsigned int)type);
- break;
- }
-}
-
-static void
-dump_attribute_value (GckAttribute *attr)
-{
- gchar *data;
- gsize len;
-
- g_assert (attr->length != G_MAXULONG);
-
- if (attr->value == NULL) {
- g_printerr ("[null]");
- return;
- }
-
- switch (attr->type) {
- case CKA_CLASS:
- if (attr->length == sizeof (CK_OBJECT_CLASS)) {
- dump_class_value (*(CK_ULONG_PTR)attr->value);
- return;
- }
- break;
-
- case CKA_X_ASSERTION_TYPE:
- if (attr->length == sizeof (CK_X_ASSERTION_TYPE)) {
- dump_assertion_type_value (*(CK_X_ASSERTION_TYPE*)attr->value);
- return;
- }
- break;
-
- case CKA_CERTIFICATE_TYPE:
- case CKA_CERTIFICATE_CATEGORY:
- case CKA_JAVA_MIDP_SECURITY_DOMAIN:
- case CKA_KEY_TYPE:
- case CKA_PRIME_BITS:
- case CKA_SUB_PRIME_BITS:
- case CKA_VALUE_BITS:
- case CKA_VALUE_LEN:
- case CKA_KEY_GEN_MECHANISM:
- case CKA_HW_FEATURE_TYPE:
- case CKA_PIXEL_X:
- case CKA_PIXEL_Y:
- case CKA_RESOLUTION:
- case CKA_CHAR_ROWS:
- case CKA_CHAR_COLUMNS:
- case CKA_BITS_PER_PIXEL:
- case CKA_MECHANISM_TYPE:
- case CKA_G_DESTRUCT_IDLE:
- case CKA_G_DESTRUCT_AFTER:
- case CKA_G_DESTRUCT_USES:
- case CKA_G_OBJECT:
- case CKA_G_CREDENTIAL:
- if (attr->length == sizeof (CK_ULONG)) {
- g_printerr ("%llu", (unsigned long long)*(CK_ULONG_PTR)attr->value);
- return;
- }
- break;
-
- case CKA_TOKEN:
- case CKA_PRIVATE:
- case CKA_TRUSTED:
- case CKA_SENSITIVE:
- case CKA_ENCRYPT:
- case CKA_DECRYPT:
- case CKA_WRAP:
- case CKA_UNWRAP:
- case CKA_SIGN:
- case CKA_SIGN_RECOVER:
- case CKA_VERIFY:
- case CKA_VERIFY_RECOVER:
- case CKA_DERIVE:
- case CKA_EXTRACTABLE:
- case CKA_LOCAL:
- case CKA_NEVER_EXTRACTABLE:
- case CKA_ALWAYS_SENSITIVE:
- case CKA_MODIFIABLE:
- case CKA_ALWAYS_AUTHENTICATE:
- case CKA_WRAP_WITH_TRUSTED:
- case CKA_RESET_ON_INIT:
- case CKA_HAS_RESET:
- case CKA_COLOR:
- case CKA_G_LOCKED:
- case CKA_G_LOGIN_COLLECTION:
- if (attr->length == sizeof (CK_BBOOL)) {
- g_printerr ("%s", (*(CK_BBOOL*)attr->value) ? "TRUE" : "FALSE");
- return;
- }
- break;
-
- case CKA_LABEL:
- case CKA_URL:
- case CKA_CHAR_SETS:
- case CKA_ENCODING_METHODS:
- case CKA_MIME_TYPES:
- case CKA_G_COLLECTION:
- case CKA_G_SCHEMA:
- case CKA_X_PURPOSE:
- case CKA_X_PEER:
- if (g_utf8_validate ((const gchar *)attr->value, attr->length, NULL)) {
- int length = MIN (32, attr->length);
- g_printerr ("%.*s%s", length, (gchar*)attr->value,
- length < attr->length ? "..." : "");
- return;
- }
- break;
-
- case CKA_START_DATE:
- case CKA_END_DATE:
- case CKA_G_CREATED:
- case CKA_G_MODIFIED:
- if (attr->length == sizeof (CK_DATE)) {
- const CK_DATE* date = (const CK_DATE *)attr->value;
- g_printerr ("%.4s-%.2s-%.2s", date->year, date->month, date->day);
- return;
- }
- break;
-
- default:
- break;
- };
-
- len = MIN (20, attr->length);
- data = egg_hex_encode_full (attr->value, len, TRUE, ':', 1);
- g_printerr ("%s%s", data, len < attr->length ? "..." : "");
- g_free (data);
-}
-
-static void
-dump_attribute_type (GckAttribute *attr)
-{
- switch (attr->type) {
- #define DX(x) case x: g_printerr ("%s", #x); break;
- DX(CKA_CLASS);
- DX(CKA_TOKEN);
- DX(CKA_PRIVATE);
- DX(CKA_LABEL);
- DX(CKA_APPLICATION);
- DX(CKA_VALUE);
- DX(CKA_OBJECT_ID);
- DX(CKA_CERTIFICATE_TYPE);
- DX(CKA_ISSUER);
- DX(CKA_SERIAL_NUMBER);
- DX(CKA_AC_ISSUER);
- DX(CKA_OWNER);
- DX(CKA_ATTR_TYPES);
- DX(CKA_TRUSTED);
- DX(CKA_CERTIFICATE_CATEGORY);
- DX(CKA_JAVA_MIDP_SECURITY_DOMAIN);
- DX(CKA_URL);
- DX(CKA_HASH_OF_SUBJECT_PUBLIC_KEY);
- DX(CKA_HASH_OF_ISSUER_PUBLIC_KEY);
- DX(CKA_CHECK_VALUE);
- DX(CKA_KEY_TYPE);
- DX(CKA_SUBJECT);
- DX(CKA_ID);
- DX(CKA_SENSITIVE);
- DX(CKA_ENCRYPT);
- DX(CKA_DECRYPT);
- DX(CKA_WRAP);
- DX(CKA_UNWRAP);
- DX(CKA_SIGN);
- DX(CKA_SIGN_RECOVER);
- DX(CKA_VERIFY);
- DX(CKA_VERIFY_RECOVER);
- DX(CKA_DERIVE);
- DX(CKA_START_DATE);
- DX(CKA_END_DATE);
- DX(CKA_MODULUS);
- DX(CKA_MODULUS_BITS);
- DX(CKA_PUBLIC_EXPONENT);
- DX(CKA_PRIVATE_EXPONENT);
- DX(CKA_PRIME_1);
- DX(CKA_PRIME_2);
- DX(CKA_EXPONENT_1);
- DX(CKA_EXPONENT_2);
- DX(CKA_COEFFICIENT);
- DX(CKA_PRIME);
- DX(CKA_SUBPRIME);
- DX(CKA_BASE);
- DX(CKA_PRIME_BITS);
- DX(CKA_SUB_PRIME_BITS);
- DX(CKA_VALUE_BITS);
- DX(CKA_VALUE_LEN);
- DX(CKA_EXTRACTABLE);
- DX(CKA_LOCAL);
- DX(CKA_NEVER_EXTRACTABLE);
- DX(CKA_ALWAYS_SENSITIVE);
- DX(CKA_KEY_GEN_MECHANISM);
- DX(CKA_MODIFIABLE);
- /* DX(CKA_ECDSA_PARAMS); */
- DX(CKA_EC_PARAMS);
- DX(CKA_EC_POINT);
- DX(CKA_SECONDARY_AUTH);
- DX(CKA_AUTH_PIN_FLAGS);
- DX(CKA_ALWAYS_AUTHENTICATE);
- DX(CKA_WRAP_WITH_TRUSTED);
- DX(CKA_HW_FEATURE_TYPE);
- DX(CKA_RESET_ON_INIT);
- DX(CKA_HAS_RESET);
- DX(CKA_PIXEL_X);
- DX(CKA_PIXEL_Y);
- DX(CKA_RESOLUTION);
- DX(CKA_CHAR_ROWS);
- DX(CKA_CHAR_COLUMNS);
- DX(CKA_COLOR);
- DX(CKA_BITS_PER_PIXEL);
- DX(CKA_CHAR_SETS);
- DX(CKA_ENCODING_METHODS);
- DX(CKA_MIME_TYPES);
- DX(CKA_MECHANISM_TYPE);
- DX(CKA_REQUIRED_CMS_ATTRIBUTES);
- DX(CKA_DEFAULT_CMS_ATTRIBUTES);
- DX(CKA_SUPPORTED_CMS_ATTRIBUTES);
- DX(CKA_WRAP_TEMPLATE);
- DX(CKA_UNWRAP_TEMPLATE);
- DX(CKA_ALLOWED_MECHANISMS);
-
- /* GNOME */
- DX(CKA_G_LOCKED);
- DX(CKA_G_CREATED);
- DX(CKA_G_MODIFIED);
- DX(CKA_G_FIELDS);
- DX(CKA_G_COLLECTION);
- DX(CKA_G_MATCHED);
- DX(CKA_G_SCHEMA);
- DX(CKA_G_LOGIN_COLLECTION);
- DX(CKA_G_DESTRUCT_IDLE);
- DX(CKA_G_DESTRUCT_AFTER);
- DX(CKA_G_DESTRUCT_USES);
- DX(CKA_G_OBJECT);
- DX(CKA_G_CREDENTIAL);
- DX(CKA_G_CREDENTIAL_TEMPLATE);
- DX(CKA_X_ASSERTION_TYPE);
- DX(CKA_X_CERTIFICATE_VALUE);
- DX(CKA_X_PURPOSE);
- DX(CKA_X_PEER);
- #undef DX
-
- default:
- g_printerr ("%s0x%08x",
- (attr->type & CKA_VENDOR_DEFINED) == CKA_VENDOR_DEFINED ?
- "CKA_VENDOR_DEFINED|" : "",
- (unsigned int)attr->type);
- break;
- }
-}
-
-/**
- * gck_attribute_dump:
- * @attr: The attribute
- *
- * Dump the specified attribute using g_printerr().
- */
-void
-gck_attribute_dump (GckAttribute *attr)
-{
- dump_attribute_type (attr);
- if (attr->length == G_MAXULONG) {
- g_printerr ("\n [invalid]\n");
- } else {
- g_printerr ("\n [%lu] ", (unsigned long)attr->length);
- dump_attribute_value (attr);
- g_printerr ("\n");
- }
-}
-
-/**
- * gck_attributes_dump:
- * @attrs: The attributes
- *
- * Dump the attributes using g_printerr().
- */
-void
-gck_attributes_dump (GckAttributes *attrs)
-{
- GckAttribute *attr;
- guint i, count;
-
- for (i = 0, count = gck_attributes_count (attrs); i < count; ++i) {
- attr = gck_attributes_at (attrs, i);
- gck_attribute_dump (attr);
- }
-}
diff --git a/gck/gck-enum-types.c.template b/gck/gck-enum-types.c.template
deleted file mode 100644
index d6095351..00000000
--- a/gck/gck-enum-types.c.template
+++ /dev/null
@@ -1,43 +0,0 @@
-/*** BEGIN file-header ***/
-
-#include <glib-object.h>
-
-#ifndef GCR_COMPILATION
-#define GCR_COMPILATION
-#endif
-
-/*** END file-header ***/
-
-/*** BEGIN file-production ***/
-#include "@filename@"
-/* enumerations from "@filename@" */
-/*** END file-production ***/
-
-/*** BEGIN value-header ***/
-GType @enum_name@_get_type (void) G_GNUC_CONST;
-
-GType
-@enum_name@_get_type (void)
-{
- static GType etype = 0;
- if (G_UNLIKELY(etype == 0)) {
- static const G@Type@Value values[] = {
-/*** END value-header ***/
-
-/*** BEGIN value-production ***/
- { @VALUENAME@, "@VALUENAME@", "@valuenick@" },
-/*** END value-production ***/
-
-/*** BEGIN value-tail ***/
- { 0, NULL, NULL }
- };
- etype = g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
- }
- return etype;
-}
-
-/*** END value-tail ***/
-
-/*** BEGIN file-tail ***/
- /**/
-/*** END file-tail ***/
diff --git a/gck/gck-enum-types.h.template b/gck/gck-enum-types.h.template
deleted file mode 100644
index ecb732b5..00000000
--- a/gck/gck-enum-types.h.template
+++ /dev/null
@@ -1,28 +0,0 @@
-/*** BEGIN file-header ***/
-#if !defined (__GCK_INSIDE_HEADER__) && !defined (GCK_COMPILATION)
-#error "Only <gck/gck.h> can be included directly."
-#endif
-
-#ifndef __GCK_ENUM_TYPES_H__
-#define __GCK_ENUM_TYPES_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-/*** END file-header ***/
-
-/*** BEGIN file-production ***/
-
-/* enumerations from "@filename@" */
-/*** END file-production ***/
-
-/*** BEGIN value-header ***/
-GType @enum_name@_get_type (void) G_GNUC_CONST;
-#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ())
-/*** END value-header ***/
-
-/*** BEGIN file-tail ***/
-G_END_DECLS
-
-#endif /* __GCK_ENUM_TYPES_H__ */
-/*** END file-tail ***/
diff --git a/gck/gck-enumerator.c b/gck/gck-enumerator.c
deleted file mode 100644
index c57297e9..00000000
--- a/gck/gck-enumerator.c
+++ /dev/null
@@ -1,917 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gck-enumerator.c - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2010, Stefan Walter
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <nielsen@memberwebs.com>
-*/
-
-#include "config.h"
-
-#include "gck.h"
-#define DEBUG_FLAG GCK_DEBUG_ENUMERATOR
-#include "gck-debug.h"
-#include "gck-private.h"
-
-#include <string.h>
-
-/**
- * SECTION:gck-enumerator
- * @title: GckEnumerator
- * @short_description: Enumerates through PKCS\#11 objects.
- *
- * A GckEnumerator can be used to enumerate through PKCS\#11 objects. It will
- * automatically create sessions as necessary.
- *
- * Use gck_modules_enumerate_objects() or gck_modules_enumerate_uri() to create
- * an enumerator. To get the objects use gck_enumerator_next() or
- * gck_enumerator_next_async() functions.
- */
-
-enum {
- PROP_0,
- PROP_INTERACTION
-};
-
-/**
- * GckEnumerator:
- * @parent: derived from this.
- *
- * An object that allows enumerating of objects across modules, tokens.
- */
-
-typedef struct _GckEnumeratorState GckEnumeratorState;
-
-typedef gpointer (*GckEnumeratorFunc) (GckEnumeratorState *args, gboolean forward);
-
-struct _GckEnumeratorState {
- /* For the current call */
- gint want_objects;
-
- /* The state we're currently in */
- GckEnumeratorFunc handler;
-
- /* Input to enumerator */
- GList *modules;
- GckUriData *match;
- GckSessionOptions session_options;
- GTlsInteraction *interaction;
-
- /* state_slots */
- GList *slots;
-
- /* state_slot */
- GckSlot *slot;
- GckTokenInfo *token_info;
- CK_FUNCTION_LIST_PTR funcs;
-
- /* state_session */
- GckSession *session;
-
- /* state_results */
- GArray *objects;
-
- /* Output from enumerator */
- GList *results;
-};
-
-struct _GckEnumeratorPrivate {
- GMutex *mutex;
- GckEnumeratorState *the_state;
- GTlsInteraction *interaction;
-};
-
-G_DEFINE_TYPE (GckEnumerator, gck_enumerator, G_TYPE_OBJECT);
-
-static gpointer state_modules (GckEnumeratorState *args, gboolean forward);
-static gpointer state_slots (GckEnumeratorState *args, gboolean forward);
-static gpointer state_slot (GckEnumeratorState *args, gboolean forward);
-static gpointer state_session (GckEnumeratorState *args, gboolean forward);
-static gpointer state_authenticated (GckEnumeratorState *args, gboolean forward);
-static gpointer state_results (GckEnumeratorState *args, gboolean forward);
-
-/* ----------------------------------------------------------------------------
- * INTERNAL
- */
-
-static gpointer
-rewind_state (GckEnumeratorState *args, GckEnumeratorFunc handler)
-{
- g_assert (args);
- g_assert (handler);
- g_assert (args->handler);
-
- while (handler != args->handler) {
- args->handler = (args->handler) (args, FALSE);
- g_assert (args->handler);
- }
-
- return handler;
-}
-
-static void
-cleanup_state (GckEnumeratorState *args)
-{
- g_assert (args);
-
- /* Have each state cleanup */
- rewind_state (args, state_modules);
-
- /* state_slots */
- g_assert (!args->slots);
-
- /* state_slot */
- g_assert (!args->slot);
- g_assert (!args->token_info);
- g_assert (!args->funcs);
-
- /* state_session */
- g_assert (!args->session);
-
- /* state_results */
- if (args->objects)
- g_array_free (args->objects, TRUE);
- args->objects = NULL;
-
- /* Other cleanup */
- gck_list_unref_free (args->results);
- args->results = NULL;
-
- gck_list_unref_free (args->modules);
- args->modules = NULL;
-
- g_clear_object (&args->interaction);
-
- if (args->match) {
- if (args->match->attributes)
- _gck_attributes_unlock (args->match->attributes);
- gck_uri_data_free (args->match);
- args->match = NULL;
- }
-}
-
-static gpointer
-state_modules (GckEnumeratorState *args, gboolean forward)
-{
- GckModule *module;
-
- g_assert (args->slots == NULL);
-
- if (forward) {
-
- /* There are no more modules? */
- if (!args->modules) {
- _gck_debug ("no more modules, stopping enumerator");
- return NULL;
- }
-
- /* Pop off the current module */
- module = args->modules->data;
- g_assert (GCK_IS_MODULE (module));
- args->modules = g_list_delete_link (args->modules, args->modules);
-
- args->slots = gck_module_get_slots (module, TRUE);
-
- if (_gck_debugging) {
- GckModuleInfo *info = gck_module_get_info (module);
- _gck_debug ("enumerating into module: %s", info->library_description);
- gck_module_info_free (info);
- }
-
- g_object_unref (module);
- return state_slots;
- }
-
- /* Should never be asked to go backward from start state */
- g_assert_not_reached ();
-}
-
-static gpointer
-state_slots (GckEnumeratorState *args, gboolean forward)
-{
- GckSlot *slot;
- GckModule *module;
- GckTokenInfo *token_info;
- gboolean matched;
-
- g_assert (args->slot == NULL);
-
- /* slots to slot state */
- if (forward) {
-
- /* If there are no more slots go back to start state */
- if (!args->slots) {
- _gck_debug ("no more slots, want next module");
- return rewind_state (args, state_modules);
- }
-
- /* Pop the next slot off the stack */
- slot = args->slots->data;
- args->slots = g_list_delete_link (args->slots, args->slots);
-
- token_info = gck_slot_get_token_info (slot);
- if (!token_info) {
- g_message ("couldn't get token info while enumerating");
- g_object_unref (slot);
- return rewind_state (args, state_modules);
- }
-
- /* Do we have unrecognized matches? */
- if (args->match->any_unrecognized) {
- _gck_debug ("token uri had unrecognized, not matching any tokens");
- matched = FALSE;
-
- /* Are we trying to match the slot? */
- } else if (args->match->token_info) {
- /* No match? Go to next slot */
- matched = _gck_token_info_match (args->match->token_info, token_info);
-
- _gck_debug ("%s token: %s", matched ? "matched" : "did not match",
- token_info->label);
-
- } else {
- _gck_debug ("matching all tokens: %s", token_info->label);
- matched = TRUE;
- }
-
- if (!matched) {
- g_object_unref (slot);
- gck_token_info_free (token_info);
- return state_slots;
- }
-
- module = gck_slot_get_module (slot);
- args->funcs = gck_module_get_functions (module);
- g_assert (args->funcs);
- g_object_unref (module);
-
- /* We have a slot */
- args->slot = slot;
- args->token_info = token_info;
- return state_slot;
-
- /* slots state to modules state */
- } else {
-
- gck_list_unref_free (args->slots);
- args->slots = NULL;
- return state_modules;
- }
-}
-
-static gpointer
-state_slot (GckEnumeratorState *args, gboolean forward)
-{
- CK_SESSION_HANDLE session;
- CK_FLAGS flags;
- CK_RV rv;
-
- g_assert (args->slot);
- g_assert (args->funcs);
- g_assert (args->session == NULL);
-
- /* slot to session state */
- if (forward) {
- flags = CKF_SERIAL_SESSION;
- if ((args->session_options & GCK_SESSION_READ_WRITE) == GCK_SESSION_READ_WRITE)
- flags |= CKF_RW_SESSION;
-
- rv = (args->funcs->C_OpenSession) (gck_slot_get_handle (args->slot),
- flags, NULL, NULL, &session);
-
- if (rv != CKR_OK) {
- g_message ("couldn't open session on module while enumerating objects: %s",
- gck_message_from_rv (rv));
- return rewind_state (args, state_slots);
- }
-
- _gck_debug ("opened %s session", flags & CKF_RW_SESSION ? "read-write" : "read-only");
- args->session = gck_session_from_handle (args->slot, session, args->session_options);
- return state_session;
-
- /* slot to slots state */
- } else {
- g_object_unref (args->slot);
- args->slot = NULL;
- args->funcs = NULL;
-
- gck_token_info_free (args->token_info);
- args->token_info = NULL;
-
- return state_slots;
- }
-}
-
-static gpointer
-state_session (GckEnumeratorState *args, gboolean forward)
-{
- GTlsInteraction *interaction;
- CK_RV rv;
-
- g_assert (args->funcs);
- g_assert (args->session);
- g_assert (args->token_info);
-
- /* session to authenticated state */
- if (forward) {
-
- /* Don't want to authenticate? */
- if ((args->session_options & GCK_SESSION_LOGIN_USER) == 0) {
- _gck_debug ("no authentication necessary, skipping");
- return state_authenticated;
- }
-
- /* Compatibility, hook into GckModule signals if no interaction set */
- if (args->interaction)
- interaction = g_object_ref (args->interaction);
- else
- interaction = _gck_interaction_new (args->slot);
-
- rv = _gck_session_authenticate_token (args->funcs,
- gck_session_get_handle (args->session),
- args->slot, interaction, NULL);
-
- g_object_unref (interaction);
-
- if (rv != CKR_OK)
- g_message ("couldn't authenticate when enumerating: %s", gck_message_from_rv (rv));
-
- /* We try to proceed anyway with the enumeration */
- return state_authenticated;
-
- /* Session to slot state */
- } else {
- g_object_unref (args->session);
- args->session = NULL;
- return state_slot;
- }
-}
-
-static gpointer
-state_authenticated (GckEnumeratorState *args, gboolean forward)
-{
- CK_OBJECT_HANDLE objects[128];
- CK_SESSION_HANDLE session;
- CK_ATTRIBUTE_PTR attrs;
- CK_ULONG n_attrs, count;
- CK_RV rv;
-
- /* Just go back, no logout */
- if (!forward)
- return state_session;
-
- /* This is where we do the actual searching */
-
- g_assert (args->session);
- g_assert (args->want_objects);
- g_assert (args->funcs);
-
- if (args->match->attributes) {
- attrs = _gck_attributes_commit_out (args->match->attributes, &n_attrs);
- if (_gck_debugging) {
- gchar *string = _gck_attributes_format (args->match->attributes);
- _gck_debug ("finding objects matching: %s", string);
- g_free (string);
- }
- } else {
- attrs = NULL;
- n_attrs = 0;
- _gck_debug ("finding all objects");
- }
-
- session = gck_session_get_handle (args->session);
- g_return_val_if_fail (session, NULL);
-
- /* Get all the objects */
- rv = (args->funcs->C_FindObjectsInit) (session, attrs, n_attrs);
-
- if (rv == CKR_OK) {
- for(;;) {
- rv = (args->funcs->C_FindObjects) (session, objects, G_N_ELEMENTS (objects), &count);
- if (rv != CKR_OK || count == 0)
- break;
-
- if (!args->objects)
- args->objects = g_array_new (FALSE, TRUE, sizeof (CK_OBJECT_HANDLE));
- _gck_debug ("matched %lu objects", count);
- g_array_append_vals (args->objects, objects, count);
- }
-
- (args->funcs->C_FindObjectsFinal) (session);
- }
-
- _gck_debug ("finding objects completed with: %s", _gck_stringize_rv (rv));
- return state_results;
-}
-
-static GckObject*
-extract_result (GckEnumeratorState *args)
-{
- CK_OBJECT_HANDLE handle;
-
- if (!args->objects || !args->objects->len)
- return NULL;
-
- g_assert (args->session);
-
- handle = g_array_index (args->objects, CK_OBJECT_HANDLE, 0);
- g_array_remove_index_fast (args->objects, 0);
-
- return gck_object_from_handle (args->session, handle);
-}
-
-static gpointer
-state_results (GckEnumeratorState *args, gboolean forward)
-{
- GckObject *object;
- guint have;
-
- g_assert (args->session);
-
- /* No cleanup, just unwind */
- if (!forward)
- return state_authenticated;
-
- /* Create result objects from what we have */
- have = g_list_length (args->results);
-
- while (have < args->want_objects) {
-
- object = extract_result (args);
- if (!object) {
- _gck_debug ("wanted %d objects, have %d, looking for more",
- args->want_objects, have);
- return rewind_state (args, state_slots);
- }
-
- args->results = g_list_append (args->results, object);
- ++have;
- }
-
- _gck_debug ("wanted %d objects, returned %d objects",
- args->want_objects, have);
-
- /* We got all the results we wanted */
- return NULL;
-}
-
-/* ----------------------------------------------------------------------------
- * OBJECT
- */
-
-static void
-gck_enumerator_init (GckEnumerator *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCK_TYPE_ENUMERATOR, GckEnumeratorPrivate);
- self->pv->mutex = g_mutex_new ();
- self->pv->the_state = g_new0 (GckEnumeratorState, 1);
-}
-
-static void
-gck_enumerator_get_property (GObject *obj,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GckEnumerator *self = GCK_ENUMERATOR (obj);
-
- switch (prop_id) {
- case PROP_INTERACTION:
- g_value_take_object (value, gck_enumerator_get_interaction (self));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gck_enumerator_set_property (GObject *obj,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GckEnumerator *self = GCK_ENUMERATOR (obj);
-
- switch (prop_id) {
- case PROP_INTERACTION:
- gck_enumerator_set_interaction (self, g_value_get_object (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gck_enumerator_dispose (GObject *obj)
-{
- GckEnumerator *self = GCK_ENUMERATOR (obj);
-
- gck_enumerator_set_interaction (self, NULL);
-
- G_OBJECT_CLASS (gck_enumerator_parent_class)->dispose (obj);
-}
-
-static void
-gck_enumerator_finalize (GObject *obj)
-{
- GckEnumerator *self = GCK_ENUMERATOR (obj);
-
- g_assert (self->pv->interaction == NULL);
-
- g_assert (self->pv->the_state != NULL);
- cleanup_state (self->pv->the_state);
- g_free (self->pv->the_state);
-
- g_mutex_free (self->pv->mutex);
-
- G_OBJECT_CLASS (gck_enumerator_parent_class)->finalize (obj);
-}
-
-static void
-gck_enumerator_class_init (GckEnumeratorClass *klass)
-{
- GObjectClass *gobject_class = (GObjectClass*)klass;
-
- gobject_class->get_property = gck_enumerator_get_property;
- gobject_class->set_property = gck_enumerator_set_property;
- gobject_class->dispose = gck_enumerator_dispose;
- gobject_class->finalize = gck_enumerator_finalize;
-
- g_type_class_add_private (klass, sizeof (GckEnumeratorPrivate));
-
- /**
- * GckEnumerator:interaction:
- *
- * Interaction object used to ask the user for pins when opening
- * sessions. Used if the session_options of the enumerator have
- * %GCK_SESSION_LOGIN_USER
- */
- g_object_class_install_property (gobject_class, PROP_INTERACTION,
- g_param_spec_object ("interaction", "Interaction", "Interaction asking for pins",
- G_TYPE_TLS_INTERACTION, G_PARAM_READWRITE));
-}
-
-/* ----------------------------------------------------------------------------
- * PUBLIC
- */
-
-GckEnumerator*
-_gck_enumerator_new (GList *modules_or_slots,
- GckSessionOptions session_options,
- GckUriData *uri_data)
-{
- GckEnumerator *self;
- GckEnumeratorState *state;
-
- self = g_object_new (GCK_TYPE_ENUMERATOR, NULL);
- state = self->pv->the_state;
-
- state->session_options = session_options;
-
- if (modules_or_slots && GCK_IS_SLOT (modules_or_slots->data)) {
- state->slots = gck_list_ref_copy (modules_or_slots);
- state->modules = NULL;
- state->handler = state_slots;
- } else {
- state->modules = gck_list_ref_copy (modules_or_slots);
- state->slots = NULL;
- state->handler = state_modules;
- }
-
- state->match = uri_data;
- if (uri_data->attributes)
- _gck_attributes_lock (uri_data->attributes);
-
- if (_gck_debugging) {
- gchar *attrs, *uri;
- attrs = uri_data->attributes ? _gck_attributes_format (uri_data->attributes) : NULL;
- uri = uri_data ? gck_uri_build (uri_data, GCK_URI_FOR_TOKEN | GCK_URI_FOR_MODULE) : NULL;
- _gck_debug ("new enumerator: tokens = %s, objects = %s", uri, attrs);
- g_free (attrs);
- g_free (uri);
- }
-
- return self;
-}
-
-typedef struct _EnumerateNext {
- GckArguments base;
- GckEnumeratorState *state;
-} EnumerateNext;
-
-static CK_RV
-perform_enumerate_next (EnumerateNext *args)
-{
- GckEnumeratorFunc handler;
- GckEnumeratorState *state;
-
- g_assert (args->state);
- state = args->state;
-
- g_assert (state->handler);
-
- for (;;) {
- handler = (state->handler) (state, TRUE);
- if (!handler)
- break;
- state->handler = handler;
- }
-
- /* TODO: In some modes, errors */
- return CKR_OK;
-}
-
-static void
-free_enumerate_next (EnumerateNext *args)
-{
- /* Should have been assigned back to enumerator */
- g_assert (!args->state);
-
- g_free (args);
-}
-
-/**
- * gck_enumerator_get_interaction:
- * @self: the enumerator
- *
- * Get the interaction used when a pin is needed
- *
- * Returns: (transfer full) (allow-none): the interaction or %NULL
- */
-GTlsInteraction *
-gck_enumerator_get_interaction (GckEnumerator *self)
-{
- GTlsInteraction *result = NULL;
-
- g_return_val_if_fail (GCK_IS_ENUMERATOR (self), NULL);
-
- g_mutex_lock (self->pv->mutex);
-
- if (self->pv->interaction)
- result = g_object_ref (self->pv->interaction);
-
- g_mutex_unlock (self->pv->mutex);
-
- return result;
-}
-
-/**
- * gck_enumerator_set_interaction:
- * @self: the enumerator
- * @interaction: (allow-none): the interaction or %NULL
- *
- * Set the interaction used when a pin is needed
- */
-void
-gck_enumerator_set_interaction (GckEnumerator *self,
- GTlsInteraction *interaction)
-{
- GTlsInteraction *previous = NULL;
-
- g_return_if_fail (GCK_IS_ENUMERATOR (self));
- g_return_if_fail (interaction == NULL || G_IS_TLS_INTERACTION (interaction));
-
- g_mutex_lock (self->pv->mutex);
-
- if (interaction != self->pv->interaction) {
- previous = self->pv->interaction;
- self->pv->interaction = interaction;
- if (interaction)
- g_object_ref (interaction);
- }
-
- g_mutex_unlock (self->pv->mutex);
-
- g_clear_object (&previous);
- g_object_notify (G_OBJECT (self), "interaction");
-}
-
-static GckEnumeratorState *
-check_out_enumerator_state (GckEnumerator *self)
-{
- GckEnumeratorState *state = NULL;
-
- g_mutex_lock (self->pv->mutex);
-
- if (self->pv->the_state) {
- state = self->pv->the_state;
- self->pv->the_state = NULL;
-
- g_clear_object (&state->interaction);
- if (self->pv->interaction)
- state->interaction = g_object_ref (self->pv->interaction);
- }
-
- g_mutex_unlock (self->pv->mutex);
-
- if (state == NULL)
- g_warning ("this enumerator is already running a next operation");
-
- return state;
-}
-
-static void
-check_in_enumerator_state (GckEnumerator *self,
- GckEnumeratorState *state)
-{
- g_mutex_lock (self->pv->mutex);
-
- g_assert (self->pv->the_state == NULL);
- self->pv->the_state = state;
-
- g_mutex_unlock (self->pv->mutex);
-}
-
-/**
- * gck_enumerator_next:
- * @self: The enumerator
- * @cancellable: A #GCancellable or %NULL
- * @error: A location to store an error on failure
- *
- * Get the next object in the enumerator, or %NULL if there are no more objects.
- *
- * %NULL is also returned if the function fails. Use the @error to determine
- * whether a failure occurred or not.
- *
- * Returns: (transfer full) (allow-none): The next object, which must be released
- * using g_object_unref, or %NULL.
- */
-GckObject*
-gck_enumerator_next (GckEnumerator *self, GCancellable *cancellable, GError **error)
-{
- EnumerateNext args = { GCK_ARGUMENTS_INIT, NULL, };
- GckObject *result = NULL;
-
- g_return_val_if_fail (GCK_IS_ENUMERATOR (self), NULL);
- g_return_val_if_fail (!error || !*error, NULL);
-
- args.state = check_out_enumerator_state (self);
- g_return_val_if_fail (args.state != NULL, NULL);
-
- /* A result from a previous run? */
- result = extract_result (args.state);
- if (!result) {
- args.state->want_objects = 1;
-
- /* Run the operation and steal away the results */
- if (_gck_call_sync (NULL, perform_enumerate_next, NULL, &args, cancellable, error)) {
- if (args.state->results) {
- g_assert (g_list_length (args.state->results) == 1);
- result = g_object_ref (args.state->results->data);
- gck_list_unref_free (args.state->results);
- args.state->results = NULL;
- }
- }
-
- args.state->want_objects = 0;
- }
-
- /* Put the state back */
- check_in_enumerator_state (self, args.state);
-
- return result;
-}
-
-/**
- * gck_enumerator_next_n:
- * @self: An enumerator
- * @max_objects: The maximum amount of objects to enumerate
- * @cancellable: A #GCancellable or %NULL
- * @error: A location to store an error on failure
- *
- * Get the next set of objects from the enumerator. The maximum number of
- * objects can be specified with @max_objects. If -1 is specified, then all
- * the remaining objects will be returned.
- *
- * %NULL is also returned if the function fails. Use the @error to determine
- * whether a failure occurred or not.
- *
- * Returns: (transfer full) (element-type Gck.Object): A list of objects, which
- * should be freed using gck_list_unref_free().
- */
-GList*
-gck_enumerator_next_n (GckEnumerator *self, gint max_objects, GCancellable *cancellable,
- GError **error)
-{
- EnumerateNext args = { GCK_ARGUMENTS_INIT, NULL, };
- GList *results = NULL;
-
- g_return_val_if_fail (GCK_IS_ENUMERATOR (self), NULL);
- g_return_val_if_fail (max_objects == -1 || max_objects > 0, NULL);
- g_return_val_if_fail (!error || !*error, NULL);
-
- /* Remove the state and own it ourselves */
- args.state = check_out_enumerator_state (self);
- g_return_val_if_fail (args.state != NULL, NULL);
-
- args.state->want_objects = max_objects <= 0 ? G_MAXINT : max_objects;
-
- /* Run the operation and steal away the results */
- if (_gck_call_sync (NULL, perform_enumerate_next, NULL, &args, cancellable, error)) {
- results = args.state->results;
- args.state->results = NULL;
- }
-
- args.state->want_objects = 0;
-
- /* Put the state back */
- check_in_enumerator_state (self, args.state);
-
- return results;
-}
-
-/**
- * gck_enumerator_next_async:
- * @self: An enumerator
- * @max_objects: The maximum number of objects to get
- * @cancellable: A #GCancellable or %NULL
- * @callback: Called when the result is ready
- * @user_data: Data to pass to the callback
- *
- * Get the next set of objects from the enumerator. This operation completes
- * asynchronously.The maximum number of objects can be specified with
- * @max_objects. If -1 is specified, then all the remaining objects will be
- * enumerated.
- */
-void
-gck_enumerator_next_async (GckEnumerator *self, gint max_objects, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- GckEnumeratorState *state;
- EnumerateNext *args;
-
- g_return_if_fail (GCK_IS_ENUMERATOR (self));
- g_return_if_fail (max_objects == -1 || max_objects > 0);
-
- g_object_ref (self);
-
- /* Remove the state and own it ourselves */
- state = check_out_enumerator_state (self);
- g_return_if_fail (state != NULL);
-
- state->want_objects = max_objects <= 0 ? G_MAXINT : max_objects;
- args = _gck_call_async_prep (NULL, self, perform_enumerate_next, NULL,
- sizeof (*args), free_enumerate_next);
-
- args->state = state;
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
- g_object_unref (self);
-}
-
-/**
- * gck_enumerator_next_finish:
- * @self: An enumerator
- * @result: The result passed to the callback
- * @error: A location to raise an error on failure.
- *
- * Complete an operation to enumerate next objects.
- *
- * %NULL is also returned if the function fails. Use the @error to determine
- * whether a failure occurred or not.
- *
- * Returns: (element-type Gck.Module) (transfer full): The list of objects, which
- * should be freed with gck_list_unref_free()
- */
-GList*
-gck_enumerator_next_finish (GckEnumerator *self, GAsyncResult *result, GError **error)
-{
- EnumerateNext *args;
- GckEnumeratorState *state;
- GList *results = NULL;
-
- g_object_ref (self);
-
- args = _gck_call_arguments (result, EnumerateNext);
- state = args->state;
- args->state = NULL;
- state->want_objects = 0;
-
- if (_gck_call_basic_finish (result, error)) {
- results = state->results;
- state->results = NULL;
- }
-
- /* Put the state back */
- check_in_enumerator_state (self, state);
-
- g_object_unref (self);
-
- return results;
-}
diff --git a/gck/gck-interaction.c b/gck/gck-interaction.c
deleted file mode 100644
index 33d5ad35..00000000
--- a/gck/gck-interaction.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gck-interaction.c - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2011 Collabora Ltd
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gck-private.h"
-
-#include <string.h>
-
-#define GCK_INTERACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCK_TYPE_INTERACTION, GckInteraction))
-#define GCK_IS_INTERACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCK_TYPE_INTERACTION))
-#define GCK_INTERACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCK_TYPE_INTERACTION, GckInteractionClass))
-
-typedef struct _GckInteractionClass GckInteractionClass;
-
-struct _GckInteraction {
- GTlsInteraction interaction;
- GckModule *module;
-};
-
-struct _GckInteractionClass {
- GTlsInteractionClass parent;
-};
-
-enum {
- PROP_0,
- PROP_MODULE
-};
-
-G_DEFINE_TYPE (GckInteraction, _gck_interaction, G_TYPE_TLS_INTERACTION);
-
-static void
-_gck_interaction_init (GckInteraction *self)
-{
-
-}
-
-static void
-_gck_interaction_get_property (GObject *obj,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GckInteraction *self = GCK_INTERACTION (obj);
-
- switch (prop_id) {
- case PROP_MODULE:
- g_value_set_object (value, self->module);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-_gck_interaction_set_property (GObject *obj,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GckInteraction *self = GCK_INTERACTION (obj);
-
- switch (prop_id) {
- case PROP_MODULE:
- g_return_if_fail (self->module == NULL);
- self->module = g_value_dup_object (value);
- g_return_if_fail (self->module != NULL);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-_gck_interaction_dispose (GObject *obj)
-{
- GckInteraction *self = GCK_INTERACTION (obj);
-
- g_clear_object (&self->module);
-
- G_OBJECT_CLASS (_gck_interaction_parent_class)->dispose (obj);
-}
-
-static GTlsInteractionResult
-_gck_interaction_ask_password (GTlsInteraction *interaction,
- GTlsPassword *password,
- GCancellable *cancellable,
- GError **error)
-{
- GckInteraction *self = GCK_INTERACTION (interaction);
- gchar *value = NULL;
- gboolean ret = FALSE;
- GckSlot *token;
- GckObject *key;
-
- if (!self->module)
- return G_TLS_INTERACTION_UNHANDLED;
-
- token = gck_password_get_token (GCK_PASSWORD (password));
- if (token != NULL) {
- g_signal_emit_by_name (self->module, "authenticate-slot", token,
- g_tls_password_get_description (password),
- &value, &ret);
- g_object_unref (token);
-
- } else {
- key = gck_password_get_key (GCK_PASSWORD (password));
- g_return_val_if_fail (GCK_IS_OBJECT (key), G_TLS_INTERACTION_UNHANDLED);
-
- g_signal_emit_by_name (self->module, "authenticate-object", key,
- g_tls_password_get_description (password),
- &value, &ret);
- }
-
- if (ret) {
- g_tls_password_set_value_full (password, (guchar *)value, -1, g_free);
- return G_TLS_INTERACTION_HANDLED;
- } else {
- return G_TLS_INTERACTION_UNHANDLED;
- }
-}
-
-static void
-_gck_interaction_class_init (GckInteractionClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- GTlsInteractionClass *interaction_class = G_TLS_INTERACTION_CLASS (klass);
-
- object_class->get_property = _gck_interaction_get_property;
- object_class->set_property = _gck_interaction_set_property;
- object_class->dispose = _gck_interaction_dispose;
-
- interaction_class->ask_password = _gck_interaction_ask_password;
-
- g_object_class_install_property (object_class, PROP_MODULE,
- g_param_spec_object ("module", "Module", "PKCS11 Module",
- GCK_TYPE_MODULE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-}
-
-GTlsInteraction *
-_gck_interaction_new (gpointer token_or_key)
-{
- GTlsInteraction *result;
- GModule *module = NULL;
-
- g_return_val_if_fail (GCK_IS_SLOT (token_or_key) ||
- GCK_IS_OBJECT (token_or_key), NULL);
-
- g_object_get (token_or_key, "module", &module, NULL);
- result = g_object_new (GCK_TYPE_INTERACTION, "module", module, NULL);
- g_object_unref (module);
-
- return result;
-}
diff --git a/gck/gck-marshal.list b/gck/gck-marshal.list
deleted file mode 100644
index d9553afa..00000000
--- a/gck/gck-marshal.list
+++ /dev/null
@@ -1,3 +0,0 @@
-BOOLEAN:STRING,POINTER
-BOOLEAN:OBJECT,STRING,POINTER
-BOOLEAN:ULONG
diff --git a/gck/gck-misc.c b/gck/gck-misc.c
deleted file mode 100644
index 47d444e7..00000000
--- a/gck/gck-misc.c
+++ /dev/null
@@ -1,465 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gck-misc.c - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2008, Stefan Walter
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <nielsen@memberwebs.com>
-*/
-
-#include "config.h"
-
-#include "gck.h"
-#include "gck-private.h"
-
-#include <p11-kit/p11-kit.h>
-
-#include <glib/gi18n-lib.h>
-
-/**
- * SECTION:gck-error
- * @title: Errors
- * @short_description: Gck Errors and error codes.
- *
- * Errors are returned as GError structures. The code member of GError
- * contains the raw PKCS11 CK_RV result value.
- */
-
-/**
- * SECTION:gck-private
- * @title: Private, not used in docs
- * @short_description: Should not show up in docs
- *
- */
-
-/**
- * GCK_INVALID:
- *
- * Used as a terminator at the end of variable argument lists.
- */
-
-/**
- * GCK_VENDOR_CODE:
- *
- * Custom PKCS11 errors that originate from the gck library, are
- * based at this error code.
- */
-
-/**
- * GckError:
- * @GCK_ERROR_MODULE_PROBLEM: a result code that signifies there was a problem
- * loading a PKCS\#11 module, usually a shared library
- *
- * Various error codes. All the CKR_XXX error codes from PKCS\#11 are also
- * relevant error codes.
- */
-
-/**
- * GCK_ERROR:
- *
- * The error domain for gck library errors.
- */
-
-GQuark
-gck_get_error_quark (void)
-{
- /* This is the deprecated version */
- return gck_error_get_quark ();
-}
-
-GQuark
-gck_error_get_quark (void)
-{
- static GQuark domain = 0;
- static volatile gsize quark_inited = 0;
-
- if (g_once_init_enter (&quark_inited)) {
- domain = g_quark_from_static_string ("gck-error");
- g_once_init_leave (&quark_inited, 1);
- }
-
- return domain;
-}
-
-/**
- * gck_message_from_rv:
- * @rv: The PKCS\#11 return value to get a message for.
- *
- * Get a message for a PKCS\#11 return value or error code. Do not
- * pass CKR_OK or other such non errors to this function.
- *
- * Return value: The user readable message.
- **/
-const gchar*
-gck_message_from_rv (gulong rv)
-{
- switch (rv) {
-
- /* These are not really errors, or not current */
- case CKR_OK:
- case CKR_NO_EVENT:
- case CKR_FUNCTION_NOT_PARALLEL:
- case CKR_SESSION_PARALLEL_NOT_SUPPORTED:
- g_return_val_if_reached ("");
-
- default:
- return p11_kit_strerror (rv);
- }
-}
-
-const gchar *
-_gck_stringize_rv (CK_RV rv)
-{
- switch(rv) {
- #define X(x) case x: return #x;
- X (CKR_OK)
- X (CKR_CANCEL)
- X (CKR_HOST_MEMORY)
- X (CKR_SLOT_ID_INVALID)
- X (CKR_GENERAL_ERROR)
- X (CKR_FUNCTION_FAILED)
- X (CKR_ARGUMENTS_BAD)
- X (CKR_NO_EVENT)
- X (CKR_NEED_TO_CREATE_THREADS)
- X (CKR_CANT_LOCK)
- X (CKR_ATTRIBUTE_READ_ONLY)
- X (CKR_ATTRIBUTE_SENSITIVE)
- X (CKR_ATTRIBUTE_TYPE_INVALID)
- X (CKR_ATTRIBUTE_VALUE_INVALID)
- X (CKR_DATA_INVALID)
- X (CKR_DATA_LEN_RANGE)
- X (CKR_DEVICE_ERROR)
- X (CKR_DEVICE_MEMORY)
- X (CKR_DEVICE_REMOVED)
- X (CKR_ENCRYPTED_DATA_INVALID)
- X (CKR_ENCRYPTED_DATA_LEN_RANGE)
- X (CKR_FUNCTION_CANCELED)
- X (CKR_FUNCTION_NOT_PARALLEL)
- X (CKR_FUNCTION_NOT_SUPPORTED)
- X (CKR_KEY_HANDLE_INVALID)
- X (CKR_KEY_SIZE_RANGE)
- X (CKR_KEY_TYPE_INCONSISTENT)
- X (CKR_KEY_NOT_NEEDED)
- X (CKR_KEY_CHANGED)
- X (CKR_KEY_NEEDED)
- X (CKR_KEY_INDIGESTIBLE)
- X (CKR_KEY_FUNCTION_NOT_PERMITTED)
- X (CKR_KEY_NOT_WRAPPABLE)
- X (CKR_KEY_UNEXTRACTABLE)
- X (CKR_MECHANISM_INVALID)
- X (CKR_MECHANISM_PARAM_INVALID)
- X (CKR_OBJECT_HANDLE_INVALID)
- X (CKR_OPERATION_ACTIVE)
- X (CKR_OPERATION_NOT_INITIALIZED)
- X (CKR_PIN_INCORRECT)
- X (CKR_PIN_INVALID)
- X (CKR_PIN_LEN_RANGE)
- X (CKR_PIN_EXPIRED)
- X (CKR_PIN_LOCKED)
- X (CKR_SESSION_CLOSED)
- X (CKR_SESSION_COUNT)
- X (CKR_SESSION_HANDLE_INVALID)
- X (CKR_SESSION_PARALLEL_NOT_SUPPORTED)
- X (CKR_SESSION_READ_ONLY)
- X (CKR_SESSION_EXISTS)
- X (CKR_SESSION_READ_ONLY_EXISTS)
- X (CKR_SESSION_READ_WRITE_SO_EXISTS)
- X (CKR_SIGNATURE_INVALID)
- X (CKR_SIGNATURE_LEN_RANGE)
- X (CKR_TEMPLATE_INCOMPLETE)
- X (CKR_TEMPLATE_INCONSISTENT)
- X (CKR_TOKEN_NOT_PRESENT)
- X (CKR_TOKEN_NOT_RECOGNIZED)
- X (CKR_TOKEN_WRITE_PROTECTED)
- X (CKR_UNWRAPPING_KEY_HANDLE_INVALID)
- X (CKR_UNWRAPPING_KEY_SIZE_RANGE)
- X (CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT)
- X (CKR_USER_ALREADY_LOGGED_IN)
- X (CKR_USER_NOT_LOGGED_IN)
- X (CKR_USER_PIN_NOT_INITIALIZED)
- X (CKR_USER_TYPE_INVALID)
- X (CKR_USER_ANOTHER_ALREADY_LOGGED_IN)
- X (CKR_USER_TOO_MANY_TYPES)
- X (CKR_WRAPPED_KEY_INVALID)
- X (CKR_WRAPPED_KEY_LEN_RANGE)
- X (CKR_WRAPPING_KEY_HANDLE_INVALID)
- X (CKR_WRAPPING_KEY_SIZE_RANGE)
- X (CKR_WRAPPING_KEY_TYPE_INCONSISTENT)
- X (CKR_RANDOM_SEED_NOT_SUPPORTED)
- X (CKR_RANDOM_NO_RNG)
- X (CKR_DOMAIN_PARAMS_INVALID)
- X (CKR_BUFFER_TOO_SMALL)
- X (CKR_SAVED_STATE_INVALID)
- X (CKR_INFORMATION_SENSITIVE)
- X (CKR_STATE_UNSAVEABLE)
- X (CKR_CRYPTOKI_NOT_INITIALIZED)
- X (CKR_CRYPTOKI_ALREADY_INITIALIZED)
- X (CKR_MUTEX_BAD)
- X (CKR_MUTEX_NOT_LOCKED)
- X (CKR_FUNCTION_REJECTED)
- X (CKR_VENDOR_DEFINED)
- #undef X
- default:
- return "CKR_??????";
- }
-}
-
-CK_RV
-_gck_rv_from_error (GError *error,
- CK_RV catch_all_code)
-{
- g_return_val_if_fail (error != NULL, CKR_GENERAL_ERROR);
-
- if (error->domain == GCK_ERROR)
- return error->code;
-
- if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
- return CKR_FUNCTION_CANCELED;
-
- return catch_all_code;
-}
-
-/**
- * SECTION:gck-misc
- * @title: Miscellaneous Functions
- * @short_description: Other miscellaneous functions.
- *
- * A few supporting functions that come in handy when dealing with the gck
- * library or PKCS11 in general.
- */
-
-GType
-gck_list_get_boxed_type (void)
-{
- static GType type = 0;
- if (!type)
- type = g_boxed_type_register_static ("GckList",
- (GBoxedCopyFunc)gck_list_ref_copy,
- (GBoxedFreeFunc)gck_list_unref_free);
- return type;
-
-}
-
-/**
- * gck_list_unref_free: (skip)
- * @reflist: (element-type GLib.Object): list of Gobject reference counted pointers
- *
- * Free a list of GObject based pointers. All objects in the list
- * will be unreffed and then the list itself will be freed.
- **/
-void
-gck_list_unref_free (GList *reflist)
-{
- GList *l;
- for (l = reflist; l; l = g_list_next (l)) {
- g_return_if_fail (G_IS_OBJECT (l->data));
- g_object_unref (l->data);
- }
- g_list_free (reflist);
-}
-
-/**
- * gck_list_ref_copy: (skip)
- * @reflist: (element-type GLib.Object): list of GObject reference counted
- * objects
- *
- * Copy a list of GObject based pointers. All objects
- * in the list will be reffed and the list will be copied.
- *
- * Return value: (transfer full) (element-type GLib.Object): the copied and
- * reffed list, when done, free it with gck_list_unref_free ()
- **/
-GList *
-gck_list_ref_copy (GList *reflist)
-{
- GList *l, *copy = g_list_copy (reflist);
- for (l = copy; l; l = g_list_next (l)) {
- g_return_val_if_fail (G_IS_OBJECT (l->data), NULL);
- g_object_ref (l->data);
- }
- return copy;
-}
-
-/**
- * gck_string_from_chars: (skip)
- * @data: The character data to turn into a null terminated string.
- * @max: The maximum length of the charater data.
- *
- * Create a string from a set of PKCS\#11 characters. This is
- * similar to g_strndup, except for that it also strips trailing
- * spaces. These space padded strings are often used in PKCS\#11
- * structures.
- *
- * If the space padded string is filled with null characters then
- * this function will return %NULL.
- *
- * Return value: The null terminated string.
- */
-gchar*
-gck_string_from_chars (const guchar *data, gsize max)
-{
- gchar *string;
-
- g_return_val_if_fail (data, NULL);
- g_return_val_if_fail (max, NULL);
-
- /* Means no value */
- if (!data[0])
- return NULL;
-
- string = g_strndup ((gchar*)data, max);
- g_strchomp (string);
- return string;
-}
-
-/**
- * gck_string_to_chars: (skip)
- * @data: The character buffer to place string into.
- * @max: The maximum length of the charater buffer.
- * @string: The string to place in the buffer.
- *
- * Create a space padded PKCS\#11 string from a null terminated string.
- * The string must be shorter than the buffer or %FALSE will be
- * returned.
- *
- * If a %NULL string is passed, then the space padded string will be
- * set to zero characters.
- *
- * Return value: The null terminated string.
- */
-gboolean
-gck_string_to_chars (guchar *data, gsize max, const gchar *string)
-{
- gsize len;
-
- g_return_val_if_fail (data, FALSE);
- g_return_val_if_fail (max, FALSE);
-
- if (!string) {
- memset (data, 0, max);
- return TRUE;
- }
-
- len = strlen (string);
- if (len > max)
- return FALSE;
-
- memset (data, ' ', max);
- memcpy (data, string, len);
- return TRUE;
-}
-
-guint
-_gck_ulong_hash (gconstpointer v)
-{
- const signed char *p = v;
- guint32 i, h = *p;
-
- for(i = 0; i < sizeof (gulong); ++i)
- h = (h << 5) - h + *(p++);
-
- return h;
-}
-
-gboolean
-_gck_ulong_equal (gconstpointer v1, gconstpointer v2)
-{
- return *((const gulong*)v1) == *((const gulong*)v2);
-}
-
-/**
- * gck_value_to_ulong:
- * @value: (array length=length): memory to convert
- * @length: length of memory
- * @result: A location to store the result
- *
- * Convert CK_ULONG type memory to a boolean.
- *
- * Returns: Whether the conversion was successful.
- */
-gboolean
-gck_value_to_ulong (const guchar *value,
- gsize length,
- gulong *result)
-{
- if (!value || length != sizeof (CK_ULONG))
- return FALSE;
- if (result)
- *result = *((CK_ULONG*)value);
- return TRUE;
-}
-
-/**
- * gck_value_to_boolean:
- * @value: (array length=length): memory to convert
- * @length: length of memory
- * @result: A location to store the result
- *
- * Convert CK_BBOOL type memory to a boolean.
- *
- * Returns: Whether the conversion was successful.
- */
-gboolean
-gck_value_to_boolean (const guchar *value,
- gsize length,
- gboolean *result)
-{
- if (!value || length != sizeof (CK_BBOOL))
- return FALSE;
- if (result)
- *result = *((CK_BBOOL*)value) ? TRUE : FALSE;
- return TRUE;
-}
-
-static gboolean
-match_info_string (const gchar *match, const gchar *string)
-{
- /* NULL matches anything */
- if (match == NULL)
- return TRUE;
-
- if (string == NULL)
- return FALSE;
-
- return g_str_equal (match, string);
-}
-
-gboolean
-_gck_module_info_match (GckModuleInfo *match, GckModuleInfo *info)
-{
- /* Matches two GckModuleInfo for use in PKCS#11 URI's */
-
- g_return_val_if_fail (match, FALSE);
- g_return_val_if_fail (info, FALSE);
-
- return (match_info_string (match->library_description, info->library_description) &&
- match_info_string (match->manufacturer_id, info->manufacturer_id));
-}
-
-gboolean
-_gck_token_info_match (GckTokenInfo *match, GckTokenInfo *info)
-{
- /* Matches two GckTokenInfo for use in PKCS#11 URI's */
-
- g_return_val_if_fail (match, FALSE);
- g_return_val_if_fail (info, FALSE);
-
- return (match_info_string (match->label, info->label) &&
- match_info_string (match->manufacturer_id, info->manufacturer_id) &&
- match_info_string (match->model, info->model) &&
- match_info_string (match->serial_number, info->serial_number));
-}
diff --git a/gck/gck-mock.c b/gck/gck-mock.c
deleted file mode 100644
index 5e7ccd25..00000000
--- a/gck/gck-mock.c
+++ /dev/null
@@ -1,1808 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General License for more details.
- *
- * You should have received a copy of the GNU Lesser General
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gck.h"
-#include "gck-mock.h"
-
-#include "pkcs11/pkcs11.h"
-#include "pkcs11/pkcs11i.h"
-
-#include <glib.h>
-
-#include <string.h>
-
-/*
- * This is *NOT* how you'd want to implement a PKCS#11 module. This
- * fake module simply provides enough for gck library to test against.
- * It doesn't pass any tests, or behave as expected from a PKCS#11 module.
- */
-
-
-static gboolean initialized = FALSE;
-static gchar *the_pin = NULL;
-static gulong n_the_pin = 0;
-
-static gboolean logged_in = FALSE;
-static CK_USER_TYPE user_type = 0;
-static CK_FUNCTION_LIST functionList;
-
-typedef enum _Operation {
- OP_FIND = 1,
- OP_CRYPTO
-} Operation;
-
-typedef struct _Session {
- CK_SESSION_HANDLE handle;
- CK_SESSION_INFO info;
- GHashTable *objects;
-
- Operation operation;
-
- /* For find operations */
- GList *matches;
-
- /* For crypto operations */
- CK_OBJECT_HANDLE crypto_key;
- CK_ATTRIBUTE_TYPE crypto_method;
- CK_MECHANISM_TYPE crypto_mechanism;
- CK_BBOOL want_context_login;
-
- /* For 'signing' with CKM_MOCK_PREFIX */
- CK_BYTE sign_prefix[128];
- CK_ULONG n_sign_prefix;
-} Session;
-
-static guint unique_identifier = 100;
-static GHashTable *the_sessions = NULL;
-static GHashTable *the_objects = NULL;
-
-enum {
- PRIVATE_KEY_CAPITALIZE = 3,
- PUBLIC_KEY_CAPITALIZE = 4,
- PRIVATE_KEY_PREFIX = 5,
- PUBLIC_KEY_PREFIX = 6
-};
-
-#define SIGNED_PREFIX "signed-prefix:"
-
-static void
-free_session (gpointer data)
-{
- Session *sess = (Session*)data;
- if (sess)
- g_hash_table_destroy (sess->objects);
- g_free (sess);
-}
-
-static GckAttributes*
-lookup_object (Session *session, CK_OBJECT_HANDLE hObject)
-{
- GckAttributes *attrs;
- attrs = g_hash_table_lookup (the_objects, GUINT_TO_POINTER (hObject));
- if (!attrs)
- attrs = g_hash_table_lookup (session->objects, GUINT_TO_POINTER (hObject));
- return attrs;
-}
-
-CK_OBJECT_HANDLE
-gck_mock_module_take_object (GckAttributes *attrs)
-{
- gboolean token;
- guint handle;
-
- g_return_val_if_fail (the_objects, 0);
-
- handle = ++unique_identifier;
- if (gck_attributes_find_boolean (attrs, CKA_TOKEN, &token))
- g_return_val_if_fail (token == TRUE, 0);
- else
- gck_attributes_add_boolean (attrs, CKA_TOKEN, TRUE);
- g_hash_table_insert (the_objects, GUINT_TO_POINTER (handle), attrs);
- return handle;
-}
-
-void
-gck_mock_module_enumerate_objects (CK_SESSION_HANDLE handle, GckMockEnumerator func,
- gpointer user_data)
-{
- GHashTableIter iter;
- gpointer key;
- gpointer value;
- Session *session;
-
- g_assert (the_objects);
- g_assert (func);
-
- /* Token objects */
- g_hash_table_iter_init (&iter, the_objects);
- while (g_hash_table_iter_next (&iter, &key, &value)) {
- if (!(func) (GPOINTER_TO_UINT (key), value, user_data))
- return;
- }
-
- /* session objects */
- if (handle) {
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (handle));
- if (session) {
- g_hash_table_iter_init (&iter, session->objects);
- while (g_hash_table_iter_next (&iter, &key, &value)) {
- if (!(func) (GPOINTER_TO_UINT (key), value, user_data))
- return;
- }
- }
- }
-}
-
-typedef struct _FindObject {
- CK_ATTRIBUTE_PTR attrs;
- CK_ULONG n_attrs;
- CK_OBJECT_HANDLE object;
-} FindObject;
-
-static gboolean
-enumerate_and_find_object (CK_OBJECT_HANDLE object, GckAttributes *attrs, gpointer user_data)
-{
- FindObject *ctx = user_data;
- CK_ATTRIBUTE_PTR match;
- GckAttribute *attr;
- CK_ULONG i;
-
- for (i = 0; i < ctx->n_attrs; ++i) {
- match = ctx->attrs + i;
- attr = gck_attributes_find (attrs, match->type);
- if (!attr)
- return TRUE; /* Continue */
-
- if (attr->length != match->ulValueLen ||
- memcmp (attr->value, match->pValue, attr->length) != 0)
- return TRUE; /* Continue */
- }
-
- ctx->object = object;
- return FALSE; /* Stop iteration */
-}
-
-CK_OBJECT_HANDLE
-gck_mock_module_find_object (CK_SESSION_HANDLE session, CK_ATTRIBUTE_PTR attrs, CK_ULONG n_attrs)
-{
- FindObject ctx;
-
- ctx.attrs = attrs;
- ctx.n_attrs = n_attrs;
- ctx.object = 0;
-
- gck_mock_module_enumerate_objects (session, enumerate_and_find_object, &ctx);
-
- return ctx.object;
-}
-
-static gboolean
-enumerate_and_count_objects (CK_OBJECT_HANDLE object, GckAttributes *attrs, gpointer user_data)
-{
- guint *n_objects = user_data;
- ++(*n_objects);
- return TRUE; /* Continue */
-}
-
-guint
-gck_mock_module_count_objects (CK_SESSION_HANDLE session)
-{
- guint n_objects = 0;
- gck_mock_module_enumerate_objects (session, enumerate_and_count_objects, &n_objects);
- return n_objects;
-}
-
-void
-gck_mock_module_set_object (CK_OBJECT_HANDLE object, CK_ATTRIBUTE_PTR attrs,
- CK_ULONG n_attrs)
-{
- CK_ULONG i;
- GckAttributes *atts;
- GckAttribute *attr;
- CK_ATTRIBUTE_PTR set;
-
- g_return_if_fail (object != 0);
- g_return_if_fail (the_objects);
-
- atts = g_hash_table_lookup (the_objects, GUINT_TO_POINTER (object));
- g_return_if_fail (atts);
-
- for (i = 0; i < n_attrs; ++i) {
- set = attrs + i;
- attr = gck_attributes_find (atts, set->type);
- if (!attr) {
- gck_attributes_add_data (atts, set->type, set->pValue, set->ulValueLen);
- } else {
- gck_attribute_clear (attr);
- gck_attribute_init (attr, set->type, set->pValue, set->ulValueLen);
- }
- }
-}
-
-void
-gck_mock_module_set_pin (const gchar *password)
-{
- g_free (the_pin);
- the_pin = g_strdup (password);
- n_the_pin = strlen (password);
-}
-
-CK_RV
-gck_mock_C_Initialize (CK_VOID_PTR pInitArgs)
-{
- GckAttributes *attrs;
- CK_ULONG value;
- CK_C_INITIALIZE_ARGS_PTR args;
-
- g_return_val_if_fail (initialized == FALSE, CKR_CRYPTOKI_ALREADY_INITIALIZED);
-
- args = (CK_C_INITIALIZE_ARGS_PTR)pInitArgs;
- if (args) {
- g_return_val_if_fail(
- (args->CreateMutex == NULL && args->DestroyMutex == NULL &&
- args->LockMutex == NULL && args->UnlockMutex == NULL) ||
- (args->CreateMutex != NULL && args->DestroyMutex != NULL &&
- args->LockMutex != NULL && args->UnlockMutex != NULL),
- CKR_ARGUMENTS_BAD);
-
- /* Flags should allow OS locking and os threads */
- g_return_val_if_fail ((args->flags & CKF_OS_LOCKING_OK), CKR_CANT_LOCK);
- g_return_val_if_fail ((args->flags & CKF_LIBRARY_CANT_CREATE_OS_THREADS) == 0, CKR_NEED_TO_CREATE_THREADS);
- }
-
- the_pin = g_strdup ("booo");
- n_the_pin = strlen (the_pin);
- the_sessions = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, free_session);
- the_objects = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, (GDestroyNotify)gck_attributes_unref);
-
- /* Our token object */
- attrs = gck_attributes_new ();
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_DATA);
- gck_attributes_add_string (attrs, CKA_LABEL, "TEST LABEL");
- g_hash_table_insert (the_objects, GUINT_TO_POINTER (2), attrs);
-
- /* Private capitalize key */
- value = CKM_MOCK_CAPITALIZE;
- attrs = gck_attributes_new ();
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_PRIVATE_KEY);
- gck_attributes_add_string (attrs, CKA_LABEL, "Private Capitalize Key");
- gck_attributes_add_data (attrs, CKA_ALLOWED_MECHANISMS, (const guchar *)&value, sizeof (value));
- gck_attributes_add_boolean (attrs, CKA_DECRYPT, CK_TRUE);
- gck_attributes_add_boolean (attrs, CKA_PRIVATE, CK_TRUE);
- gck_attributes_add_boolean (attrs, CKA_WRAP, CK_TRUE);
- gck_attributes_add_boolean (attrs, CKA_UNWRAP, CK_TRUE);
- gck_attributes_add_boolean (attrs, CKA_DERIVE, CK_TRUE);
- gck_attributes_add_string (attrs, CKA_VALUE, "value");
- gck_attributes_add_string (attrs, CKA_GNOME_UNIQUE, "unique1");
- g_hash_table_insert (the_objects, GUINT_TO_POINTER (PRIVATE_KEY_CAPITALIZE), attrs);
-
- /* Public capitalize key */
- value = CKM_MOCK_CAPITALIZE;
- attrs = gck_attributes_new ();
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_PUBLIC_KEY);
- gck_attributes_add_string (attrs, CKA_LABEL, "Public Capitalize Key");
- gck_attributes_add_data (attrs, CKA_ALLOWED_MECHANISMS, (const guchar *)&value, sizeof (value));
- gck_attributes_add_boolean (attrs, CKA_ENCRYPT, CK_TRUE);
- gck_attributes_add_boolean (attrs, CKA_PRIVATE, CK_FALSE);
- gck_attributes_add_string (attrs, CKA_VALUE, "value");
- gck_attributes_add_string (attrs, CKA_GNOME_UNIQUE, "unique2");
- g_hash_table_insert (the_objects, GUINT_TO_POINTER (PUBLIC_KEY_CAPITALIZE), attrs);
-
- /* Private prefix key */
- value = CKM_MOCK_PREFIX;
- attrs = gck_attributes_new ();
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_PRIVATE_KEY);
- gck_attributes_add_string (attrs, CKA_LABEL, "Private prefix key");
- gck_attributes_add_data (attrs, CKA_ALLOWED_MECHANISMS, (const guchar *)&value, sizeof (value));
- gck_attributes_add_boolean (attrs, CKA_SIGN, CK_TRUE);
- gck_attributes_add_boolean (attrs, CKA_PRIVATE, CK_TRUE);
- gck_attributes_add_boolean (attrs, CKA_ALWAYS_AUTHENTICATE, CK_TRUE);
- gck_attributes_add_string (attrs, CKA_VALUE, "value");
- gck_attributes_add_string (attrs, CKA_GNOME_UNIQUE, "unique3");
- g_hash_table_insert (the_objects, GUINT_TO_POINTER (PRIVATE_KEY_PREFIX), attrs);
-
- /* Private prefix key */
- value = CKM_MOCK_PREFIX;
- attrs = gck_attributes_new ();
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_PUBLIC_KEY);
- gck_attributes_add_string (attrs, CKA_LABEL, "Public prefix key");
- gck_attributes_add_data (attrs, CKA_ALLOWED_MECHANISMS, (const guchar *)&value, sizeof (value));
- gck_attributes_add_boolean (attrs, CKA_VERIFY, CK_TRUE);
- gck_attributes_add_boolean (attrs, CKA_PRIVATE, CK_FALSE);
- gck_attributes_add_string (attrs, CKA_VALUE, "value");
- gck_attributes_add_string (attrs, CKA_GNOME_UNIQUE, "unique4");
- g_hash_table_insert (the_objects, GUINT_TO_POINTER (PUBLIC_KEY_PREFIX), attrs);
-
- initialized = TRUE;
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_validate_and_C_Initialize (CK_VOID_PTR pInitArgs)
-{
- CK_C_INITIALIZE_ARGS_PTR args;
- void *mutex;
- CK_RV rv;
-
- args = (CK_C_INITIALIZE_ARGS_PTR)pInitArgs;
- if (args) {
- g_assert ((args->CreateMutex) (NULL) == CKR_ARGUMENTS_BAD && "CreateMutex succeeded wrong");
- g_assert ((args->DestroyMutex) (NULL) == CKR_MUTEX_BAD && "DestroyMutex succeeded wrong");
- g_assert ((args->LockMutex) (NULL) == CKR_MUTEX_BAD && "LockMutex succeeded wrong");
- g_assert ((args->UnlockMutex) (NULL) == CKR_MUTEX_BAD && "UnlockMutex succeeded wrong");
-
- /* Try to create an actual mutex */
- rv = (args->CreateMutex) (&mutex);
- g_assert (rv == CKR_OK && "CreateMutex g_assert_not_reacheded");
- g_assert (mutex != NULL && "CreateMutex created null mutex");
-
- /* Try and lock the mutex */
- rv = (args->LockMutex) (mutex);
- g_assert (rv == CKR_OK && "LockMutex g_assert_not_reacheded");
-
- /* Try and unlock the mutex */
- rv = (args->UnlockMutex) (mutex);
- g_assert (rv == CKR_OK && "UnlockMutex g_assert_not_reacheded");
-
- /* Try and destroy the mutex */
- rv = (args->DestroyMutex) (mutex);
- g_assert (rv == CKR_OK && "DestroyMutex g_assert_not_reacheded");
- }
-
- return gck_mock_C_Initialize (pInitArgs);
-}
-
-CK_RV
-gck_mock_C_Finalize (CK_VOID_PTR pReserved)
-{
- g_return_val_if_fail (pReserved == NULL, CKR_ARGUMENTS_BAD);
- g_return_val_if_fail (initialized == TRUE, CKR_CRYPTOKI_NOT_INITIALIZED);
-
- initialized = FALSE;
- logged_in = FALSE;
- g_hash_table_destroy (the_objects);
- the_objects = NULL;
-
- g_hash_table_destroy (the_sessions);
- the_sessions = NULL;
-
- g_free (the_pin);
- return CKR_OK;
-}
-
-static const CK_INFO TEST_INFO = {
- { CRYPTOKI_VERSION_MAJOR, CRYPTOKI_VERSION_MINOR },
- "TEST MANUFACTURER ",
- 0,
- "TEST LIBRARY ",
- { 45, 145 }
-};
-
-CK_RV
-gck_mock_C_GetInfo (CK_INFO_PTR pInfo)
-{
- g_return_val_if_fail (pInfo, CKR_ARGUMENTS_BAD);
- memcpy (pInfo, &TEST_INFO, sizeof (*pInfo));
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_C_GetFunctionList (CK_FUNCTION_LIST_PTR_PTR list)
-{
- g_return_val_if_fail (list, CKR_ARGUMENTS_BAD);
- *list = &functionList;
- return CKR_OK;
-}
-
-/*
- * Two slots
- * ONE: token present
- * TWO: token not present
- */
-
-CK_RV
-gck_mock_C_GetSlotList (CK_BBOOL tokenPresent, CK_SLOT_ID_PTR pSlotList, CK_ULONG_PTR pulCount)
-{
- CK_ULONG count;
-
- g_return_val_if_fail (pulCount, CKR_ARGUMENTS_BAD);
-
- count = tokenPresent ? 1 : 2;
-
- /* Application only wants to know the number of slots. */
- if (pSlotList == NULL) {
- *pulCount = count;
- return CKR_OK;
- }
-
- if (*pulCount < count)
- g_return_val_if_reached (CKR_BUFFER_TOO_SMALL);
-
- *pulCount = count;
- pSlotList[0] = GCK_MOCK_SLOT_ONE_ID;
- if (!tokenPresent)
- pSlotList[1] = GCK_MOCK_SLOT_TWO_ID;
-
- return CKR_OK;
-}
-
-/* Update gck-mock.h URIs when updating this */
-
-static const CK_SLOT_INFO TEST_INFO_ONE = {
- "TEST SLOT ",
- "TEST MANUFACTURER ",
- CKF_TOKEN_PRESENT | CKF_REMOVABLE_DEVICE,
- { 55, 155 },
- { 65, 165 },
-};
-
-/* Update gck-mock.h URIs when updating this */
-
-static const CK_SLOT_INFO TEST_INFO_TWO = {
- "TEST SLOT ",
- "TEST MANUFACTURER ",
- CKF_REMOVABLE_DEVICE,
- { 55, 155 },
- { 65, 165 },
-};
-
-CK_RV
-gck_mock_C_GetSlotInfo (CK_SLOT_ID slotID, CK_SLOT_INFO_PTR pInfo)
-{
- g_return_val_if_fail (pInfo, CKR_ARGUMENTS_BAD);
-
- if (slotID == GCK_MOCK_SLOT_ONE_ID) {
- memcpy (pInfo, &TEST_INFO_ONE, sizeof (*pInfo));
- return CKR_OK;
- } else if (slotID == GCK_MOCK_SLOT_TWO_ID) {
- memcpy (pInfo, &TEST_INFO_TWO, sizeof (*pInfo));
- return CKR_OK;
- } else {
- g_return_val_if_reached (CKR_SLOT_ID_INVALID);
- }
-}
-
-/* Update gck-mock.h URIs when updating this */
-
-static const CK_TOKEN_INFO TEST_TOKEN_ONE = {
- "TEST LABEL ",
- "TEST MANUFACTURER ",
- "TEST MODEL ",
- "TEST SERIAL ",
- CKF_LOGIN_REQUIRED | CKF_USER_PIN_INITIALIZED | CKF_CLOCK_ON_TOKEN | CKF_TOKEN_INITIALIZED,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- { 75, 175 },
- { 85, 185 },
- { '1', '9', '9', '9', '0', '5', '2', '5', '0', '9', '1', '9', '5', '9', '0', '0' }
-};
-
-CK_RV
-gck_mock_C_GetTokenInfo (CK_SLOT_ID slotID, CK_TOKEN_INFO_PTR pInfo)
-{
- g_return_val_if_fail (pInfo != NULL, CKR_ARGUMENTS_BAD);
-
- if (slotID == GCK_MOCK_SLOT_ONE_ID) {
- memcpy (pInfo, &TEST_TOKEN_ONE, sizeof (*pInfo));
- return CKR_OK;
- } else if (slotID == GCK_MOCK_SLOT_TWO_ID) {
- return CKR_TOKEN_NOT_PRESENT;
- } else {
- g_return_val_if_reached (CKR_SLOT_ID_INVALID);
- }
-}
-
-CK_RV
-gck_mock_fail_C_GetTokenInfo (CK_SLOT_ID slotID, CK_TOKEN_INFO_PTR pInfo)
-{
- return CKR_GENERAL_ERROR;
-}
-
-/*
- * TWO mechanisms:
- * CKM_MOCK_CAPITALIZE
- * CKM_MOCK_PREFIX
- */
-
-CK_RV
-gck_mock_C_GetMechanismList (CK_SLOT_ID slotID, CK_MECHANISM_TYPE_PTR pMechanismList,
- CK_ULONG_PTR pulCount)
-{
- g_return_val_if_fail (slotID == GCK_MOCK_SLOT_ONE_ID, CKR_SLOT_ID_INVALID);
- g_return_val_if_fail (pulCount, CKR_ARGUMENTS_BAD);
-
- /* Application only wants to know the number of slots. */
- if (pMechanismList == NULL) {
- *pulCount = 2;
- return CKR_OK;
- }
-
- if (*pulCount != 2)
- g_return_val_if_reached (CKR_BUFFER_TOO_SMALL);
-
- pMechanismList[0] = CKM_MOCK_CAPITALIZE;
- pMechanismList[1] = CKM_MOCK_PREFIX;
- return CKR_OK;
-}
-
-static const CK_MECHANISM_INFO TEST_MECH_CAPITALIZE = {
- 512, 4096, 0
-};
-
-static const CK_MECHANISM_INFO TEST_MECH_PREFIX = {
- 2048, 2048, 0
-};
-
-CK_RV
-gck_mock_C_GetMechanismInfo (CK_SLOT_ID slotID, CK_MECHANISM_TYPE type,
- CK_MECHANISM_INFO_PTR pInfo)
-{
- g_return_val_if_fail (slotID == GCK_MOCK_SLOT_ONE_ID, CKR_SLOT_ID_INVALID);
- g_return_val_if_fail (pInfo, CKR_ARGUMENTS_BAD);
-
- if (type == CKM_MOCK_CAPITALIZE) {
- memcpy (pInfo, &TEST_MECH_CAPITALIZE, sizeof (*pInfo));
- return CKR_OK;
- } else if (type == CKM_MOCK_PREFIX) {
- memcpy (pInfo, &TEST_MECH_PREFIX, sizeof (*pInfo));
- return CKR_OK;
- } else {
- g_return_val_if_reached (CKR_MECHANISM_INVALID);
- }
-}
-
-CK_RV
-gck_mock_specific_args_C_InitToken (CK_SLOT_ID slotID, CK_UTF8CHAR_PTR pPin, CK_ULONG ulPinLen,
- CK_UTF8CHAR_PTR pLabel)
-{
- g_return_val_if_fail (slotID == GCK_MOCK_SLOT_ONE_ID, CKR_SLOT_ID_INVALID);
-
- g_return_val_if_fail (pPin, CKR_PIN_INVALID);
- g_return_val_if_fail (strlen ("TEST PIN") == ulPinLen, CKR_PIN_INVALID);
- g_return_val_if_fail (strncmp ((gchar*)pPin, "TEST PIN", ulPinLen) == 0, CKR_PIN_INVALID);
- g_return_val_if_fail (pLabel != NULL, CKR_PIN_INVALID);
- g_return_val_if_fail (strcmp ((gchar*)pPin, "TEST LABEL") == 0, CKR_PIN_INVALID);
-
- g_free (the_pin);
- the_pin = g_strndup ((gchar*)pPin, ulPinLen);
- n_the_pin = ulPinLen;
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_unsupported_C_WaitForSlotEvent (CK_FLAGS flags, CK_SLOT_ID_PTR pSlot, CK_VOID_PTR pReserved)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_C_OpenSession (CK_SLOT_ID slotID, CK_FLAGS flags, CK_VOID_PTR pApplication,
- CK_NOTIFY Notify, CK_SESSION_HANDLE_PTR phSession)
-{
- Session *sess;
-
- g_return_val_if_fail (slotID == GCK_MOCK_SLOT_ONE_ID || slotID == GCK_MOCK_SLOT_TWO_ID, CKR_SLOT_ID_INVALID);
- g_return_val_if_fail (phSession != NULL, CKR_ARGUMENTS_BAD);
- g_return_val_if_fail ((flags & CKF_SERIAL_SESSION) == CKF_SERIAL_SESSION, CKR_SESSION_PARALLEL_NOT_SUPPORTED);
-
- sess = g_new0 (Session, 1);
- sess->handle = ++unique_identifier;
- sess->info.flags = flags;
- sess->info.slotID = slotID;
- sess->info.state = 0;
- sess->info.ulDeviceError = 1414;
- sess->objects = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, (GDestroyNotify)gck_attributes_unref);
- *phSession = sess->handle;
-
- g_hash_table_replace (the_sessions, GUINT_TO_POINTER (sess->handle), sess);
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_fail_C_OpenSession (CK_SLOT_ID slotID, CK_FLAGS flags, CK_VOID_PTR pApplication,
- CK_NOTIFY Notify, CK_SESSION_HANDLE_PTR phSession)
-{
- return CKR_GENERAL_ERROR;
-}
-
-CK_RV
-gck_mock_C_CloseSession (CK_SESSION_HANDLE hSession)
-{
- Session *session;
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session, CKR_SESSION_HANDLE_INVALID);
-
- g_hash_table_remove (the_sessions, GUINT_TO_POINTER (hSession));
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_C_CloseAllSessions (CK_SLOT_ID slotID)
-{
- g_return_val_if_fail (slotID == GCK_MOCK_SLOT_ONE_ID, CKR_SLOT_ID_INVALID);
-
- g_hash_table_remove_all (the_sessions);
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_C_GetFunctionStatus (CK_SESSION_HANDLE hSession)
-{
- return CKR_FUNCTION_NOT_PARALLEL;
-}
-
-CK_RV
-gck_mock_C_CancelFunction (CK_SESSION_HANDLE hSession)
-{
- return CKR_FUNCTION_NOT_PARALLEL;
-}
-
-CK_RV
-gck_mock_C_GetSessionInfo (CK_SESSION_HANDLE hSession, CK_SESSION_INFO_PTR pInfo)
-{
- Session *session;
-
- g_return_val_if_fail (pInfo != NULL, CKR_ARGUMENTS_BAD);
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_assert (session != NULL && "No such session found");
- if (!session)
- return CKR_SESSION_HANDLE_INVALID;
-
- if (logged_in) {
- if (session->info.flags & CKF_RW_SESSION)
- session->info.state = CKS_RW_USER_FUNCTIONS;
- else
- session->info.state = CKS_RO_USER_FUNCTIONS;
- } else {
- if (session->info.flags & CKF_RW_SESSION)
- session->info.state = CKS_RW_PUBLIC_SESSION;
- else
- session->info.state = CKS_RO_PUBLIC_SESSION;
- }
-
- memcpy (pInfo, &session->info, sizeof (*pInfo));
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_fail_C_GetSessionInfo (CK_SESSION_HANDLE hSession, CK_SESSION_INFO_PTR pInfo)
-{
- return CKR_GENERAL_ERROR;
-}
-
-CK_RV
-gck_mock_C_InitPIN (CK_SESSION_HANDLE hSession, CK_UTF8CHAR_PTR pPin,
- CK_ULONG ulPinLen)
-{
- Session *session;
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session, CKR_SESSION_HANDLE_INVALID);
-
- g_free (the_pin);
- the_pin = g_strndup ((gchar*)pPin, ulPinLen);
- n_the_pin = ulPinLen;
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_C_SetPIN (CK_SESSION_HANDLE hSession, CK_UTF8CHAR_PTR pOldPin,
- CK_ULONG ulOldLen, CK_UTF8CHAR_PTR pNewPin, CK_ULONG ulNewLen)
-{
- Session *session;
- gchar *old;
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session, CKR_SESSION_HANDLE_INVALID);
-
- old = g_strndup ((gchar*)pOldPin, ulOldLen);
- if (!old || !g_str_equal (old, the_pin))
- return CKR_PIN_INCORRECT;
-
- g_free (the_pin);
- the_pin = g_strndup ((gchar*)pNewPin, ulNewLen);
- n_the_pin = ulNewLen;
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_unsupported_C_GetOperationState (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pOperationState,
- CK_ULONG_PTR pulOperationStateLen)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_unsupported_C_SetOperationState (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pOperationState,
- CK_ULONG ulOperationStateLen, CK_OBJECT_HANDLE hEncryptionKey,
- CK_OBJECT_HANDLE hAuthenticationKey)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_C_Login (CK_SESSION_HANDLE hSession, CK_USER_TYPE userType,
- CK_UTF8CHAR_PTR pPin, CK_ULONG pPinLen)
-{
- Session *session;
-
- g_return_val_if_fail (userType == CKU_SO ||
- userType == CKU_USER ||
- userType == CKU_CONTEXT_SPECIFIC,
- CKR_USER_TYPE_INVALID);
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session != NULL, CKR_SESSION_HANDLE_INVALID);
- g_return_val_if_fail (logged_in == FALSE, CKR_USER_ALREADY_LOGGED_IN);
-
- if (!pPin)
- return CKR_PIN_INCORRECT;
-
- if (pPinLen != strlen (the_pin))
- return CKR_PIN_INCORRECT;
- if (strncmp ((gchar*)pPin, the_pin, pPinLen) != 0)
- return CKR_PIN_INCORRECT;
-
- if (userType == CKU_CONTEXT_SPECIFIC) {
- g_return_val_if_fail (session->want_context_login == TRUE, CKR_OPERATION_NOT_INITIALIZED);
- session->want_context_login = CK_FALSE;
- } else {
- logged_in = TRUE;
- user_type = userType;
- }
-
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_C_Logout (CK_SESSION_HANDLE hSession)
-{
- Session *session;
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_assert (session != NULL && "No such session found");
- if (!session)
- return CKR_SESSION_HANDLE_INVALID;
-
- g_assert (logged_in && "Not logged in");
- logged_in = FALSE;
- user_type = 0;
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_C_CreateObject (CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phObject)
-{
- GckAttributes *attrs;
- Session *session;
- gboolean token, priv;
- CK_OBJECT_CLASS klass;
- CK_OBJECT_HANDLE object;
- GckAttribute *attr;
- CK_ULONG i;
-
- g_return_val_if_fail (phObject, CKR_ARGUMENTS_BAD);
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session, CKR_SESSION_HANDLE_INVALID);
-
- attrs = gck_attributes_new ();
- for (i = 0; i < ulCount; ++i)
- gck_attributes_add_data (attrs, pTemplate[i].type, pTemplate[i].pValue, pTemplate[i].ulValueLen);
-
- if (gck_attributes_find_boolean (attrs, CKA_PRIVATE, &priv) && priv) {
- if (!logged_in) {
- gck_attributes_unref (attrs);
- return CKR_USER_NOT_LOGGED_IN;
- }
- }
-
- /* In order to create a credential we must check CK_VALUE */
- if (gck_attributes_find_ulong (attrs, CKA_CLASS, &klass) && klass == CKO_G_CREDENTIAL) {
- if (gck_attributes_find_ulong (attrs, CKA_G_OBJECT, &object)) {
- attr = gck_attributes_find (attrs, CKA_VALUE);
- if (!attr || attr->length != n_the_pin ||
- memcmp (attr->value, the_pin, attr->length) != 0) {
- gck_attributes_unref (attrs);
- return CKR_PIN_INCORRECT;
- }
- }
- }
-
- *phObject = ++unique_identifier;
- if (gck_attributes_find_boolean (attrs, CKA_TOKEN, &token) && token)
- g_hash_table_insert (the_objects, GUINT_TO_POINTER (*phObject), attrs);
- else
- g_hash_table_insert (session->objects, GUINT_TO_POINTER (*phObject), attrs);
-
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_fail_C_CreateObject (CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phObject)
-{
- /* Always fails */
- return CKR_FUNCTION_FAILED;
-}
-
-CK_RV
-gck_mock_unsupported_C_CopyObject (CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject,
- CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount,
- CK_OBJECT_HANDLE_PTR phNewObject)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_C_DestroyObject (CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject)
-{
- GckAttributes *attrs;
- Session *session;
- gboolean priv;
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session, CKR_SESSION_HANDLE_INVALID);
-
- attrs = lookup_object (session, hObject);
- g_return_val_if_fail (attrs, CKR_OBJECT_HANDLE_INVALID);
-
- if (gck_attributes_find_boolean (attrs, CKA_PRIVATE, &priv) && priv) {
- if (!logged_in)
- return CKR_USER_NOT_LOGGED_IN;
- }
-
- g_hash_table_remove (the_objects, GUINT_TO_POINTER (hObject));
- g_hash_table_remove (session->objects, GUINT_TO_POINTER (hObject));
-
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_unsupported_C_GetObjectSize (CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject,
- CK_ULONG_PTR pulSize)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_C_GetAttributeValue (CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject,
- CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount)
-{
- CK_ATTRIBUTE_PTR result;
- CK_RV ret = CKR_OK;
- GckAttributes *attrs;
- GckAttribute *attr;
- Session *session;
- CK_ULONG i;
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session, CKR_SESSION_HANDLE_INVALID);
-
- attrs = lookup_object (session, hObject);
- if (!attrs) {
- g_assert_not_reached (); /* "invalid object handle passed" */
- return CKR_OBJECT_HANDLE_INVALID;
- }
-
- for (i = 0; i < ulCount; ++i) {
- result = pTemplate + i;
- attr = gck_attributes_find (attrs, result->type);
- if (!attr) {
- result->ulValueLen = (CK_ULONG)-1;
- ret = CKR_ATTRIBUTE_TYPE_INVALID;
- continue;
- }
-
- if (!result->pValue) {
- result->ulValueLen = attr->length;
- continue;
- }
-
- if (result->ulValueLen >= attr->length) {
- memcpy (result->pValue, attr->value, attr->length);
- continue;
- }
-
- result->ulValueLen = (CK_ULONG)-1;
- ret = CKR_BUFFER_TOO_SMALL;
- }
-
- return ret;
-}
-
-CK_RV
-gck_mock_fail_C_GetAttributeValue (CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject,
- CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount)
-{
- return CKR_FUNCTION_FAILED;
-}
-
-CK_RV
-gck_mock_C_SetAttributeValue (CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject,
- CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount)
-{
- Session *session;
- GckAttributes *attrs;
- CK_ATTRIBUTE_PTR set;
- GckAttribute *attr;
- CK_ULONG i;
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session, CKR_SESSION_HANDLE_INVALID);
-
- attrs = lookup_object (session, hObject);
- g_return_val_if_fail (attrs, CKR_OBJECT_HANDLE_INVALID);
-
- for (i = 0; i < ulCount; ++i) {
- set = pTemplate + i;
- attr = gck_attributes_find (attrs, set->type);
- if (!attr) {
- gck_attributes_add_data (attrs, set->type, set->pValue, set->ulValueLen);
- } else {
- gck_attribute_clear (attr);
- gck_attribute_init (attr, set->type, set->pValue, set->ulValueLen);
- }
- }
-
- return CKR_OK;
-}
-
-typedef struct _FindObjects {
- CK_ATTRIBUTE_PTR template;
- CK_ULONG count;
- Session *session;
-} FindObjects;
-
-static gboolean
-enumerate_and_find_objects (CK_OBJECT_HANDLE object, GckAttributes *attrs, gpointer user_data)
-{
- FindObjects *ctx = user_data;
- CK_ATTRIBUTE_PTR match;
- GckAttribute *attr;
- CK_ULONG i;
-
- for (i = 0; i < ctx->count; ++i) {
- match = ctx->template + i;
- attr = gck_attributes_find (attrs, match->type);
- if (!attr)
- return TRUE; /* Continue */
-
- if (attr->length != match->ulValueLen ||
- memcmp (attr->value, match->pValue, attr->length) != 0)
- return TRUE; /* Continue */
- }
-
- ctx->session->matches = g_list_prepend (ctx->session->matches, GUINT_TO_POINTER (object));
- return TRUE; /* Continue */
-}
-
-CK_RV
-gck_mock_C_FindObjectsInit (CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulCount)
-{
- Session *session;
- FindObjects ctx;
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session != NULL, CKR_SESSION_HANDLE_INVALID);
-
- /* Starting an operation, cancels any previous one */
- if (session->operation != 0)
- session->operation = 0;
-
- session->operation = OP_FIND;
-
- ctx.template = pTemplate;
- ctx.count = ulCount;
- ctx.session = session;
-
- gck_mock_module_enumerate_objects (hSession, enumerate_and_find_objects, &ctx);
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_fail_C_FindObjects (CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE_PTR phObject,
- CK_ULONG ulMaxObjectCount, CK_ULONG_PTR pulObjectCount)
-{
- /* Always fails */
- return CKR_FUNCTION_FAILED;
-}
-
-CK_RV
-gck_mock_C_FindObjects (CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE_PTR phObject,
- CK_ULONG ulMaxObjectCount, CK_ULONG_PTR pulObjectCount)
-{
- Session *session;
-
- g_return_val_if_fail (phObject, CKR_ARGUMENTS_BAD);
- g_return_val_if_fail (pulObjectCount, CKR_ARGUMENTS_BAD);
- g_return_val_if_fail (ulMaxObjectCount != 0, CKR_ARGUMENTS_BAD);
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session != NULL, CKR_SESSION_HANDLE_INVALID);
- g_return_val_if_fail (session->operation == OP_FIND, CKR_OPERATION_NOT_INITIALIZED);
-
- *pulObjectCount = 0;
- while (ulMaxObjectCount > 0 && session->matches) {
- *phObject = GPOINTER_TO_UINT (session->matches->data);
- ++phObject;
- --ulMaxObjectCount;
- ++(*pulObjectCount);
- session->matches = g_list_remove (session->matches, session->matches->data);
- }
-
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_C_FindObjectsFinal (CK_SESSION_HANDLE hSession)
-{
-
- Session *session;
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session != NULL, CKR_SESSION_HANDLE_INVALID);
- g_return_val_if_fail (session->operation == OP_FIND, CKR_OPERATION_NOT_INITIALIZED);
-
- session->operation = 0;
- g_list_free (session->matches);
- session->matches = NULL;
-
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_C_EncryptInit (CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE hKey)
-{
- Session *session;
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session != NULL, CKR_SESSION_HANDLE_INVALID);
-
- /* Starting an operation, cancels any previous one */
- if (session->operation != 0)
- session->operation = 0;
-
- g_assert (pMechanism);
- g_assert (pMechanism->mechanism == CKM_MOCK_CAPITALIZE);
- g_assert (hKey == PUBLIC_KEY_CAPITALIZE);
-
- session->operation = OP_CRYPTO;
- session->crypto_method = CKA_ENCRYPT;
- session->crypto_mechanism = CKM_MOCK_CAPITALIZE;
- session->crypto_key = hKey;
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_C_Encrypt (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen,
- CK_BYTE_PTR pEncryptedData, CK_ULONG_PTR pulEncryptedDataLen)
-{
- Session *session;
- CK_ULONG i;
-
- g_return_val_if_fail (pData, CKR_DATA_INVALID);
- g_return_val_if_fail (pulEncryptedDataLen, CKR_ARGUMENTS_BAD);
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session != NULL, CKR_SESSION_HANDLE_INVALID);
- g_return_val_if_fail (session->operation == OP_CRYPTO, CKR_OPERATION_NOT_INITIALIZED);
- g_return_val_if_fail (session->crypto_method == CKA_ENCRYPT, CKR_OPERATION_NOT_INITIALIZED);
-
- g_assert (session->crypto_mechanism == CKM_MOCK_CAPITALIZE);
- g_assert (session->crypto_key == PUBLIC_KEY_CAPITALIZE);
-
- if (!pEncryptedData) {
- *pulEncryptedDataLen = ulDataLen;
- return CKR_OK;
- }
-
- if (*pulEncryptedDataLen < ulDataLen) {
- *pulEncryptedDataLen = ulDataLen;
- return CKR_BUFFER_TOO_SMALL;
- }
-
- for (i = 0; i < ulDataLen; ++i)
- pEncryptedData[i] = g_ascii_toupper (pData[i]);
- *pulEncryptedDataLen = ulDataLen;
-
- session->operation = 0;
- session->crypto_method = 0;
- session->crypto_mechanism = 0;
- session->crypto_key = 0;
-
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_unsupported_C_EncryptUpdate (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart,
- CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart,
- CK_ULONG_PTR pulEncryptedPartLen)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_unsupported_C_EncryptFinal (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pLastEncryptedPart,
- CK_ULONG_PTR pulLastEncryptedPartLen)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_C_DecryptInit (CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE hKey)
-{
- Session *session;
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session != NULL, CKR_SESSION_HANDLE_INVALID);
-
- /* Starting an operation, cancels any previous one */
- if (session->operation != 0)
- session->operation = 0;
-
- g_assert (pMechanism);
- g_assert (pMechanism->mechanism == CKM_MOCK_CAPITALIZE);
- g_assert (hKey == PRIVATE_KEY_CAPITALIZE);
-
- session->operation = OP_CRYPTO;
- session->crypto_method = CKA_DECRYPT;
- session->crypto_mechanism = CKM_MOCK_CAPITALIZE;
- session->crypto_key = hKey;
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_C_Decrypt (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedData,
- CK_ULONG ulEncryptedDataLen, CK_BYTE_PTR pData, CK_ULONG_PTR pulDataLen)
-{
- Session *session;
- CK_ULONG i;
-
- g_return_val_if_fail (pEncryptedData, CKR_ENCRYPTED_DATA_INVALID);
- g_return_val_if_fail (pulDataLen, CKR_ARGUMENTS_BAD);
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session != NULL, CKR_SESSION_HANDLE_INVALID);
- g_return_val_if_fail (session->operation == OP_CRYPTO, CKR_OPERATION_NOT_INITIALIZED);
- g_return_val_if_fail (session->crypto_method == CKA_DECRYPT, CKR_OPERATION_NOT_INITIALIZED);
-
- g_assert (session->crypto_method == CKA_DECRYPT);
- g_assert (session->crypto_mechanism == CKM_MOCK_CAPITALIZE);
- g_assert (session->crypto_key == PRIVATE_KEY_CAPITALIZE);
-
- if (!pData) {
- *pulDataLen = ulEncryptedDataLen;
- return CKR_OK;
- }
-
- if (*pulDataLen < ulEncryptedDataLen) {
- *pulDataLen = ulEncryptedDataLen;
- return CKR_BUFFER_TOO_SMALL;
- }
-
- for (i = 0; i < ulEncryptedDataLen; ++i)
- pData[i] = g_ascii_tolower (pEncryptedData[i]);
- *pulDataLen = ulEncryptedDataLen;
-
- session->operation = 0;
- session->crypto_method = 0;
- session->crypto_mechanism = 0;
- session->crypto_key = 0;
-
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_unsupported_C_DecryptUpdate (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart,
- CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_unsupported_C_DecryptFinal (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pLastPart,
- CK_ULONG_PTR pulLastPartLen)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_unsupported_C_DigestInit (CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_unsupported_C_Digest (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen,
- CK_BYTE_PTR pDigest, CK_ULONG_PTR pulDigestLen)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_unsupported_C_DigestUpdate (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_unsupported_C_DigestKey (CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hKey)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_unsupported_C_DigestFinal (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pDigest,
- CK_ULONG_PTR pulDigestLen)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_C_SignInit (CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE hKey)
-{
- Session *session;
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session != NULL, CKR_SESSION_HANDLE_INVALID);
-
- /* Starting an operation, cancels any previous one */
- if (session->operation != 0)
- session->operation = 0;
-
- g_assert (pMechanism);
- g_assert (pMechanism->mechanism == CKM_MOCK_PREFIX);
- g_assert (hKey == PRIVATE_KEY_PREFIX);
-
- session->operation = OP_CRYPTO;
- session->crypto_method = CKA_SIGN;
- session->crypto_mechanism = CKM_MOCK_PREFIX;
- session->crypto_key = hKey;
-
- if (pMechanism->pParameter) {
- g_assert (pMechanism->ulParameterLen < sizeof (session->sign_prefix));
- memcpy (session->sign_prefix, pMechanism->pParameter, pMechanism->ulParameterLen);
- session->n_sign_prefix = pMechanism->ulParameterLen;
- } else {
- g_assert (strlen (SIGNED_PREFIX) + 1 < sizeof (session->sign_prefix));
- strcpy ((gchar*)session->sign_prefix, SIGNED_PREFIX);
- session->n_sign_prefix = strlen (SIGNED_PREFIX);
- }
-
- /* The private key has CKA_ALWAYS_AUTHENTICATE above */
- session->want_context_login = CK_TRUE;
-
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_C_Sign (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen,
- CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen)
-{
- Session *session;
- CK_ULONG length;
-
- g_return_val_if_fail (pData, CKR_DATA_INVALID);
- g_return_val_if_fail (pulSignatureLen, CKR_ARGUMENTS_BAD);
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session != NULL, CKR_SESSION_HANDLE_INVALID);
- g_return_val_if_fail (session->operation == OP_CRYPTO, CKR_OPERATION_NOT_INITIALIZED);
- g_return_val_if_fail (session->crypto_method == CKA_SIGN, CKR_OPERATION_NOT_INITIALIZED);
-
- if (session->want_context_login)
- return CKR_USER_NOT_LOGGED_IN;
-
- g_assert (session->crypto_method == CKA_SIGN);
- g_assert (session->crypto_mechanism == CKM_MOCK_PREFIX);
- g_assert (session->crypto_key == PRIVATE_KEY_PREFIX);
-
- length = session->n_sign_prefix + ulDataLen;
-
- if (!pSignature) {
- *pulSignatureLen = length;
- return CKR_OK;
- }
-
- if (*pulSignatureLen < length) {
- *pulSignatureLen = length;
- return CKR_BUFFER_TOO_SMALL;
- }
-
- memcpy (pSignature, session->sign_prefix, session->n_sign_prefix);
- memcpy (pSignature + session->n_sign_prefix, pData, ulDataLen);
- *pulSignatureLen = length;
-
- session->operation = 0;
- session->crypto_method = 0;
- session->crypto_mechanism = 0;
- session->crypto_key = 0;
-
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_unsupported_C_SignUpdate (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_unsupported_C_SignFinal (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature,
- CK_ULONG_PTR pulSignatureLen)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_unsupported_C_SignRecoverInit (CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE hKey)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_unsupported_C_SignRecover (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen,
- CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_C_VerifyInit (CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE hKey)
-{
- Session *session;
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session != NULL, CKR_SESSION_HANDLE_INVALID);
-
- /* Starting an operation, cancels any previous one */
- if (session->operation != 0)
- session->operation = 0;
-
- g_assert (pMechanism);
- g_assert (pMechanism->mechanism == CKM_MOCK_PREFIX);
- g_assert (hKey == PUBLIC_KEY_PREFIX);
-
- session->operation = OP_CRYPTO;
- session->crypto_method = CKA_VERIFY;
- session->crypto_mechanism = CKM_MOCK_PREFIX;
- session->crypto_key = hKey;
-
- if (pMechanism->pParameter) {
- g_assert (pMechanism->ulParameterLen < sizeof (session->sign_prefix));
- memcpy (session->sign_prefix, pMechanism->pParameter, pMechanism->ulParameterLen);
- session->n_sign_prefix = pMechanism->ulParameterLen;
- } else {
- g_assert (strlen (SIGNED_PREFIX) + 1 < sizeof (session->sign_prefix));
- strcpy ((gchar*)session->sign_prefix, SIGNED_PREFIX);
- session->n_sign_prefix = strlen (SIGNED_PREFIX);
- }
-
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_C_Verify (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen,
- CK_BYTE_PTR pSignature, CK_ULONG ulSignatureLen)
-{
- Session *session;
- CK_ULONG length;
-
- g_return_val_if_fail (pData, CKR_DATA_INVALID);
- g_return_val_if_fail (pSignature, CKR_ARGUMENTS_BAD);
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session != NULL, CKR_SESSION_HANDLE_INVALID);
- g_return_val_if_fail (session->operation == OP_CRYPTO, CKR_OPERATION_NOT_INITIALIZED);
- g_return_val_if_fail (session->crypto_method == CKA_VERIFY, CKR_OPERATION_NOT_INITIALIZED);
-
- g_assert (session->crypto_method == CKA_VERIFY);
- g_assert (session->crypto_mechanism == CKM_MOCK_PREFIX);
- g_assert (session->crypto_key == PUBLIC_KEY_PREFIX);
-
- length = session->n_sign_prefix + ulDataLen;
-
- if (ulSignatureLen < length) {
- g_assert (FALSE);
- return CKR_SIGNATURE_LEN_RANGE;
- }
-
- if (memcmp (pSignature, session->sign_prefix, session->n_sign_prefix) == 0 &&
- memcmp (pSignature + session->n_sign_prefix, pData, ulDataLen) == 0)
- return CKR_OK;
-
- return CKR_SIGNATURE_INVALID;
-}
-
-CK_RV
-gck_mock_unsupported_C_VerifyUpdate (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_unsupported_C_VerifyFinal (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature,
- CK_ULONG pulSignatureLen)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_unsupported_C_VerifyRecoverInit (CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE hKey)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_unsupported_C_VerifyRecover (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature,
- CK_ULONG pulSignatureLen, CK_BYTE_PTR pData, CK_ULONG_PTR pulDataLen)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_unsupported_C_DigestEncryptUpdate (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart,
- CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart,
- CK_ULONG_PTR ulEncryptedPartLen)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_unsupported_C_DecryptDigestUpdate (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart,
- CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart,
- CK_ULONG_PTR pulPartLen)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_unsupported_C_SignEncryptUpdate (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart,
- CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart,
- CK_ULONG_PTR ulEncryptedPartLen)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_unsupported_C_DecryptVerifyUpdate (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart,
- CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart,
- CK_ULONG_PTR pulPartLen)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_unsupported_C_GenerateKey (CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism,
- CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount,
- CK_OBJECT_HANDLE_PTR phKey)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_unsupported_C_GenerateKeyPair (CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism,
- CK_ATTRIBUTE_PTR pPublicKeyTemplate, CK_ULONG ulPublicKeyAttributeCount,
- CK_ATTRIBUTE_PTR pPrivateKeyTemplate, CK_ULONG ulPrivateKeyAttributeCount,
- CK_OBJECT_HANDLE_PTR phPublicKey, CK_OBJECT_HANDLE_PTR phPrivateKey)
-{
- GckAttributes *attrs;
- Session *session;
- gboolean token;
- CK_ULONG i;
-
- g_return_val_if_fail (pMechanism, CKR_MECHANISM_INVALID);
- g_return_val_if_fail (pPublicKeyTemplate, CKR_TEMPLATE_INCOMPLETE);
- g_return_val_if_fail (ulPublicKeyAttributeCount, CKR_TEMPLATE_INCOMPLETE);
- g_return_val_if_fail (pPrivateKeyTemplate, CKR_TEMPLATE_INCOMPLETE);
- g_return_val_if_fail (ulPrivateKeyAttributeCount, CKR_TEMPLATE_INCOMPLETE);
- g_return_val_if_fail (phPublicKey, CKR_ARGUMENTS_BAD);
- g_return_val_if_fail (phPrivateKey, CKR_ARGUMENTS_BAD);
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session != NULL, CKR_SESSION_HANDLE_INVALID);
-
- if (pMechanism->mechanism != CKM_MOCK_GENERATE)
- return CKR_MECHANISM_INVALID;
-
- if (!pMechanism->pParameter || pMechanism->ulParameterLen != 9 ||
- memcmp (pMechanism->pParameter, "generate", 9) != 0)
- g_return_val_if_reached (CKR_MECHANISM_PARAM_INVALID);
-
- attrs = gck_attributes_new ();
- gck_attributes_add_string (attrs, CKA_VALUE, "generated");
- for (i = 0; i < ulPublicKeyAttributeCount; ++i)
- gck_attributes_add_data (attrs, pPublicKeyTemplate[i].type,
- pPublicKeyTemplate[i].pValue,
- pPublicKeyTemplate[i].ulValueLen);
- *phPublicKey = ++unique_identifier;
- if (gck_attributes_find_boolean (attrs, CKA_TOKEN, &token) && token)
- g_hash_table_insert (the_objects, GUINT_TO_POINTER (*phPublicKey), attrs);
- else
- g_hash_table_insert (session->objects, GUINT_TO_POINTER (*phPublicKey), attrs);
-
- attrs = gck_attributes_new ();
- gck_attributes_add_string (attrs, CKA_VALUE, "generated");
- for (i = 0; i < ulPrivateKeyAttributeCount; ++i)
- gck_attributes_add_data (attrs, pPrivateKeyTemplate[i].type,
- pPrivateKeyTemplate[i].pValue,
- pPrivateKeyTemplate[i].ulValueLen);
- *phPrivateKey = ++unique_identifier;
- if (gck_attributes_find_boolean (attrs, CKA_TOKEN, &token) && token)
- g_hash_table_insert (the_objects, GUINT_TO_POINTER (*phPrivateKey), attrs);
- else
- g_hash_table_insert (session->objects, GUINT_TO_POINTER (*phPrivateKey), attrs);
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_unsupported_C_WrapKey (CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE hWrappingKey, CK_OBJECT_HANDLE hKey,
- CK_BYTE_PTR pWrappedKey, CK_ULONG_PTR pulWrappedKeyLen)
-{
- GckAttributes *attrs;
- GckAttribute *attr;
- Session *session;
-
- g_return_val_if_fail (pMechanism, CKR_MECHANISM_INVALID);
- g_return_val_if_fail (hWrappingKey, CKR_OBJECT_HANDLE_INVALID);
- g_return_val_if_fail (hKey, CKR_OBJECT_HANDLE_INVALID);
- g_return_val_if_fail (pulWrappedKeyLen, CKR_WRAPPED_KEY_LEN_RANGE);
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session != NULL, CKR_SESSION_HANDLE_INVALID);
-
- attrs = lookup_object (session, hWrappingKey);
- g_return_val_if_fail (attrs, CKR_WRAPPING_KEY_HANDLE_INVALID);
-
- attrs = lookup_object (session, hKey);
- g_return_val_if_fail (attrs, CKR_WRAPPED_KEY_INVALID);
-
- if (pMechanism->mechanism != CKM_MOCK_WRAP)
- return CKR_MECHANISM_INVALID;
-
- if (pMechanism->pParameter) {
- if (pMechanism->ulParameterLen != 4 ||
- memcmp (pMechanism->pParameter, "wrap", 4) != 0)
- g_return_val_if_reached (CKR_MECHANISM_PARAM_INVALID);
- }
-
- attr = gck_attributes_find (attrs, CKA_VALUE);
- if (attr == NULL)
- return CKR_WRAPPED_KEY_INVALID;
-
- if (!pWrappedKey) {
- *pulWrappedKeyLen = attr->length;
- return CKR_OK;
- }
-
- if (*pulWrappedKeyLen < attr->length) {
- *pulWrappedKeyLen = attr->length;
- return CKR_BUFFER_TOO_SMALL;
- }
-
- memcpy (pWrappedKey, attr->value, attr->length);
- *pulWrappedKeyLen = attr->length;
-
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_unsupported_C_UnwrapKey (CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE hUnwrappingKey, CK_BYTE_PTR pWrappedKey,
- CK_ULONG ulWrappedKeyLen, CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phKey)
-{
- GckAttributes *attrs;
- Session *session;
- gboolean token;
- CK_ULONG i;
-
- g_return_val_if_fail (pMechanism, CKR_MECHANISM_INVALID);
- g_return_val_if_fail (hUnwrappingKey, CKR_WRAPPING_KEY_HANDLE_INVALID);
- g_return_val_if_fail (pWrappedKey, CKR_WRAPPED_KEY_INVALID);
- g_return_val_if_fail (ulWrappedKeyLen, CKR_WRAPPED_KEY_LEN_RANGE);
- g_return_val_if_fail (phKey, CKR_ARGUMENTS_BAD);
- g_return_val_if_fail (pTemplate, CKR_TEMPLATE_INCOMPLETE);
- g_return_val_if_fail (ulCount, CKR_TEMPLATE_INCONSISTENT);
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session != NULL, CKR_SESSION_HANDLE_INVALID);
-
- attrs = lookup_object (session, hUnwrappingKey);
- g_return_val_if_fail (attrs, CKR_WRAPPING_KEY_HANDLE_INVALID);
-
- if (pMechanism->mechanism != CKM_MOCK_WRAP)
- return CKR_MECHANISM_INVALID;
-
- if (pMechanism->pParameter) {
- if (pMechanism->ulParameterLen != 4 ||
- memcmp (pMechanism->pParameter, "wrap", 4) != 0)
- g_return_val_if_reached (CKR_MECHANISM_PARAM_INVALID);
- }
-
- attrs = gck_attributes_new ();
- gck_attributes_add_data (attrs, CKA_VALUE, pWrappedKey, ulWrappedKeyLen);
- for (i = 0; i < ulCount; ++i)
- gck_attributes_add_data (attrs, pTemplate[i].type,
- pTemplate[i].pValue,
- pTemplate[i].ulValueLen);
- *phKey = ++unique_identifier;
- if (gck_attributes_find_boolean (attrs, CKA_TOKEN, &token) && token)
- g_hash_table_insert (the_objects, GUINT_TO_POINTER (*phKey), attrs);
- else
- g_hash_table_insert (session->objects, GUINT_TO_POINTER (*phKey), attrs);
-
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_unsupported_C_DeriveKey (CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE hBaseKey, CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phKey)
-{
- GckAttributes *attrs, *copy;
- Session *session;
- gboolean token;
- CK_ULONG i;
-
- g_return_val_if_fail (pMechanism, CKR_MECHANISM_INVALID);
- g_return_val_if_fail (ulCount, CKR_TEMPLATE_INCOMPLETE);
- g_return_val_if_fail (pTemplate, CKR_TEMPLATE_INCOMPLETE);
- g_return_val_if_fail (phKey, CKR_ARGUMENTS_BAD);
-
- session = g_hash_table_lookup (the_sessions, GUINT_TO_POINTER (hSession));
- g_return_val_if_fail (session, CKR_SESSION_HANDLE_INVALID);
-
- attrs = lookup_object (session, hBaseKey);
- g_return_val_if_fail (attrs, CKR_KEY_HANDLE_INVALID);
-
- if (pMechanism->mechanism != CKM_MOCK_DERIVE)
- return CKR_MECHANISM_INVALID;
-
- if (pMechanism->pParameter) {
- if (pMechanism->ulParameterLen != 6 ||
- memcmp (pMechanism->pParameter, "derive", 6) != 0)
- g_return_val_if_reached (CKR_MECHANISM_PARAM_INVALID);
- }
-
- copy = gck_attributes_new ();
- gck_attributes_add_string (copy, CKA_VALUE, "derived");
- for (i = 0; i < ulCount; ++i)
- gck_attributes_add_data (copy, pTemplate[i].type,
- pTemplate[i].pValue,
- pTemplate[i].ulValueLen);
- for (i = 0; i < gck_attributes_count (attrs); ++i)
- gck_attributes_add (copy, gck_attributes_at (attrs, i));
- *phKey = ++unique_identifier;
- if (gck_attributes_find_boolean (copy, CKA_TOKEN, &token) && token)
- g_hash_table_insert (the_objects, GUINT_TO_POINTER (*phKey), copy);
- else
- g_hash_table_insert (session->objects, GUINT_TO_POINTER (*phKey), copy);
-
- return CKR_OK;
-}
-
-CK_RV
-gck_mock_unsupported_C_SeedRandom (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSeed, CK_ULONG ulSeedLen)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-CK_RV
-gck_mock_unsupported_C_GenerateRandom (CK_SESSION_HANDLE hSession, CK_BYTE_PTR pRandomData,
- CK_ULONG ulRandomLen)
-{
- return CKR_FUNCTION_NOT_SUPPORTED;
-}
-
-static CK_FUNCTION_LIST functionList = {
- { 2, 11 }, /* version */
- gck_mock_validate_and_C_Initialize,
- gck_mock_C_Finalize,
- gck_mock_C_GetInfo,
- gck_mock_C_GetFunctionList,
- gck_mock_C_GetSlotList,
- gck_mock_C_GetSlotInfo,
- gck_mock_C_GetTokenInfo,
- gck_mock_C_GetMechanismList,
- gck_mock_C_GetMechanismInfo,
- gck_mock_specific_args_C_InitToken,
- gck_mock_C_InitPIN,
- gck_mock_C_SetPIN,
- gck_mock_C_OpenSession,
- gck_mock_C_CloseSession,
- gck_mock_C_CloseAllSessions,
- gck_mock_C_GetSessionInfo,
- gck_mock_unsupported_C_GetOperationState,
- gck_mock_unsupported_C_SetOperationState,
- gck_mock_C_Login,
- gck_mock_C_Logout,
- gck_mock_C_CreateObject,
- gck_mock_unsupported_C_CopyObject,
- gck_mock_C_DestroyObject,
- gck_mock_unsupported_C_GetObjectSize,
- gck_mock_C_GetAttributeValue,
- gck_mock_C_SetAttributeValue,
- gck_mock_C_FindObjectsInit,
- gck_mock_C_FindObjects,
- gck_mock_C_FindObjectsFinal,
- gck_mock_C_EncryptInit,
- gck_mock_C_Encrypt,
- gck_mock_unsupported_C_EncryptUpdate,
- gck_mock_unsupported_C_EncryptFinal,
- gck_mock_C_DecryptInit,
- gck_mock_C_Decrypt,
- gck_mock_unsupported_C_DecryptUpdate,
- gck_mock_unsupported_C_DecryptFinal,
- gck_mock_unsupported_C_DigestInit,
- gck_mock_unsupported_C_Digest,
- gck_mock_unsupported_C_DigestUpdate,
- gck_mock_unsupported_C_DigestKey,
- gck_mock_unsupported_C_DigestFinal,
- gck_mock_C_SignInit,
- gck_mock_C_Sign,
- gck_mock_unsupported_C_SignUpdate,
- gck_mock_unsupported_C_SignFinal,
- gck_mock_unsupported_C_SignRecoverInit,
- gck_mock_unsupported_C_SignRecover,
- gck_mock_C_VerifyInit,
- gck_mock_C_Verify,
- gck_mock_unsupported_C_VerifyUpdate,
- gck_mock_unsupported_C_VerifyFinal,
- gck_mock_unsupported_C_VerifyRecoverInit,
- gck_mock_unsupported_C_VerifyRecover,
- gck_mock_unsupported_C_DigestEncryptUpdate,
- gck_mock_unsupported_C_DecryptDigestUpdate,
- gck_mock_unsupported_C_SignEncryptUpdate,
- gck_mock_unsupported_C_DecryptVerifyUpdate,
- gck_mock_unsupported_C_GenerateKey,
- gck_mock_unsupported_C_GenerateKeyPair,
- gck_mock_unsupported_C_WrapKey,
- gck_mock_unsupported_C_UnwrapKey,
- gck_mock_unsupported_C_DeriveKey,
- gck_mock_unsupported_C_SeedRandom,
- gck_mock_unsupported_C_GenerateRandom,
- gck_mock_C_GetFunctionStatus,
- gck_mock_C_CancelFunction,
- gck_mock_unsupported_C_WaitForSlotEvent
-};
diff --git a/gck/gck-mock.h b/gck/gck-mock.h
deleted file mode 100644
index 2b2c8e1d..00000000
--- a/gck/gck-mock.h
+++ /dev/null
@@ -1,420 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include <glib.h>
-
-#include "gck.h"
-
-#include "pkcs11/pkcs11.h"
-#include "pkcs11/pkcs11i.h"
-
-#ifndef GCK_MOCK_H
-#define GCK_MOCK_H
-
-CK_RV gck_mock_C_Initialize (CK_VOID_PTR pInitArgs);
-
-CK_RV gck_mock_validate_and_C_Initialize (CK_VOID_PTR pInitArgs);
-
-CK_RV gck_mock_C_Finalize (CK_VOID_PTR pReserved);
-
-CK_RV gck_mock_C_GetInfo (CK_INFO_PTR pInfo);
-
-CK_RV gck_mock_C_GetFunctionList (CK_FUNCTION_LIST_PTR_PTR list);
-
-CK_RV gck_mock_C_GetSlotList (CK_BBOOL tokenPresent,
- CK_SLOT_ID_PTR pSlotList,
- CK_ULONG_PTR pulCount);
-
-CK_RV gck_mock_C_GetSlotInfo (CK_SLOT_ID slotID,
- CK_SLOT_INFO_PTR pInfo);
-
-CK_RV gck_mock_C_GetTokenInfo (CK_SLOT_ID slotID,
- CK_TOKEN_INFO_PTR pInfo);
-
-CK_RV gck_mock_fail_C_GetTokenInfo (CK_SLOT_ID slotID,
- CK_TOKEN_INFO_PTR pInfo);
-
-CK_RV gck_mock_C_GetMechanismList (CK_SLOT_ID slotID,
- CK_MECHANISM_TYPE_PTR pMechanismList,
- CK_ULONG_PTR pulCount);
-
-CK_RV gck_mock_C_GetMechanismInfo (CK_SLOT_ID slotID,
- CK_MECHANISM_TYPE type,
- CK_MECHANISM_INFO_PTR pInfo);
-
-CK_RV gck_mock_specific_args_C_InitToken (CK_SLOT_ID slotID,
- CK_UTF8CHAR_PTR pPin,
- CK_ULONG ulPinLen,
- CK_UTF8CHAR_PTR pLabel);
-
-CK_RV gck_mock_unsupported_C_WaitForSlotEvent (CK_FLAGS flags,
- CK_SLOT_ID_PTR pSlot,
- CK_VOID_PTR pReserved);
-
-CK_RV gck_mock_C_OpenSession (CK_SLOT_ID slotID,
- CK_FLAGS flags,
- CK_VOID_PTR pApplication,
- CK_NOTIFY Notify,
- CK_SESSION_HANDLE_PTR phSession);
-
-CK_RV gck_mock_fail_C_OpenSession (CK_SLOT_ID slotID,
- CK_FLAGS flags,
- CK_VOID_PTR pApplication,
- CK_NOTIFY Notify,
- CK_SESSION_HANDLE_PTR phSession);
-
-CK_RV gck_mock_C_CloseSession (CK_SESSION_HANDLE hSession);
-
-CK_RV gck_mock_C_CloseAllSessions (CK_SLOT_ID slotID);
-
-CK_RV gck_mock_C_GetFunctionStatus (CK_SESSION_HANDLE hSession);
-
-CK_RV gck_mock_C_CancelFunction (CK_SESSION_HANDLE hSession);
-
-CK_RV gck_mock_C_GetSessionInfo (CK_SESSION_HANDLE hSession,
- CK_SESSION_INFO_PTR pInfo);
-
-CK_RV gck_mock_fail_C_GetSessionInfo (CK_SESSION_HANDLE hSession,
- CK_SESSION_INFO_PTR pInfo);
-
-CK_RV gck_mock_C_InitPIN (CK_SESSION_HANDLE hSession,
- CK_UTF8CHAR_PTR pPin,
- CK_ULONG ulPinLen);
-
-CK_RV gck_mock_C_SetPIN (CK_SESSION_HANDLE hSession,
- CK_UTF8CHAR_PTR pOldPin,
- CK_ULONG ulOldLen,
- CK_UTF8CHAR_PTR pNewPin,
- CK_ULONG ulNewLen);
-
-CK_RV gck_mock_unsupported_C_GetOperationState (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pOperationState,
- CK_ULONG_PTR pulOperationStateLen);
-
-CK_RV gck_mock_unsupported_C_SetOperationState (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pOperationState,
- CK_ULONG ulOperationStateLen,
- CK_OBJECT_HANDLE hEncryptionKey,
- CK_OBJECT_HANDLE hAuthenticationKey);
-
-CK_RV gck_mock_C_Login (CK_SESSION_HANDLE hSession,
- CK_USER_TYPE userType,
- CK_UTF8CHAR_PTR pPin,
- CK_ULONG pPinLen);
-
-CK_RV gck_mock_C_Logout (CK_SESSION_HANDLE hSession);
-
-CK_RV gck_mock_C_CreateObject (CK_SESSION_HANDLE hSession,
- CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulCount,
- CK_OBJECT_HANDLE_PTR phObject);
-
-CK_RV gck_mock_fail_C_CreateObject (CK_SESSION_HANDLE hSession,
- CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulCount,
- CK_OBJECT_HANDLE_PTR phObject);
-
-CK_RV gck_mock_unsupported_C_CopyObject (CK_SESSION_HANDLE hSession,
- CK_OBJECT_HANDLE hObject,
- CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulCount,
- CK_OBJECT_HANDLE_PTR phNewObject);
-
-CK_RV gck_mock_C_DestroyObject (CK_SESSION_HANDLE hSession,
- CK_OBJECT_HANDLE hObject);
-
-CK_RV gck_mock_unsupported_C_GetObjectSize (CK_SESSION_HANDLE hSession,
- CK_OBJECT_HANDLE hObject,
- CK_ULONG_PTR pulSize);
-
-CK_RV gck_mock_C_GetAttributeValue (CK_SESSION_HANDLE hSession,
- CK_OBJECT_HANDLE hObject,
- CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulCount);
-
-CK_RV gck_mock_fail_C_GetAttributeValue (CK_SESSION_HANDLE hSession,
- CK_OBJECT_HANDLE hObject,
- CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulCount);
-
-CK_RV gck_mock_C_SetAttributeValue (CK_SESSION_HANDLE hSession,
- CK_OBJECT_HANDLE hObject,
- CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulCount);
-
-CK_RV gck_mock_C_FindObjectsInit (CK_SESSION_HANDLE hSession,
- CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulCount);
-
-CK_RV gck_mock_C_FindObjects (CK_SESSION_HANDLE hSession,
- CK_OBJECT_HANDLE_PTR phObject,
- CK_ULONG ulMaxObjectCount,
- CK_ULONG_PTR pulObjectCount);
-
-CK_RV gck_mock_fail_C_FindObjects (CK_SESSION_HANDLE hSession,
- CK_OBJECT_HANDLE_PTR phObject,
- CK_ULONG ulMaxObjectCount,
- CK_ULONG_PTR pulObjectCount);
-
-CK_RV gck_mock_C_FindObjectsFinal (CK_SESSION_HANDLE hSession);
-
-CK_RV gck_mock_C_EncryptInit (CK_SESSION_HANDLE hSession,
- CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE hKey);
-
-CK_RV gck_mock_C_Encrypt (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pData,
- CK_ULONG ulDataLen,
- CK_BYTE_PTR pEncryptedData,
- CK_ULONG_PTR pulEncryptedDataLen);
-
-CK_RV gck_mock_unsupported_C_EncryptUpdate (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pPart,
- CK_ULONG ulPartLen,
- CK_BYTE_PTR pEncryptedPart,
- CK_ULONG_PTR pulEncryptedPartLen);
-
-CK_RV gck_mock_unsupported_C_EncryptFinal (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pLastEncryptedPart,
- CK_ULONG_PTR pulLastEncryptedPartLen);
-
-CK_RV gck_mock_C_DecryptInit (CK_SESSION_HANDLE hSession,
- CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE hKey);
-
-CK_RV gck_mock_C_Decrypt (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pEncryptedData,
- CK_ULONG ulEncryptedDataLen,
- CK_BYTE_PTR pData,
- CK_ULONG_PTR pulDataLen);
-
-CK_RV gck_mock_unsupported_C_DecryptUpdate (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pEncryptedPart,
- CK_ULONG ulEncryptedPartLen,
- CK_BYTE_PTR pPart,
- CK_ULONG_PTR pulPartLen);
-
-CK_RV gck_mock_unsupported_C_DecryptFinal (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pLastPart,
- CK_ULONG_PTR pulLastPartLen);
-
-CK_RV gck_mock_unsupported_C_DigestInit (CK_SESSION_HANDLE hSession,
- CK_MECHANISM_PTR pMechanism);
-
-CK_RV gck_mock_unsupported_C_Digest (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pData,
- CK_ULONG ulDataLen,
- CK_BYTE_PTR pDigest,
- CK_ULONG_PTR pulDigestLen);
-
-CK_RV gck_mock_unsupported_C_DigestUpdate (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pPart,
- CK_ULONG ulPartLen);
-
-CK_RV gck_mock_unsupported_C_DigestKey (CK_SESSION_HANDLE hSession,
- CK_OBJECT_HANDLE hKey);
-
-CK_RV gck_mock_unsupported_C_DigestFinal (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pDigest,
- CK_ULONG_PTR pulDigestLen);
-
-CK_RV gck_mock_C_SignInit (CK_SESSION_HANDLE hSession,
- CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE hKey);
-
-CK_RV gck_mock_C_Sign (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pData,
- CK_ULONG ulDataLen,
- CK_BYTE_PTR pSignature,
- CK_ULONG_PTR pulSignatureLen);
-
-CK_RV gck_mock_unsupported_C_SignUpdate (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pPart,
- CK_ULONG ulPartLen);
-
-CK_RV gck_mock_unsupported_C_SignFinal (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pSignature,
- CK_ULONG_PTR pulSignatureLen);
-
-CK_RV gck_mock_unsupported_C_SignRecoverInit (CK_SESSION_HANDLE hSession,
- CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE hKey);
-
-CK_RV gck_mock_unsupported_C_SignRecover (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pData,
- CK_ULONG ulDataLen,
- CK_BYTE_PTR pSignature,
- CK_ULONG_PTR pulSignatureLen);
-
-CK_RV gck_mock_C_VerifyInit (CK_SESSION_HANDLE hSession,
- CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE hKey);
-
-CK_RV gck_mock_C_Verify (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pData,
- CK_ULONG ulDataLen,
- CK_BYTE_PTR pSignature,
- CK_ULONG ulSignatureLen);
-
-CK_RV gck_mock_unsupported_C_VerifyUpdate (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pPart,
- CK_ULONG ulPartLen);
-
-CK_RV gck_mock_unsupported_C_VerifyFinal (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pSignature,
- CK_ULONG pulSignatureLen);
-
-CK_RV gck_mock_unsupported_C_VerifyRecoverInit (CK_SESSION_HANDLE hSession,
- CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE hKey);
-
-CK_RV gck_mock_unsupported_C_VerifyRecover (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pSignature,
- CK_ULONG pulSignatureLen,
- CK_BYTE_PTR pData,
- CK_ULONG_PTR pulDataLen);
-
-CK_RV gck_mock_unsupported_C_DigestEncryptUpdate (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pPart,
- CK_ULONG ulPartLen,
- CK_BYTE_PTR pEncryptedPart,
- CK_ULONG_PTR ulEncryptedPartLen);
-
-CK_RV gck_mock_unsupported_C_DecryptDigestUpdate (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pEncryptedPart,
- CK_ULONG ulEncryptedPartLen,
- CK_BYTE_PTR pPart,
- CK_ULONG_PTR pulPartLen);
-
-CK_RV gck_mock_unsupported_C_SignEncryptUpdate (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pPart,
- CK_ULONG ulPartLen,
- CK_BYTE_PTR pEncryptedPart,
- CK_ULONG_PTR ulEncryptedPartLen);
-
-CK_RV gck_mock_unsupported_C_DecryptVerifyUpdate (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pEncryptedPart,
- CK_ULONG ulEncryptedPartLen,
- CK_BYTE_PTR pPart,
- CK_ULONG_PTR pulPartLen);
-
-CK_RV gck_mock_unsupported_C_GenerateKey (CK_SESSION_HANDLE hSession,
- CK_MECHANISM_PTR pMechanism,
- CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulCount,
- CK_OBJECT_HANDLE_PTR phKey);
-
-CK_RV gck_mock_unsupported_C_GenerateKeyPair (CK_SESSION_HANDLE hSession,
- CK_MECHANISM_PTR pMechanism,
- CK_ATTRIBUTE_PTR pPublicKeyTemplate,
- CK_ULONG ulPublicKeyAttributeCount,
- CK_ATTRIBUTE_PTR pPrivateKeyTemplate,
- CK_ULONG ulPrivateKeyAttributeCount,
- CK_OBJECT_HANDLE_PTR phPublicKey,
- CK_OBJECT_HANDLE_PTR phPrivateKey);
-
-CK_RV gck_mock_unsupported_C_WrapKey (CK_SESSION_HANDLE hSession,
- CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE hWrappingKey,
- CK_OBJECT_HANDLE hKey,
- CK_BYTE_PTR pWrappedKey,
- CK_ULONG_PTR pulWrappedKeyLen);
-
-CK_RV gck_mock_unsupported_C_UnwrapKey (CK_SESSION_HANDLE hSession,
- CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE pUnwrappingKey,
- CK_BYTE_PTR pWrappedKey,
- CK_ULONG pulWrappedKeyLen,
- CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulCount,
- CK_OBJECT_HANDLE_PTR phKey);
-
-CK_RV gck_mock_unsupported_C_DeriveKey (CK_SESSION_HANDLE hSession,
- CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE hBaseKey,
- CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulCount,
- CK_OBJECT_HANDLE_PTR phKey);
-
-CK_RV gck_mock_unsupported_C_SeedRandom (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pSeed,
- CK_ULONG ulSeedLen);
-
-CK_RV gck_mock_unsupported_C_GenerateRandom (CK_SESSION_HANDLE hSession,
- CK_BYTE_PTR pRandomData,
- CK_ULONG ulRandomLen);
-
-CK_OBJECT_HANDLE gck_mock_module_find_object (CK_SESSION_HANDLE session,
- CK_ATTRIBUTE_PTR attrs,
- CK_ULONG n_attrs);
-
-guint gck_mock_module_count_objects (CK_SESSION_HANDLE session);
-
-typedef gboolean (*GckMockEnumerator) (CK_OBJECT_HANDLE handle,
- GckAttributes *attrs,
- gpointer user_data);
-
-void gck_mock_module_enumerate_objects (CK_SESSION_HANDLE session,
- GckMockEnumerator func,
- gpointer user_data);
-
-CK_OBJECT_HANDLE gck_mock_module_take_object (GckAttributes *attrs);
-
-void gck_mock_module_set_object (CK_OBJECT_HANDLE object,
- CK_ATTRIBUTE_PTR attrs,
- CK_ULONG n_attrs);
-
-void gck_mock_module_set_pin (const gchar *password);
-
-/*
- * Some dumb crypto mechanisms for simple testing.
- *
- * CKM_T_CAPITALIZE (encrypt/decrypt)
- * capitalizes to encrypt
- * lowercase to decrypt
- *
- * CKM_T_PREFIX (sign/verify)
- * sign prefixes data with key label
- * verify unprefixes data with key label.
- *
- * CKM_T_GENERATE (generate-pair)
- * generates a pair of keys, mechanism param should be 'generate'
- *
- * CKM_T_WRAP (wrap key)
- * wraps key by returning value, mechanism param should be 'wrap'
- *
- * CKM_T_DERIVE (derive-key)
- * derives key by setting value to 'derived'.
- * mechanism param should be 'derive'
- */
-
-#define CKM_MOCK_CAPITALIZE (CKM_VENDOR_DEFINED | 1)
-#define CKM_MOCK_PREFIX (CKM_VENDOR_DEFINED | 2)
-#define CKM_MOCK_GENERATE (CKM_VENDOR_DEFINED | 3)
-#define CKM_MOCK_WRAP (CKM_VENDOR_DEFINED | 4)
-#define CKM_MOCK_DERIVE (CKM_VENDOR_DEFINED | 5)
-
-#define GCK_MOCK_SLOT_ONE_ID 52
-#define GCK_MOCK_SLOT_TWO_ID 134
-
-#define GCK_MOCK_SLOT_ONE_URI "pkcs11:manufacturer=TEST%20MANUFACTURER;serial=TEST%20SERIAL"
-
-#endif /* GCK_MOCK_H */
diff --git a/gck/gck-module.c b/gck/gck-module.c
deleted file mode 100644
index cdd9d451..00000000
--- a/gck/gck-module.c
+++ /dev/null
@@ -1,748 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gck-module.c - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2008, Stefan Walter
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <nielsen@memberwebs.com>
-*/
-
-#include "config.h"
-
-#include "gck.h"
-#include "gck-private.h"
-#include "gck-marshal.h"
-
-#include <glib/gi18n.h>
-
-#include <p11-kit/p11-kit.h>
-
-#include <string.h>
-
-/**
- * SECTION:gck-module
- * @title: GckModule
- * @short_description: A loaded and initialized PKCS\#11 module.
- *
- * A GckModule object holds a loaded PKCS\#11 module. A PKCS\#11 module is a shared library.
- *
- * You can load and initialize a PKCS\#11 module with the gck_module_initialize() call. If you already
- * have a loaded and initialized module that you'd like to use with the various gck functions, then
- * you can use gck_module_new().
- */
-
-/**
- * GckModule:
- * @parent: derived from this.
- *
- * Holds a loaded and initialized PKCS\#11 module.
- */
-
-/**
- * GckModuleInfo:
- * @pkcs11_version_major: The major version of the module.
- * @pkcs11_version_minor: The minor version of the module.
- * @manufacturer_id: The module manufacturer.
- * @flags: The module PKCS&num;11 flags.
- * @library_description: The module description.
- * @library_version_major: The major version of the library.
- * @library_version_minor: The minor version of the library.
- *
- * Holds information about the PKCS&num;11 module.
- *
- * This structure corresponds to CK_MODULE_INFO in the PKCS\#11 standard. The
- * strings are NULL terminated for easier use.
- *
- * Use gck_module_info_free() to release this structure when done with it.
- */
-
-/*
- * MT safe
- *
- * The only thing that can change after object initialization in
- * a GckModule is the finalized flag, which can be set
- * to 1 in dispose.
- */
-
-enum {
- PROP_0,
- PROP_PATH,
- PROP_FUNCTIONS
-};
-
-enum {
- AUTHENTICATE_SLOT,
- AUTHENTICATE_OBJECT,
- LAST_SIGNAL
-};
-
-struct _GckModulePrivate {
- GModule *module;
- gchar *path;
- gboolean initialized;
- CK_FUNCTION_LIST_PTR funcs;
- CK_C_INITIALIZE_ARGS init_args;
-
- /* Modified atomically */
- gint finalized;
-};
-
-G_DEFINE_TYPE (GckModule, gck_module, G_TYPE_OBJECT);
-
-static guint signals[LAST_SIGNAL] = { 0 };
-
-/* ----------------------------------------------------------------------------
- * OBJECT
- */
-
-static gboolean
-gck_module_real_authenticate_slot (GckModule *module, GckSlot *self, gchar *label, gchar **password)
-{
- return FALSE;
-}
-
-static gboolean
-gck_module_real_authenticate_object (GckModule *module, GckObject *object, gchar *label, gchar **password)
-{
- return FALSE;
-}
-
-static void
-gck_module_init (GckModule *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCK_TYPE_MODULE, GckModulePrivate);
-}
-
-static void
-gck_module_get_property (GObject *obj, guint prop_id, GValue *value,
- GParamSpec *pspec)
-{
- GckModule *self = GCK_MODULE (obj);
-
- switch (prop_id) {
- case PROP_PATH:
- g_value_set_string (value, gck_module_get_path (self));
- break;
- case PROP_FUNCTIONS:
- g_value_set_pointer (value, gck_module_get_functions (self));
- break;
- }
-}
-
-static void
-gck_module_set_property (GObject *obj, guint prop_id, const GValue *value,
- GParamSpec *pspec)
-{
- GckModule *self = GCK_MODULE (obj);
-
- /* Only allowed during initialization */
- switch (prop_id) {
- case PROP_PATH:
- g_return_if_fail (!self->pv->path);
- self->pv->path = g_value_dup_string (value);
- break;
- case PROP_FUNCTIONS:
- g_return_if_fail (!self->pv->funcs);
- self->pv->funcs = g_value_get_pointer (value);
- break;
- }
-}
-
-static void
-gck_module_dispose (GObject *obj)
-{
- GckModule *self = GCK_MODULE (obj);
- gboolean finalize = FALSE;
- CK_RV rv;
-
- if (self->pv->initialized && self->pv->funcs) {
- if (g_atomic_int_compare_and_exchange (&self->pv->finalized, 0, 1))
- finalize = TRUE;
- }
-
- /* Must be careful when accessing funcs */
- if (finalize) {
- rv = p11_kit_finalize_module (self->pv->funcs);
- if (rv != CKR_OK) {
- g_warning ("C_Finalize on module '%s' failed: %s",
- self->pv->path, gck_message_from_rv (rv));
- }
- }
-
- G_OBJECT_CLASS (gck_module_parent_class)->dispose (obj);
-}
-
-static void
-gck_module_finalize (GObject *obj)
-{
- GckModule *self = GCK_MODULE (obj);
-
- self->pv->funcs = NULL;
-
- if (self->pv->module) {
- if (!g_module_close (self->pv->module))
- g_warning ("failed to close the pkcs11 module: %s",
- g_module_error ());
- self->pv->module = NULL;
- }
-
- g_free (self->pv->path);
- self->pv->path = NULL;
-
- G_OBJECT_CLASS (gck_module_parent_class)->finalize (obj);
-}
-
-
-static void
-gck_module_class_init (GckModuleClass *klass)
-{
- GObjectClass *gobject_class = (GObjectClass*)klass;
- gck_module_parent_class = g_type_class_peek_parent (klass);
-
- gobject_class->get_property = gck_module_get_property;
- gobject_class->set_property = gck_module_set_property;
- gobject_class->dispose = gck_module_dispose;
- gobject_class->finalize = gck_module_finalize;
-
- klass->authenticate_object = gck_module_real_authenticate_object;
- klass->authenticate_slot = gck_module_real_authenticate_slot;
-
- /**
- * GckModule:path:
- *
- * The PKCS&num;11 module file path.
- *
- * This may be set to NULL if this object was created from an already
- * initialized module via the gck_module_new() function.
- */
- g_object_class_install_property (gobject_class, PROP_PATH,
- g_param_spec_string ("path", "Module Path", "Path to the PKCS11 Module",
- NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- /**
- * GckModule:functions:
- *
- * The raw PKCS&num;11 function list for the module.
- *
- * This points to a CK_FUNCTION_LIST structure.
- */
- g_object_class_install_property (gobject_class, PROP_FUNCTIONS,
- g_param_spec_pointer ("functions", "Function List", "PKCS11 Function List",
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- /**
- * GckModule::authenticate-slot:
- * @module: The module
- * @slot: The slot to be authenticated.
- * @string: A displayable label which describes the object.
- * @password: A gchar** where a password should be returned.
- *
- * Use gck_slot_set_interaction() instead of connecting to this signal.
- *
- * Deprecated: Since 3.4
- */
- signals[AUTHENTICATE_SLOT] = g_signal_new ("authenticate-slot", GCK_TYPE_MODULE,
- G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GckModuleClass, authenticate_slot),
- g_signal_accumulator_true_handled, NULL, _gck_marshal_BOOLEAN__OBJECT_STRING_POINTER,
- G_TYPE_BOOLEAN, 3, GCK_TYPE_SLOT, G_TYPE_STRING, G_TYPE_POINTER);
-
- /**
- * GckModule::authenticate-object:
- * @module: The module.
- * @object: The object to be authenticated.
- * @label: A displayable label which describes the object.
- * @password: A gchar** where a password should be returned.
- *
- * Use gck_slot_set_interaction() instead of connecting to this signal.
- *
- * Deprecated: Since 3.4
- */
- signals[AUTHENTICATE_OBJECT] = g_signal_new ("authenticate-object", GCK_TYPE_MODULE,
- G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GckModuleClass, authenticate_object),
- g_signal_accumulator_true_handled, NULL, _gck_marshal_BOOLEAN__OBJECT_STRING_POINTER,
- G_TYPE_BOOLEAN, 3, GCK_TYPE_OBJECT, G_TYPE_STRING, G_TYPE_POINTER);
-
- g_type_class_add_private (gobject_class, sizeof (GckModulePrivate));
-}
-
-GType
-gck_module_info_get_type (void)
-{
- static volatile gsize initialized = 0;
- static GType type = 0;
- if (g_once_init_enter (&initialized)) {
- type = g_boxed_type_register_static ("GckModuleInfo",
- (GBoxedCopyFunc)gck_module_info_copy,
- (GBoxedFreeFunc)gck_module_info_free);
- g_once_init_leave (&initialized, 1);
- }
- return type;
-}
-
-/**
- * gck_module_info_copy:
- * @module_info: a module info
- *
- * Make a copy of the module info.
- *
- * Returns: (transfer full): a newly allocated copy module info
- */
-GckModuleInfo *
-gck_module_info_copy (GckModuleInfo *module_info)
-{
- if (module_info == NULL)
- return NULL;
-
- module_info = g_memdup (module_info, sizeof (GckModuleInfo));
- module_info->manufacturer_id = g_strdup (module_info->manufacturer_id);
- module_info->library_description = g_strdup (module_info->library_description);
- return module_info;
-
-}
-
-/**
- * gck_module_info_free:
- * @module_info: The module info to free, or NULL.
- *
- * Free a GckModuleInfo structure.
- **/
-void
-gck_module_info_free (GckModuleInfo *module_info)
-{
- if (!module_info)
- return;
- g_free (module_info->library_description);
- g_free (module_info->manufacturer_id);
- g_free (module_info);
-}
-
-typedef struct {
- GckArguments base;
- gchar *path;
- GckModule *result;
- GError *error;
-} Initialize;
-
-static CK_RV
-perform_initialize (Initialize *args)
-{
- CK_C_GetFunctionList get_function_list;
- CK_FUNCTION_LIST_PTR funcs;
- GModule *module;
- GckModule *result;
- CK_RV rv;
-
- /* Load the actual module */
- module = g_module_open (args->path, 0);
- if (!module) {
- g_set_error (&args->error, GCK_ERROR, (int)CKR_GCK_MODULE_PROBLEM,
- _("Error loading PKCS#11 module: %s"), g_module_error ());
- return CKR_GCK_MODULE_PROBLEM;
- }
-
- /* Get the entry point */
- if (!g_module_symbol (module, "C_GetFunctionList", (void**)&get_function_list)) {
- g_set_error (&args->error, GCK_ERROR, (int)CKR_GCK_MODULE_PROBLEM,
- _("Invalid PKCS#11 module: %s"), g_module_error ());
- g_module_close (module);
- return CKR_GCK_MODULE_PROBLEM;
- }
-
- /* Get the function list */
- rv = (get_function_list) (&funcs);
- if (rv != CKR_OK) {
- g_set_error (&args->error, GCK_ERROR, rv,
- _("Couldn't setup PKCS#11 module: %s"),
- gck_message_from_rv (rv));
- g_module_close (module);
- return rv;
- }
-
- result = g_object_new (GCK_TYPE_MODULE,
- "functions", funcs,
- "path", args->path,
- NULL);
- result->pv->module = module;
-
- /* Now initialize the module */
- rv = p11_kit_initialize_module (funcs);
- if (rv != CKR_OK) {
- g_set_error (&args->error, GCK_ERROR, rv,
- _("Couldn't initialize PKCS#11 module: %s"),
- gck_message_from_rv (rv));
- g_object_unref (result);
- return rv;
- }
-
- result->pv->initialized = TRUE;
- args->result = result;
- return CKR_OK;
-}
-
-static void
-free_initialize (Initialize *args)
-{
- g_free (args->path);
- g_clear_error (&args->error);
- g_clear_object (&args->result);
- g_free (args);
-}
-
-/**
- * gck_module_initialize:
- * @path: The file system path to the PKCS\#11 module to load.
- * @cancellable: (allow-none): optional cancellation object
- * @error: A location to store an error resulting from a failed load.
- *
- * Load and initialize a PKCS\#11 module represented by a GckModule object.
- *
- * Return value: (transfer full): The loaded PKCS\#11 module or %NULL if failed.
- **/
-GckModule*
-gck_module_initialize (const gchar *path,
- GCancellable *cancellable,
- GError **error)
-{
- Initialize args = { GCK_ARGUMENTS_INIT, 0, };
-
- g_return_val_if_fail (path != NULL, NULL);
- g_return_val_if_fail (!error || !*error, NULL);
-
- args.path = g_strdup (path);
-
- if (!_gck_call_sync (NULL, perform_initialize, NULL, &args, cancellable, error)) {
-
- /* A custom error from perform_initialize */
- if (args.error) {
- g_clear_error (error);
- g_propagate_error (error, args.error);
- args.error = NULL;
- }
- }
-
- g_free (args.path);
- g_clear_error (&args.error);
- return args.result;
-}
-
-/**
- * gck_module_initialize_async:
- * @path: the file system path to the PKCS\#11 module to load
- * @cancellable: (allow-none): optional cancellation object
- * @callback: a callback which will be called when the operation completes
- * @user_data: data to pass to the callback
- *
- * Asynchronously load and initialize a PKCS\#11 module represented by a
- * #GckModule object.
- **/
-void
-gck_module_initialize_async (const gchar *path,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- Initialize *args;
-
- g_return_if_fail (path != NULL);
-
- args = _gck_call_async_prep (NULL, NULL, perform_initialize, NULL,
- sizeof (*args), free_initialize);
- args->path = g_strdup (path);
-
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
-}
-
-/**
- * gck_module_initialize_finish:
- * @result: the asynchronous result
- * @error: location to place an error on failure
- *
- * Finishes the asynchronous initialize operation.
- *
- * Returns: (transfer full) (allow-none): The initialized module, or NULL
- */
-GckModule *
-gck_module_initialize_finish (GAsyncResult *result,
- GError **error)
-{
- GckModule *module = NULL;
- Initialize *args;
-
- args = _gck_call_arguments (result, Initialize);
- if (_gck_call_basic_finish (result, error)) {
- module = args->result;
- args->result = NULL;
-
- } else {
- /* A custom error from perform_initialize */
- if (args->error) {
- g_clear_error (error);
- g_propagate_error (error, args->error);
- args->error = NULL;
- }
- }
-
- return module;
-}
-
-/**
- * gck_module_new: (skip)
- * @funcs: Initialized PKCS\#11 function list pointer
- *
- * Create a GckModule representing a PKCS\#11 module. It is assumed that
- * this the module is already initialized. In addition it will not be
- * finalized when complete.
- *
- * Return value: The new PKCS\#11 module.
- **/
-GckModule*
-gck_module_new (CK_FUNCTION_LIST_PTR funcs)
-{
- g_return_val_if_fail (funcs != NULL, NULL);
- return g_object_new (GCK_TYPE_MODULE, "functions", funcs, NULL);
-}
-
-GckModule*
-_gck_module_new_initialized (CK_FUNCTION_LIST_PTR funcs)
-{
- GckModule *module = gck_module_new (funcs);
- module->pv->initialized = TRUE; /* As if we initialized it */
- return module;
-}
-
-/**
- * gck_module_equal:
- * @module1: (type Gck.Module): a pointer to the first #GckModule
- * @module2: (type Gck.Module): a pointer to the second #GckModule
- *
- * Checks equality of two modules. Two GckModule objects can point to the same
- * underlying PKCS\#11 module.
- *
- * Return value: TRUE if module1 and module2 are equal. FALSE if either is not a GckModule.
- **/
-gboolean
-gck_module_equal (gconstpointer module1, gconstpointer module2)
-{
- GckModule *mod1, *mod2;
-
- if (module1 == module2)
- return TRUE;
- if (!GCK_IS_MODULE (module1) || !GCK_IS_MODULE (module2))
- return FALSE;
-
- mod1 = GCK_MODULE (module1);
- mod2 = GCK_MODULE (module2);
-
- return mod1->pv->funcs == mod2->pv->funcs;
-}
-
-/**
- * gck_module_hash:
- * @module: (type Gck.Module): a pointer to a #GckModule
- *
- * Create a hash value for the GckModule.
- *
- * This function is intended for easily hashing a GckModule to add to
- * a GHashTable or similar data structure.
- *
- * Return value: An integer that can be used as a hash value, or 0 if invalid.
- **/
-guint
-gck_module_hash (gconstpointer module)
-{
- GckModule *self;
-
- g_return_val_if_fail (GCK_IS_MODULE (module), 0);
- self = GCK_MODULE (module);
- return g_direct_hash (self->pv->funcs);
-}
-
-GckModuleInfo*
-_gck_module_info_from_pkcs11 (CK_INFO_PTR info)
-{
- GckModuleInfo *modinfo;
-
- modinfo = g_new0 (GckModuleInfo, 1);
- modinfo->flags = info->flags;
- modinfo->library_description = gck_string_from_chars (info->libraryDescription,
- sizeof (info->libraryDescription));
- modinfo->manufacturer_id = gck_string_from_chars (info->manufacturerID,
- sizeof (info->manufacturerID));
- modinfo->library_version_major = info->libraryVersion.major;
- modinfo->library_version_minor = info->libraryVersion.minor;
- modinfo->pkcs11_version_major = info->cryptokiVersion.major;
- modinfo->pkcs11_version_minor = info->cryptokiVersion.minor;
-
- return modinfo;
-}
-
-void
-_gck_module_info_to_pkcs11 (GckModuleInfo* module_info, CK_INFO_PTR info)
-{
- info->flags = module_info->flags;
- if (!gck_string_to_chars (info->libraryDescription,
- sizeof (info->libraryDescription),
- module_info->library_description))
- g_return_if_reached ();
- if (!gck_string_to_chars (info->manufacturerID,
- sizeof (info->manufacturerID),
- module_info->manufacturer_id))
- g_return_if_reached ();
-
- info->libraryVersion.major = module_info->library_version_major;
- info->libraryVersion.minor = module_info->library_version_minor;
- info->cryptokiVersion.major = module_info->pkcs11_version_major;
- info->cryptokiVersion.minor = module_info->pkcs11_version_minor;
-}
-
-/**
- * gck_module_get_info:
- * @self: The module to get info for.
- *
- * Get the info about a PKCS\#11 module.
- *
- * Returns: (transfer full): the module info; release this with gck_module_info_free()
- **/
-GckModuleInfo*
-gck_module_get_info (GckModule *self)
-{
- CK_INFO info;
- CK_RV rv;
-
- g_return_val_if_fail (GCK_IS_MODULE (self), NULL);
- g_return_val_if_fail (self->pv->funcs, NULL);
-
- memset (&info, 0, sizeof (info));
- rv = (self->pv->funcs->C_GetInfo (&info));
- if (rv != CKR_OK) {
- g_warning ("couldn't get module info: %s", gck_message_from_rv (rv));
- return NULL;
- }
-
- return _gck_module_info_from_pkcs11 (&info);
-}
-
-/**
- * gck_module_get_slots:
- * @self: The module for which to get the slots.
- * @token_present: Whether to limit only to slots with a token present.
- *
- * Get the GckSlot objects for a given module.
- *
- * Return value: (element-type Gck.Slot) (transfer full): The possibly empty
- * list of slots. Release this with gck_list_unref_free().
- */
-GList*
-gck_module_get_slots (GckModule *self, gboolean token_present)
-{
- CK_SLOT_ID_PTR slot_list;
- CK_ULONG count, i;
- GList *result;
- CK_RV rv;
-
- g_return_val_if_fail (GCK_IS_MODULE (self), NULL);
- g_return_val_if_fail (self->pv->funcs, NULL);
-
- rv = (self->pv->funcs->C_GetSlotList) (token_present ? CK_TRUE : CK_FALSE, NULL, &count);
- if (rv != CKR_OK) {
- g_warning ("couldn't get slot count: %s", gck_message_from_rv (rv));
- return NULL;
- }
-
- if (!count)
- return NULL;
-
- slot_list = g_new (CK_SLOT_ID, count);
- rv = (self->pv->funcs->C_GetSlotList) (token_present ? CK_TRUE : CK_FALSE, slot_list, &count);
- if (rv != CKR_OK) {
- g_warning ("couldn't get slot list: %s", gck_message_from_rv (rv));
- g_free (slot_list);
- return NULL;
- }
-
- result = NULL;
- for (i = 0; i < count; ++i) {
- result = g_list_prepend (result, g_object_new (GCK_TYPE_SLOT,
- "handle", slot_list[i],
- "module", self, NULL));
- }
-
- g_free (slot_list);
- return g_list_reverse (result);
-}
-
-/**
- * gck_module_get_path:
- * @self: The module for which to get the path.
- *
- * Get the file path of this module. This may not be an absolute path, and
- * usually reflects the path passed to gck_module_initialize().
- *
- * Return value: The path, do not modify or free this value.
- **/
-const gchar*
-gck_module_get_path (GckModule *self)
-{
- g_return_val_if_fail (GCK_IS_MODULE (self), NULL);
- return self->pv->path;
-}
-
-/**
- * gck_module_get_functions: (skip)
- * @self: The module for which to get the function list.
- *
- * Get the PKCS\#11 function list for the module.
- *
- * Return value: The function list, do not modify this structure.
- **/
-CK_FUNCTION_LIST_PTR
-gck_module_get_functions (GckModule *self)
-{
- g_return_val_if_fail (GCK_IS_MODULE (self), NULL);
- return self->pv->funcs;
-}
-
-/**
- * gck_module_match:
- * @self: the module to match
- * @uri: the uri to match against the module
- *
- * Check whether the PKCS\#11 URI matches the module
- *
- * Returns: whether the URI matches or not
- */
-gboolean
-gck_module_match (GckModule *self,
- GckUriData *uri)
-{
- gboolean match = TRUE;
- GckModuleInfo *info;
-
- g_return_val_if_fail (GCK_IS_MODULE (self), FALSE);
- g_return_val_if_fail (uri != NULL, FALSE);
-
- if (uri->any_unrecognized)
- match = FALSE;
-
- if (match && uri->module_info) {
- info = gck_module_get_info (self);
- match = _gck_module_info_match (uri->module_info, info);
- gck_module_info_free (info);
- }
-
- return match;
-}
diff --git a/gck/gck-modules.c b/gck/gck-modules.c
deleted file mode 100644
index 9a931038..00000000
--- a/gck/gck-modules.c
+++ /dev/null
@@ -1,433 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gck-modules.c - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2010, Stefan Walter
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stef@memberwebs.com>
-*/
-
-#include "config.h"
-
-#include "gck.h"
-#include "gck-private.h"
-#include "gck-marshal.h"
-
-#include <glib/gi18n.h>
-
-#define P11_KIT_FUTURE_UNSTABLE_API 1
-#include <p11-kit/p11-kit.h>
-
-#include <string.h>
-#include <stdlib.h>
-
-/**
- * SECTION:gck-modules
- * @title: GckModule lists
- * @short_description: Dealing with lists of PKCS\#11 modules.
- *
- * These functions are useful for dealing with lists of modules, and performing
- * operations on all of them.
- */
-
-typedef struct {
- GckArguments base;
- GList *results;
- GError *error;
-} InitializeRegistered;
-
-static CK_RV
-perform_initialize_registered (InitializeRegistered *args)
-{
- GckModule *module;
- CK_FUNCTION_LIST_PTR *modules, *funcs;
- const gchar *message;
- CK_RV rv;
-
- rv = p11_kit_initialize_registered ();
- if (rv != CKR_OK) {
- message = p11_kit_message ();
- if (message == NULL)
- message = gck_message_from_rv (rv);
- g_set_error (&args->error, GCK_ERROR, (int)CKR_GCK_MODULE_PROBLEM,
- _("Couldn't initialize registered PKCS#11 modules: %s"), message);
- return rv;
- }
-
- modules = p11_kit_registered_modules ();
- for (funcs = modules; *funcs; ++funcs) {
- module = _gck_module_new_initialized (*funcs);
- args->results = g_list_prepend (args->results, module);
- }
-
- free (modules);
- return CKR_OK;
-}
-
-static void
-free_initialize_registered (InitializeRegistered *args)
-{
- g_clear_error (&args->error);
- gck_list_unref_free (args->results);
- g_free (args);
-}
-
-/**
- * gck_modules_initialize_registered:
- * @cancellable: (allow-none): optional cancellation object
- * @error: (allow-none): location to place an error on failure
- *
- * Load and initialize all the registered modules.
- *
- * Returns: (transfer full) (element-type Gck.Module): A newly allocated list
- * of #GckModule objects, which should be released with gck_list_unref_free().
- */
-GList*
-gck_modules_initialize_registered (GCancellable *cancellable,
- GError **error)
-{
- InitializeRegistered args = { GCK_ARGUMENTS_INIT, 0, };
-
- if (!_gck_call_sync (NULL, perform_initialize_registered, NULL, &args, cancellable, error)) {
- if (args.error) {
- g_clear_error (error);
- g_propagate_error (error, args.error);
- args.error = NULL;
- }
- }
-
- g_clear_error (&args.error);
- return args.results;
-}
-
-/**
- * gck_modules_initialize_registered_async:
- * @cancellable: optional cancellation object
- * @callback: a callback which will be called when the operation completes
- * @user_data: data to pass to the callback
- *
- * Load and initialize all the registered modules asynchronously.
- */
-void
-gck_modules_initialize_registered_async (GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- InitializeRegistered *args;
-
- args = _gck_call_async_prep (NULL, NULL, perform_initialize_registered, NULL,
- sizeof (*args), free_initialize_registered);
-
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
-}
-
-/**
- * gck_modules_initialize_registered_finish:
- * @result: the asynchronous result
- * @error: location to place an error on failure
- *
- * Finishes the asynchronous operation to initialize the registered
- * PKCS\#11 modules.
- *
- * Returns: (transfer full) (element-type Gck.Module): a list of newly
- * initialized #GckModule objects
- */
-GList *
-gck_modules_initialize_registered_finish (GAsyncResult *result,
- GError **error)
-{
- GList *modules = NULL;
- InitializeRegistered *args;
-
- args = _gck_call_arguments (result, InitializeRegistered);
- if (_gck_call_basic_finish (result, error)) {
- modules = args->results;
- args->results = NULL;
-
- } else {
- /* A custom error from perform_initialize */
- if (args->error) {
- g_clear_error (error);
- g_propagate_error (error, args->error);
- args->error = NULL;
- }
- }
-
- return modules;
-}
-
-/**
- * gck_modules_get_slots:
- * @modules: (element-type Gck.Module): The modules
- * @token_present: Whether to only list slots with token present
- *
- * Get a list of slots for across all of the modules.
- *
- * Returns: (transfer full) (element-type Gck.Slot): A list of #GckSlot
- * objects, which should be freed with gck_list_unref_free().
- */
-GList*
-gck_modules_get_slots (GList *modules, gboolean token_present)
-{
- GList *result = NULL;
- GList *m;
-
- for (m = modules; m; m = g_list_next (m)) {
- result = g_list_concat (result, gck_module_get_slots (m->data, token_present));
- }
-
- return result;
-}
-
-/**
- * gck_modules_enumerate_objects:
- * @modules: (element-type Gck.Module): The modules
- * @attrs: Attributes that the objects must have, or empty for all objects
- * @session_options: Options from GckSessionOptions
- *
- * Setup an enumerator for listing matching objects on the modules.
- *
- * This call will not block but will return an enumerator immediately.
-
- * Return value: (transfer full): A new enumerator, which should be released
- * with g_object_unref().
- **/
-GckEnumerator*
-gck_modules_enumerate_objects (GList *modules,
- GckAttributes *attrs,
- GckSessionOptions session_options)
-{
- GckUriData *uri_data;
-
- g_return_val_if_fail (attrs, NULL);
-
- uri_data = gck_uri_data_new ();
- uri_data->attributes = gck_attributes_ref (attrs);
-
- return _gck_enumerator_new (modules, session_options, uri_data);
-}
-
-static GList *
-tokens_for_uri (GList *modules,
- const gchar *uri,
- gboolean only_one,
- GError **error)
-{
- GckTokenInfo *token_info;
- GList *results = NULL;
- GckUriData *uri_data;
- GckModuleInfo *module_info;
- GList *slots;
- GList *m, *s;
- gboolean matched;
- GckUriFlags flags;
-
- flags = GCK_URI_FOR_OBJECT_ON_TOKEN_AND_MODULE | GCK_URI_FOR_MODULE_WITH_VERSION;
- uri_data = gck_uri_parse (uri, flags, error);
- if (uri_data == NULL)
- return NULL;
-
- if (!uri_data->any_unrecognized) {
- for (m = modules; m != NULL; m = g_list_next (m)) {
- if (only_one && results)
- break;
- if (uri_data->module_info) {
- module_info = gck_module_get_info (m->data);
- matched = _gck_module_info_match (uri_data->module_info, module_info);
- gck_module_info_free (module_info);
- if (!matched)
- continue;
- }
-
- slots = gck_module_get_slots (m->data, TRUE);
- for (s = slots; s != NULL; s = g_list_next (s)) {
- if (only_one && results)
- break;
- if (!uri_data->token_info) {
- results = g_list_prepend (results, g_object_ref (s->data));
- } else {
- token_info = gck_slot_get_token_info (s->data);
- if (token_info && _gck_token_info_match (uri_data->token_info, token_info))
- results = g_list_prepend (results, g_object_ref (s->data));
- gck_token_info_free (token_info);
- }
- }
- gck_list_unref_free (slots);
- }
- }
-
- gck_uri_data_free (uri_data);
- return results;
-}
-
-/**
- * gck_modules_token_for_uri:
- * @modules: (element-type Gck.Module): The modules
- * @uri: The URI that the token must match
- * @error: A location to raise an error on failure
- *
- * Lookup a token that matches the URI.
- *
- * Returns: (transfer full): A newly allocated #GckSlot or %NULL if no such
- * token was found.
- */
-GckSlot*
-gck_modules_token_for_uri (GList *modules,
- const gchar *uri,
- GError **error)
-{
- GList *results;
- GckSlot *slot = NULL;
-
- g_return_val_if_fail (uri != NULL, NULL);
-
- results = tokens_for_uri (modules, uri, TRUE, error);
- if (results)
- slot = g_object_ref (results->data);
- gck_list_unref_free (results);
-
- return slot;
-}
-
-/**
- * gck_modules_tokens_for_uri:
- * @modules: (element-type Gck.Module): The modules
- * @uri: The URI that the token must match
- * @error: A location to raise an error on failure
- *
- * Lookup a token that matches the URI.
- *
- * Returns: (transfer full) (element-type Gck.Slot): A list of newly allocated
- * #GckSlot objects. Use gck_list_unref_free() to release the list once you're
- * done with it.
- */
-GList *
-gck_modules_tokens_for_uri (GList *modules,
- const gchar *uri,
- GError **error)
-{
- g_return_val_if_fail (uri != NULL, NULL);
-
- return tokens_for_uri (modules, uri, FALSE, error);
-}
-
-/**
- * gck_modules_object_for_uri:
- * @modules: (element-type Gck.Module): The modules
- * @uri: The URI the objects must match
- * @session_options: Options from GckSessionOptions
- * @error: A location to raise an error on failure.
- *
- * Find an object that matches a URI.
- *
- * This call can block. Use gck_modules_enumerate_uri() for a non-blocking
- * version.
- *
- * Returns: (transfer full) (allow-none): A new #GckObject which should be released with
- * g_object_unref(), or %NULL if no matching object was found.
- */
-GckObject*
-gck_modules_object_for_uri (GList *modules,
- const gchar *uri,
- GckSessionOptions session_options,
- GError **error)
-{
- GckEnumerator *en;
- GckObject *result;
-
- g_return_val_if_fail (uri != NULL, NULL);
- g_return_val_if_fail (!error || !*error, NULL);
-
- en = gck_modules_enumerate_uri (modules, uri, session_options, error);
- if (en == NULL)
- return NULL;
-
- result = gck_enumerator_next (en, NULL, error);
- g_object_unref (en);
-
- return result;
-}
-
-/**
- * gck_modules_objects_for_uri:
- * @modules: (element-type Gck.Module): The modules
- * @uri: The URI the objects must match
- * @session_options: Options from GckSessionOptions
- * @error: A location to raise an error on failure.
- *
- * Find objects that match a URI.
- *
- * This call can block. Use gck_modules_enumerate_uri() for a non-blocking
- * version.
- *
- * Returns: (transfer full) (element-type Gck.Object): A list of #GckObject which
- * should be released with gck_list_unref_free(), or %NULL if no matching object
- * was found.
- */
-GList*
-gck_modules_objects_for_uri (GList *modules,
- const gchar *uri,
- GckSessionOptions session_options,
- GError **error)
-{
- GckEnumerator *en;
- GList *results;
-
- g_return_val_if_fail (uri != NULL, NULL);
- g_return_val_if_fail (!error || !*error, NULL);
-
- en = gck_modules_enumerate_uri (modules, uri, session_options, error);
- if (en == NULL)
- return NULL;
-
- results = gck_enumerator_next_n (en, -1, NULL, error);
- g_object_unref (en);
-
- return results;
-}
-
-/**
- * gck_modules_enumerate_uri:
- * @modules: (element-type Gck.Module): The modules
- * @uri: The URI that the enumerator will match
- * @session_options: Options from GckSessionOptions
- * @error: A location to raise an error on failure.
- *
- * Enumerate objects that match a URI.
- *
- * This call will not block. Use the #GckEnumerator functions in order to
- * get at the actual objects that match.
- *
- * Returns: (transfer full): A new #GckEnumerator, or %NULL if an error occurs.
- */
-GckEnumerator*
-gck_modules_enumerate_uri (GList *modules,
- const gchar *uri,
- GckSessionOptions session_options,
- GError **error)
-{
- GckUriData *uri_data;
-
- g_return_val_if_fail (uri != NULL, NULL);
-
- uri_data = gck_uri_parse (uri, GCK_URI_FOR_ANY, error);
- if (uri_data == NULL)
- return NULL;
-
- /* Takes ownership of uri_info */
- return _gck_enumerator_new (modules, session_options, uri_data);
-}
diff --git a/gck/gck-object.c b/gck/gck-object.c
deleted file mode 100644
index 7798db20..00000000
--- a/gck/gck-object.c
+++ /dev/null
@@ -1,1326 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gck-object.c - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2008, Stefan Walter
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <nielsen@memberwebs.com>
-*/
-
-#include "config.h"
-
-#include "gck.h"
-#include "gck-private.h"
-
-#include <string.h>
-
-/**
- * SECTION:gck-object
- * @title: GckObject
- * @short_description: Represents a PKCS11 object such as a key or certificate.
- *
- * A GckObject holds a handle to a PKCS11 object such as a key or certificate. Token objects
- * are stored on the token persistently. Others are transient and are called session objects.
- */
-
-/**
- * GckObject:
- * @parent: derived from this.
- *
- * Represents a PKCS11 object handle such as a key or certifiacte.
- */
-
-/*
- * MT safe -- Nothing in GckObjectData changes between
- * init and finalize. All GckObjectPrivate access between init
- * and finalize is locked.
- */
-
-enum {
- PROP_0,
- PROP_MODULE,
- PROP_SESSION,
- PROP_HANDLE
-};
-
-struct _GckObjectPrivate {
- GckModule *module;
- GckSession *session;
- CK_OBJECT_HANDLE handle;
-};
-
-G_DEFINE_TYPE (GckObject, gck_object, G_TYPE_OBJECT);
-
-/* ----------------------------------------------------------------------------
- * OBJECT
- */
-
-static void
-gck_object_init (GckObject *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCK_TYPE_OBJECT, GckObjectPrivate);
-}
-
-static void
-gck_object_get_property (GObject *obj, guint prop_id, GValue *value,
- GParamSpec *pspec)
-{
- GckObject *self = GCK_OBJECT (obj);
-
- switch (prop_id) {
- case PROP_MODULE:
- g_value_take_object (value, gck_object_get_module (self));
- break;
- case PROP_SESSION:
- g_value_take_object (value, gck_object_get_session (self));
- break;
- case PROP_HANDLE:
- g_value_set_ulong (value, gck_object_get_handle (self));
- break;
- }
-}
-
-static void
-gck_object_set_property (GObject *obj, guint prop_id, const GValue *value,
- GParamSpec *pspec)
-{
- GckObject *self = GCK_OBJECT (obj);
-
- /* The sets to data below are only allowed during construction */
-
- switch (prop_id) {
- case PROP_MODULE:
- g_return_if_fail (!self->pv->module);
- self->pv->module = g_value_get_object (value);
- g_return_if_fail (self->pv->module);
- g_object_ref (self->pv->module);
- break;
- case PROP_SESSION:
- g_return_if_fail (!self->pv->session);
- self->pv->session = g_value_get_object (value);
- g_return_if_fail (self->pv->session);
- g_object_ref (self->pv->session);
- break;
- case PROP_HANDLE:
- g_return_if_fail (!self->pv->handle);
- self->pv->handle = g_value_get_ulong (value);
- break;
- }
-}
-
-static void
-gck_object_finalize (GObject *obj)
-{
- GckObject *self = GCK_OBJECT (obj);
-
- if (self->pv->session)
- g_object_unref (self->pv->session);
- self->pv->session = NULL;
-
- if (self->pv->module)
- g_object_unref (self->pv->module);
- self->pv->module = NULL;
-
- self->pv->handle = 0;
-
- G_OBJECT_CLASS (gck_object_parent_class)->finalize (obj);
-}
-
-
-static void
-gck_object_class_init (GckObjectClass *klass)
-{
- GObjectClass *gobject_class = (GObjectClass*)klass;
- gck_object_parent_class = g_type_class_peek_parent (klass);
-
- gobject_class->get_property = gck_object_get_property;
- gobject_class->set_property = gck_object_set_property;
- gobject_class->finalize = gck_object_finalize;
-
- /**
- * GckObject:module:
- *
- * The GckModule that this object belongs to.
- */
- g_object_class_install_property (gobject_class, PROP_MODULE,
- g_param_spec_object ("module", "Module", "PKCS11 Module",
- GCK_TYPE_MODULE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- /**
- * GckObject:handle:
- *
- * The raw PKCS11 handle for this object.
- */
- g_object_class_install_property (gobject_class, PROP_HANDLE,
- g_param_spec_ulong ("handle", "Object Handle", "PKCS11 Object Handle",
- 0, G_MAXULONG, 0, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- /**
- * GckObject:session:
- *
- * The PKCS11 session to make calls on when this object needs to
- * perform operations on itself.
- *
- * If this is NULL then a new session is opened for each operation,
- * such as gck_object_get(), gck_object_set() or gck_object_destroy().
- */
- g_object_class_install_property (gobject_class, PROP_SESSION,
- g_param_spec_object ("session", "session", "PKCS11 Session to make calls on",
- GCK_TYPE_SESSION, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- g_type_class_add_private (klass, sizeof (GckObjectPrivate));
-}
-
-/* ----------------------------------------------------------------------------
- * PUBLIC
- */
-
-/**
- * gck_object_from_handle:
- * @session: The session through which this object is accessed or created.
- * @object_handle: The raw CK_OBJECT_HANDLE of the object.
- *
- * Initialize a GckObject from a raw PKCS\#11 handle. Normally you would use
- * gck_session_create_object() or gck_session_find_objects() to access objects.
- *
- * Return value: (transfer full): The new GckObject. You should use
- * g_object_unref() when done with this object.
- **/
-GckObject *
-gck_object_from_handle (GckSession *session,
- gulong object_handle)
-{
- GckModule *module = NULL;
- GckObject *object;
-
- g_return_val_if_fail (GCK_IS_SESSION (session), NULL);
-
- module = gck_session_get_module (session);
- object = g_object_new (GCK_TYPE_OBJECT,
- "module", module,
- "handle", object_handle,
- "session", session,
- NULL);
- g_object_unref (module);
-
- return object;
-}
-
-/**
- * gck_objects_from_handle_array:
- * @session: The session for these objects
- * @object_handles: (array length=n_object_handles): The raw object handles.
- * @n_object_handles: The number of raw object handles.
- *
- * Initialize a list of GckObject from raw PKCS\#11 handles. The handles argument must contain
- * contiguous CK_OBJECT_HANDLE handles in an array.
- *
- * Returns: (transfer full) (element-type Gck.Object): The list of #GckObject
- * objects. You should use gck_list_unref_free() when done with this
- * list.
- **/
-GList *
-gck_objects_from_handle_array (GckSession *session,
- gulong *object_handles,
- gulong n_object_handles)
-{
- GList *results = NULL;
- CK_ULONG i;
-
- g_return_val_if_fail (GCK_IS_SESSION (session), NULL);
- g_return_val_if_fail (n_object_handles == 0 || object_handles != NULL, NULL);
-
- for (i = 0; i < n_object_handles; ++i)
- results = g_list_prepend (results, gck_object_from_handle (session, object_handles[i]));
- return g_list_reverse (results);
-}
-
-/**
- * gck_object_equal:
- * @object1: (type Gck.Object): a pointer to the first #GckObject
- * @object2: (type Gck.Object): a pointer to the second #GckObject
- *
- * Checks equality of two objects. Two GckObject objects can point to the same
- * underlying PKCS\#11 object.
- *
- * Return value: TRUE if object1 and object2 are equal. FALSE if either is not a GckObject.
- **/
-gboolean
-gck_object_equal (gconstpointer object1, gconstpointer object2)
-{
- GckObject *obj1, *obj2;
- GckSlot *slot1, *slot2;
- gboolean ret;
-
- if (object1 == object2)
- return TRUE;
- if (!GCK_IS_OBJECT (object1) || !GCK_IS_OBJECT (object2))
- return FALSE;
-
- obj1 = GCK_OBJECT (object1);
- obj2 = GCK_OBJECT (object2);
-
- slot1 = gck_session_get_slot (obj1->pv->session);
- slot2 = gck_session_get_slot (obj2->pv->session);
-
- ret = obj1->pv->handle == obj2->pv->handle &&
- gck_slot_equal (slot1, slot2);
-
- g_object_unref (slot1);
- g_object_unref (slot2);
-
- return ret;
-}
-
-/**
- * gck_object_hash:
- * @object: (type Gck.Object): a pointer to a #GckObject
- *
- * Create a hash value for the GckObject.
- *
- * This function is intended for easily hashing a GckObject to add to
- * a GHashTable or similar data structure.
- *
- * Return value: An integer that can be used as a hash value, or 0 if invalid.
- **/
-guint
-gck_object_hash (gconstpointer object)
-{
- GckObject *self;
- GckSlot *slot;
- guint hash;
-
- g_return_val_if_fail (GCK_IS_OBJECT (object), 0);
-
- self = GCK_OBJECT (object);
- slot = gck_session_get_slot (self->pv->session);
-
- hash = _gck_ulong_hash (&self->pv->handle) ^
- gck_slot_hash (slot);
-
- g_object_unref (slot);
-
- return hash;
-}
-
-
-/**
- * gck_object_get_handle:
- * @self: The object.
- *
- * Get the raw PKCS\#11 handle of a GckObject.
- *
- * Return value: the raw CK_OBJECT_HANDLE object handle
- **/
-gulong
-gck_object_get_handle (GckObject *self)
-{
- g_return_val_if_fail (GCK_IS_OBJECT (self), (CK_OBJECT_HANDLE)-1);
- return self->pv->handle;
-}
-
-/**
- * gck_object_get_module:
- * @self: The object.
- *
- * Get the PKCS\#11 module to which this object belongs.
- *
- * Returns: (transfer full): the module, which should be unreffed after use
- **/
-GckModule *
-gck_object_get_module (GckObject *self)
-{
- g_return_val_if_fail (GCK_IS_OBJECT (self), NULL);
- g_return_val_if_fail (GCK_IS_MODULE (self->pv->module), NULL);
- return g_object_ref (self->pv->module);
-}
-
-
-/**
- * gck_object_get_session:
- * @self: The object
- *
- * Get the PKCS\#11 session assigned to make calls on when operating
- * on this object.
- *
- * This will only return a session if it was set explitly on this
- * object. By default an object will open and close sessions
- * appropriate for its calls.
- *
- * Returns: (transfer full): the assigned session, which must be unreffed after use
- **/
-GckSession *
-gck_object_get_session (GckObject *self)
-{
- g_return_val_if_fail (GCK_IS_OBJECT (self), NULL);
- g_return_val_if_fail (GCK_IS_SESSION (self->pv->session), NULL);
- return g_object_ref (self->pv->session);
-}
-
-/* --------------------------------------------------------------------------------------
- * DESTROY
- */
-
-typedef struct _Destroy {
- GckArguments base;
- CK_OBJECT_HANDLE object;
-} Destroy;
-
-static CK_RV
-perform_destroy (Destroy *args)
-{
- g_assert (args);
- return (args->base.pkcs11->C_DestroyObject) (args->base.handle, args->object);
-}
-
-/**
- * gck_object_destroy:
- * @self: The object to destroy.
- * @cancellable: Optional cancellable object, or NULL to ignore.
- * @error: A location to return an error.
- *
- * Destroy a PKCS\#11 object, deleting it from storage or the session.
- * This call may block for an indefinite period.
- *
- * Return value: Whether the call was successful or not.
- **/
-gboolean
-gck_object_destroy (GckObject *self, GCancellable *cancellable, GError **error)
-{
- Destroy args = { GCK_ARGUMENTS_INIT, 0 };
-
- g_return_val_if_fail (GCK_IS_OBJECT (self), FALSE);
- g_return_val_if_fail (GCK_IS_SESSION (self->pv->session), FALSE);
- g_return_val_if_fail (!error || !*error, FALSE);
-
- args.object = self->pv->handle;
- return _gck_call_sync (self->pv->session, perform_destroy, NULL, &args, cancellable, error);
-}
-
-/**
- * gck_object_destroy_async:
- * @self: The object to destroy.
- * @cancellable: Optional cancellable object, or NULL to ignore.
- * @callback: Callback which is called when operation completes.
- * @user_data: Data to pass to the callback.
- *
- * Destroy a PKCS\#11 object, deleting it from storage or the session.
- * This call will return immediately and complete asynchronously.
- **/
-void
-gck_object_destroy_async (GckObject *self, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- Destroy* args;
-
- g_return_if_fail (GCK_IS_OBJECT (self));
- g_return_if_fail (GCK_IS_SESSION (self->pv->session));
-
- args = _gck_call_async_prep (self->pv->session, self, perform_destroy, NULL, sizeof (*args), NULL);
- args->object = self->pv->handle;
-
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
-}
-
-/**
- * gck_object_destroy_finish:
- * @self: The object being destroyed.
- * @result: The result of the destory operation passed to the callback.
- * @error: A location to store an error.
- *
- * Get the status of the operation to destroy a PKCS\#11 object, begun with
- * gck_object_destroy_async().
- *
- * Return value: Whether the object was destroyed successfully or not.
- */
-gboolean
-gck_object_destroy_finish (GckObject *self, GAsyncResult *result, GError **error)
-{
- g_return_val_if_fail (GCK_IS_OBJECT (self), FALSE);
- g_return_val_if_fail (GCK_IS_CALL (result), FALSE);
- return _gck_call_basic_finish (result, error);
-}
-
-/* --------------------------------------------------------------------------------------
- * SET ATTRIBUTES
- */
-
-typedef struct _SetAttributes {
- GckArguments base;
- GckAttributes *attrs;
- CK_OBJECT_HANDLE object;
-} SetAttributes;
-
-static CK_RV
-perform_set_attributes (SetAttributes *args)
-{
- CK_ATTRIBUTE_PTR attrs;
- CK_ULONG n_attrs;
-
- g_assert (args);
- attrs = _gck_attributes_commit_out (args->attrs, &n_attrs);
-
- return (args->base.pkcs11->C_SetAttributeValue) (args->base.handle, args->object,
- attrs, n_attrs);
-}
-
-static void
-free_set_attributes (SetAttributes *args)
-{
- g_assert (args);
- gck_attributes_unref (args->attrs);
- g_free (args);
-}
-
-/**
- * gck_object_set:
- * @self: The object to set attributes on.
- * @attrs: The attributes to set on the object.
- * @cancellable: Optional cancellable object, or NULL to ignore.
- * @error: A location to return an error.
- *
- * Set PKCS\#11 attributes on an object. This call may block for an indefinite period.
- *
- * Return value: Whether the call was successful or not.
- **/
-gboolean
-gck_object_set (GckObject *self, GckAttributes *attrs,
- GCancellable *cancellable, GError **error)
-{
- SetAttributes args;
- gboolean ret = FALSE;
-
- g_return_val_if_fail (GCK_IS_OBJECT (self), FALSE);
- g_return_val_if_fail (attrs != NULL, FALSE);
- g_return_val_if_fail (!error || !*error, FALSE);
-
- _gck_attributes_lock (attrs);
-
- memset (&args, 0, sizeof (args));
- args.attrs = attrs;
- args.object = self->pv->handle;
-
- ret = _gck_call_sync (self->pv->session, perform_set_attributes, NULL, &args, cancellable, error);
-
- _gck_attributes_unlock (attrs);
- return ret;
-}
-
-/**
- * gck_object_set_async:
- * @self: The object to set attributes on.
- * @attrs: The attributes to set on the object.
- * @cancellable: Optional cancellable object, or NULL to ignore.
- * @callback: Callback which is called when operation completes.
- * @user_data: Data to pass to the callback.
- *
- * Set PKCS\#11 attributes on an object. This call will return
- * immediately and completes asynchronously.
- **/
-void
-gck_object_set_async (GckObject *self, GckAttributes *attrs, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- SetAttributes *args;
-
- g_return_if_fail (GCK_IS_OBJECT (self));
- g_return_if_fail (attrs != NULL);
-
- args = _gck_call_async_prep (self->pv->session, self, perform_set_attributes,
- NULL, sizeof (*args), free_set_attributes);
-
- _gck_attributes_lock (attrs);
- args->attrs = gck_attributes_ref (attrs);
- args->object = self->pv->handle;
-
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
-}
-
-/**
- * gck_object_set_finish:
- * @self: The object to set attributes on.
- * @result: The result of the destory operation passed to the callback.
- * @error: A location to store an error.
- *
- * Get the status of the operation to set attributes on a PKCS\#11 object,
- * begun with gck_object_set_async().
- *
- * Return value: Whether the attributes were successfully set on the object or not.
- */
-gboolean
-gck_object_set_finish (GckObject *self, GAsyncResult *result, GError **error)
-{
- SetAttributes *args;
-
- g_return_val_if_fail (GCK_IS_OBJECT (self), FALSE);
- g_return_val_if_fail (GCK_IS_CALL (result), FALSE);
- g_return_val_if_fail (!error || !*error, FALSE);
-
- /* Unlock the attributes we were using */
- args = _gck_call_arguments (result, SetAttributes);
- g_assert (args->attrs);
- _gck_attributes_unlock (args->attrs);
-
- return _gck_call_basic_finish (result, error);
-}
-
-/* ------------------------------------------------------------------------------------
- * GET ATTRIBUTES
- */
-
-typedef struct _GetAttributes {
- GckArguments base;
- CK_OBJECT_HANDLE object;
- GckAttributes *attrs;
-} GetAttributes;
-
-/*
- * Certain failure return values only apply to individual attributes
- * being retrieved. These are ignored, since the attribute should
- * already have -1 set as the length.
- */
-static gboolean
-is_ok_get_attributes_rv (CK_RV rv)
-{
- switch (rv) {
- case CKR_OK:
- case CKR_ATTRIBUTE_SENSITIVE:
- case CKR_ATTRIBUTE_TYPE_INVALID:
- return TRUE;
- default:
- return FALSE;
- }
-}
-
-static CK_RV
-perform_get_attributes (GetAttributes *args)
-{
- CK_ATTRIBUTE_PTR attrs;
- CK_ULONG n_attrs;
- CK_RV rv;
-
- g_assert (args);
- g_assert (args->attrs);
-
- /* Prepare all the attributes */
- attrs = _gck_attributes_prepare_in (args->attrs, &n_attrs);
-
- /* Get the size of each value */
- rv = (args->base.pkcs11->C_GetAttributeValue) (args->base.handle, args->object,
- attrs, n_attrs);
- if (!is_ok_get_attributes_rv (rv))
- return rv;
-
- /* Allocate memory for each value */
- attrs = _gck_attributes_commit_in (args->attrs, &n_attrs);
-
- /* Now get the actual values */
- rv = (args->base.pkcs11->C_GetAttributeValue) (args->base.handle, args->object,
- attrs, n_attrs);
-
- if (is_ok_get_attributes_rv (rv))
- rv = CKR_OK;
-
- return rv;
-}
-
-static void
-free_get_attributes (GetAttributes *args)
-{
- g_assert (args);
- g_assert (args->attrs);
- gck_attributes_unref (args->attrs);
- g_free (args);
-}
-
-
-/**
- * gck_object_get:
- * @self: The object to get attributes from.
- * @cancellable: A #GCancellable or %NULL
- * @error: A location to store an error.
- * @...: The attribute types to get.
- *
- * Get the specified attributes from the object. This call may
- * block for an indefinite period.
- *
- * Returns: (transfer full): the resulting PKCS\#11 attributes, or %NULL if an
- * error occurred; the result must be unreffed when you're finished
- * with it
- **/
-GckAttributes *
-gck_object_get (GckObject *self, GCancellable *cancellable, GError **error, ...)
-{
- GckAttributes *attrs;
- GArray *array;
- va_list va;
- gulong type;
-
- g_return_val_if_fail (GCK_IS_OBJECT (self), NULL);
- g_return_val_if_fail (!error || !*error, NULL);
-
- array = g_array_new (FALSE, TRUE, sizeof (gulong));
- va_start (va, error);
- for (;;) {
- type = va_arg (va, gulong);
- if (type == GCK_INVALID)
- break;
- g_array_append_val (array, type);
- }
- va_end (va);
-
- attrs = gck_object_get_full (self, (gulong*)array->data, array->len, cancellable, error);
- g_array_free (array, TRUE);
-
- return attrs;
-}
-
-/**
- * gck_object_get_full:
- * @self: The object to get attributes from.
- * @attr_types: (array length=n_attr_types): the types of the attributes to get
- * @n_attr_types: the number of attr_types
- * @cancellable: optional cancellation object, or %NULL
- * @error: A location to store an error.
- *
- * Get the specified attributes from the object. This call may
- * block for an indefinite period.
- *
- * No extra references are added to the returned attributes pointer.
- * During this call you may not access the attributes in any way.
- *
- * Returns: (transfer full): a pointer to the filled in attributes if successful,
- * or %NULL if not
- **/
-GckAttributes *
-gck_object_get_full (GckObject *self, gulong *attr_types, guint n_attr_types,
- GCancellable *cancellable, GError **error)
-{
- GetAttributes args;
- GckAttributes *attrs;
- gboolean ret;
- guint i;
-
- g_return_val_if_fail (GCK_IS_OBJECT (self), NULL);
- g_return_val_if_fail (!error || !*error, NULL);
-
- attrs = gck_attributes_new ();
- for (i = 0; i < n_attr_types; ++i)
- gck_attributes_add_empty (attrs, attr_types[i]);
-
- _gck_attributes_lock (attrs);
-
- memset (&args, 0, sizeof (args));
- args.attrs = attrs;
- args.object = self->pv->handle;
-
- ret = _gck_call_sync (self->pv->session, perform_get_attributes, NULL, &args, cancellable, error);
- _gck_attributes_unlock (attrs);
-
- if (!ret) {
- gck_attributes_unref (attrs);
- attrs = NULL;
- }
-
- return attrs;
-}
-
-/**
- * gck_object_get_async:
- * @self: The object to get attributes from.
- * @attr_types: (array length=n_attr_types): the types of the attributes to get
- * @n_attr_types: the number of attr_types
- * @cancellable: optional cancellation object, or %NULL
- * @callback: A callback which is called when the operation completes.
- * @user_data: Data to be passed to the callback.
- *
- * Get the specified attributes from the object. The attributes will be cleared
- * of their current values, and new attributes will be stored. The attributes
- * should not be accessed in any way except for referencing and unreferencing
- * them until gck_object_get_finish() is called.
- *
- * This call returns immediately and completes asynchronously.
- **/
-void
-gck_object_get_async (GckObject *self, gulong *attr_types, guint n_attr_types, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- GckAttributes *attrs;
- GetAttributes *args;
- guint i;
-
- g_return_if_fail (GCK_IS_OBJECT (self));
-
- attrs = gck_attributes_new ();
- for (i = 0; i < n_attr_types; ++i)
- gck_attributes_add_empty (attrs, attr_types[i]);
-
- args = _gck_call_async_prep (self->pv->session, self, perform_get_attributes,
- NULL, sizeof (*args), free_get_attributes);
-
- _gck_attributes_lock (attrs);
- args->attrs = attrs;
- args->object = self->pv->handle;
-
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
-}
-
-/**
- * gck_object_get_finish:
- * @self: The object to get attributes from.
- * @result: The result passed to the callback.
- * @error: A location to store an error.
- *
- * Get the result of a get operation and return specified attributes from
- * the object.
- *
- * No extra references are added to the returned attributes pointer.
- *
- * Return value: The filled in attributes structure if successful or
- * NULL if not successful.
- **/
-GckAttributes*
-gck_object_get_finish (GckObject *self, GAsyncResult *result, GError **error)
-{
- GetAttributes *args;
- GckAttributes *attrs;
-
- g_return_val_if_fail (GCK_IS_OBJECT (self), NULL);
- g_return_val_if_fail (GCK_IS_CALL (result), NULL);
- g_return_val_if_fail (!error || !*error, NULL);
-
- args = _gck_call_arguments (result, GetAttributes);
- _gck_attributes_unlock (args->attrs);
- attrs = gck_attributes_ref (args->attrs);
-
- if (!_gck_call_basic_finish (result, error)) {
- gck_attributes_unref (attrs);
- attrs = NULL;
- }
-
- return attrs;
-}
-
-/* ---------------------------------------------------------------------------------
- * GET ATTRIBUTE DATA
- */
-
-typedef struct _GetAttributeData {
- GckArguments base;
- CK_OBJECT_HANDLE object;
- CK_ATTRIBUTE_TYPE type;
- GckAllocator allocator;
- guchar *result;
- gsize n_result;
-} GetAttributeData;
-
-static CK_RV
-perform_get_attribute_data (GetAttributeData *args)
-{
- CK_ATTRIBUTE attr;
- CK_RV rv;
-
- g_assert (args);
- g_assert (args->allocator);
-
- attr.type = args->type;
- attr.ulValueLen = 0;
- attr.pValue = 0;
-
- /* Get the size of the value */
- rv = (args->base.pkcs11->C_GetAttributeValue) (args->base.handle, args->object,
- &attr, 1);
- if (rv != CKR_OK)
- return rv;
-
- /* Allocate memory for the value */
- args->result = (args->allocator) (NULL, attr.ulValueLen + 1);
- g_assert (args->result);
- attr.pValue = args->result;
-
- /* Now get the actual value */
- rv = (args->base.pkcs11->C_GetAttributeValue) (args->base.handle, args->object,
- &attr, 1);
-
- if (rv == CKR_OK) {
- args->n_result = attr.ulValueLen;
- args->result[args->n_result] = 0;
- }
-
- return rv;
-}
-
-static void
-free_get_attribute_data (GetAttributeData *args)
-{
- g_assert (args);
- g_free (args->result);
- g_free (args);
-}
-
-/**
- * gck_object_get_data:
- * @self: The object to get attribute data from.
- * @attr_type: The attribute to get data for.
- * @cancellable: A #GCancellable or %NULL
- * @n_data: The length of the resulting data.
- * @error: A location to store an error.
- *
- * Get the data for the specified attribute from the object. For convenience
- * the returned data has a null terminator.
- *
- * This call may block for an indefinite period.
- *
- * Returns: (transfer full) (array length=n_data): the resulting PKCS\#11
- * attribute data, or %NULL if an error occurred
- **/
-guchar *
-gck_object_get_data (GckObject *self,
- gulong attr_type,
- GCancellable *cancellable,
- gsize *n_data,
- GError **error)
-{
- g_return_val_if_fail (GCK_IS_OBJECT (self), NULL);
- g_return_val_if_fail (n_data, NULL);
- g_return_val_if_fail (!error || !*error, NULL);
-
- return gck_object_get_data_full (self, attr_type, g_realloc, cancellable, n_data, error);
-}
-
-/**
- * gck_object_get_data_full: (skip)
- * @self: The object to get attribute data from.
- * @attr_type: The attribute to get data for.
- * @allocator: An allocator with which to allocate memory for the data, or NULL for default.
- * @cancellable: Optional cancellation object, or NULL.
- * @n_data: The length of the resulting data.
- * @error: A location to store an error.
- *
- * Get the data for the specified attribute from the object. For convenience
- * the returned data has an extra null terminator, not included in the returned length.
- *
- * This call may block for an indefinite period.
- *
- * Returns: (transfer full) (array length=n_data): The resulting PKCS\#11
- * attribute data, or %NULL if an error occurred.
- **/
-guchar *
-gck_object_get_data_full (GckObject *self, gulong attr_type, GckAllocator allocator,
- GCancellable *cancellable, gsize *n_data, GError **error)
-{
- GetAttributeData args;
- gboolean ret;
-
- g_return_val_if_fail (GCK_IS_OBJECT (self), NULL);
- g_return_val_if_fail (n_data, NULL);
- g_return_val_if_fail (!error || !*error, NULL);
-
- if (!allocator)
- allocator = g_realloc;
-
- memset (&args, 0, sizeof (args));
- args.allocator = allocator;
- args.object = self->pv->handle;
- args.type = attr_type;
-
- ret = _gck_call_sync (self->pv->session, perform_get_attribute_data, NULL, &args, cancellable, error);
-
- /* Free any value if failed */
- if (!ret) {
- if (args.result)
- (allocator) (args.result, 0);
- return NULL;
- }
-
- *n_data = args.n_result;
- return args.result;
-}
-
-/**
- * gck_object_get_data_async:
- * @self: The object to get attribute data from.
- * @attr_type: The attribute to get data for.
- * @allocator: (skip): An allocator with which to allocate memory for the data, or NULL for default.
- * @cancellable: Optional cancellation object, or NULL.
- * @callback: Called when the operation completes.
- * @user_data: Data to be passed to the callback.
- *
- * Get the data for the specified attribute from the object.
- *
- * This call will return immediately and complete asynchronously.
- **/
-void
-gck_object_get_data_async (GckObject *self, gulong attr_type, GckAllocator allocator,
- GCancellable *cancellable, GAsyncReadyCallback callback,
- gpointer user_data)
-{
- GetAttributeData *args;
-
- g_return_if_fail (GCK_IS_OBJECT (self));
-
- if (!allocator)
- allocator = g_realloc;
-
- args = _gck_call_async_prep (self->pv->session, self, perform_get_attribute_data,
- NULL, sizeof (*args), free_get_attribute_data);
-
- args->allocator = allocator;
- args->object = self->pv->handle;
- args->type = attr_type;
-
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
-}
-
-/**
- * gck_object_get_data_finish:
- * @self: The object to get an attribute from.
- * @result: The result passed to the callback.
- * @n_data: The length of the resulting data.
- * @error: A location to store an error.
- *
- * Get the result of an operation to get attribute data from
- * an object. For convenience the returned data has an extra null terminator,
- * not included in the returned length.
- *
- * Returns: (transfer full) (array length=n_data): The PKCS\#11 attribute data
- * or %NULL if an error occurred.
- **/
-guchar *
-gck_object_get_data_finish (GckObject *self,
- GAsyncResult *result,
- gsize *n_data,
- GError **error)
-{
- GetAttributeData *args;
- guchar *data;
-
- g_return_val_if_fail (GCK_IS_OBJECT (self), NULL);
- g_return_val_if_fail (GCK_IS_CALL (result), NULL);
- g_return_val_if_fail (n_data, NULL);
- g_return_val_if_fail (!error || !*error, NULL);
-
- if (!_gck_call_basic_finish (result, error))
- return NULL;
-
- args = _gck_call_arguments (result, GetAttributeData);
-
- *n_data = args->n_result;
- data = args->result;
- args->result = NULL;
-
- return data;
-}
-
-/* ---------------------------------------------------------------------------------------
- * SET TEMPLATE
- */
-
-typedef struct _set_template_args {
- GckArguments base;
- CK_OBJECT_HANDLE object;
- CK_ATTRIBUTE_TYPE type;
- GckAttributes *attrs;
-} set_template_args;
-
-static CK_RV
-perform_set_template (set_template_args *args)
-{
- CK_ATTRIBUTE attr;
- CK_ULONG n_attrs;
-
- g_assert (args);
-
- attr.type = args->type;
- attr.pValue = _gck_attributes_commit_out (args->attrs, &n_attrs);
- attr.ulValueLen = n_attrs * sizeof (CK_ATTRIBUTE);
-
- return (args->base.pkcs11->C_SetAttributeValue) (args->base.handle, args->object, &attr, 1);
-}
-
-static void
-free_set_template (set_template_args *args)
-{
- g_assert (args);
- gck_attributes_unref (args->attrs);
- g_free (args);
-}
-
-/**
- * gck_object_set_template:
- * @self: The object to set an attribute template on.
- * @attr_type: The attribute template type.
- * @attrs: The attribute template.
- * @cancellable: Optional cancellation object, or NULL.
- * @error: A location to store an error.
- *
- * Set an attribute template on the object. The attr_type must be for
- * an attribute which contains a template.
- *
- * This call may block for an indefinite period.
- *
- * Return value: TRUE if the operation succeeded.
- **/
-gboolean
-gck_object_set_template (GckObject *self, gulong attr_type, GckAttributes *attrs,
- GCancellable *cancellable, GError **error)
-{
- set_template_args args;
- gboolean ret = FALSE;
-
- g_return_val_if_fail (GCK_IS_OBJECT (self), FALSE);
- g_return_val_if_fail (attrs, FALSE);
- g_return_val_if_fail (!error || !*error, FALSE);
-
- _gck_attributes_lock (attrs);
-
- memset (&args, 0, sizeof (args));
- args.attrs = attrs;
- args.type = attr_type;
- args.object = self->pv->handle;
-
- ret = _gck_call_sync (self->pv->session, perform_set_template, NULL, &args, cancellable, error);
-
- _gck_attributes_unlock (attrs);
- return ret;
-}
-
-/**
- * gck_object_set_template_async:
- * @self: The object to set an attribute template on.
- * @attr_type: The attribute template type.
- * @attrs: The attribute template.
- * @cancellable: Optional cancellation object, or NULL.
- * @callback: Called when the operation completes.
- * @user_data: Data to be passed to the callback.
- *
- * Set an attribute template on the object. The attr_type must be for
- * an attribute which contains a template.
- *
- * This call will return immediately and complete asynchronously.
- **/
-void
-gck_object_set_template_async (GckObject *self, gulong attr_type, GckAttributes *attrs,
- GCancellable *cancellable, GAsyncReadyCallback callback,
- gpointer user_data)
-{
- set_template_args *args;
-
- g_return_if_fail (GCK_IS_OBJECT (self));
- g_return_if_fail (attrs);
-
- args = _gck_call_async_prep (self->pv->session, self, perform_set_template,
- NULL, sizeof (*args), free_set_template);
-
- _gck_attributes_lock (attrs);
- args->attrs = gck_attributes_ref (attrs);
- args->type = attr_type;
- args->object = self->pv->handle;
-
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
-}
-
-/**
- * gck_object_set_template_finish:
- * @self: The object to set an attribute template on.
- * @result: The result passed to the callback.
- * @error: A location to store an error.
- *
- * Get the result of an operation to set attribute template on
- * an object.
- *
- * Return value: TRUE if the operation succeeded.
- **/
-gboolean
-gck_object_set_template_finish (GckObject *self, GAsyncResult *result, GError **error)
-{
- set_template_args *args;
-
- g_return_val_if_fail (GCK_IS_OBJECT (self), FALSE);
- g_return_val_if_fail (GCK_IS_CALL (result), FALSE);
- g_return_val_if_fail (!error || !*error, FALSE);
-
- /* Unlock the attributes we were using */
- args = _gck_call_arguments (result, set_template_args);
- g_assert (args->attrs);
- _gck_attributes_unlock (args->attrs);
-
- return _gck_call_basic_finish (result, error);
-}
-
-/* ---------------------------------------------------------------------------------------
- * GET TEMPLATE
- */
-
-typedef struct _get_template_args {
- GckArguments base;
- CK_OBJECT_HANDLE object;
- CK_ATTRIBUTE_TYPE type;
- GckAttributes *attrs;
-} get_template_args;
-
-static CK_RV
-perform_get_template (get_template_args *args)
-{
- CK_ATTRIBUTE attr;
- CK_ULONG n_attrs, i;
- CK_RV rv;
-
- g_assert (args);
- g_assert (!args->attrs);
-
- args->attrs = gck_attributes_new ();
- attr.type = args->type;
- attr.ulValueLen = 0;
- attr.pValue = 0;
-
- /* Get the length of the entire template */
- rv = (args->base.pkcs11->C_GetAttributeValue) (args->base.handle, args->object, &attr, 1);
- if (rv != CKR_OK)
- return rv;
-
- /* Number of attributes, rounded down */
- n_attrs = (attr.ulValueLen / sizeof (CK_ATTRIBUTE));
- for (i = 0; i < n_attrs; ++i)
- gck_attributes_add_empty (args->attrs, 0);
-
- /* Prepare all the attributes */
- _gck_attributes_lock (args->attrs);
- attr.pValue = _gck_attributes_prepare_in (args->attrs, &n_attrs);
-
- /* Get the size of each value */
- rv = (args->base.pkcs11->C_GetAttributeValue) (args->base.handle, args->object, &attr, 1);
- if (rv != CKR_OK)
- return rv;
-
- /* Allocate memory for each value */
- attr.pValue = _gck_attributes_commit_in (args->attrs, &n_attrs);
-
- /* Now get the actual values */
- return (args->base.pkcs11->C_GetAttributeValue) (args->base.handle, args->object, &attr, 1);
-}
-
-static void
-free_get_template (get_template_args *args)
-{
- g_assert (args);
- gck_attributes_unref (args->attrs);
- g_free (args);
-}
-
-/**
- * gck_object_get_template:
- * @self: The object to get an attribute template from.
- * @attr_type: The template attribute type.
- * @cancellable: Optional cancellation object, or NULL.
- * @error: A location to store an error.
- *
- * Get an attribute template from the object. The attr_type must be for
- * an attribute which returns a template.
- *
- * This call may block for an indefinite period.
- *
- * Returns: (transfer full): the resulting PKCS\#11 attribute template, or %NULL
- * if an error occurred
- **/
-GckAttributes *
-gck_object_get_template (GckObject *self, gulong attr_type,
- GCancellable *cancellable, GError **error)
-{
- get_template_args args;
- gboolean ret;
-
- g_return_val_if_fail (GCK_IS_OBJECT (self), NULL);
- g_return_val_if_fail (!error || !*error, NULL);
-
- memset (&args, 0, sizeof (args));
- args.object = self->pv->handle;
- args.type = attr_type;
-
- ret = _gck_call_sync (self->pv->session, perform_get_template, NULL, &args, cancellable, error);
-
- _gck_attributes_unlock (args.attrs);
-
- /* Free any value if failed */
- if (!ret) {
- gck_attributes_unref (args.attrs);
- args.attrs = NULL;
- }
-
- return args.attrs;
-}
-
-/**
- * gck_object_get_template_async:
- * @self: The object to get an attribute template from.
- * @attr_type: The template attribute type.
- * @cancellable: Optional cancellation object, or NULL.
- * @callback: Called when the operation completes.
- * @user_data: Data to be passed to the callback.
- *
- * Get an attribute template from the object. The attr_type must be for
- * an attribute which returns a template.
- *
- * This call will return immediately and complete asynchronously.
- **/
-void
-gck_object_get_template_async (GckObject *self, gulong attr_type,
- GCancellable *cancellable, GAsyncReadyCallback callback,
- gpointer user_data)
-{
- get_template_args *args;
-
- g_return_if_fail (GCK_IS_OBJECT (self));
-
- args = _gck_call_async_prep (self->pv->session, self, perform_get_template,
- NULL, sizeof (*args), free_get_template);
-
- args->object = self->pv->handle;
- args->type = attr_type;
-
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
-}
-
-/**
- * gck_object_get_template_finish:
- * @self: The object to get an attribute from.
- * @result: The result passed to the callback.
- * @error: A location to store an error.
- *
- * Get the result of an operation to get attribute template from
- * an object.
- *
- * Returns: (transfer full): the resulting PKCS\#11 attribute template, or %NULL
- * if an error occurred
- **/
-GckAttributes *
-gck_object_get_template_finish (GckObject *self, GAsyncResult *result,
- GError **error)
-{
- get_template_args *args;
-
- g_return_val_if_fail (GCK_IS_OBJECT (self), NULL);
- g_return_val_if_fail (GCK_IS_CALL (result), NULL);
- g_return_val_if_fail (!error || !*error, NULL);
-
- if (!_gck_call_basic_finish (result, error))
- return NULL;
-
- args = _gck_call_arguments (result, get_template_args);
- _gck_attributes_unlock (args->attrs);
- return gck_attributes_ref (args->attrs);
-}
diff --git a/gck/gck-password.c b/gck/gck-password.c
deleted file mode 100644
index 56200ea1..00000000
--- a/gck/gck-password.c
+++ /dev/null
@@ -1,255 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gck-password.c - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2011 Collabora Ltd.
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gck.h"
-#include "gck-private.h"
-
-#include "egg/egg-timegm.h"
-
-#include <string.h>
-
-/**
- * SECTION:gck-password
- * @title: GckPassword
- * @short_description: Represents a password hich is requested of the user
- *
- * This is used in conjuction with GTlsInteraction. #GckPassword is a
- * GTlsPassword which contains additional information about which PKCS\#11
- * token or key the password is being requested for.
- */
-
-/**
- * GckPassword:
- * @parent: parent object
- *
- * A #GTlsPasswordClass that contains information about the PKCS\#11 token
- * or key the password is being requested for.
- */
-
-/**
- * GckPasswordClass:
- * @parent: parent class
- *
- * The class for #GTlsPassword.
- */
-enum {
- PROP_0,
- PROP_MODULE,
- PROP_TOKEN,
- PROP_KEY
-};
-
-struct _GckPasswordPrivate {
- gboolean for_token;
- gpointer token_or_key;
-};
-
-G_DEFINE_TYPE (GckPassword, gck_password, G_TYPE_TLS_PASSWORD);
-
-static void
-gck_password_init (GckPassword *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCK_TYPE_PASSWORD, GckPasswordPrivate);
-}
-
-static void
-gck_password_constructed (GObject *obj)
-{
- GckPassword *self = GCK_PASSWORD (obj);
-
- G_OBJECT_CLASS (gck_password_parent_class)->constructed (obj);
-
- g_return_if_fail (GCK_IS_SLOT (self->pv->token_or_key) ||
- GCK_IS_OBJECT (self->pv->token_or_key));
-}
-
-static void
-gck_password_get_property (GObject *obj,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GckPassword *self = GCK_PASSWORD (obj);
-
- switch (prop_id) {
- case PROP_MODULE:
- g_value_take_object (value, gck_password_get_module (self));
- break;
- case PROP_TOKEN:
- g_value_take_object (value, gck_password_get_token (self));
- break;
- case PROP_KEY:
- g_value_take_object (value, gck_password_get_key (self));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gck_password_set_property (GObject *obj,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GckPassword *self = GCK_PASSWORD (obj);
- gpointer object;
-
- /* All writes to data members below, happen only during construct phase */
-
- switch (prop_id) {
- case PROP_TOKEN:
- object = g_value_dup_object (value);
- if (object != NULL) {
- g_assert (self->pv->token_or_key == NULL);
- self->pv->token_or_key = object;
- self->pv->for_token = TRUE;
- }
- break;
- case PROP_KEY:
- object = g_value_dup_object (value);
- if (object != NULL) {
- g_assert (self->pv->token_or_key == NULL);
- self->pv->token_or_key = object;
- self->pv->for_token = FALSE;
- }
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gck_password_finalize (GObject *obj)
-{
- GckPassword *self = GCK_PASSWORD (obj);
-
- g_clear_object (&self->pv->token_or_key);
-
- G_OBJECT_CLASS (gck_password_parent_class)->finalize (obj);
-}
-
-static void
-gck_password_class_init (GckPasswordClass *klass)
-{
- GObjectClass *gobject_class = (GObjectClass*)klass;
-
- gobject_class->constructed = gck_password_constructed;
- gobject_class->get_property = gck_password_get_property;
- gobject_class->set_property = gck_password_set_property;
- gobject_class->finalize = gck_password_finalize;
-
- /**
- * GckPassword:module:
- *
- * The PKCS\#11 module that is requesting the password
- */
- g_object_class_install_property (gobject_class, PROP_MODULE,
- g_param_spec_object ("module", "Module", "PKCS11 Module",
- GCK_TYPE_MODULE, G_PARAM_READABLE));
-
- /**
- * GckPassword:token:
- *
- * The PKCS\#11 token the password is for, if this is set then
- * the GckPassword:object property will be %NULL
- */
- g_object_class_install_property (gobject_class, PROP_TOKEN,
- g_param_spec_object ("token", "Token", "PKCS11 Token",
- GCK_TYPE_SLOT, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- /**
- * GckPassword:key:
- *
- * The PKCS\#11 key that the password is being requested for. If this
- * is set then the GckPassword:token property will be %NULL
- */
- g_object_class_install_property (gobject_class, PROP_KEY,
- g_param_spec_object ("key", "Object", "PKCS11 Key Object",
- GCK_TYPE_OBJECT, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- g_type_class_add_private (gobject_class, sizeof (GckPasswordPrivate));
-}
-
-/**
- * gck_password_get_module:
- * @self: the password object
- *
- * Get the PKCS\#11 module that is requesting the password.
- *
- * Returns: (transfer full): the module that is requesting the password, which
- * must be unreferenced after use
- */
-GckModule *
-gck_password_get_module (GckPassword *self)
-{
- g_return_val_if_fail (GCK_IS_PASSWORD (self), NULL);
- if (self->pv->for_token)
- return gck_slot_get_module (self->pv->token_or_key);
- else
- return gck_object_get_module (self->pv->token_or_key);
-}
-
-/**
- * gck_password_get_token:
- * @self: the password object
- *
- * If the password request is to unlock a PKCS\#11 token, then this is the
- * slot containing that token.
- *
- * Returns: (transfer full): the slot that contains the token, or %NULL if not
- * being requested for a token; must be unreferenced after use
- */
-GckSlot *
-gck_password_get_token (GckPassword *self)
-{
- g_return_val_if_fail (GCK_IS_PASSWORD (self), NULL);
- if (!self->pv->for_token)
- return NULL;
- g_return_val_if_fail (GCK_IS_SLOT (self->pv->token_or_key), NULL);
- return g_object_ref (self->pv->token_or_key);
-}
-
-/**
- * gck_password_get_key:
- * @self: the password object
- *
- * If the password request is to unlock a PKCS\#11 key, then this is the
- * the object representing that key.
- *
- * Returns: (transfer full): the password is for this key, or %NULL if not
- * being requested for a key; must be unreferenced after use
- */
-GckObject *
-gck_password_get_key (GckPassword *self)
-{
- g_return_val_if_fail (GCK_IS_PASSWORD (self), NULL);
- if (self->pv->for_token)
- return NULL;
- g_return_val_if_fail (GCK_IS_OBJECT (self->pv->token_or_key), NULL);
- return g_object_ref (self->pv->token_or_key);
-}
diff --git a/gck/gck-private.h b/gck/gck-private.h
deleted file mode 100644
index c2919cfb..00000000
--- a/gck/gck-private.h
+++ /dev/null
@@ -1,209 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gck-private.h - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2008, Stefan Walter
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <nielsen@memberwebs.com>
-*/
-
-#ifndef GCK_PRIVATE_H_
-#define GCK_PRIVATE_H_
-
-#include "gck.h"
-
-#include <glib.h>
-#include <glib-object.h>
-#include <gio/gio.h>
-
-G_BEGIN_DECLS
-
-/* ---------------------------------------------------------------------------
- * ATTRIBUTE INTERNALS
- */
-
-void _gck_attributes_lock (GckAttributes *attrs);
-
-void _gck_attributes_unlock (GckAttributes *attrs);
-
-CK_ATTRIBUTE_PTR _gck_attributes_prepare_in (GckAttributes *attrs,
- CK_ULONG_PTR n_attrs);
-
-CK_ATTRIBUTE_PTR _gck_attributes_commit_in (GckAttributes *attrs,
- CK_ULONG_PTR n_attrs);
-
-CK_ATTRIBUTE_PTR _gck_attributes_commit_out (GckAttributes *attrs,
- CK_ULONG_PTR n_attrs);
-
-gchar * _gck_attributes_format (GckAttributes *attrs);
-
-/* ----------------------------------------------------------------------------
- * MISC
- */
-
-guint _gck_ulong_hash (gconstpointer v);
-
-gboolean _gck_ulong_equal (gconstpointer v1,
- gconstpointer v2);
-
-const gchar * _gck_stringize_rv (CK_RV rv);
-
-CK_RV _gck_rv_from_error (GError *error,
- CK_RV catch_all_code);
-
-/* ----------------------------------------------------------------------------
- * MODULE
- */
-
-GckModule* _gck_module_new_initialized (CK_FUNCTION_LIST_PTR funcs);
-
-GckModuleInfo* _gck_module_info_from_pkcs11 (CK_INFO_PTR info);
-
-void _gck_module_info_to_pkcs11 (GckModuleInfo* module_info,
- CK_INFO_PTR info);
-
-gboolean _gck_module_info_match (GckModuleInfo *match,
- GckModuleInfo *module_info);
-
-/* -----------------------------------------------------------------------------
- * ENUMERATOR
- */
-
-GckEnumerator* _gck_enumerator_new (GList *modules,
- GckSessionOptions session_options,
- GckUriData *uri_data);
-
-/* ----------------------------------------------------------------------------
- * SLOT
- */
-
-GckTokenInfo* _gck_token_info_from_pkcs11 (CK_TOKEN_INFO_PTR info);
-
-void _gck_token_info_to_pkcs11 (GckTokenInfo *token_info,
- CK_TOKEN_INFO_PTR info);
-
-gboolean _gck_token_info_match (GckTokenInfo *match,
- GckTokenInfo *info);
-
-CK_RV _gck_session_authenticate_token (CK_FUNCTION_LIST_PTR funcs,
- CK_SESSION_HANDLE session,
- GckSlot *token,
- GTlsInteraction *interaction,
- GCancellable *cancellable);
-
-CK_RV _gck_session_authenticate_key (CK_FUNCTION_LIST_PTR funcs,
- CK_SESSION_HANDLE session,
- GckObject *key,
- GTlsInteraction *interaction,
- GCancellable *cancellable);
-
-/* ----------------------------------------------------------------------------
- * PASSWORD
- */
-
-void _gck_password_update (GckPassword *self,
- gboolean request_retry);
-
-/* ----------------------------------------------------------------------------
- * INTERACTION
- */
-
-#define GCK_TYPE_INTERACTION (_gck_interaction_get_type ())
-#define GCK_INTERACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCK_TYPE_INTERACTION, GckInteraction))
-#define GCK_IS_INTERACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCK_TYPE_INTERACTION))
-
-typedef struct _GckInteraction GckInteraction;
-
-GType _gck_interaction_get_type (void) G_GNUC_CONST;
-
-GTlsInteraction * _gck_interaction_new (gpointer token_or_key);
-
-/* ----------------------------------------------------------------------------
- * CALL
- */
-
-typedef CK_RV (*GckPerformFunc) (gpointer call_data);
-typedef gboolean (*GckCompleteFunc) (gpointer call_data, CK_RV result);
-
-typedef struct _GckCall GckCall;
-
-typedef struct _GckArguments {
- GckCall *call;
-
- /* For the call function to use */
- CK_FUNCTION_LIST_PTR pkcs11;
- CK_ULONG handle;
-
-} GckArguments;
-
-#define GCK_MECHANISM_EMPTY { 0UL, NULL, 0 }
-
-#define GCK_ARGUMENTS_INIT { NULL, NULL, 0 }
-
-#define GCK_TYPE_CALL (_gck_call_get_type())
-#define GCK_CALL(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GCK_TYPE_CALL, GckCall))
-#define GCK_CALL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GCK_TYPE_CALL, GckCall))
-#define GCK_IS_CALL(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GCK_TYPE_CALL))
-#define GCK_IS_CALL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GCK_TYPE_CALL))
-#define GCK_CALL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GCK_TYPE_CALL, GckCallClass))
-
-typedef struct _GckCallClass GckCallClass;
-
-GType _gck_call_get_type (void) G_GNUC_CONST;
-
-#define _gck_call_arguments(call, type) (type*)(_gck_call_get_arguments (GCK_CALL (call)))
-
-gpointer _gck_call_get_arguments (GckCall *call);
-
-void _gck_call_uninitialize (void);
-
-gboolean _gck_call_sync (gpointer object,
- gpointer perform,
- gpointer complete,
- gpointer args,
- GCancellable *cancellable,
- GError **err);
-
-gpointer _gck_call_async_prep (gpointer object,
- gpointer cb_object,
- gpointer perform,
- gpointer complete,
- gsize args_size,
- gpointer destroy_func);
-
-GckCall* _gck_call_async_ready (gpointer args,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-void _gck_call_async_go (GckCall *call);
-
-void _gck_call_async_ready_go (gpointer args,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-void _gck_call_async_short (GckCall *call,
- CK_RV rv);
-
-gboolean _gck_call_basic_finish (GAsyncResult *result,
- GError **err);
-
-void _gck_call_async_object (GckCall *call,
- gpointer object);
-
-#endif /* GCK_PRIVATE_H_ */
diff --git a/gck/gck-session.c b/gck/gck-session.c
deleted file mode 100644
index c984eb6f..00000000
--- a/gck/gck-session.c
+++ /dev/null
@@ -1,2980 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gck-session.h - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2008, Stefan Walter
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <nielsen@memberwebs.com>
-*/
-
-#include "config.h"
-
-#include "gck.h"
-#define DEBUG_FLAG GCK_DEBUG_SESSION
-#include "gck-debug.h"
-#include "gck-marshal.h"
-#include "gck-private.h"
-
-#include <string.h>
-
-#include <glib/gi18n.h>
-
-/**
- * SECTION:gck-session
- * @title: GckSession
- * @short_description: Represents an open PKCS11 session.
- *
- * Before performing any PKCS11 operations, a session must be opened. This is
- * analogous to an open database handle, or a file handle.
- */
-
-/**
- * GckSession:
- * @parent: derived from this.
- *
- * Represents an open PKCS11 session.
- */
-
-/**
- * GckSessionOptions:
- * @GCK_SESSION_READ_ONLY: Open session as read only
- * @GCK_SESSION_READ_WRITE: Open sessions as read/write
- * @GCK_SESSION_LOGIN_USER: Login as user on new sessions
- * @GCK_SESSION_AUTHENTICATE: Authenticate as necessary
- *
- * Options for creating sessions.
- */
-
-/**
- * GckMechanism:
- * @type: The mechanism type
- * @parameter: Mechanism specific data.
- * @n_parameter: Length of mechanism specific data.
- *
- * Represents a mechanism used with crypto operations.
- */
-
-enum {
- DISCARD_HANDLE,
- LAST_SIGNAL
-};
-
-enum {
- PROP_0,
- PROP_MODULE,
- PROP_HANDLE,
- PROP_INTERACTION,
- PROP_SLOT,
- PROP_OPTIONS,
-};
-
-struct _GckSessionPrivate {
- GckSlot *slot;
- GckModule *module;
- CK_SESSION_HANDLE handle;
- GTlsInteraction *interaction;
- GckSessionOptions options;
-
- /* Modified atomically */
- gint discarded;
-};
-
-G_DEFINE_TYPE (GckSession, gck_session, G_TYPE_OBJECT);
-
-static guint signals[LAST_SIGNAL] = { 0 };
-
-/* ----------------------------------------------------------------------------
- * OBJECT
- */
-
-static gboolean
-gck_session_real_discard_handle (GckSession *self, CK_OBJECT_HANDLE handle)
-{
- CK_FUNCTION_LIST_PTR funcs;
- CK_RV rv;
-
- /* The default functionality, close the handle */
-
- g_return_val_if_fail (self->pv->module, FALSE);
- g_object_ref (self->pv->module);
-
- funcs = gck_module_get_functions (self->pv->module);
- g_return_val_if_fail (funcs, FALSE);
-
- rv = (funcs->C_CloseSession) (handle);
- if (rv != CKR_OK) {
- g_warning ("couldn't close session properly: %s",
- gck_message_from_rv (rv));
- }
-
- g_object_unref (self->pv->module);
- return TRUE;
-}
-
-static void
-gck_session_init (GckSession *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCK_TYPE_SESSION, GckSessionPrivate);
-}
-
-static void
-gck_session_get_property (GObject *obj, guint prop_id, GValue *value,
- GParamSpec *pspec)
-{
- GckSession *self = GCK_SESSION (obj);
-
- switch (prop_id) {
- case PROP_MODULE:
- g_value_take_object (value, gck_session_get_module (self));
- break;
- case PROP_HANDLE:
- g_value_set_ulong (value, gck_session_get_handle (self));
- break;
- case PROP_SLOT:
- g_value_take_object (value, gck_session_get_slot (self));
- break;
- case PROP_OPTIONS:
- g_value_set_uint (value, gck_session_get_options (self));
- break;
- case PROP_INTERACTION:
- g_value_take_object (value, self->pv->interaction);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gck_session_set_property (GObject *obj, guint prop_id, const GValue *value,
- GParamSpec *pspec)
-{
- GckSession *self = GCK_SESSION (obj);
-
- /* Only valid calls are from constructor */
-
- switch (prop_id) {
- case PROP_MODULE:
- g_return_if_fail (!self->pv->module);
- self->pv->module = g_value_dup_object (value);
- g_return_if_fail (self->pv->module);
- break;
- case PROP_HANDLE:
- g_return_if_fail (!self->pv->handle);
- self->pv->handle = g_value_get_ulong (value);
- break;
- case PROP_INTERACTION:
- g_return_if_fail (self->pv->interaction == NULL);
- self->pv->interaction = g_value_dup_object (value);
- break;
- case PROP_SLOT:
- g_return_if_fail (!self->pv->slot);
- self->pv->slot = g_value_dup_object (value);
- g_return_if_fail (self->pv->slot);
- break;
- case PROP_OPTIONS:
- g_return_if_fail (!self->pv->options);
- self->pv->options = g_value_get_flags (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gck_session_dispose (GObject *obj)
-{
- GckSession *self = GCK_SESSION (obj);
- gboolean handled;
-
- g_return_if_fail (GCK_IS_SESSION (self));
-
- if (g_atomic_int_compare_and_exchange (&self->pv->discarded, 0, 1)) {
-
- /*
- * Let the world know that we're discarding the session
- * handle. This allows any necessary session reuse to work.
- */
-
- g_signal_emit_by_name (self, "discard-handle", self->pv->handle, &handled);
- g_return_if_fail (handled);
- }
-
- G_OBJECT_CLASS (gck_session_parent_class)->dispose (obj);
-}
-
-static void
-gck_session_finalize (GObject *obj)
-{
- GckSession *self = GCK_SESSION (obj);
-
- g_assert (g_atomic_int_get (&self->pv->discarded) != 0);
-
- g_clear_object (&self->pv->interaction);
- g_clear_object (&self->pv->slot);
- g_clear_object (&self->pv->module);
-
- G_OBJECT_CLASS (gck_session_parent_class)->finalize (obj);
-}
-
-static void
-gck_session_class_init (GckSessionClass *klass)
-{
- GObjectClass *gobject_class = (GObjectClass*)klass;
- gck_session_parent_class = g_type_class_peek_parent (klass);
-
- gobject_class->get_property = gck_session_get_property;
- gobject_class->set_property = gck_session_set_property;
- gobject_class->dispose = gck_session_dispose;
- gobject_class->finalize = gck_session_finalize;
-
- klass->discard_handle = gck_session_real_discard_handle;
-
- /**
- * GckSession:module:
- *
- * The GckModule that this session is opened on.
- */
- g_object_class_install_property (gobject_class, PROP_MODULE,
- g_param_spec_object ("module", "Module", "PKCS11 Module",
- GCK_TYPE_MODULE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- /**
- * GckSession:handle:
- *
- * The raw CK_SESSION_HANDLE handle of this session.
- */
- g_object_class_install_property (gobject_class, PROP_HANDLE,
- g_param_spec_ulong ("handle", "Session Handle", "PKCS11 Session Handle",
- 0, G_MAXULONG, 0, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- /**
- * GckSession:slot:
- *
- * The GckSlot this session is opened on.
- */
- g_object_class_install_property (gobject_class, PROP_SLOT,
- g_param_spec_object ("slot", "Slot that this session uses", "PKCS11 Slot",
- GCK_TYPE_SLOT, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- /**
- * GckSession:options:
- *
- * The options this session was opened with.
- */
- g_object_class_install_property (gobject_class, PROP_OPTIONS,
- g_param_spec_flags ("options", "Session Options", "Session Options",
- GCK_TYPE_SESSION_OPTIONS, GCK_SESSION_READ_ONLY,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- /**
- * GckSession:interaction:
- *
- * Interaction object used to ask the user for pins when opening
- * sessions. Used if the session_options of the enumerator have
- * %GCK_SESSION_LOGIN_USER
- */
- g_object_class_install_property (gobject_class, PROP_INTERACTION,
- g_param_spec_object ("interaction", "Interaction", "Interaction asking for pins",
- G_TYPE_TLS_INTERACTION, G_PARAM_READWRITE));
-
- /**
- * GckSession::discard-handle:
- * @session: The session.
- * @handle: The handle being discarded.
- *
- * When a GckSession is being disposed of it emits this signal to allow
- * a session pool to pick up the handle and keep it around.
- *
- * If no signal handler claims the handle, then it is closed. This is used by
- * gck_module_set_pool_sessions() to implement the module session pool.
- *
- * Returns: Whether or not this handle was claimed.
- */
- signals[DISCARD_HANDLE] = g_signal_new ("discard-handle", GCK_TYPE_SESSION,
- G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GckSessionClass, discard_handle),
- g_signal_accumulator_true_handled, NULL,
- _gck_marshal_BOOLEAN__ULONG, G_TYPE_BOOLEAN, 1, G_TYPE_ULONG);
-
- g_type_class_add_private (klass, sizeof (GckSessionPrivate));
-}
-
-/* ----------------------------------------------------------------------------
- * PUBLIC
- */
-
-/**
- * GckSessionInfo:
- * @slot_id: The handle of the PKCS11 slot that this session is opened on.
- * @state: The user login state of the session.
- * @flags: Various PKCS11 flags.
- * @device_error: The last device error that occurred from an operation on this session.
- *
- * Information about the session. This is analogous to a CK_SESSION_INFO structure.
- *
- * When done with this structure, release it using gck_session_info_free().
- */
-
-GType
-gck_session_info_get_type (void)
-{
- static volatile gsize initialized = 0;
- static GType type = 0;
- if (g_once_init_enter (&initialized)) {
- type = g_boxed_type_register_static ("GckSessionInfo",
- (GBoxedCopyFunc)gck_session_info_copy,
- (GBoxedFreeFunc)gck_session_info_free);
- g_once_init_leave (&initialized, 1);
- }
- return type;
-}
-
-/**
- * gck_session_info_copy:
- * @session_info: a session info structure
- *
- * Make a new copy of a session info structure.
- *
- * Returns: (transfer full): a new copy of the session info
- */
-GckSessionInfo *
-gck_session_info_copy (GckSessionInfo *session_info)
-{
- return g_memdup (session_info, sizeof (GckSessionInfo));
-}
-
-/**
- * gck_session_info_free:
- * @session_info: Session info to free.
- *
- * Free the GckSessionInfo structure and all associated memory.
- **/
-void
-gck_session_info_free (GckSessionInfo *session_info)
-{
- if (!session_info)
- return;
- g_free (session_info);
-}
-
-/**
- * gck_session_from_handle:
- * @slot: The slot which the session belongs to.
- * @session_handle: the raw PKCS\#11 handle of the session
- * @options: Session options. Those which are used during opening a session have no effect.
- *
- * Initialize a GckSession object from a raw PKCS\#11 session handle.
- * Usually one would use the gck_slot_open_session() function to
- * create a session.
- *
- * Returns: (transfer full): the new GckSession object
- **/
-GckSession *
-gck_session_from_handle (GckSlot *slot,
- gulong session_handle,
- GckSessionOptions options)
-{
- GTlsInteraction *interaction;
- GckModule *module;
- GckSession *session;
-
- g_return_val_if_fail (GCK_IS_SLOT (slot), NULL);
-
- module = gck_slot_get_module (slot);
- interaction = gck_slot_get_interaction (slot);
-
- session = g_object_new (GCK_TYPE_SESSION,
- "module", module,
- "interaction", interaction,
- "handle", session_handle,
- "slot", slot,
- "options", options,
- NULL);
-
- g_object_unref (module);
- g_clear_object (&interaction);
-
- return session;
-}
-
-/**
- * gck_session_get_handle:
- * @self: The session object.
- *
- * Get the raw PKCS\#11 session handle from a GckSession object.
- *
- * Return value: The raw session handle.
- **/
-gulong
-gck_session_get_handle (GckSession *self)
-{
- g_return_val_if_fail (GCK_IS_SESSION (self), (CK_SESSION_HANDLE)-1);
- return self->pv->handle;
-}
-
-/**
- * gck_session_get_module:
- * @self: The session object.
- *
- * Get the PKCS\#11 module to which this session belongs.
- *
- * Returns: (transfer full): the module, which should be unreffed after use
- **/
-GckModule *
-gck_session_get_module (GckSession *self)
-{
- g_return_val_if_fail (GCK_IS_SESSION (self), NULL);
- g_return_val_if_fail (GCK_IS_MODULE (self->pv->module), NULL);
- return g_object_ref (self->pv->module);
-}
-
-/**
- * gck_session_get_slot:
- * @self: The session object.
- *
- * Get the PKCS\#11 slot to which this session belongs.
- *
- * Return value: (transfer full): The slot, which should be unreffed after use.
- **/
-GckSlot *
-gck_session_get_slot (GckSession *self)
-{
- g_return_val_if_fail (GCK_IS_SESSION (self), NULL);
- g_return_val_if_fail (GCK_IS_SLOT (self->pv->slot), NULL);
- return g_object_ref (self->pv->slot);
-}
-
-/**
- * gck_session_get_info:
- * @self: The session object.
- *
- * Get information about the session.
- *
- * Returns: (transfer full): the session info. Use the gck_session_info_free()
- * to release when done
- **/
-GckSessionInfo*
-gck_session_get_info (GckSession *self)
-{
- GckSessionInfo *sessioninfo;
- CK_FUNCTION_LIST_PTR funcs;
- CK_SESSION_INFO info;
- CK_RV rv;
-
- g_return_val_if_fail (GCK_IS_SESSION (self), NULL);
- g_return_val_if_fail (GCK_IS_MODULE (self->pv->module), NULL);
-
- g_object_ref (self->pv->module);
-
- funcs = gck_module_get_functions (self->pv->module);
- g_return_val_if_fail (funcs, NULL);
-
- memset (&info, 0, sizeof (info));
- rv = (funcs->C_GetSessionInfo) (self->pv->handle, &info);
-
- g_object_unref (self->pv->module);
-
- if (rv != CKR_OK) {
- g_warning ("couldn't get session info: %s", gck_message_from_rv (rv));
- return NULL;
- }
-
- sessioninfo = g_new0 (GckSessionInfo, 1);
- sessioninfo->flags = info.flags;
- sessioninfo->slot_id = info.slotID;
- sessioninfo->state = info.state;
- sessioninfo->device_error = info.ulDeviceError;
-
- return sessioninfo;
-}
-
-/**
- * gck_session_get_state:
- * @self: the session
- *
- * Get the session state. The state is the various PKCS\#11 CKS_XXX flags.
- *
- * Returns: the session state
- */
-gulong
-gck_session_get_state (GckSession *self)
-{
- CK_FUNCTION_LIST_PTR funcs;
- CK_SESSION_INFO info;
- CK_RV rv;
-
- g_return_val_if_fail (GCK_IS_SESSION (self), 0);
- g_return_val_if_fail (GCK_IS_MODULE (self->pv->module), 0);
-
- g_object_ref (self->pv->module);
-
- funcs = gck_module_get_functions (self->pv->module);
- g_return_val_if_fail (funcs, 0);
-
- memset (&info, 0, sizeof (info));
- rv = (funcs->C_GetSessionInfo) (self->pv->handle, &info);
-
- g_object_unref (self->pv->module);
-
- if (rv != CKR_OK) {
- g_warning ("couldn't get session info: %s", gck_message_from_rv (rv));
- return 0;
- }
-
- return info.state;
-}
-
-/**
- * gck_session_get_options:
- * @self: The session to get options from.
- *
- * Get the options this session was opened with.
- *
- * Return value: The session options.
- **/
-GckSessionOptions
-gck_session_get_options (GckSession *self)
-{
- g_return_val_if_fail (GCK_IS_SESSION (self), 0);
- return self->pv->options;
-}
-
-/**
- * gck_session_get_interaction:
- * @self: the session
- *
- * Get the interaction object set on this session, which is used to prompt
- * for pins and the like.
- *
- * Returns: (transfer full) (allow-none): the interaction object, or %NULL
- */
-GTlsInteraction *
-gck_session_get_interaction (GckSession *self)
-{
- g_return_val_if_fail (GCK_IS_SESSION (self), NULL);
-
- if (self->pv->interaction)
- return g_object_ref (self->pv->interaction);
-
- return NULL;
-}
-
-/* ---------------------------------------------------------------------------------------------
- * INIT PIN
- */
-
-typedef struct _InitPin {
- GckArguments base;
- guchar *pin;
- gsize n_pin;
-} InitPin;
-
-
-static void
-free_init_pin (InitPin *args)
-{
- g_free (args->pin);
- g_free (args);
-}
-
-static CK_RV
-perform_init_pin (InitPin *args)
-{
- return (args->base.pkcs11->C_InitPIN) (args->base.handle, (CK_BYTE_PTR)args->pin,
- args->n_pin);
-}
-
-/**
- * gck_session_init_pin:
- * @self: Initialize PIN for this session's slot.
- * @pin: The user's PIN, or NULL for protected authentication path.
- * @n_pin: The length of the PIN.
- * @cancellable: Optional cancellation object, or NULL.
- * @error: A location to return an error.
- *
- * Initialize the user's pin on this slot that this session is opened on.
- * According to the PKCS\#11 standards, the session must be logged in with
- * the CKU_SO user type.
- *
- * This call may block for an indefinite period.
- *
- * Return value: Whether successful or not.
- **/
-gboolean
-gck_session_init_pin (GckSession *self, const guchar *pin, gsize n_pin,
- GCancellable *cancellable, GError **error)
-{
- InitPin args = { GCK_ARGUMENTS_INIT, (guchar*)pin, n_pin };
- return _gck_call_sync (self, perform_init_pin, NULL, &args, cancellable, error);
-
-}
-
-/**
- * gck_session_init_pin_async:
- * @self: Initialize PIN for this session's slot.
- * @pin: (allow-none) (array length=n_pin): The user's PIN, or NULL for protected authentication path.
- * @n_pin: The length of the PIN.
- * @cancellable: Optional cancellation object, or NULL.
- * @callback: Called when the operation completes.
- * @user_data: Data to pass to the callback.
- *
- * Initialize the user's pin on this slot that this session is opened on.
- * According to the PKCS\#11 standards, the session must be logged in with
- * the CKU_SO user type.
- *
- * This call will return immediately and completes asynchronously.
- **/
-void
-gck_session_init_pin_async (GckSession *self, const guchar *pin, gsize n_pin,
- GCancellable *cancellable, GAsyncReadyCallback callback,
- gpointer user_data)
-{
- InitPin* args = _gck_call_async_prep (self, self, perform_init_pin, NULL, sizeof (*args), free_init_pin);
-
- args->pin = pin && n_pin ? g_memdup (pin, n_pin) : NULL;
- args->n_pin = n_pin;
-
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
-}
-
-/**
- * gck_session_init_pin_finish:
- * @self: The session.
- * @result: The result passed to the callback.
- * @error: A location to return an error.
- *
- * Get the result of initializing a user's PIN.
- *
- * Return value: Whether the operation was successful or not.
- **/
-gboolean
-gck_session_init_pin_finish (GckSession *self, GAsyncResult *result, GError **error)
-{
- return _gck_call_basic_finish (result, error);
-}
-
-
-/* ---------------------------------------------------------------------------------------------
- * SET PIN
- */
-
-typedef struct _SetPin {
- GckArguments base;
- guchar *old_pin;
- gsize n_old_pin;
- guchar *new_pin;
- gsize n_new_pin;
-} SetPin;
-
-static void
-free_set_pin (SetPin *args)
-{
- g_free (args->old_pin);
- g_free (args->new_pin);
- g_free (args);
-}
-
-static CK_RV
-perform_set_pin (SetPin *args)
-{
- return (args->base.pkcs11->C_SetPIN) (args->base.handle, (CK_BYTE_PTR)args->old_pin,
- args->n_old_pin, args->new_pin, args->n_new_pin);
-}
-
-/**
- * gck_session_set_pin:
- * @self: Change the PIN for this session's slot.
- * @old_pin: (allow-none) (array length=n_old_pin): the user's old PIN, or %NULL
- * for protected authentication path.
- * @n_old_pin: The length of the PIN.
- * @new_pin: (allow-none) (array length=n_new_pin): the user's new PIN, or %NULL
- * for protected authentication path
- * @n_new_pin: The length of the PIN.
- * @cancellable: Optional cancellation object, or NULL.
- * @error: A location to return an error.
- *
- * Change the user's pin on this slot that this session is opened on.
- *
- * This call may block for an indefinite period.
- *
- * Return value: Whether successful or not.
- **/
-gboolean
-gck_session_set_pin (GckSession *self, const guchar *old_pin, gsize n_old_pin,
- const guchar *new_pin, gsize n_new_pin, GCancellable *cancellable,
- GError **error)
-{
- SetPin args = { GCK_ARGUMENTS_INIT, (guchar*)old_pin, n_old_pin, (guchar*)new_pin, n_new_pin };
- return _gck_call_sync (self, perform_set_pin, NULL, &args, cancellable, error);
-}
-
-/**
- * gck_session_set_pin_async:
- * @self: Change the PIN for this session's slot.
- * @old_pin: The user's old PIN, or NULL for protected authentication path.
- * @n_old_pin: The length of the PIN.
- * @new_pin: The user's new PIN, or NULL for protected authentication path.
- * @n_new_pin: The length of the PIN.
- * @cancellable: Optional cancellation object, or NULL.
- * @callback: Called when the operation completes.
- * @user_data: Data to pass to the callback.
- *
- * Change the user's pin on this slot that this session is opened on.
- *
- * This call will return immediately and completes asynchronously.
- **/
-void
-gck_session_set_pin_async (GckSession *self, const guchar *old_pin, gsize n_old_pin,
- const guchar *new_pin, gsize n_new_pin, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- SetPin* args = _gck_call_async_prep (self, self, perform_set_pin, NULL, sizeof (*args), free_set_pin);
-
- args->old_pin = old_pin && n_old_pin ? g_memdup (old_pin, n_old_pin) : NULL;
- args->n_old_pin = n_old_pin;
- args->new_pin = new_pin && n_new_pin ? g_memdup (new_pin, n_new_pin) : NULL;
- args->n_new_pin = n_new_pin;
-
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
-}
-
-/**
- * gck_session_set_pin_finish:
- * @self: The session.
- * @result: The result passed to the callback.
- * @error: A location to return an error.
- *
- * Get the result of changing a user's PIN.
- *
- * Return value: Whether the operation was successful or not.
- **/
-gboolean
-gck_session_set_pin_finish (GckSession *self, GAsyncResult *result, GError **error)
-{
- return _gck_call_basic_finish (result, error);
-}
-
-
-/* ---------------------------------------------------------------------------------------------
- * LOGIN
- */
-
-typedef struct _Login {
- GckArguments base;
- gulong user_type;
- guchar *pin;
- gsize n_pin;
-} Login;
-
-static void
-free_login (Login *args)
-{
- g_free (args->pin);
- g_free (args);
-}
-
-static CK_RV
-perform_login (Login *args)
-{
- return (args->base.pkcs11->C_Login) (args->base.handle, args->user_type,
- (CK_BYTE_PTR)args->pin, args->n_pin);
-}
-
-/**
- * gck_session_login:
- * @self: Log in to this session.
- * @user_type: The type of login user.
- * @pin: (allow-none) (array length=n_pin): the user's PIN, or %NULL for
- * protected authentication path
- * @n_pin: The length of the PIN.
- * @cancellable: Optional cancellation object, or NULL.
- * @error: A location to return an error.
- *
- * Login the user on the session. This call may block for
- * an indefinite period.
- *
- * Return value: Whether successful or not.
- **/
-gboolean
-gck_session_login (GckSession *self, gulong user_type, const guchar *pin,
- gsize n_pin, GCancellable *cancellable, GError **error)
-{
- Login args = { GCK_ARGUMENTS_INIT, user_type, (guchar*)pin, n_pin };
- return _gck_call_sync (self, perform_login, NULL, &args, cancellable, error);
-
-}
-
-/**
- * gck_session_login_async:
- * @self: Log in to this session.
- * @user_type: The type of login user.
- * @pin: (allow-none) (array length=n_pin): the user's PIN, or %NULL for
- * protected authentication path
- * @n_pin: The length of the PIN.
- * @cancellable: Optional cancellation object, or NULL.
- * @callback: Called when the operation completes.
- * @user_data: Data to pass to the callback.
- *
- * Login the user on the session. This call will return
- * immediately and completes asynchronously.
- **/
-void
-gck_session_login_async (GckSession *self, gulong user_type, const guchar *pin,
- gsize n_pin, GCancellable *cancellable, GAsyncReadyCallback callback,
- gpointer user_data)
-{
- Login* args = _gck_call_async_prep (self, self, perform_login, NULL, sizeof (*args), free_login);
-
- args->user_type = user_type;
- args->pin = pin && n_pin ? g_memdup (pin, n_pin) : NULL;
- args->n_pin = n_pin;
-
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
-
-}
-
-/**
- * gck_session_login_finish:
- * @self: The session logged into.
- * @result: The result passed to the callback.
- * @error: A location to return an error.
- *
- * Get the result of a login operation.
- *
- * Return value: Whether the operation was successful or not.
- **/
-gboolean
-gck_session_login_finish (GckSession *self, GAsyncResult *result, GError **error)
-{
- return _gck_call_basic_finish (result, error);
-}
-
-
-
-
-/* LOGOUT */
-
-static CK_RV
-perform_logout (GckArguments *args)
-{
- return (args->pkcs11->C_Logout) (args->handle);
-}
-
-/**
- * gck_session_logout:
- * @self: Logout of this session.
- * @cancellable: Optional cancellation object, or NULL.
- * @error: A location to return an error.
- *
- * Log out of the session. This call may block for an indefinite period.
- *
- * Return value: Whether the logout was successful or not.
- **/
-gboolean
-gck_session_logout (GckSession *self, GCancellable *cancellable, GError **error)
-{
- GckArguments args = GCK_ARGUMENTS_INIT;
- return _gck_call_sync (self, perform_logout, NULL, &args, cancellable, error);
-}
-
-/**
- * gck_session_logout_async:
- * @self: Logout of this session.
- * @cancellable: Optional cancellation object, or NULL.
- * @callback: Called when the operation completes.
- * @user_data: Data to pass to the callback.
- *
- * Log out of the session. This call returns immediately and completes
- * asynchronously.
- **/
-void
-gck_session_logout_async (GckSession *self, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- GckArguments *args = _gck_call_async_prep (self, self, perform_logout, NULL, 0, NULL);
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
-}
-
-/**
- * gck_session_logout_finish:
- * @self: Logout of this session.
- * @result: The result passed to the callback.
- * @error: A location to return an error.
- *
- * Get the result of logging out of a session.
- *
- * Return value: Whether the logout was successful or not.
- **/
-gboolean
-gck_session_logout_finish (GckSession *self, GAsyncResult *result, GError **error)
-{
- return _gck_call_basic_finish (result, error);
-}
-
-
-
-
-/* CREATE OBJECT */
-
-typedef struct _CreateObject {
- GckArguments base;
- GckAttributes *attrs;
- CK_OBJECT_HANDLE object;
-} CreateObject;
-
-static void
-free_create_object (CreateObject *args)
-{
- gck_attributes_unref (args->attrs);
- g_free (args);
-}
-
-static CK_RV
-perform_create_object (CreateObject *args)
-{
- CK_ATTRIBUTE_PTR attrs;
- CK_ULONG n_attrs;
- CK_RV rv;
-
- attrs = _gck_attributes_commit_out (args->attrs, &n_attrs);
-
- rv = (args->base.pkcs11->C_CreateObject) (args->base.handle,
- attrs, n_attrs,
- &args->object);
-
- if (_gck_debugging) {
- gchar *string = _gck_attributes_format (args->attrs);
- if (rv == CKR_OK)
- _gck_debug ("created object: %s", string);
- else
- _gck_debug ("failed %s to create object: %s",
- _gck_stringize_rv (rv), string);
- g_free (string);
- }
-
- return rv;
-}
-
-/**
- * gck_session_create_object:
- * @self: The session to create the object on.
- * @attrs: The attributes to create the object with.
- * @cancellable: Optional cancellation object, or NULL.
- * @error: A location to return an error, or NULL.
- *
- * Create a new PKCS\#11 object. This call may block for an
- * indefinite period.
- *
- * Returns: (transfer full): the newly created object or %NULL if an error occurred
- **/
-GckObject *
-gck_session_create_object (GckSession *self, GckAttributes *attrs,
- GCancellable *cancellable, GError **error)
-{
- CreateObject args = { GCK_ARGUMENTS_INIT, attrs, 0 };
- gboolean ret;
-
- g_return_val_if_fail (GCK_IS_SESSION (self), NULL);
- g_return_val_if_fail (attrs != NULL, NULL);
-
- _gck_attributes_lock (attrs);
- ret = _gck_call_sync (self, perform_create_object, NULL, &args, cancellable, error);
- _gck_attributes_unlock (attrs);
-
- if (!ret)
- return NULL;
-
- return gck_object_from_handle (self, args.object);
-}
-
-/**
- * gck_session_create_object_async:
- * @self: The session to create the object on.
- * @attrs: The attributes to create the object with.
- * @cancellable: Optional cancellation object or NULL.
- * @callback: Called when the operation completes.
- * @user_data: Data to pass to the callback.
- *
- * Create a new PKCS\#11 object. This call will return immediately
- * and complete asynchronously.
- **/
-void
-gck_session_create_object_async (GckSession *self, GckAttributes *attrs,
- GCancellable *cancellable, GAsyncReadyCallback callback,
- gpointer user_data)
-{
- CreateObject *args = _gck_call_async_prep (self, self, perform_create_object,
- NULL, sizeof (*args), free_create_object);
-
- g_return_if_fail (attrs);
-
- args->attrs = gck_attributes_ref (attrs);
- _gck_attributes_lock (attrs);
-
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
-}
-
-/**
- * gck_session_create_object_finish:
- * @self: The session to create the object on.
- * @result: The result passed to the callback.
- * @error: A location to return an error, or NULL.
- *
- * Get the result of creating a new PKCS\#11 object.
- *
- * Return value: (transfer full): the newly created object or NULL if an error occurred
- **/
-GckObject *
-gck_session_create_object_finish (GckSession *self, GAsyncResult *result, GError **error)
-{
- CreateObject *args;
-
- args = _gck_call_arguments (result, CreateObject);
- _gck_attributes_unlock (args->attrs);
-
- if (!_gck_call_basic_finish (result, error))
- return NULL;
- return gck_object_from_handle (self, args->object);
-}
-
-
-
-/* FIND OBJECTS */
-
-typedef struct _FindObjects {
- GckArguments base;
- GckAttributes *attrs;
- CK_OBJECT_HANDLE_PTR objects;
- CK_ULONG n_objects;
-} FindObjects;
-
-static void
-free_find_objects (FindObjects *args)
-{
- gck_attributes_unref (args->attrs);
- g_free (args->objects);
-}
-
-static CK_RV
-perform_find_objects (FindObjects *args)
-{
- CK_OBJECT_HANDLE_PTR batch;
- CK_ULONG n_batch, n_found;
- CK_ATTRIBUTE_PTR attrs;
- CK_ULONG n_attrs;
- GArray *array;
- CK_RV rv;
-
- if (_gck_debugging) {
- gchar *string = _gck_attributes_format (args->attrs);
- _gck_debug ("matching: %s", string);
- g_free (string);
- }
-
- attrs = _gck_attributes_commit_out (args->attrs, &n_attrs);
-
- rv = (args->base.pkcs11->C_FindObjectsInit) (args->base.handle,
- attrs, n_attrs);
- if (rv != CKR_OK)
- return rv;
-
- batch = NULL;
- n_found = n_batch = 4;
- array = g_array_new (0, 1, sizeof (CK_OBJECT_HANDLE));
-
- do {
- /*
- * Reallocate and double in size:
- * - First time.
- * - Each time we found as many as batch
- */
-
- if (n_found == n_batch) {
- n_batch *= 2;
- batch = g_realloc (batch, sizeof (CK_OBJECT_HANDLE) * n_batch);
- }
-
- rv = (args->base.pkcs11->C_FindObjects) (args->base.handle,
- batch, n_batch, &n_found);
- if (rv != CKR_OK)
- break;
-
- g_array_append_vals (array, batch, n_found);
-
- } while (n_found > 0);
-
- g_free (batch);
-
- if (rv == CKR_OK) {
- args->n_objects = array->len;
- args->objects = (CK_OBJECT_HANDLE_PTR)g_array_free (array, FALSE);
- rv = (args->base.pkcs11->C_FindObjectsFinal) (args->base.handle);
- } else {
- args->objects = NULL;
- args->n_objects = 0;
- g_array_free (array, TRUE);
- }
-
- return rv;
-}
-
-static GList*
-objlist_from_handles (GckSession *self, CK_OBJECT_HANDLE_PTR objects,
- CK_ULONG n_objects)
-{
- GList *results = NULL;
-
- while (n_objects > 0) {
- results = g_list_prepend (results,
- gck_object_from_handle (self, objects[--n_objects]));
- }
-
- return g_list_reverse (results);
-}
-
-/**
- * gck_session_find_objects:
- * @self: The session to find objects on.
- * @attrs: The attributes to match.
- * @cancellable: Optional cancellation object or NULL.
- * @error: A location to return an error or NULL.
- *
- * Find the objects matching the passed attributes. This call may
- * block for an indefinite period.
- *
- * Returns: (transfer full) (element-type Gck.Object): a list of the matching
- * objects, which may be empty
- **/
-GList *
-gck_session_find_objects (GckSession *self, GckAttributes *attrs,
- GCancellable *cancellable, GError **error)
-{
- FindObjects args = { GCK_ARGUMENTS_INIT, attrs, NULL, 0 };
- GList *results = NULL;
-
- g_return_val_if_fail (attrs, NULL);
- _gck_attributes_lock (attrs);
-
- if (_gck_call_sync (self, perform_find_objects, NULL, &args, cancellable, error))
- results = objlist_from_handles (self, args.objects, args.n_objects);
-
- g_free (args.objects);
- _gck_attributes_unlock (attrs);
- return results;
-}
-
-/**
- * gck_session_find_objects_async:
- * @self: The session to find objects on.
- * @attrs: The attributes to match.
- * @cancellable: Optional cancellation object or NULL.
- * @callback: Called when the operation completes.
- * @user_data: Data to pass to the callback.
- *
- * Find the objects matching the passed attributes. This call will
- * return immediately and complete asynchronously.
- **/
-void
-gck_session_find_objects_async (GckSession *self, GckAttributes *attrs,
- GCancellable *cancellable, GAsyncReadyCallback callback,
- gpointer user_data)
-{
- FindObjects *args = _gck_call_async_prep (self, self, perform_find_objects,
- NULL, sizeof (*args), free_find_objects);
- args->attrs = gck_attributes_ref (attrs);
- _gck_attributes_lock (attrs);
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
-}
-
-/**
- * gck_session_find_objects_finish:
- * @self: The session to find objects on.
- * @result: The attributes to match.
- * @error: A location to return an error.
- *
- * Get the result of a find operation.
- *
- * Returns: (transfer full) (element-type Gck.Object): a list of the matching
- * objects, which may be empty
- **/
-GList *
-gck_session_find_objects_finish (GckSession *self, GAsyncResult *result, GError **error)
-{
- FindObjects *args;
-
- args = _gck_call_arguments (result, FindObjects);
- _gck_attributes_unlock (args->attrs);
-
- if (!_gck_call_basic_finish (result, error))
- return NULL;
- return objlist_from_handles (self, args->objects, args->n_objects);
-}
-
-/* -----------------------------------------------------------------------------
- * KEY PAIR GENERATION
- */
-
-typedef struct _GenerateKeyPair {
- GckArguments base;
- GckMechanism mechanism;
- GckAttributes *public_attrs;
- GckAttributes *private_attrs;
- CK_OBJECT_HANDLE public_key;
- CK_OBJECT_HANDLE private_key;
-} GenerateKeyPair;
-
-static void
-free_generate_key_pair (GenerateKeyPair *args)
-{
- gck_attributes_unref (args->public_attrs);
- gck_attributes_unref (args->private_attrs);
- g_free (args);
-}
-
-static CK_RV
-perform_generate_key_pair (GenerateKeyPair *args)
-{
- CK_ATTRIBUTE_PTR pub_attrs, priv_attrs;
- CK_ULONG n_pub_attrs, n_priv_attrs;
-
- g_assert (sizeof (CK_MECHANISM) == sizeof (GckMechanism));
-
- pub_attrs = _gck_attributes_commit_out (args->public_attrs, &n_pub_attrs);
- priv_attrs = _gck_attributes_commit_out (args->private_attrs, &n_priv_attrs);
-
- return (args->base.pkcs11->C_GenerateKeyPair) (args->base.handle,
- (CK_MECHANISM_PTR)&(args->mechanism),
- pub_attrs, n_pub_attrs,
- priv_attrs, n_priv_attrs,
- &args->public_key,
- &args->private_key);
-}
-
-/**
- * gck_session_generate_key_pair:
- * @self: The session to use.
- * @mech_type: The mechanism type to use for key generation.
- * @public_attrs: Additional attributes for the generated public key.
- * @private_attrs: Additional attributes for the generated private key.
- * @public_key: A location to return the resulting public key.
- * @private_key: A location to return the resulting private key.
- * @cancellable: Optional cancellation object, or NULL.
- * @error: A location to return an error, or NULL.
- *
- * Generate a new key pair of public and private keys. This call may block for an
- * indefinite period.
- *
- * Return value: TRUE if the operation succeeded.
- **/
-gboolean
-gck_session_generate_key_pair (GckSession *self, gulong mech_type,
- GckAttributes *public_attrs, GckAttributes *private_attrs,
- GckObject **public_key, GckObject **private_key,
- GCancellable *cancellable, GError **error)
-{
- GckMechanism mech = { mech_type, NULL, 0 };
- return gck_session_generate_key_pair_full (self, &mech, public_attrs, private_attrs, public_key, private_key, cancellable, error);
-}
-
-/**
- * gck_session_generate_key_pair_full:
- * @self: The session to use.
- * @mechanism: The mechanism to use for key generation.
- * @public_attrs: Additional attributes for the generated public key.
- * @private_attrs: Additional attributes for the generated private key.
- * @public_key: A location to return the resulting public key.
- * @private_key: A location to return the resulting private key.
- * @cancellable: Optional cancellation object, or NULL.
- * @error: A location to return an error, or NULL.
- *
- * Generate a new key pair of public and private keys. This call may block for an
- * indefinite period.
- *
- * Return value: TRUE if the operation succeeded.
- **/
-gboolean
-gck_session_generate_key_pair_full (GckSession *self, GckMechanism *mechanism,
- GckAttributes *public_attrs, GckAttributes *private_attrs,
- GckObject **public_key, GckObject **private_key,
- GCancellable *cancellable, GError **error)
-{
- GenerateKeyPair args = { GCK_ARGUMENTS_INIT, GCK_MECHANISM_EMPTY, public_attrs, private_attrs, 0, 0 };
- gboolean ret;
-
- g_return_val_if_fail (GCK_IS_SESSION (self), FALSE);
- g_return_val_if_fail (mechanism, FALSE);
- g_return_val_if_fail (public_attrs, FALSE);
- g_return_val_if_fail (private_attrs, FALSE);
- g_return_val_if_fail (public_key, FALSE);
- g_return_val_if_fail (private_key, FALSE);
-
- /* Shallow copy of the mechanism structure */
- memcpy (&args.mechanism, mechanism, sizeof (args.mechanism));
-
- _gck_attributes_lock (public_attrs);
- if (public_attrs != private_attrs)
- _gck_attributes_lock (private_attrs);
- ret = _gck_call_sync (self, perform_generate_key_pair, NULL, &args, cancellable, error);
- if (public_attrs != private_attrs)
- _gck_attributes_unlock (private_attrs);
- _gck_attributes_unlock (public_attrs);
-
- if (!ret)
- return FALSE;
-
- *public_key = gck_object_from_handle (self, args.public_key);
- *private_key = gck_object_from_handle (self, args.private_key);
- return TRUE;
-}
-
-/**
- * gck_session_generate_key_pair_async:
- * @self: The session to use.
- * @mechanism: The mechanism to use for key generation.
- * @public_attrs: Additional attributes for the generated public key.
- * @private_attrs: Additional attributes for the generated private key.
- * @cancellable: Optional cancellation object or NULL.
- * @callback: Called when the operation completes.
- * @user_data: Data to pass to the callback.
- *
- * Generate a new key pair of public and private keys. This call will
- * return immediately and complete asynchronously.
- **/
-void
-gck_session_generate_key_pair_async (GckSession *self, GckMechanism *mechanism,
- GckAttributes *public_attrs, GckAttributes *private_attrs,
- GCancellable *cancellable, GAsyncReadyCallback callback,
- gpointer user_data)
-{
- GenerateKeyPair *args = _gck_call_async_prep (self, self, perform_generate_key_pair,
- NULL, sizeof (*args), free_generate_key_pair);
-
- g_return_if_fail (GCK_IS_SESSION (self));
- g_return_if_fail (mechanism);
- g_return_if_fail (public_attrs);
- g_return_if_fail (private_attrs);
-
- /* Shallow copy of the mechanism structure */
- memcpy (&args->mechanism, mechanism, sizeof (args->mechanism));
-
- args->public_attrs = gck_attributes_ref (public_attrs);
- _gck_attributes_lock (public_attrs);
- args->private_attrs = gck_attributes_ref (private_attrs);
- if (public_attrs != private_attrs)
- _gck_attributes_lock (private_attrs);
-
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
-}
-
-/**
- * gck_session_generate_key_pair_finish:
- * @self: The session to use.
- * @result: The async result passed to the callback.
- * @public_key: A location to return the resulting public key.
- * @private_key: A location to return the resulting private key.
- * @error: A location to return an error.
- *
- * Get the result of a generate key pair operation.
- *
- * Return value: TRUE if the operation succeeded.
- **/
-gboolean
-gck_session_generate_key_pair_finish (GckSession *self, GAsyncResult *result,
- GckObject **public_key, GckObject **private_key,
- GError **error)
-{
- GenerateKeyPair *args;
-
- g_return_val_if_fail (GCK_IS_SESSION (self), FALSE);
- g_return_val_if_fail (public_key, FALSE);
- g_return_val_if_fail (private_key, FALSE);
-
- args = _gck_call_arguments (result, GenerateKeyPair);
- _gck_attributes_unlock (args->public_attrs);
- if (args->public_attrs != args->private_attrs)
- _gck_attributes_unlock (args->private_attrs);
-
- if (!_gck_call_basic_finish (result, error))
- return FALSE;
-
- *public_key = gck_object_from_handle (self, args->public_key);
- *private_key = gck_object_from_handle (self, args->private_key);
- return TRUE;
-}
-
-/* -----------------------------------------------------------------------------
- * KEY WRAPPING
- */
-
-typedef struct _WrapKey {
- GckArguments base;
- GckMechanism mechanism;
- CK_OBJECT_HANDLE wrapper;
- CK_OBJECT_HANDLE wrapped;
- gpointer result;
- gulong n_result;
-} WrapKey;
-
-static void
-free_wrap_key (WrapKey *args)
-{
- g_free (args->result);
- g_free (args);
-}
-
-static CK_RV
-perform_wrap_key (WrapKey *args)
-{
- CK_RV rv;
-
- g_assert (sizeof (CK_MECHANISM) == sizeof (GckMechanism));
-
- /* Get the length of the result */
- rv = (args->base.pkcs11->C_WrapKey) (args->base.handle,
- (CK_MECHANISM_PTR)&(args->mechanism),
- args->wrapper, args->wrapped,
- NULL, &args->n_result);
- if (rv != CKR_OK)
- return rv;
-
- /* And try again with a real buffer */
- args->result = g_malloc0 (args->n_result);
- return (args->base.pkcs11->C_WrapKey) (args->base.handle,
- (CK_MECHANISM_PTR)&(args->mechanism),
- args->wrapper, args->wrapped,
- args->result, &args->n_result);
-}
-
-/**
- * gck_session_wrap_key:
- * @self: The session to use.
- * @wrapper: The key to use for wrapping.
- * @mech_type: The mechanism type to use for wrapping.
- * @wrapped: The key to wrap.
- * @n_result: A location in which to return the length of the wrapped data.
- * @cancellable: A #GCancellable or %NULL
- * @error: A location to return an error, or NULL.
- *
- * Wrap a key into a byte stream. This call may block for an
- * indefinite period.
- *
- * Returns: (transfer full) (array length=n_result): the wrapped data or %NULL
- * if the operation failed
- **/
-guchar *
-gck_session_wrap_key (GckSession *self, GckObject *key, gulong mech_type,
- GckObject *wrapped, gsize *n_result, GCancellable *cancellable, GError **error)
-{
- GckMechanism mech = { mech_type, NULL, 0 };
- return gck_session_wrap_key_full (self, key, &mech, wrapped, n_result, cancellable, error);
-}
-
-/**
- * gck_session_wrap_key_full:
- * @self: The session to use.
- * @wrapper: The key to use for wrapping.
- * @mechanism: The mechanism to use for wrapping.
- * @wrapped: The key to wrap.
- * @n_result: A location in which to return the length of the wrapped data.
- * @cancellable: Optional cancellation object, or NULL.
- * @error: A location to return an error, or NULL.
- *
- * Wrap a key into a byte stream. This call may block for an
- * indefinite period.
- *
- * Returns: (transfer full) (array length=n_result): the wrapped data or %NULL
- * if the operation failed
- **/
-guchar *
-gck_session_wrap_key_full (GckSession *self, GckObject *wrapper, GckMechanism *mechanism,
- GckObject *wrapped, gsize *n_result, GCancellable *cancellable,
- GError **error)
-{
- WrapKey args = { GCK_ARGUMENTS_INIT, GCK_MECHANISM_EMPTY, 0, 0, NULL, 0 };
- gboolean ret;
-
- g_return_val_if_fail (GCK_IS_SESSION (self), FALSE);
- g_return_val_if_fail (mechanism, FALSE);
- g_return_val_if_fail (GCK_IS_OBJECT (wrapped), FALSE);
- g_return_val_if_fail (GCK_IS_OBJECT (wrapper), FALSE);
- g_return_val_if_fail (n_result, FALSE);
-
- /* Shallow copy of the mechanism structure */
- memcpy (&args.mechanism, mechanism, sizeof (args.mechanism));
-
- g_object_get (wrapper, "handle", &args.wrapper, NULL);
- g_return_val_if_fail (args.wrapper != 0, NULL);
- g_object_get (wrapped, "handle", &args.wrapped, NULL);
- g_return_val_if_fail (args.wrapped != 0, NULL);
-
- ret = _gck_call_sync (self, perform_wrap_key, NULL, &args, cancellable, error);
-
- if (!ret)
- return FALSE;
-
- *n_result = args.n_result;
- return args.result;
-}
-
-/**
- * gck_session_wrap_key_async:
- * @self: The session to use.
- * @wrapper: The key to use for wrapping.
- * @mechanism: The mechanism to use for wrapping.
- * @wrapped: The key to wrap.
- * @cancellable: Optional cancellation object or NULL.
- * @callback: Called when the operation completes.
- * @user_data: Data to pass to the callback.
- *
- * Wrap a key into a byte stream. This call will
- * return immediately and complete asynchronously.
- **/
-void
-gck_session_wrap_key_async (GckSession *self, GckObject *key, GckMechanism *mechanism,
- GckObject *wrapped, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- WrapKey *args = _gck_call_async_prep (self, self, perform_wrap_key,
- NULL, sizeof (*args), free_wrap_key);
-
- g_return_if_fail (GCK_IS_SESSION (self));
- g_return_if_fail (mechanism);
- g_return_if_fail (GCK_IS_OBJECT (wrapped));
- g_return_if_fail (GCK_IS_OBJECT (key));
-
- /* Shallow copy of the mechanism structure */
- memcpy (&args->mechanism, mechanism, sizeof (args->mechanism));
-
- g_object_get (key, "handle", &args->wrapper, NULL);
- g_return_if_fail (args->wrapper != 0);
- g_object_get (wrapped, "handle", &args->wrapped, NULL);
- g_return_if_fail (args->wrapped != 0);
-
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
-}
-
-/**
- * gck_session_wrap_key_finish:
- * @self: The session to use.
- * @result: The async result passed to the callback.
- * @n_result: A location in which to return the length of the wrapped data.
- * @error: A location to return an error.
- *
- * Get the result of a wrap key operation.
- *
- * Returns: (transfer full) (array length=n_result): the wrapped data or %NULL
- * if the operation failed
- **/
-guchar *
-gck_session_wrap_key_finish (GckSession *self, GAsyncResult *result,
- gsize *n_result, GError **error)
-{
- WrapKey *args;
- gpointer ret;
-
- g_return_val_if_fail (GCK_IS_SESSION (self), NULL);
- g_return_val_if_fail (n_result, NULL);
-
- args = _gck_call_arguments (result, WrapKey);
-
- if (!_gck_call_basic_finish (result, error))
- return NULL;
-
- *n_result = args->n_result;
- args->n_result = 0;
- ret = args->result;
- args->result = NULL;
-
- return ret;
-}
-
-/* -----------------------------------------------------------------------------
- * KEY UNWRAPPING
- */
-
-typedef struct _UnwrapKey {
- GckArguments base;
- GckMechanism mechanism;
- GckAttributes *attrs;
- CK_OBJECT_HANDLE wrapper;
- gconstpointer input;
- gulong n_input;
- CK_OBJECT_HANDLE unwrapped;
-} UnwrapKey;
-
-static void
-free_unwrap_key (UnwrapKey *args)
-{
- gck_attributes_unref (args->attrs);
- g_free (args);
-}
-
-static CK_RV
-perform_unwrap_key (UnwrapKey *args)
-{
- CK_ATTRIBUTE_PTR attrs;
- CK_ULONG n_attrs;
-
- g_assert (sizeof (CK_MECHANISM) == sizeof (GckMechanism));
-
- attrs = _gck_attributes_commit_out (args->attrs, &n_attrs);
-
- return (args->base.pkcs11->C_UnwrapKey) (args->base.handle,
- (CK_MECHANISM_PTR)&(args->mechanism),
- args->wrapper, (CK_BYTE_PTR)args->input,
- args->n_input, attrs, n_attrs,
- &args->unwrapped);
-}
-
-/**
- * gck_session_unwrap_key:
- * @self: The session to use.
- * @wrapper: The key to use for unwrapping.
- * @mech_type: The mechanism to use for unwrapping.
- * @input: (array length=n_input): the wrapped data as a byte stream
- * @n_input: The length of the wrapped data.
- * @attrs: Additional attributes for the unwrapped key.
- * @cancellable: Optional cancellation object, or NULL.
- * @error: A location to return an error, or NULL.
- *
- * Unwrap a key from a byte stream. This call may block for an
- * indefinite period.
- *
- * Returns: (transfer full): the new unwrapped key or NULL if the
- * operation failed
- **/
-GckObject *
-gck_session_unwrap_key (GckSession *self,
- GckObject *wrapper,
- gulong mech_type,
- const guchar *input,
- gsize n_input,
- GckAttributes *attrs,
- GCancellable *cancellable,
- GError **error)
-{
- GckMechanism mech = { mech_type, NULL, 0 };
- return gck_session_unwrap_key_full (self, wrapper, &mech, input, n_input, attrs, cancellable, error);
-}
-
-/**
- * gck_session_unwrap_key_full:
- * @self: The session to use.
- * @wrapper: The key to use for unwrapping.
- * @mechanism: The mechanism to use for unwrapping.
- * @input: (array length=n_input): the wrapped data as a byte stream
- * @n_input: The length of the wrapped data.
- * @attrs: Additional attributes for the unwrapped key.
- * @cancellable: Optional cancellation object, or NULL.
- * @error: A location to return an error, or NULL.
- *
- * Unwrap a key from a byte stream. This call may block for an
- * indefinite period.
- *
- * Returns: (transfer full): the new unwrapped key or NULL if the operation
- * failed
- **/
-GckObject *
-gck_session_unwrap_key_full (GckSession *self,
- GckObject *wrapper,
- GckMechanism *mechanism,
- const guchar *input,
- gsize n_input,
- GckAttributes *attrs,
- GCancellable *cancellable,
- GError **error)
-{
- UnwrapKey args = { GCK_ARGUMENTS_INIT, GCK_MECHANISM_EMPTY, attrs, 0, input, n_input, 0 };
- gboolean ret;
-
- g_return_val_if_fail (GCK_IS_SESSION (self), FALSE);
- g_return_val_if_fail (GCK_IS_OBJECT (wrapper), FALSE);
- g_return_val_if_fail (mechanism, FALSE);
- g_return_val_if_fail (attrs, FALSE);
-
- /* Shallow copy of the mechanism structure */
- memcpy (&args.mechanism, mechanism, sizeof (args.mechanism));
-
- g_object_get (wrapper, "handle", &args.wrapper, NULL);
- g_return_val_if_fail (args.wrapper != 0, NULL);
-
- _gck_attributes_lock (attrs);
- ret = _gck_call_sync (self, perform_unwrap_key, NULL, &args, cancellable, error);
- _gck_attributes_unlock (attrs);
-
- if (!ret)
- return NULL;
-
- return gck_object_from_handle (self, args.unwrapped);
-}
-
-/**
- * gck_session_unwrap_key_async:
- * @self: The session to use.
- * @wrapper: The key to use for unwrapping.
- * @mechanism: The mechanism to use for unwrapping.
- * @input: (array length=n_input): the wrapped data as a byte stream
- * @n_input: The length of the wrapped data.
- * @attrs: Additional attributes for the unwrapped key.
- * @cancellable: Optional cancellation object or NULL.
- * @callback: Called when the operation completes.
- * @user_data: Data to pass to the callback.
- *
- * Unwrap a key from a byte stream. This call will
- * return immediately and complete asynchronously.
- **/
-void
-gck_session_unwrap_key_async (GckSession *self,
- GckObject *wrapper,
- GckMechanism *mechanism,
- const guchar *input,
- gsize n_input,
- GckAttributes *attrs,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- UnwrapKey *args = _gck_call_async_prep (self, self, perform_unwrap_key,
- NULL, sizeof (*args), free_unwrap_key);
-
- g_return_if_fail (GCK_IS_SESSION (self));
- g_return_if_fail (GCK_IS_OBJECT (wrapper));
- g_return_if_fail (attrs);
-
- g_object_get (wrapper, "handle", &args->wrapper, NULL);
- g_return_if_fail (args->wrapper != 0);
-
- /* Shallow copy of the mechanism structure */
- memcpy (&args->mechanism, mechanism, sizeof (args->mechanism));
-
- args->attrs = gck_attributes_ref (attrs);
- args->input = input;
- args->n_input = n_input;
- _gck_attributes_lock (attrs);
-
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
-}
-
-/**
- * gck_session_unwrap_key_finish:
- * @self: The session to use.
- * @result: The async result passed to the callback.
- * @error: A location to return an error.
- *
- * Get the result of a unwrap key operation.
- *
- * Returns: (transfer full): the new unwrapped key or %NULL if the operation
- * failed.
- **/
-GckObject *
-gck_session_unwrap_key_finish (GckSession *self, GAsyncResult *result, GError **error)
-{
- UnwrapKey *args;
-
- g_return_val_if_fail (GCK_IS_SESSION (self), NULL);
-
- args = _gck_call_arguments (result, UnwrapKey);
- _gck_attributes_unlock (args->attrs);
-
- if (!_gck_call_basic_finish (result, error))
- return NULL;
- return gck_object_from_handle (self, args->unwrapped);
-}
-
-/* -----------------------------------------------------------------------------
- * KEY DERIVATION
- */
-
-typedef struct _DeriveKey {
- GckArguments base;
- GckMechanism mechanism;
- GckAttributes *attrs;
- CK_OBJECT_HANDLE key;
- CK_OBJECT_HANDLE derived;
-} DeriveKey;
-
-static void
-free_derive_key (DeriveKey *args)
-{
- gck_attributes_unref (args->attrs);
- g_free (args);
-}
-
-static CK_RV
-perform_derive_key (DeriveKey *args)
-{
- CK_ATTRIBUTE_PTR attrs;
- CK_ULONG n_attrs;
-
- g_assert (sizeof (CK_MECHANISM) == sizeof (GckMechanism));
-
- attrs = _gck_attributes_commit_out (args->attrs, &n_attrs);
-
- return (args->base.pkcs11->C_DeriveKey) (args->base.handle,
- (CK_MECHANISM_PTR)&(args->mechanism),
- args->key, attrs, n_attrs,
- &args->derived);
-}
-
-/**
- * gck_session_derive_key:
- * @self: The session to use.
- * @base: The key to derive from.
- * @mech_type: The mechanism to use for derivation.
- * @attrs: Additional attributes for the derived key.
- * @cancellable: Optional cancellation object, or NULL.
- * @error: A location to return an error, or NULL.
- *
- * Derive a key from another key. This call may block for an
- * indefinite period.
- *
- * Returns: (transfer full): the new derived key or NULL if the operation
- * failed
- **/
-GckObject *
-gck_session_derive_key (GckSession *self, GckObject *base, gulong mech_type,
- GckAttributes *attrs, GCancellable *cancellable, GError **error)
-{
- GckMechanism mech = { mech_type, NULL, 0 };
- return gck_session_derive_key_full (self, base, &mech, attrs, cancellable, error);
-}
-
-/**
- * gck_session_derive_key_full:
- * @self: The session to use.
- * @base: The key to derive from.
- * @mechanism: The mechanism to use for derivation.
- * @attrs: Additional attributes for the derived key.
- * @cancellable: Optional cancellation object, or NULL.
- * @error: A location to return an error, or NULL.
- *
- * Derive a key from another key. This call may block for an
- * indefinite period.
- *
- * Returns: (transfer full): the new derived key or NULL if the operation
- * failed
- **/
-GckObject*
-gck_session_derive_key_full (GckSession *self, GckObject *base, GckMechanism *mechanism,
- GckAttributes *attrs, GCancellable *cancellable, GError **error)
-{
- DeriveKey args = { GCK_ARGUMENTS_INIT, GCK_MECHANISM_EMPTY, attrs, 0, 0 };
- gboolean ret;
-
- g_return_val_if_fail (GCK_IS_SESSION (self), FALSE);
- g_return_val_if_fail (GCK_IS_OBJECT (base), FALSE);
- g_return_val_if_fail (mechanism, FALSE);
- g_return_val_if_fail (attrs, FALSE);
-
- /* Shallow copy of the mechanism structure */
- memcpy (&args.mechanism, mechanism, sizeof (args.mechanism));
-
- g_object_get (base, "handle", &args.key, NULL);
- g_return_val_if_fail (args.key != 0, NULL);
-
- _gck_attributes_lock (attrs);
- ret = _gck_call_sync (self, perform_derive_key, NULL, &args, cancellable, error);
- _gck_attributes_unlock (attrs);
-
- if (!ret)
- return NULL;
-
- return gck_object_from_handle (self, args.derived);
-}
-
-/**
- * gck_session_derive_key_async:
- * @self: The session to use.
- * @base: The key to derive from.
- * @mechanism: The mechanism to use for derivation.
- * @attrs: Additional attributes for the derived key.
- * @cancellable: Optional cancellation object or NULL.
- * @callback: Called when the operation completes.
- * @user_data: Data to pass to the callback.
- *
- * Derive a key from another key. This call will
- * return immediately and complete asynchronously.
- **/
-void
-gck_session_derive_key_async (GckSession *self, GckObject *base, GckMechanism *mechanism,
- GckAttributes *attrs, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- DeriveKey *args = _gck_call_async_prep (self, self, perform_derive_key,
- NULL, sizeof (*args), free_derive_key);
-
- g_return_if_fail (GCK_IS_SESSION (self));
- g_return_if_fail (GCK_IS_OBJECT (base));
- g_return_if_fail (attrs);
-
- g_object_get (base, "handle", &args->key, NULL);
- g_return_if_fail (args->key != 0);
-
- /* Shallow copy of the mechanism structure */
- memcpy (&args->mechanism, mechanism, sizeof (args->mechanism));
-
- args->attrs = gck_attributes_ref (attrs);
- _gck_attributes_lock (attrs);
-
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
-}
-
-/**
- * gck_session_derive_key_finish:
- * @self: The session to use.
- * @result: The async result passed to the callback.
- * @error: A location to return an error.
- *
- * Get the result of a derive key operation.
- *
- * Returns: (transfer full): the new derived key or %NULL if the operation
- * failed
- **/
-GckObject *
-gck_session_derive_key_finish (GckSession *self, GAsyncResult *result, GError **error)
-{
- DeriveKey *args;
-
- g_return_val_if_fail (GCK_IS_SESSION (self), NULL);
-
- args = _gck_call_arguments (result, DeriveKey);
- _gck_attributes_unlock (args->attrs);
-
- if (!_gck_call_basic_finish (result, error))
- return NULL;
-
- return gck_object_from_handle (self, args->derived);
-}
-
-/* --------------------------------------------------------------------------------------------------
- * COMMON CRYPTO ROUTINES
- */
-
-typedef struct _Crypt {
- GckArguments base;
-
- /* Functions to call */
- CK_C_EncryptInit init_func;
- CK_C_Encrypt complete_func;
-
- /* Interaction */
- GckObject *key_object;
- GTlsInteraction *interaction;
-
- /* Input */
- CK_OBJECT_HANDLE key;
- GckMechanism mechanism;
- guchar *input;
- CK_ULONG n_input;
-
- /* Output */
- guchar *result;
- CK_ULONG n_result;
-
-} Crypt;
-
-static CK_RV
-perform_crypt (Crypt *args)
-{
- GTlsInteraction *interaction;
- CK_RV rv;
-
- g_assert (args);
- g_assert (args->init_func);
- g_assert (args->complete_func);
- g_assert (!args->result);
- g_assert (!args->n_result);
-
- /* Initialize the crypt operation */
- rv = (args->init_func) (args->base.handle, (CK_MECHANISM_PTR)&(args->mechanism), args->key);
- if (rv != CKR_OK)
- return rv;
-
- /* Compatibility, hook into GckModule signals if no interaction set */
- if (args->interaction)
- interaction = g_object_ref (args->interaction);
- else
- interaction = _gck_interaction_new (args->key_object);
-
- rv = _gck_session_authenticate_key (args->base.pkcs11, args->base.handle,
- args->key_object, interaction, NULL);
-
- g_object_unref (interaction);
-
- if (rv != CKR_OK)
- return rv;
-
- /* Get the length of the result */
- rv = (args->complete_func) (args->base.handle, args->input, args->n_input, NULL, &args->n_result);
- if (rv != CKR_OK)
- return rv;
-
- /* And try again with a real buffer */
- args->result = g_malloc0 (args->n_result);
- return (args->complete_func) (args->base.handle, args->input, args->n_input, args->result, &args->n_result);
-}
-
-static void
-free_crypt (Crypt *args)
-{
- g_clear_object (&args->interaction);
- g_clear_object (&args->key_object);
-
- g_free (args->input);
- g_free (args->result);
- g_free (args);
-}
-
-static guchar*
-crypt_sync (GckSession *self, GckObject *key, GckMechanism *mechanism, const guchar *input,
- gsize n_input, gsize *n_result, GCancellable *cancellable, GError **error,
- CK_C_EncryptInit init_func, CK_C_Encrypt complete_func)
-{
- Crypt args;
-
- g_return_val_if_fail (GCK_IS_OBJECT (key), NULL);
- g_return_val_if_fail (mechanism, NULL);
- g_return_val_if_fail (init_func, NULL);
- g_return_val_if_fail (complete_func, NULL);
-
- memset (&args, 0, sizeof (args));
- g_object_get (key, "handle", &args.key, NULL);
- g_return_val_if_fail (args.key != 0, NULL);
-
- /* Shallow copy of the mechanism structure */
- memcpy (&args.mechanism, mechanism, sizeof (args.mechanism));
-
- /* No need to copy in this case */
- args.input = (guchar*)input;
- args.n_input = n_input;
-
- args.init_func = init_func;
- args.complete_func = complete_func;
-
- args.key_object = key;
- args.interaction = self->pv->interaction;
-
- if (!_gck_call_sync (self, perform_crypt, NULL, &args, cancellable, error)) {
- g_free (args.result);
- return NULL;
- }
-
- *n_result = args.n_result;
- return args.result;
-}
-
-static void
-crypt_async (GckSession *self, GckObject *key, GckMechanism *mechanism, const guchar *input,
- gsize n_input, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data,
- CK_C_EncryptInit init_func, CK_C_Encrypt complete_func)
-{
- Crypt *args = _gck_call_async_prep (self, self, perform_crypt, NULL, sizeof (*args), free_crypt);
-
- g_return_if_fail (GCK_IS_OBJECT (key));
- g_return_if_fail (mechanism);
- g_return_if_fail (init_func);
- g_return_if_fail (complete_func);
-
- g_object_get (key, "handle", &args->key, NULL);
- g_return_if_fail (args->key != 0);
-
- /* Shallow copy of the mechanism structure */
- memcpy (&args->mechanism, mechanism, sizeof (args->mechanism));
-
- args->input = input && n_input ? g_memdup (input, n_input) : NULL;
- args->n_input = n_input;
-
- args->init_func = init_func;
- args->complete_func = complete_func;
-
- args->key_object = g_object_ref (key);
- args->interaction = gck_session_get_interaction (self);
-
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
-}
-
-static guchar*
-crypt_finish (GckSession *self, GAsyncResult *result, gsize *n_result, GError **error)
-{
- Crypt *args;
- guchar *res;
-
- if (!_gck_call_basic_finish (result, error))
- return NULL;
- args = _gck_call_arguments (result, Crypt);
-
- /* Steal the values from the results */
- res = args->result;
- args->result = NULL;
- *n_result = args->n_result;
- args->n_result = 0;
-
- return res;
-}
-
-/* --------------------------------------------------------------------------------------------------
- * ENCRYPT
- */
-
-/**
- * gck_session_encrypt:
- * @self: The session.
- * @key: The key to encrypt with.
- * @mech_type: The mechanism type to use for encryption.
- * @input: The data to encrypt.
- * @n_input: The length of the data to encrypt.
- * @n_result: A location to store the length of the result data.
- * @cancellable: Optional cancellation object, or %NULL
- * @error: A location to place error information.
- *
- * Encrypt data in a mechanism specific manner. This call may
- * block for an indefinite period.
- *
- * Returns: (transfer full) (array length=n_result): the data that was encrypted,
- * or %NULL if an error occured.
- */
-guchar *
-gck_session_encrypt (GckSession *self, GckObject *key, gulong mech_type, const guchar *input,
- gsize n_input, gsize *n_result, GCancellable *cancellable, GError **error)
-{
- GckMechanism mechanism = { mech_type, NULL, 0 };
- return gck_session_encrypt_full (self, key, &mechanism, input, n_input, n_result, cancellable, error);
-}
-
-/**
- * gck_session_encrypt_full:
- * @self: The session.
- * @key: The key to encrypt with.
- * @mechanism: The mechanism type and parameters to use for encryption.
- * @input: The data to encrypt.
- * @n_input: The length of the data to encrypt.
- * @n_result: A location to store the length of the result data.
- * @cancellable: A GCancellable which can be used to cancel the operation.
- * @error: A location to place error information.
- *
- * Encrypt data in a mechanism specific manner. This call may
- * block for an indefinite period.
- *
- * Returns: (transfer full) (array length=n_result): the data that was encrypted,
- * or %NULL if an error occured
- */
-guchar *
-gck_session_encrypt_full (GckSession *self, GckObject *key, GckMechanism *mechanism,
- const guchar *input, gsize n_input, gsize *n_result,
- GCancellable *cancellable, GError **error)
-{
- GckModule *module = NULL;
- CK_FUNCTION_LIST_PTR funcs;
- guchar *ret;
-
- g_object_get (self, "module", &module, NULL);
- g_return_val_if_fail (module != NULL, NULL);
-
- funcs = gck_module_get_functions (module);
- g_return_val_if_fail (module != NULL, NULL);
-
- ret = crypt_sync (self, key, mechanism, input, n_input, n_result, cancellable, error,
- funcs->C_EncryptInit, funcs->C_Encrypt);
-
- g_object_unref (module);
- return ret;
-}
-
-/**
- * gck_session_encrypt_async:
- * @self: The session.
- * @key: The key to encrypt with.
- * @mechanism: The mechanism type and parameters to use for encryption.
- * @input: The data to encrypt.
- * @n_input: The length of the data to encrypt.
- * @cancellable: A GCancellable which can be used to cancel the operation.
- * @callback: Called when the operation completes.
- * @user_data: A pointer to pass to the callback.
- *
- * Encrypt data in a mechanism specific manner. This call will
- * return immediately and complete asynchronously.
- **/
-void
-gck_session_encrypt_async (GckSession *self, GckObject *key, GckMechanism *mechanism,
- const guchar *input, gsize n_input, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- GckModule *module = NULL;
- CK_FUNCTION_LIST_PTR funcs;
-
- g_object_get (self, "module", &module, NULL);
- g_return_if_fail (module != NULL);
-
- funcs = gck_module_get_functions (module);
- g_return_if_fail (module != NULL);
-
- crypt_async (self, key, mechanism, input, n_input, cancellable, callback, user_data,
- funcs->C_EncryptInit, funcs->C_Encrypt);
-
- g_object_unref (module);
-}
-
-/**
- * gck_session_encrypt_finish:
- * @self: The session.
- * @result: The result object passed to the callback.
- * @n_result: A location to store the length of the result data.
- * @error: A location to place error information.
- *
- * Get the result of an encryption operation.
- *
- * Returns: (transfer full) (array length=n_result): the data that was encrypted,
- * or %NULL if an error occurred.
- */
-guchar*
-gck_session_encrypt_finish (GckSession *self, GAsyncResult *result, gsize *n_result,
- GError **error)
-{
- return crypt_finish (self, result, n_result, error);
-}
-
-/* --------------------------------------------------------------------------------------------------
- * DECRYPT
- */
-
-/**
- * gck_session_decrypt:
- * @self: The session.
- * @key: The key to decrypt with.
- * @mech_type: The mechanism type to use for decryption.
- * @input: The data to decrypt.
- * @n_input: The length of the data to decrypt.
- * @n_result: A location to store the length of the result data.
- * @cancellable: Optional cancellation object, or %NULL
- * @error: A location to place an error.
- *
- * Decrypt data in a mechanism specific manner. This call may
- * block for an indefinite period.
- *
- * Returns: (transfer full) (array length=n_result): the data that was decrypted,
- * or NULL if an error occured
- */
-guchar *
-gck_session_decrypt (GckSession *self, GckObject *key, gulong mech_type, const guchar *input,
- gsize n_input, gsize *n_result, GCancellable *cancellable, GError **error)
-{
- GckMechanism mechanism = { mech_type, NULL, 0 };
- return gck_session_decrypt_full (self, key, &mechanism, input, n_input, n_result, cancellable, error);
-}
-
-/**
- * gck_session_decrypt_full:
- * @self: The session.
- * @key: The key to decrypt with.
- * @mechanism: The mechanism type and parameters to use for decryption.
- * @input: The data to decrypt.
- * @n_input: The length of the data to decrypt.
- * @n_result: A location to store the length of the result data.
- * @cancellable: A GCancellable which can be used to cancel the operation.
- * @error: A location to place error information.
- *
- * Decrypt data in a mechanism specific manner. This call may
- * block for an indefinite period.
- *
- * Returns: (transfer full) (array length=n_result): the data that was decrypted,
- * or %NULL if an error occured
- */
-guchar *
-gck_session_decrypt_full (GckSession *self, GckObject *key, GckMechanism *mechanism,
- const guchar *input, gsize n_input, gsize *n_result,
- GCancellable *cancellable, GError **error)
-{
- GckModule *module = NULL;
- CK_FUNCTION_LIST_PTR funcs;
- guchar *ret;
-
- g_object_get (self, "module", &module, NULL);
- g_return_val_if_fail (module != NULL, NULL);
-
- funcs = gck_module_get_functions (module);
- g_return_val_if_fail (module != NULL, NULL);
-
- ret = crypt_sync (self, key, mechanism, input, n_input, n_result, cancellable, error,
- funcs->C_DecryptInit, funcs->C_Decrypt);
- g_object_unref (module);
- return ret;
-}
-
-/**
- * gck_session_decrypt_async:
- * @self: The session.
- * @key: The key to decrypt with.
- * @mechanism: The mechanism type and parameters to use for decryption.
- * @input: The data to decrypt.
- * @n_input: The length of the data to decrypt.
- * @cancellable: A GCancellable which can be used to cancel the operation.
- * @callback: Called when the operation completes.
- * @user_data: A pointer to pass to the callback.
- *
- * Decrypt data in a mechanism specific manner. This call will
- * return immediately and complete asynchronously.
- */
-void
-gck_session_decrypt_async (GckSession *self, GckObject *key, GckMechanism *mechanism,
- const guchar *input, gsize n_input, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- GckModule *module = NULL;
- CK_FUNCTION_LIST_PTR funcs;
-
- g_object_get (self, "module", &module, NULL);
- g_return_if_fail (module != NULL);
-
- funcs = gck_module_get_functions (module);
- g_return_if_fail (module != NULL);
-
- crypt_async (self, key, mechanism, input, n_input, cancellable, callback, user_data,
- funcs->C_DecryptInit, funcs->C_Decrypt);
- g_object_unref (module);
-}
-
-/**
- * gck_session_decrypt_finish:
- * @self: The session.
- * @result: The result object passed to the callback.
- * @n_result: A location to store the length of the result data.
- * @error: A location to place error information.
- *
- * Get the result of an decryption operation.
- *
- * Returns: (transfer full) (array length=n_result): the data that was decrypted,
- * or NULL if an error occurred
- */
-guchar*
-gck_session_decrypt_finish (GckSession *self, GAsyncResult *result,
- gsize *n_result, GError **error)
-{
- return crypt_finish (self, result, n_result, error);
-}
-
-/* --------------------------------------------------------------------------------------------------
- * SIGN
- */
-
-/**
- * gck_session_sign:
- * @self: The session.
- * @key: The key to sign with.
- * @mech_type: The mechanism type to use for signing.
- * @input: The data to sign.
- * @n_input: The length of the data to sign.
- * @n_result: A location to store the length of the result data.
- * @cancellable: Optional cancellation object, or %NULL
- * @error: A location to place an error.
- *
- * Sign data in a mechanism specific manner. This call may
- * block for an indefinite period.
- *
- * Returns: (transfer full) (array length=n_result): the data that was signed,
- * or %NULL if an error occured
- */
-guchar *
-gck_session_sign (GckSession *self, GckObject *key, gulong mech_type, const guchar *input,
- gsize n_input, gsize *n_result, GCancellable *cancellable, GError **error)
-{
- GckMechanism mechanism = { mech_type, NULL, 0 };
- return gck_session_sign_full (self, key, &mechanism, input, n_input, n_result, NULL, error);
-}
-
-/**
- * gck_session_sign_full:
- * @self: The session.
- * @key: The key to sign with.
- * @mechanism: The mechanism type and parameters to use for signing.
- * @input: The data to sign.
- * @n_input: The length of the data to sign.
- * @n_result: A location to store the length of the result data.
- * @cancellable: A GCancellable which can be used to cancel the operation.
- * @error: A location to place error information.
- *
- * Sign data in a mechanism specific manner. This call may
- * block for an indefinite period.
- *
- * Returns: The data that was signed, or NULL if an error occured.
- */
-guchar*
-gck_session_sign_full (GckSession *self, GckObject *key, GckMechanism *mechanism,
- const guchar *input, gsize n_input, gsize *n_result,
- GCancellable *cancellable, GError **error)
-{
- GckModule *module = NULL;
- CK_FUNCTION_LIST_PTR funcs;
- guchar *ret;
-
- g_object_get (self, "module", &module, NULL);
- g_return_val_if_fail (module != NULL, NULL);
-
- funcs = gck_module_get_functions (module);
- g_return_val_if_fail (module != NULL, NULL);
-
- ret = crypt_sync (self, key, mechanism, input, n_input, n_result, cancellable, error,
- funcs->C_SignInit, funcs->C_Sign);
- g_object_unref (module);
- return ret;
-}
-
-/**
- * gck_session_sign_async:
- * @self: The session.
- * @key: The key to sign with.
- * @mechanism: The mechanism type and parameters to use for signing.
- * @input: The data to sign.
- * @n_input: The length of the data to sign.
- * @cancellable: A GCancellable which can be used to cancel the operation.
- * @callback: Called when the operation completes.
- * @user_data: A pointer to pass to the callback.
- *
- * Sign data in a mechanism specific manner. This call will
- * return immediately and complete asynchronously.
- */
-void
-gck_session_sign_async (GckSession *self, GckObject *key, GckMechanism *mechanism,
- const guchar *input, gsize n_input, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- GckModule *module = NULL;
- CK_FUNCTION_LIST_PTR funcs;
-
- g_object_get (self, "module", &module, NULL);
- g_return_if_fail (module != NULL);
-
- funcs = gck_module_get_functions (module);
- g_return_if_fail (module != NULL);
-
- crypt_async (self, key, mechanism, input, n_input, cancellable, callback, user_data,
- funcs->C_SignInit, funcs->C_Sign);
- g_object_unref (module);
-}
-
-/**
- * gck_session_sign_finish:
- * @self: The session.
- * @result: The result object passed to the callback.
- * @n_result: A location to store the length of the result data.
- * @error: A location to place error information.
- *
- * Get the result of an signing operation.
- *
- * Returns: (transfer full) (array length=n_result): the data that was signed,
- * or %NULL if an error occurred
- */
-guchar *
-gck_session_sign_finish (GckSession *self, GAsyncResult *result,
- gsize *n_result, GError **error)
-{
- return crypt_finish (self, result, n_result, error);
-}
-
-/* --------------------------------------------------------------------------------------------------
- * VERIFY
- */
-
-typedef struct _Verify {
- GckArguments base;
-
- /* Interaction */
- GckObject *key_object;
- GTlsInteraction *interaction;
-
- /* Input */
- CK_OBJECT_HANDLE key;
- GckMechanism mechanism;
- guchar *input;
- CK_ULONG n_input;
- guchar *signature;
- CK_ULONG n_signature;
-
-} Verify;
-
-static CK_RV
-perform_verify (Verify *args)
-{
- GTlsInteraction *interaction;
- CK_RV rv;
-
- /* Initialize the crypt operation */
- rv = (args->base.pkcs11->C_VerifyInit) (args->base.handle, (CK_MECHANISM_PTR)&(args->mechanism), args->key);
- if (rv != CKR_OK)
- return rv;
-
- /* Compatibility, hook into GckModule signals if no interaction set */
- if (args->interaction)
- interaction = g_object_ref (args->interaction);
- else
- interaction = _gck_interaction_new (args->key_object);
-
-
- rv = _gck_session_authenticate_key (args->base.pkcs11, args->base.handle,
- args->key_object, interaction, NULL);
-
- g_object_unref (interaction);
-
- if (rv != CKR_OK)
- return rv;
-
- /* Do the actual verify */
- return (args->base.pkcs11->C_Verify) (args->base.handle, args->input, args->n_input,
- args->signature, args->n_signature);
-}
-
-static void
-free_verify (Verify *args)
-{
- g_clear_object (&args->interaction);
- g_clear_object (&args->key_object);
-
- g_free (args->input);
- g_free (args->signature);
- g_free (args);
-}
-
-/**
- * gck_session_verify:
- * @self: The session.
- * @key: The key to verify with.
- * @mech_type: The mechanism type to use for verifying.
- * @input: The data to verify.
- * @n_input: The length of the data to verify.
- * @signature: The signature.
- * @n_signature: The length of the signature.
- * @cancellable: Optional cancellation object, or %NULL
- * @error: A location to place an error.
- *
- * Verify data in a mechanism specific manner. This call may
- * block for an indefinite period.
- *
- * Returns: TRUE if the data verified correctly, otherwise a failure or error occurred.
- */
-gboolean
-gck_session_verify (GckSession *self, GckObject *key, gulong mech_type, const guchar *input,
- gsize n_input, const guchar *signature, gsize n_signature, GCancellable *cancellable, GError **error)
-{
- GckMechanism mechanism = { mech_type, NULL, 0 };
- return gck_session_verify_full (self, key, &mechanism, input, n_input,
- signature, n_signature, NULL, error);
-}
-
-/**
- * gck_session_verify_full:
- * @self: The session.
- * @key: The key to verify with.
- * @mechanism: The mechanism type and parameters to use for signing.
- * @input: The data to verify.
- * @n_input: The length of the data to verify.
- * @signature: The signature.
- * @n_signature: The length of the signature.
- * @cancellable: A GCancellable which can be used to cancel the operation.
- * @error: A location to place an error.
- *
- * Verify data in a mechanism specific manner. This call may
- * block for an indefinite period.
- *
- * Returns: TRUE if the data verified correctly, otherwise a failure or error occurred.
- */
-gboolean
-gck_session_verify_full (GckSession *self, GckObject *key, GckMechanism *mechanism,
- const guchar *input, gsize n_input, const guchar *signature,
- gsize n_signature, GCancellable *cancellable, GError **error)
-{
- Verify args;
-
- g_return_val_if_fail (GCK_IS_OBJECT (key), FALSE);
- g_return_val_if_fail (mechanism, FALSE);
-
- memset (&args, 0, sizeof (args));
- g_object_get (key, "handle", &args.key, NULL);
- g_return_val_if_fail (args.key != 0, FALSE);
-
- /* Shallow copy of the mechanism structure */
- memcpy (&args.mechanism, mechanism, sizeof (args.mechanism));
-
- /* No need to copy in this case */
- args.input = (guchar*)input;
- args.n_input = n_input;
- args.signature = (guchar*)signature;
- args.n_signature = n_signature;
-
- args.key_object = key;
- args.interaction = self->pv->interaction;
-
- return _gck_call_sync (self, perform_verify, NULL, &args, cancellable, error);
-}
-
-/**
- * gck_session_verify_async:
- * @self: The session.
- * @key: The key to verify with.
- * @mechanism: The mechanism type and parameters to use for signing.
- * @input: The data to verify.
- * @n_input: The length of the data to verify.
- * @signature: The signature.
- * @n_signature: The length of the signature.
- * @cancellable: A GCancellable which can be used to cancel the operation.
- * @callback: Called when the operation completes.
- * @user_data: A pointer to pass to the callback.
- *
- * Verify data in a mechanism specific manner. This call returns
- * immediately and completes asynchronously.
- */
-void
-gck_session_verify_async (GckSession *self, GckObject *key, GckMechanism *mechanism,
- const guchar *input, gsize n_input, const guchar *signature,
- gsize n_signature, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- Verify *args = _gck_call_async_prep (self, self, perform_verify, NULL, sizeof (*args), free_verify);
-
- g_return_if_fail (GCK_IS_OBJECT (key));
- g_return_if_fail (mechanism);
-
- g_object_get (key, "handle", &args->key, NULL);
- g_return_if_fail (args->key != 0);
-
- /* Shallow copy of the mechanism structure */
- memcpy (&args->mechanism, mechanism, sizeof (args->mechanism));
-
- args->input = input && n_input ? g_memdup (input, n_input) : NULL;
- args->n_input = n_input;
- args->signature = signature && n_signature ? g_memdup (signature, n_signature) : NULL;
- args->n_signature = n_signature;
-
- args->key_object = g_object_ref (key);
- args->interaction = gck_session_get_interaction (self);
-
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
-}
-
-/**
- * gck_session_verify_finish:
- * @self: The session.
- * @result: The result object passed to the callback.
- * @error: A location to place error information.
- *
- * Get the result of an verify operation.
- *
- * Returns: TRUE if the data verified correctly, otherwise a failure or error occurred.
- */
-gboolean
-gck_session_verify_finish (GckSession *self, GAsyncResult *result, GError **error)
-{
- return _gck_call_basic_finish (result, error);
-}
-
-static void
-update_password_for_token (GTlsPassword *password,
- CK_TOKEN_INFO *token_info,
- gboolean request_retry)
-{
- GTlsPasswordFlags flags;
- gchar *label;
-
- label = gck_string_from_chars (token_info->label, sizeof (token_info->label));
- g_tls_password_set_description (password, label);
- g_free (label);
-
- flags = 0;
- if (request_retry)
- flags |= G_TLS_PASSWORD_RETRY;
- if (token_info && token_info->flags & CKF_USER_PIN_COUNT_LOW)
- flags |= G_TLS_PASSWORD_MANY_TRIES;
- if (token_info && token_info->flags & CKF_USER_PIN_FINAL_TRY)
- flags |= G_TLS_PASSWORD_FINAL_TRY;
- g_tls_password_set_flags (password, flags);
-}
-
-CK_RV
-_gck_session_authenticate_token (CK_FUNCTION_LIST_PTR funcs,
- CK_SESSION_HANDLE session,
- GckSlot *token,
- GTlsInteraction *interaction,
- GCancellable *cancellable)
-{
- CK_SESSION_INFO session_info;
- GTlsPassword *password = NULL;
- CK_TOKEN_INFO token_info;
- GTlsInteractionResult res;
- gboolean request_retry;
- CK_SLOT_ID slot_id;
- CK_BYTE_PTR pin;
- CK_ULONG n_pin;
- CK_RV rv = CKR_OK;
- GError *error = NULL;
-
- g_assert (funcs != NULL);
- g_assert (GCK_IS_SLOT (token));
-
- slot_id = gck_slot_get_handle (token);
- request_retry = FALSE;
-
- do {
- if (g_cancellable_is_cancelled (cancellable)) {
- rv = CKR_FUNCTION_CANCELED;
- break;
- }
-
- rv = (funcs->C_GetTokenInfo) (slot_id, &token_info);
- if (rv != CKR_OK) {
- g_warning ("couldn't get token info when logging in: %s",
- gck_message_from_rv (rv));
- break;
- }
-
- /* No login necessary? */
- if ((token_info.flags & CKF_LOGIN_REQUIRED) == 0) {
- _gck_debug ("no login required for token, skipping login");
- rv = CKR_OK;
- break;
- }
-
- /* Next check if session is logged in? */
- rv = (funcs->C_GetSessionInfo) (session, &session_info);
- if (rv != CKR_OK) {
- g_warning ("couldn't get session info when logging in: %s",
- gck_message_from_rv (rv));
- break;
- }
-
- /* Already logged in? */
- if (session_info.state == CKS_RW_USER_FUNCTIONS ||
- session_info.state == CKS_RO_USER_FUNCTIONS ||
- session_info.state == CKS_RW_SO_FUNCTIONS) {
- _gck_debug ("already logged in, skipping login");
- rv = CKR_OK;
- break;
- }
-
- if (token_info.flags & CKF_PROTECTED_AUTHENTICATION_PATH) {
- _gck_debug ("trying to log into session: protected authentication path, no password");
-
- /* No password passed for PAP */
- pin = NULL;
- n_pin = 0;
-
-
- /* Not protected auth path */
- } else {
- _gck_debug ("trying to log into session: want password %s",
- request_retry ? "login was incorrect" : "");
-
- if (password == NULL)
- password = g_object_new (GCK_TYPE_PASSWORD, "token", token, NULL);
-
- update_password_for_token (password, &token_info, request_retry);
-
- if (interaction == NULL)
- res = G_TLS_INTERACTION_UNHANDLED;
-
- else
- res = g_tls_interaction_invoke_ask_password (interaction,
- G_TLS_PASSWORD (password),
- NULL, &error);
-
- if (res == G_TLS_INTERACTION_FAILED) {
- g_message ("interaction couldn't ask password: %s", error->message);
- rv = _gck_rv_from_error (error, CKR_USER_NOT_LOGGED_IN);
- g_clear_error (&error);
- break;
-
- } else if (res == G_TLS_INTERACTION_UNHANDLED) {
- g_message ("couldn't authenticate: no interaction handler");
- rv = CKR_USER_NOT_LOGGED_IN;
- break;
- }
-
- pin = (CK_BYTE_PTR)g_tls_password_get_value (password, &n_pin);
- }
-
- /* Try to log in */
- rv = (funcs->C_Login) (session, CKU_USER, (CK_BYTE_PTR)pin, n_pin);
-
- /* Only one C_Login call if protected auth path */
- if (token_info.flags & CKF_PROTECTED_AUTHENTICATION_PATH)
- break;
-
- request_retry = TRUE;
- } while (rv == CKR_PIN_INCORRECT);
-
- g_clear_object (&password);
-
- return rv;
-}
-
-static void
-update_password_for_key (GTlsPassword *password,
- CK_TOKEN_INFO *token_info,
- gboolean request_retry)
-{
- GTlsPasswordFlags flags;
-
- flags = 0;
- if (request_retry)
- flags |= G_TLS_PASSWORD_RETRY;
- if (token_info && token_info->flags & CKF_USER_PIN_COUNT_LOW)
- flags |= G_TLS_PASSWORD_MANY_TRIES;
- if (token_info && token_info->flags & CKF_USER_PIN_FINAL_TRY)
- flags |= G_TLS_PASSWORD_FINAL_TRY;
- g_tls_password_set_flags (password, flags);
-}
-
-CK_RV
-_gck_session_authenticate_key (CK_FUNCTION_LIST_PTR funcs,
- CK_SESSION_HANDLE session,
- GckObject *key,
- GTlsInteraction *interaction,
- GCancellable *cancellable)
-{
- CK_ATTRIBUTE attrs[2];
- CK_SESSION_INFO session_info;
- CK_TOKEN_INFO token_info;
- GTlsPassword *password = NULL;
- CK_OBJECT_HANDLE handle;
- GTlsInteractionResult res;
- gboolean request_retry;
- GError *error = NULL;
- CK_BYTE_PTR pin;
- gsize pin_len;
- CK_BBOOL bvalue;
- gboolean got_label;
- CK_RV rv;
-
- g_assert (funcs != NULL);
-
- handle = gck_object_get_handle (key);
-
- attrs[0].type = CKA_LABEL;
- attrs[0].pValue = NULL;
- attrs[0].ulValueLen = 0;
- attrs[1].type = CKA_ALWAYS_AUTHENTICATE;
- attrs[1].pValue = &bvalue;
- attrs[1].ulValueLen = sizeof (bvalue);
-
- rv = (funcs->C_GetAttributeValue) (session, handle, attrs, 2);
- if (rv == CKR_ATTRIBUTE_TYPE_INVALID) {
- bvalue = CK_FALSE;
-
- } else if (rv != CKR_OK) {
- g_message ("couldn't check whether key requires authentication, assuming it doesn't: %s",
- gck_message_from_rv (rv));
- return CKR_OK;
- }
-
- /* No authentication needed, on this object */
- if (bvalue != CK_TRUE) {
- _gck_debug ("key does not require authentication");
- return CKR_OK;
- }
-
- got_label = FALSE;
- request_retry = FALSE;
-
- do {
- if (g_cancellable_is_cancelled (cancellable)) {
- rv = CKR_FUNCTION_CANCELED;
- break;
- }
-
- rv = (funcs->C_GetSessionInfo) (session, &session_info);
- if (rv != CKR_OK) {
- g_warning ("couldn't get session info when authenticating key: %s",
- gck_message_from_rv (rv));
- return rv;
- }
-
- rv = (funcs->C_GetTokenInfo) (session_info.slotID, &token_info);
- if (rv != CKR_OK) {
- g_warning ("couldn't get token info when authenticating key: %s",
- gck_message_from_rv (rv));
- return rv;
- }
-
- /* Protected authentication path, just use NULL passwords */
- if (token_info.flags & CKF_PROTECTED_AUTHENTICATION_PATH) {
-
- password = NULL;
- pin = NULL;
- pin_len = 0;
-
- /* Need to prompt for a password */
- } else {
- _gck_debug ("trying to log into session: want password %s",
- request_retry ? "login was incorrect" : "");
-
- if (password == NULL)
- password = g_object_new (GCK_TYPE_PASSWORD, "key", key, NULL);
-
- /* Set the password */
- update_password_for_key (password, &token_info, request_retry);
-
- /* Set the label properly */
- if (!got_label) {
- if (attrs[0].ulValueLen && attrs[0].ulValueLen != GCK_INVALID) {
- attrs[0].pValue = g_malloc0 (attrs[0].ulValueLen + 1);
- rv = (funcs->C_GetAttributeValue) (session, handle, attrs, 1);
- if (rv == CKR_OK) {
- ((gchar *)attrs[0].pValue)[attrs[0].ulValueLen] = 0;
- g_tls_password_set_description (password, attrs[0].pValue);
- }
- g_free (attrs[0].pValue);
- attrs[0].pValue = NULL;
- }
-
- got_label = TRUE;
- }
-
- if (interaction == NULL)
- res = G_TLS_INTERACTION_UNHANDLED;
-
- else
- res = g_tls_interaction_invoke_ask_password (interaction,
- G_TLS_PASSWORD (password),
- NULL, &error);
-
- if (res == G_TLS_INTERACTION_FAILED) {
- g_message ("interaction couldn't ask password: %s", error->message);
- rv = _gck_rv_from_error (error, CKR_USER_NOT_LOGGED_IN);
- g_clear_error (&error);
- break;
-
- } else if (res == G_TLS_INTERACTION_UNHANDLED) {
- g_message ("couldn't authenticate: no interaction handler");
- rv = CKR_USER_NOT_LOGGED_IN;
- break;
- }
-
- pin = (CK_BYTE_PTR)g_tls_password_get_value (G_TLS_PASSWORD (password), &pin_len);
- }
-
- /* Try to log in */
- rv = (funcs->C_Login) (session, CKU_CONTEXT_SPECIFIC, pin, pin_len);
-
- /* Only one C_Login call if protected auth path */
- if (token_info.flags & CKF_PROTECTED_AUTHENTICATION_PATH)
- break;
-
- request_retry = TRUE;
- } while (rv == CKR_PIN_INCORRECT);
-
- g_clear_object (&password);
-
- return rv;
-}
diff --git a/gck/gck-slot.c b/gck/gck-slot.c
deleted file mode 100644
index 2be6a83a..00000000
--- a/gck/gck-slot.c
+++ /dev/null
@@ -1,1302 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gck-slot.c - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2008, Stefan Walter
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <nielsen@memberwebs.com>
-*/
-
-#include "config.h"
-
-#include "gck.h"
-#include "gck-private.h"
-
-#include "egg/egg-timegm.h"
-
-#include <string.h>
-
-/**
- * SECTION:gck-slot
- * @title: GckSlot
- * @short_description: Represents a PKCS\#11 slot that can contain a token.
- *
- * A PKCS11 slot can contain a token. As an example, a slot might be a card reader, and the token
- * the card. If the PKCS\#11 module is not a hardware driver, often the slot and token are equivalent.
- */
-
-/**
- * GckSlot:
- * @parent: derived from this.
- *
- * Represents a PKCS11 slot.
- */
-
-enum {
- PROP_0,
- PROP_MODULE,
- PROP_HANDLE,
- PROP_INTERACTION
-};
-
-struct _GckSlotPrivate {
- GckModule *module;
- CK_SLOT_ID handle;
-
- /* Changable data locked by mutex */
- GMutex *mutex;
- GTlsInteraction *interaction;
-};
-
-G_DEFINE_TYPE (GckSlot, gck_slot, G_TYPE_OBJECT);
-
-/* ----------------------------------------------------------------------------
- * HELPERS
- */
-
-static GckSession*
-make_session_object (GckSlot *self,
- GckSessionOptions options,
- CK_SESSION_HANDLE handle)
-{
- GckSession *session;
- GckModule *module;
-
- g_return_val_if_fail (handle != 0, NULL);
-
- module = gck_slot_get_module (self);
-
- session = gck_session_from_handle (self, handle, options);
- g_return_val_if_fail (session != NULL, NULL);
-
- g_object_unref (module);
-
- return session;
-}
-
-/* ----------------------------------------------------------------------------
- * OBJECT
- */
-
-static void
-gck_slot_init (GckSlot *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCK_TYPE_SLOT, GckSlotPrivate);
- self->pv->mutex = g_mutex_new ();
-}
-
-static void
-gck_slot_get_property (GObject *obj, guint prop_id, GValue *value,
- GParamSpec *pspec)
-{
- GckSlot *self = GCK_SLOT (obj);
-
- switch (prop_id) {
- case PROP_MODULE:
- g_value_take_object (value, gck_slot_get_module (self));
- break;
- case PROP_HANDLE:
- g_value_set_ulong (value, gck_slot_get_handle (self));
- break;
- case PROP_INTERACTION:
- g_value_take_object (value, gck_slot_get_interaction (self));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gck_slot_set_property (GObject *obj, guint prop_id, const GValue *value,
- GParamSpec *pspec)
-{
- GckSlot *self = GCK_SLOT (obj);
-
- /* All writes to data members below, happen only during construct phase */
-
- switch (prop_id) {
- case PROP_MODULE:
- g_assert (!self->pv->module);
- self->pv->module = g_value_get_object (value);
- g_assert (self->pv->module);
- g_object_ref (self->pv->module);
- break;
- case PROP_HANDLE:
- g_assert (!self->pv->handle);
- self->pv->handle = g_value_get_ulong (value);
- break;
- case PROP_INTERACTION:
- gck_slot_set_interaction (self, g_value_get_object (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gck_slot_dispose (GObject *obj)
-{
- GckSlot *self = GCK_SLOT (obj);
-
- gck_slot_set_interaction (self, NULL);
-
- G_OBJECT_CLASS (gck_slot_parent_class)->dispose (obj);
-}
-
-static void
-gck_slot_finalize (GObject *obj)
-{
- GckSlot *self = GCK_SLOT (obj);
-
- g_assert (self->pv->interaction == NULL);
-
- self->pv->handle = 0;
- g_clear_object (&self->pv->module);
- g_mutex_free (self->pv->mutex);
-
- G_OBJECT_CLASS (gck_slot_parent_class)->finalize (obj);
-}
-
-static void
-gck_slot_class_init (GckSlotClass *klass)
-{
- GObjectClass *gobject_class = (GObjectClass*)klass;
- gck_slot_parent_class = g_type_class_peek_parent (klass);
-
- gobject_class->get_property = gck_slot_get_property;
- gobject_class->set_property = gck_slot_set_property;
- gobject_class->dispose = gck_slot_dispose;
- gobject_class->finalize = gck_slot_finalize;
-
- /**
- * GckSlot:module:
- *
- * The PKCS11 object that this slot is a part of.
- */
- g_object_class_install_property (gobject_class, PROP_MODULE,
- g_param_spec_object ("module", "Module", "PKCS11 Module",
- GCK_TYPE_MODULE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- /**
- * GckSlot:handle:
- *
- * The raw CK_SLOT_ID handle of this slot.
- */
- g_object_class_install_property (gobject_class, PROP_HANDLE,
- g_param_spec_ulong ("handle", "Handle", "PKCS11 Slot ID",
- 0, G_MAXULONG, 0, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- /**
- * GckSlot:interaction:
- *
- * Interaction object used to ask the user for pins when opening
- * sessions. Used if the session_options of the enumerator have
- * %GCK_SESSION_LOGIN_USER or %GCK_SESSION_AUTHENTICATE
- */
- g_object_class_install_property (gobject_class, PROP_INTERACTION,
- g_param_spec_object ("interaction", "Interaction", "Interaction asking for pins",
- G_TYPE_TLS_INTERACTION, G_PARAM_READWRITE));
-
- g_type_class_add_private (gobject_class, sizeof (GckSlotPrivate));
-}
-
-/* ----------------------------------------------------------------------------
- * PUBLIC
- */
-
-/**
- * GckSlotInfo:
- * @slot_description: Description of the slot.
- * @manufacturer_id: The manufacturer of this slot.
- * @flags: Various PKCS11 flags that apply to this slot.
- * @hardware_version_major: The major version of the hardware.
- * @hardware_version_minor: The minor version of the hardware.
- * @firmware_version_major: The major version of the firmware.
- * @firmware_version_minor: The minor version of the firmware.
- *
- * Represents information about a PKCS11 slot.
- *
- * This is analogous to a CK_SLOT_INFO structure, but the
- * strings are far more usable.
- *
- * When you're done with this structure it should be released with
- * gck_slot_info_free().
- */
-
-GType
-gck_slot_info_get_type (void)
-{
- static volatile gsize initialized = 0;
- static GType type = 0;
- if (g_once_init_enter (&initialized)) {
- type = g_boxed_type_register_static ("GckSlotInfo",
- (GBoxedCopyFunc)gck_slot_info_copy,
- (GBoxedFreeFunc)gck_slot_info_free);
- g_once_init_leave (&initialized, 1);
- }
- return type;
-}
-
-/**
- * gck_slot_info_copy:
- * @slot_info: a slot info
- *
- * Make a copy of the slot info.
- *
- * Returns: (transfer full): a newly allocated copy slot info
- */
-GckSlotInfo *
-gck_slot_info_copy (GckSlotInfo *slot_info)
-{
- if (slot_info == NULL)
- return NULL;
-
- slot_info = g_memdup (slot_info, sizeof (GckSlotInfo));
- slot_info->manufacturer_id = g_strdup (slot_info->manufacturer_id);
- slot_info->slot_description = g_strdup (slot_info->slot_description);
-
- return slot_info;
-}
-
-
-/**
- * gck_slot_info_free:
- * @slot_info: The slot info to free, or NULL.
- *
- * Free the GckSlotInfo and associated resources.
- **/
-void
-gck_slot_info_free (GckSlotInfo *slot_info)
-{
- if (!slot_info)
- return;
- g_free (slot_info->slot_description);
- g_free (slot_info->manufacturer_id);
- g_free (slot_info);
-}
-
-/**
- * GckTokenInfo:
- * @label: The displayable token label.
- * @manufacturer_id: The manufacturer of this slot.
- * @model: The token model number as a string.
- * @serial_number: The token serial number as a string.
- * @flags: Various PKCS11 flags that apply to this token.
- * @max_session_count: The maximum number of sessions allowed on this token.
- * @session_count: The number of sessions open on this token.
- * @max_rw_session_count: The maximum number of read/write sessions allowed on this token.
- * @rw_session_count: The number of sessions open on this token.
- * @max_pin_len: The maximum length of a PIN for locking this token.
- * @min_pin_len: The minimum length of a PIN for locking this token.
- * @total_public_memory: The total amount of memory on this token for storing public objects.
- * @free_public_memory: The available amount of memory on this token for storing public objects.
- * @total_private_memory: The total amount of memory on this token for storing private objects.
- * @free_private_memory: The available amount of memory on this token for storing private objects.
- * @hardware_version_major: The major version of the hardware.
- * @hardware_version_minor: The minor version of the hardware.
- * @firmware_version_major: The major version of the firmware.
- * @firmware_version_minor: The minor version of the firmware.
- * @utc_time: If the token has a hardware clock, this is set to the number of seconds since the epoch.
- *
- * Represents information about a PKCS11 token.
- *
- * This is analogous to a CK_TOKEN_INFO structure, but the
- * strings are far more usable.
- *
- * When you're done with this structure it should be released with
- * gck_token_info_free().
- */
-
-GType
-gck_token_info_get_type (void)
-{
- static volatile gsize initialized = 0;
- static GType type = 0;
- if (g_once_init_enter (&initialized)) {
- type = g_boxed_type_register_static ("GckTokenInfo",
- (GBoxedCopyFunc)gck_token_info_copy,
- (GBoxedFreeFunc)gck_token_info_free);
- g_once_init_leave (&initialized, 1);
- }
- return type;
-}
-
-/**
- * gck_token_info_copy:
- * @token_info: a token info
- *
- * Make a copy of the token info.
- *
- * Returns: (transfer full): a newly allocated copy token info
- */
-GckTokenInfo *
-gck_token_info_copy (GckTokenInfo *token_info)
-{
- if (token_info == NULL)
- return NULL;
-
- token_info = g_memdup (token_info, sizeof (GckTokenInfo));
- token_info->label = g_strdup (token_info->label);
- token_info->manufacturer_id = g_strdup (token_info->manufacturer_id);
- token_info->model = g_strdup (token_info->model);
- token_info->serial_number = g_strdup (token_info->serial_number);
- return token_info;
-}
-
-/**
- * gck_token_info_free:
- * @token_info: The token info to free, or NULL.
- *
- * Free the GckTokenInfo and associated resources.
- **/
-void
-gck_token_info_free (GckTokenInfo *token_info)
-{
- if (!token_info)
- return;
- g_free (token_info->label);
- g_free (token_info->manufacturer_id);
- g_free (token_info->model);
- g_free (token_info->serial_number);
- g_free (token_info);
-}
-
-/**
- * GckMechanismInfo:
- * @min_key_size: The minimum key size that can be used with this mechanism.
- * @max_key_size: The maximum key size that can be used with this mechanism.
- * @flags: Various PKCS11 flags that apply to this mechanism.
- *
- * Represents information about a PKCS11 mechanism.
- *
- * This is analogous to a CK_MECHANISM_INFO structure.
- *
- * When you're done with this structure it should be released with
- * gck_mechanism_info_free().
- */
-
-GType
-gck_mechanism_info_get_type (void)
-{
- static volatile gsize initialized = 0;
- static GType type = 0;
- if (g_once_init_enter (&initialized)) {
- type = g_boxed_type_register_static ("GckMechanismInfo",
- (GBoxedCopyFunc)gck_mechanism_info_copy,
- (GBoxedFreeFunc)gck_mechanism_info_free);
- g_once_init_leave (&initialized, 1);
- }
- return type;
-}
-
-/**
- * gck_mechanism_info_copy:
- * @mech_info: a mechanism info
- *
- * Make a copy of the mechanism info.
- *
- * Returns: (transfer full): a newly allocated copy mechanism info
- */
-GckMechanismInfo *
-gck_mechanism_info_copy (GckMechanismInfo *mech_info)
-{
- return g_memdup (mech_info, sizeof (GckMechanismInfo));
-}
-
-/**
- * gck_mechanism_info_free:
- * @mech_info: The mechanism info to free, or NULL.
- *
- * Free the GckMechanismInfo and associated resources.
- **/
-void
-gck_mechanism_info_free (GckMechanismInfo *mech_info)
-{
- if (!mech_info)
- return;
- g_free (mech_info);
-}
-
-/**
- * GckMechanisms:
- *
- * A set of GckMechanismInfo structures.
- */
-
-/**
- * gck_mechanisms_length:
- * @a: A GckMechanisms set.
- *
- * Get the number of GckMechanismInfo in the set.
- *
- * Returns: The number in the set.
- */
-
-/**
- * gck_mechanisms_at:
- * @a: A GckMechanisms set.
- * @i: The index of a mechanism
- *
- * Get a specific mechanism in a the set.
- *
- * Returns: the mechanism
- */
-
-/**
- * gck_mechanisms_free:
- * @a: A GckMechanism set.
- *
- * Free a GckMechanisms set.
- */
-
-/**
- * gck_mechanisms_check:
- * @mechanisms: A list of mechanisms, perhaps retrieved from gck_slot_get_mechanisms().
- * @...: A list of mechanism types followed by GCK_INVALID.
- *
- * Check whether all the mechanism types are in the list.
- *
- * The arguments should be a list of CKM_XXX mechanism types. The last argument
- * should be GCK_INVALID.
- *
- * Return value: Whether the mechanism is in the list or not.
- **/
-gboolean
-gck_mechanisms_check (GArray *mechanisms, ...)
-{
- gboolean found = TRUE;
- va_list va;
- gulong mech;
- gsize i;
-
- g_return_val_if_fail (mechanisms != NULL, FALSE);
-
- va_start (va, mechanisms);
- for (;;) {
- mech = va_arg (va, gulong);
- if (mech == GCK_INVALID)
- break;
-
- found = FALSE;
- for (i = 0; i < gck_mechanisms_length (mechanisms); ++i) {
- if (gck_mechanisms_at (mechanisms, i) == mech) {
- found = TRUE;
- break;
- }
- }
-
- if (found == FALSE)
- break;
-
- }
- va_end (va);
-
- return found;
-}
-
-/**
- * gck_slot_equal:
- * @slot1: (type Gck.Slot): a pointer to the first #GckSlot
- * @slot2: (type Gck.Slot): a pointer to the second #GckSlot
- *
- * Checks equality of two slots. Two GckSlot objects can point to the same
- * underlying PKCS\#11 slot.
- *
- * Return value: TRUE if slot1 and slot2 are equal. FALSE if either is not a GckSlot.
- **/
-gboolean
-gck_slot_equal (gconstpointer slot1, gconstpointer slot2)
-{
- GckSlot *s1, *s2;
-
- if (slot1 == slot2)
- return TRUE;
- if (!GCK_IS_SLOT (slot1) || !GCK_IS_SLOT (slot2))
- return FALSE;
-
- s1 = GCK_SLOT (slot1);
- s2 = GCK_SLOT (slot2);
-
- return s1->pv->handle == s2->pv->handle &&
- gck_module_equal (s1->pv->module, s2->pv->module);
-}
-
-/**
- * gck_slot_hash:
- * @slot: (type Gck.Slot): a pointer to a #GckSlot
- *
- * Create a hash value for the GckSlot.
- *
- * This function is intended for easily hashing a GckSlot to add to
- * a GHashTable or similar data structure.
- *
- * Return value: An integer that can be used as a hash value, or 0 if invalid.
- **/
-guint
-gck_slot_hash (gconstpointer slot)
-{
- GckSlot *self;
-
- g_return_val_if_fail (GCK_IS_SLOT (slot), 0);
-
- self = GCK_SLOT (slot);
-
- return _gck_ulong_hash (&self->pv->handle) ^
- gck_module_hash (self->pv->module);
-}
-
-/**
- * gck_slot_from_handle:
- * @module: The module that this slot is on.
- * @slot_id: The raw PKCS\#11 handle or slot id of this slot.
- *
- * Create a new GckSlot object for a raw PKCS\#11 handle.
- *
- * Returns: (transfer full): The new GckSlot object.
- **/
-GckSlot *
-gck_slot_from_handle (GckModule *module,
- gulong slot_id)
-{
- return g_object_new (GCK_TYPE_SLOT,
- "module", module,
- "handle", slot_id,
- NULL);
-}
-
-/**
- * gck_slot_get_handle:
- * @self: The slot to get the handle of.
- *
- * Get the raw PKCS\#11 handle of a slot.
- *
- * Return value: the raw CK_SLOT_ID handle
- **/
-gulong
-gck_slot_get_handle (GckSlot *self)
-{
- g_return_val_if_fail (GCK_IS_SLOT (self), (CK_SLOT_ID)-1);
- return self->pv->handle;
-}
-
-/**
- * gck_slot_get_module:
- * @self: The slot to get the module for.
- *
- * Get the module that this slot is on.
- *
- * Returns: (transfer full): The module, you must unreference this after
- * you're done with it.
- */
-GckModule *
-gck_slot_get_module (GckSlot *self)
-{
- g_return_val_if_fail (GCK_IS_SLOT (self), NULL);
- g_return_val_if_fail (GCK_IS_MODULE (self->pv->module), NULL);
- return g_object_ref (self->pv->module);
-}
-
-/**
- * gck_slot_get_info:
- * @self: The slot to get info for.
- *
- * Get the information for this slot.
- *
- * Returns: (transfer full): the slot information, when done, use gck_slot_info_free()
- * to release it.
- **/
-GckSlotInfo *
-gck_slot_get_info (GckSlot *self)
-{
- CK_SLOT_ID handle = (CK_SLOT_ID)-1;
- GckModule *module = NULL;
- CK_FUNCTION_LIST_PTR funcs;
- GckSlotInfo *slotinfo;
- CK_SLOT_INFO info;
- CK_RV rv;
-
- g_return_val_if_fail (GCK_IS_SLOT (self), NULL);
-
- g_object_get (self, "module", &module, "handle", &handle, NULL);
- g_return_val_if_fail (GCK_IS_MODULE (module), NULL);
-
- funcs = gck_module_get_functions (module);
- g_return_val_if_fail (funcs, NULL);
-
- memset (&info, 0, sizeof (info));
- rv = (funcs->C_GetSlotInfo) (handle, &info);
-
- g_object_unref (module);
-
- if (rv != CKR_OK) {
- g_warning ("couldn't get slot info: %s", gck_message_from_rv (rv));
- return NULL;
- }
-
- slotinfo = g_new0 (GckSlotInfo, 1);
- slotinfo->slot_description = gck_string_from_chars (info.slotDescription,
- sizeof (info.slotDescription));
- slotinfo->manufacturer_id = gck_string_from_chars (info.manufacturerID,
- sizeof (info.manufacturerID));
- slotinfo->flags = info.flags;
- slotinfo->hardware_version_major = info.hardwareVersion.major;
- slotinfo->hardware_version_minor = info.hardwareVersion.minor;
- slotinfo->firmware_version_major = info.firmwareVersion.major;
- slotinfo->firmware_version_minor = info.firmwareVersion.minor;
-
- return slotinfo;
-}
-
-GckTokenInfo*
-_gck_token_info_from_pkcs11 (CK_TOKEN_INFO_PTR info)
-{
- GckTokenInfo *token_info;
- gchar *string;
- struct tm tm;
-
- token_info = g_new0 (GckTokenInfo, 1);
- token_info->label = gck_string_from_chars (info->label, sizeof (info->label));
- token_info->model = gck_string_from_chars (info->model, sizeof (info->model));
- token_info->manufacturer_id = gck_string_from_chars (info->manufacturerID,
- sizeof (info->manufacturerID));
- token_info->serial_number = gck_string_from_chars (info->serialNumber,
- sizeof (info->serialNumber));
- token_info->flags = info->flags;
- token_info->max_session_count = info->ulMaxSessionCount;
- token_info->session_count = info->ulSessionCount;
- token_info->max_rw_session_count = info->ulMaxRwSessionCount;
- token_info->rw_session_count = info->ulRwSessionCount;
- token_info->max_pin_len = info->ulMaxPinLen;
- token_info->min_pin_len = info->ulMinPinLen;
- token_info->total_public_memory = info->ulTotalPublicMemory;
- token_info->total_private_memory = info->ulTotalPrivateMemory;
- token_info->free_private_memory = info->ulFreePrivateMemory;
- token_info->free_public_memory = info->ulFreePublicMemory;
- token_info->hardware_version_major = info->hardwareVersion.major;
- token_info->hardware_version_minor = info->hardwareVersion.minor;
- token_info->firmware_version_major = info->firmwareVersion.major;
- token_info->firmware_version_minor = info->firmwareVersion.minor;
-
- /* Parse the time into seconds since epoch */
- if (info->flags & CKF_CLOCK_ON_TOKEN) {
- string = g_strndup ((gchar*)info->utcTime, MIN (14, sizeof (info->utcTime)));
- if (!strptime (string, "%Y%m%d%H%M%S", &tm))
- token_info->utc_time = -1;
- else
- token_info->utc_time = timegm (&tm);
- g_free (string);
- } else {
- token_info->utc_time = -1;
- }
-
- return token_info;
-}
-
-void
-_gck_token_info_to_pkcs11 (GckTokenInfo *token_info, CK_TOKEN_INFO_PTR info)
-{
- gchar buffer[64];
- struct tm tm;
- time_t tim;
- gsize len;
-
- if (!gck_string_to_chars (info->label,
- sizeof (info->label),
- token_info->label))
- g_return_if_reached ();
- if (!gck_string_to_chars (info->model,
- sizeof (info->model),
- token_info->model))
- g_return_if_reached ();
- if (!gck_string_to_chars (info->manufacturerID,
- sizeof (info->manufacturerID),
- token_info->manufacturer_id))
- g_return_if_reached ();
- if (!gck_string_to_chars (info->serialNumber,
- sizeof (info->serialNumber),
- token_info->serial_number))
- g_return_if_reached ();
-
- info->flags = token_info->flags;
- info->ulMaxSessionCount = token_info->max_session_count;
- info->ulSessionCount = token_info->session_count;
- info->ulMaxRwSessionCount = token_info->max_rw_session_count;
- info->ulRwSessionCount = token_info->rw_session_count;
- info->ulMaxPinLen = token_info->max_pin_len;
- info->ulMinPinLen = token_info->min_pin_len;
- info->ulTotalPublicMemory = token_info->total_public_memory;
- info->ulTotalPrivateMemory = token_info->total_private_memory;
- info->ulFreePrivateMemory = token_info->free_private_memory;
- info->ulFreePublicMemory = token_info->free_public_memory;
- info->hardwareVersion.major = token_info->hardware_version_major;
- info->hardwareVersion.minor = token_info->hardware_version_minor;
- info->firmwareVersion.major = token_info->firmware_version_major;
- info->firmwareVersion.minor = token_info->firmware_version_minor;
-
- /* Parse the time into seconds since epoch */
- if (token_info->flags & CKF_CLOCK_ON_TOKEN) {
- tim = token_info->utc_time;
- if (!gmtime_r (&tim, &tm))
- g_return_if_reached ();
- len = strftime (buffer, sizeof (buffer), "%Y%m%d%H%M%S", &tm);
- g_return_if_fail (len == sizeof (info->utcTime));
- memcpy (info->utcTime, buffer, sizeof (info->utcTime));
- } else {
- memset (info->utcTime, 0, sizeof (info->utcTime));
- }
-}
-
-/**
- * gck_slot_get_token_info:
- * @self: The slot to get info for.
- *
- * Get the token information for this slot.
- *
- * Returns: (transfer full): the token information; when done, use gck_token_info_free()
- * to release it
- **/
-GckTokenInfo *
-gck_slot_get_token_info (GckSlot *self)
-{
- CK_SLOT_ID handle = (CK_SLOT_ID)-1;
- CK_FUNCTION_LIST_PTR funcs;
- GckModule *module = NULL;
- CK_TOKEN_INFO info;
- CK_RV rv;
-
- g_return_val_if_fail (GCK_IS_SLOT (self), NULL);
-
- g_object_get (self, "module", &module, "handle", &handle, NULL);
- g_return_val_if_fail (GCK_IS_MODULE (module), NULL);
-
- funcs = gck_module_get_functions (module);
- g_return_val_if_fail (funcs, NULL);
-
- memset (&info, 0, sizeof (info));
- rv = (funcs->C_GetTokenInfo) (handle, &info);
-
- g_object_unref (module);
-
- if (rv != CKR_OK) {
- g_warning ("couldn't get slot info: %s", gck_message_from_rv (rv));
- return NULL;
- }
-
- return _gck_token_info_from_pkcs11 (&info);
-}
-
-/**
- * gck_slot_get_mechanisms:
- * @self: The slot to get mechanisms for.
- *
- * Get the available mechanisms for this slot.
- *
- * Returns: (transfer full): a list of the mechanisms for this slot, which should
- * be freed with g_array_free ()
- **/
-GArray *
-gck_slot_get_mechanisms (GckSlot *self)
-{
- CK_SLOT_ID handle = (CK_SLOT_ID)-1;
- CK_FUNCTION_LIST_PTR funcs;
- GckModule *module = NULL;
- CK_MECHANISM_TYPE_PTR mech_list = NULL;
- CK_ULONG count, i;
- GArray *result;
- CK_RV rv;
-
- g_return_val_if_fail (GCK_IS_SLOT (self), NULL);
-
- g_object_get (self, "module", &module, "handle", &handle, NULL);
- g_return_val_if_fail (GCK_IS_MODULE (module), NULL);
-
- funcs = gck_module_get_functions (module);
- g_return_val_if_fail (funcs, NULL);
-
- rv = (funcs->C_GetMechanismList) (handle, NULL, &count);
- if (rv != CKR_OK) {
- g_warning ("couldn't get mechanism count: %s", gck_message_from_rv (rv));
- count = 0;
- } else {
- mech_list = g_new (CK_MECHANISM_TYPE, count);
- rv = (funcs->C_GetMechanismList) (handle, mech_list, &count);
- if (rv != CKR_OK) {
- g_warning ("couldn't get mechanism list: %s", gck_message_from_rv (rv));
- g_free (mech_list);
- count = 0;
- }
- }
-
- g_object_unref (module);
-
- if (!count)
- return NULL;
-
- result = g_array_new (FALSE, TRUE, sizeof (CK_MECHANISM_TYPE));
- for (i = 0; i < count; ++i)
- g_array_append_val (result, mech_list[i]);
-
- g_free (mech_list);
- return result;
-
-}
-
-/**
- * gck_slot_get_mechanism_info:
- * @self: The slot to get mechanism info from.
- * @mech_type: The mechanisms type to get info for.
- *
- * Get information for the specified mechanism.
- *
- * Returns: (transfer full): the mechanism information, or NULL if failed; use
- * gck_mechanism_info_free() when done with it
- **/
-GckMechanismInfo*
-gck_slot_get_mechanism_info (GckSlot *self, gulong mech_type)
-{
- CK_SLOT_ID handle = (CK_SLOT_ID)-1;
- CK_FUNCTION_LIST_PTR funcs;
- GckMechanismInfo *mechinfo;
- GckModule *module = NULL;
- CK_MECHANISM_INFO info;
- struct tm;
- CK_RV rv;
-
- g_return_val_if_fail (GCK_IS_SLOT (self), NULL);
-
- g_object_get (self, "module", &module, "handle", &handle, NULL);
- g_return_val_if_fail (GCK_IS_MODULE (module), NULL);
-
- funcs = gck_module_get_functions (module);
- g_return_val_if_fail (funcs, NULL);
-
- memset (&info, 0, sizeof (info));
- rv = (funcs->C_GetMechanismInfo) (handle, mech_type, &info);
-
- g_object_unref (module);
-
- if (rv != CKR_OK) {
- g_warning ("couldn't get mechanism info: %s", gck_message_from_rv (rv));
- return NULL;
- }
-
- mechinfo = g_new0 (GckMechanismInfo, 1);
- mechinfo->flags = info.flags;
- mechinfo->max_key_size = info.ulMaxKeySize;
- mechinfo->min_key_size = info.ulMinKeySize;
-
- return mechinfo;
-}
-
-/**
- * gck_slot_has_flags:
- * @self: The GckSlot object.
- * @flags: The flags to check.
- *
- * Check if the PKCS11 slot has the given flags.
- *
- * Returns: Whether one or more flags exist.
- */
-gboolean
-gck_slot_has_flags (GckSlot *self, gulong flags)
-{
- CK_FUNCTION_LIST_PTR funcs;
- GckModule *module = NULL;
- CK_TOKEN_INFO info;
- CK_SLOT_ID handle;
- CK_RV rv;
-
- g_return_val_if_fail (GCK_IS_SLOT (self), FALSE);
-
- g_object_get (self, "module", &module, "handle", &handle, NULL);
- g_return_val_if_fail (GCK_IS_MODULE (module), FALSE);
-
- funcs = gck_module_get_functions (module);
- g_return_val_if_fail (funcs, FALSE);
-
- memset (&info, 0, sizeof (info));
- rv = (funcs->C_GetTokenInfo) (handle, &info);
-
- g_object_unref (module);
-
- if (rv != CKR_OK) {
- g_warning ("couldn't get slot info: %s", gck_message_from_rv (rv));
- return FALSE;
- }
-
- return (info.flags & flags) != 0;
-}
-
-/**
- * gck_slot_get_interaction:
- * @self: the slot
- *
- * Get the interaction used when a pin is needed
- *
- * Returns: (transfer full) (allow-none): the interaction or %NULL
- */
-GTlsInteraction *
-gck_slot_get_interaction (GckSlot *self)
-{
- GTlsInteraction *result = NULL;
-
- g_return_val_if_fail (GCK_IS_SLOT (self), NULL);
-
- g_mutex_lock (self->pv->mutex);
-
- if (self->pv->interaction)
- result = g_object_ref (self->pv->interaction);
-
- g_mutex_unlock (self->pv->mutex);
-
- return result;
-}
-
-/**
- * gck_slot_set_interaction:
- * @self: the slot
- * @interaction: (allow-none): the interaction or %NULL
- *
- * Set the interaction used when a pin is needed
- */
-void
-gck_slot_set_interaction (GckSlot *self,
- GTlsInteraction *interaction)
-{
- GTlsInteraction *previous = NULL;
-
- g_return_if_fail (GCK_IS_SLOT (self));
- g_return_if_fail (interaction == NULL || G_IS_TLS_INTERACTION (interaction));
-
- g_mutex_lock (self->pv->mutex);
-
- if (interaction != self->pv->interaction) {
- previous = self->pv->interaction;
- self->pv->interaction = interaction;
- if (interaction)
- g_object_ref (interaction);
- }
-
- g_mutex_unlock (self->pv->mutex);
-
- g_clear_object (&previous);
- g_object_notify (G_OBJECT (self), "interaction");
-}
-
-/**
- * gck_slots_enumerate_objects:
- * @slots: (element-type Gck.Slot): a list of #GckSlot to enumerate objects on.
- * @attrs: Attributes that the objects must have, or empty for all objects.
- * @options: options for opening a session
- *
- * Setup an enumerator for listing matching objects on the slots.
- *
- * This call will not block but will return an enumerator immediately.
- *
- * Returns: (transfer full): a new enumerator
- **/
-GckEnumerator*
-gck_slots_enumerate_objects (GList *slots,
- GckAttributes *attrs,
- GckSessionOptions options)
-{
- GckUriData *uri_data;
-
- g_return_val_if_fail (attrs, NULL);
-
- uri_data = gck_uri_data_new ();
- uri_data->attributes = gck_attributes_ref (attrs);
-
- return _gck_enumerator_new (slots, options, uri_data);
-}
-
-
-typedef struct OpenSession {
- GckArguments base;
- GTlsInteraction *interaction;
- GckSlot *slot;
- gulong flags;
- gpointer app_data;
- CK_NOTIFY notify;
- gchar *password;
- gboolean auto_login;
- CK_SESSION_HANDLE session;
-} OpenSession;
-
-static CK_RV
-perform_open_session (OpenSession *args)
-{
- GTlsInteraction *interaction;
- CK_RV rv = CKR_OK;
-
- /* Can be called multiple times */
-
- /* First step, open session */
- if (!args->session) {
- rv = (args->base.pkcs11->C_OpenSession) (args->base.handle, args->flags,
- args->app_data, args->notify, &args->session);
- }
-
- if (rv != CKR_OK || !args->auto_login)
- return rv;
-
- /* Compatibility, hook into GckModule signals if no interaction set */
- if (args->interaction)
- interaction = g_object_ref (args->interaction);
- else
- interaction = _gck_interaction_new (args->slot);
-
- rv = _gck_session_authenticate_token (args->base.pkcs11, args->session,
- args->slot, interaction, NULL);
-
- g_object_unref (interaction);
-
- return rv;
-}
-
-static void
-free_open_session (OpenSession *args)
-{
- g_clear_object (&args->interaction);
- g_clear_object (&args->slot);
- g_assert (!args->password);
- g_free (args);
-}
-
-/**
- * gck_slot_open_session:
- * @self: The slot ot open a session on.
- * @options: The #GckSessionOptions to open a session with.
- * @cancellable: An optional cancellation object, or %NULL.
- * @error: A location to return an error, or %NULL.
- *
- * Open a session on the slot. If the 'auto reuse' setting is set,
- * then this may be a recycled session with the same flags.
- *
- * This call may block for an indefinite period.
- *
- * Returns: (transfer full): a new session or %NULL if an error occurs
- **/
-GckSession *
-gck_slot_open_session (GckSlot *self,
- GckSessionOptions options,
- GCancellable *cancellable,
- GError **error)
-{
- return gck_slot_open_session_full (self, options, 0, NULL, NULL, cancellable, error);
-}
-
-/**
- * gck_slot_open_session_full: (skip)
- * @self: The slot to open a session on.
- * @options: The options to open the new session with.
- * @pkcs11_flags: Additional raw PKCS\#11 flags.
- * @app_data: Application data for notification callback.
- * @notify: PKCS\#11 notification callback.
- * @cancellable: Optional cancellation object, or NULL.
- * @error: A location to return an error, or NULL.
- *
- * Open a session on the slot. If the 'auto reuse' setting is set,
- * then this may be a recycled session with the same flags.
- *
- * This call may block for an indefinite period.
- *
- * Returns: (transfer full): a new session or %NULL if an error occurs
- **/
-GckSession *
-gck_slot_open_session_full (GckSlot *self,
- GckSessionOptions options,
- gulong pkcs11_flags,
- gpointer app_data,
- CK_NOTIFY notify,
- GCancellable *cancellable,
- GError **error)
-{
- OpenSession args = { GCK_ARGUMENTS_INIT, 0, };
- GckSession *session = NULL;
- GckModule *module = NULL;
-
- g_object_ref (self);
-
- module = gck_slot_get_module (self);
-
- /* Open a new session */
- args.slot = self;
- args.app_data = app_data;
- args.notify = notify;
- args.password = NULL;
- args.session = 0;
- args.interaction = gck_slot_get_interaction (self);
-
- args.auto_login = ((options & GCK_SESSION_LOGIN_USER) == GCK_SESSION_LOGIN_USER);
-
- args.flags = pkcs11_flags | CKF_SERIAL_SESSION;
- if ((options & GCK_SESSION_READ_WRITE) == GCK_SESSION_READ_WRITE)
- args.flags |= CKF_RW_SESSION;
-
- if (_gck_call_sync (self, perform_open_session, NULL, &args, cancellable, error))
- session = make_session_object (self, options, args.session);
-
- g_clear_object (&args.interaction);
- g_object_unref (module);
- g_object_unref (self);
-
- return session;
-}
-
-/**
- * gck_slot_open_session_async:
- * @self: The slot to open a session on.
- * @options: The options to open the new session with.
- * @cancellable: Optional cancellation object, or NULL.
- * @callback: Called when the operation completes.
- * @user_data: Data to pass to the callback.
- *
- * Open a session on the slot. If the 'auto reuse' setting is set,
- * then this may be a recycled session with the same flags.
- *
- * This call will return immediately and complete asynchronously.
- **/
-void
-gck_slot_open_session_async (GckSlot *self,
- GckSessionOptions options,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- gck_slot_open_session_full_async (self, options, 0UL, NULL, NULL, cancellable, callback, user_data);
-}
-
-/**
- * gck_slot_open_session_full_async: (skip)
- * @self: The slot to open a session on.
- * @options: Options to open the new session with.
- * @pkcs11_flags: Additional raw PKCS\#11 flags.
- * @app_data: Application data for notification callback.
- * @notify: PKCS\#11 notification callback.
- * @cancellable: Optional cancellation object, or NULL.
- * @callback: Called when the operation completes.
- * @user_data: Data to pass to the callback.
- *
- * Open a session on the slot. If the 'auto reuse' setting is set,
- * then this may be a recycled session with the same flags.
- *
- * This call will return immediately and complete asynchronously.
- **/
-void
-gck_slot_open_session_full_async (GckSlot *self,
- GckSessionOptions options,
- gulong pkcs11_flags,
- gpointer app_data,
- CK_NOTIFY notify,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- OpenSession *args;
-
- g_object_ref (self);
-
- args = _gck_call_async_prep (self, self, perform_open_session, NULL,
- sizeof (*args), free_open_session);
-
- args->app_data = app_data;
- args->notify = notify;
- args->slot = g_object_ref (self);
- args->interaction = gck_slot_get_interaction (self);
-
- args->auto_login = ((options & GCK_SESSION_LOGIN_USER) == GCK_SESSION_LOGIN_USER);
-
- args->flags = pkcs11_flags | CKF_SERIAL_SESSION;
- if ((options & GCK_SESSION_READ_WRITE) == GCK_SESSION_READ_WRITE)
- args->flags |= CKF_RW_SESSION;
-
- _gck_call_async_ready_go (args, cancellable, callback, user_data);
- g_object_unref (self);
-}
-
-/**
- * gck_slot_open_session_finish:
- * @self: The slot to open a session on.
- * @result: The result passed to the callback.
- * @error: A location to return an error or NULL.
- *
- * Get the result of an open session operation. If the 'auto reuse' setting is set,
- * then this may be a recycled session with the same flags.
- *
- * Returns: (transfer full): the new session or %NULL if an error occurs
- */
-GckSession*
-gck_slot_open_session_finish (GckSlot *self, GAsyncResult *result, GError **err)
-{
- GckSession *session = NULL;
-
- g_object_ref (self);
-
- {
- OpenSession *args;
-
- if (_gck_call_basic_finish (result, err)) {
- args = _gck_call_arguments (result, OpenSession);
- session = make_session_object (self, args->flags, args->session);
- }
- }
-
- g_object_unref (self);
-
- return session;
-}
-
-/**
- * gck_slot_match:
- * @self: the slot to match
- * @uri: the uri to match against the slot
- *
- * Check whether the PKCS\#11 URI matches the slot
- *
- * Returns: whether the URI matches or not
- */
-gboolean
-gck_slot_match (GckSlot *self,
- GckUriData *uri)
-{
- GckModule *module;
- GckTokenInfo *info;
- gboolean match = TRUE;
-
- g_return_val_if_fail (GCK_IS_SLOT (self), FALSE);
- g_return_val_if_fail (uri != NULL, FALSE);
-
- if (uri->any_unrecognized)
- match = FALSE;
-
- if (match && uri->module_info) {
- module = gck_slot_get_module (self);
- match = gck_module_match (module, uri);
- g_object_unref (module);
- }
-
- if (match && uri->token_info) {
- info = gck_slot_get_token_info (self);
- match = _gck_token_info_match (uri->token_info, info);
- gck_token_info_free (info);
- }
-
- return match;
-}
diff --git a/gck/gck-test.c b/gck/gck-test.c
deleted file mode 100644
index ce59aebf..00000000
--- a/gck/gck-test.c
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General License for more details.
- *
- * You should have received a copy of the GNU Lesser General
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gck-test.h"
-
-#include "pkcs11/pkcs11.h"
-
-#include <glib.h>
-
-#include <string.h>
-
-static const gchar*
-defined_rv_to_string (CK_RV rv)
-{
- #define GKM_X(rv) case rv: return #rv;
- switch (rv) {
-
- /* These are not really errors, or not current */
- GKM_X (CKR_OK)
- GKM_X (CKR_NO_EVENT)
- GKM_X (CKR_FUNCTION_NOT_PARALLEL)
- GKM_X (CKR_SESSION_PARALLEL_NOT_SUPPORTED)
- GKM_X (CKR_CANCEL)
- GKM_X (CKR_FUNCTION_CANCELED)
- GKM_X (CKR_HOST_MEMORY)
- GKM_X (CKR_SLOT_ID_INVALID)
- GKM_X (CKR_GENERAL_ERROR)
- GKM_X (CKR_FUNCTION_FAILED)
- GKM_X (CKR_ARGUMENTS_BAD)
- GKM_X (CKR_NEED_TO_CREATE_THREADS)
- GKM_X (CKR_CANT_LOCK)
- GKM_X (CKR_ATTRIBUTE_READ_ONLY)
- GKM_X (CKR_ATTRIBUTE_SENSITIVE)
- GKM_X (CKR_ATTRIBUTE_TYPE_INVALID)
- GKM_X (CKR_ATTRIBUTE_VALUE_INVALID)
- GKM_X (CKR_DATA_INVALID)
- GKM_X (CKR_DATA_LEN_RANGE)
- GKM_X (CKR_DEVICE_ERROR)
- GKM_X (CKR_DEVICE_MEMORY)
- GKM_X (CKR_DEVICE_REMOVED)
- GKM_X (CKR_ENCRYPTED_DATA_INVALID)
- GKM_X (CKR_ENCRYPTED_DATA_LEN_RANGE)
- GKM_X (CKR_FUNCTION_NOT_SUPPORTED)
- GKM_X (CKR_KEY_HANDLE_INVALID)
- GKM_X (CKR_KEY_SIZE_RANGE)
- GKM_X (CKR_KEY_TYPE_INCONSISTENT)
- GKM_X (CKR_KEY_NOT_NEEDED)
- GKM_X (CKR_KEY_CHANGED)
- GKM_X (CKR_KEY_NEEDED)
- GKM_X (CKR_KEY_INDIGESTIBLE)
- GKM_X (CKR_KEY_FUNCTION_NOT_PERMITTED)
- GKM_X (CKR_KEY_NOT_WRAPPABLE)
- GKM_X (CKR_KEY_UNEXTRACTABLE)
- GKM_X (CKR_MECHANISM_INVALID)
- GKM_X (CKR_MECHANISM_PARAM_INVALID)
- GKM_X (CKR_OBJECT_HANDLE_INVALID)
- GKM_X (CKR_OPERATION_ACTIVE)
- GKM_X (CKR_OPERATION_NOT_INITIALIZED)
- GKM_X (CKR_PIN_INCORRECT)
- GKM_X (CKR_PIN_INVALID)
- GKM_X (CKR_PIN_LEN_RANGE)
- GKM_X (CKR_PIN_EXPIRED)
- GKM_X (CKR_PIN_LOCKED)
- GKM_X (CKR_SESSION_CLOSED)
- GKM_X (CKR_SESSION_COUNT)
- GKM_X (CKR_SESSION_HANDLE_INVALID)
- GKM_X (CKR_SESSION_READ_ONLY)
- GKM_X (CKR_SESSION_EXISTS)
- GKM_X (CKR_SESSION_READ_ONLY_EXISTS)
- GKM_X (CKR_SESSION_READ_WRITE_SO_EXISTS)
- GKM_X (CKR_SIGNATURE_INVALID)
- GKM_X (CKR_SIGNATURE_LEN_RANGE)
- GKM_X (CKR_TEMPLATE_INCOMPLETE)
- GKM_X (CKR_TEMPLATE_INCONSISTENT)
- GKM_X (CKR_TOKEN_NOT_PRESENT)
- GKM_X (CKR_TOKEN_NOT_RECOGNIZED)
- GKM_X (CKR_TOKEN_WRITE_PROTECTED)
- GKM_X (CKR_UNWRAPPING_KEY_HANDLE_INVALID)
- GKM_X (CKR_UNWRAPPING_KEY_SIZE_RANGE)
- GKM_X (CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT)
- GKM_X (CKR_USER_ALREADY_LOGGED_IN)
- GKM_X (CKR_USER_NOT_LOGGED_IN)
- GKM_X (CKR_USER_PIN_NOT_INITIALIZED)
- GKM_X (CKR_USER_TYPE_INVALID)
- GKM_X (CKR_USER_ANOTHER_ALREADY_LOGGED_IN)
- GKM_X (CKR_USER_TOO_MANY_TYPES)
- GKM_X (CKR_WRAPPED_KEY_INVALID)
- GKM_X (CKR_WRAPPED_KEY_LEN_RANGE)
- GKM_X (CKR_WRAPPING_KEY_HANDLE_INVALID)
- GKM_X (CKR_WRAPPING_KEY_SIZE_RANGE)
- GKM_X (CKR_WRAPPING_KEY_TYPE_INCONSISTENT)
- GKM_X (CKR_RANDOM_SEED_NOT_SUPPORTED)
- GKM_X (CKR_RANDOM_NO_RNG)
- GKM_X (CKR_DOMAIN_PARAMS_INVALID)
- GKM_X (CKR_BUFFER_TOO_SMALL)
- GKM_X (CKR_SAVED_STATE_INVALID)
- GKM_X (CKR_INFORMATION_SENSITIVE)
- GKM_X (CKR_STATE_UNSAVEABLE)
- GKM_X (CKR_CRYPTOKI_NOT_INITIALIZED)
- GKM_X (CKR_CRYPTOKI_ALREADY_INITIALIZED)
- GKM_X (CKR_MUTEX_BAD)
- GKM_X (CKR_MUTEX_NOT_LOCKED)
- GKM_X (CKR_FUNCTION_REJECTED)
- default:
- return NULL;
- }
-
- #undef GKM_X
-}
-
-static gchar*
-rv_to_string (CK_RV rv)
-{
- gchar *string = g_strdup (defined_rv_to_string (rv));
- if (string == NULL)
- string = g_strdup_printf ("0x%08lx", (gulong)rv);
- return string;
-}
-
-void
-gck_assertion_message_cmprv (const gchar *domain, const gchar *file, gint line,
- const gchar *func, const gchar *expr,
- CK_RV arg1, const gchar *cmp, CK_RV arg2)
-{
- gchar *a1, *a2, *s;
- a1 = rv_to_string (arg1);
- a2 = rv_to_string (arg2);
- s = g_strdup_printf ("assertion failed (%s): (%s %s %s)", expr, a1, cmp, a2);
- g_free (a1);
- g_free (a2);
- g_assertion_message (domain, file, line, func, s);
- g_free (s);
-}
-
-void
-gck_assertion_message_cmpulong (const gchar *domain, const gchar *file, gint line,
- const gchar *func, const gchar *expr,
- CK_ULONG arg1, const gchar *cmp, CK_ULONG arg2)
-{
- char *s = NULL;
- s = g_strdup_printf ("assertion failed (%s): (0x%08llx %s 0x%08llx)", expr,
- (long long unsigned)arg1, cmp, (long long unsigned)arg2);
- g_assertion_message (domain, file, line, func, s);
- g_free (s);
-}
diff --git a/gck/gck-test.h b/gck/gck-test.h
deleted file mode 100644
index 186d6e5f..00000000
--- a/gck/gck-test.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include <glib.h>
-
-#include "gck/gck.h"
-
-#include "pkcs11/pkcs11.h"
-#include "pkcs11/pkcs11i.h"
-
-#ifndef GCK_TEST_H
-#define GCK_TEST_H
-
-#define gck_assert_cmprv(v1, cmp, v2) \
- do { CK_RV __v1 = (v1), __v2 = (v2); \
- if (__v1 cmp __v2) ; else \
- gck_assertion_message_cmprv (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
- #v1 " " #cmp " " #v2, __v1, #cmp, __v2); \
- } while (0)
-
-#define gck_assert_cmpulong(v1, cmp, v2) \
- do { CK_RV __v1 = (v1), __v2 = (v2); \
- if (__v1 cmp __v2) ; else \
- gck_assertion_message_cmpulong (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
- #v1 " " #cmp " " #v2, __v1, #cmp, __v2); \
- } while (0)
-
-void gck_assertion_message_cmprv (const gchar *domain,
- const gchar *file,
- int line,
- const gchar *func,
- const gchar *expr,
- CK_RV arg1,
- const gchar *cmp,
- CK_RV arg2);
-
-void gck_assertion_message_cmpulong (const gchar *domain,
- const gchar *file,
- gint line,
- const gchar *func,
- const gchar *expr,
- CK_ULONG arg1,
- const gchar *cmp,
- CK_ULONG arg2);
-
-#endif /* GCK_TEST_H */
diff --git a/gck/gck-uri.c b/gck/gck-uri.c
deleted file mode 100644
index 3d66c835..00000000
--- a/gck/gck-uri.c
+++ /dev/null
@@ -1,365 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gck-uri.c - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2010, Stefan Walter
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stef@memberwebs.com>
-*/
-
-#include "config.h"
-
-#include "gck.h"
-#include "gck-private.h"
-#include "gck-marshal.h"
-
-#include <glib/gi18n-lib.h>
-
-#include <p11-kit/uri.h>
-
-#include <string.h>
-#include <stdlib.h>
-
-/**
- * SECTION:gck-uri
- * @title: PKCS11 URIs
- * @short_description: Parsing and building PKCS\#11 URIs.
- *
- * <ulink href='http://tools.ietf.org/html/draft-pechanec-pkcs11uri-03'>PKCS\#11 URIs</ulink>
- * are a standard for referring to PKCS\#11 modules, tokens, or objects. What the
- * PKCS\#11 URI refers to depends on the context in which it is used.
- *
- * A PKCS\#11 URI can always resolve to more than one object, token or module. A
- * PKCS\#11 URI that refers to a token, would (when used in a context that expects
- * objects) refer to all the token on that module.
- *
- * In most cases the parsing or building of URIs is handled elsewhere in the GCK
- * library. For example to enumerate objects that match a PKCS\#11 URI use the
- * gck_modules_enumerate_uri() function.
- *
- * To parse a PKCS\#11 URI use the gck_uri_parse() function passing in the type of
- * context in which you're using the URI. To build a URI use the gck_uri_build()
- * function.
- **/
-
-/**
- * GckUriData:
- * @any_unrecognized: whether any parts of the PKCS\#11 URI were unsupported or unrecognized.
- * @module_info: information about the PKCS\#11 modules matching the URI.
- * @token_info: information about the PKCS\#11 tokens matching the URI.
- * @attributes: information about the PKCS\#11 objects matching the URI.
- *
- * Information about the contents of a PKCS\#11 URI. Various fields may be %NULL
- * depending on the context that the URI was parsed for.
- *
- * Since PKCS\#11 URIs represent a set which results from the intersections of
- * all of the URI parts, if @any_recognized is set to %TRUE then usually the URI
- * should be treated as not matching anything.
- */
-
-/**
- * GckUriFlags:
- * @GCK_URI_FOR_MODULE: the URI will be used to match modules.
- * @GCK_URI_FOR_TOKEN: the URI will be used to match tokens.
- * @GCK_URI_FOR_OBJECT: the URI will be used to match objects.
- * @GCK_URI_WITH_VERSION: the URI has specific version numbers for module and/or token
- * @GCK_URI_FOR_ANY: parse all recognized components of the URI.
- *
- * Which parts of the PKCS\#11 URI will be parsed or formatted. These can be
- * combined.
- */
-
-/**
- * GCK_URI_FOR_MODULE_WITH_VERSION:
- *
- * The URI will match specific version of modules. To be used as a GckUriFlags argument.
- */
-
-/**
- * GCK_URI_FOR_OBJECT_ON_TOKEN:
- *
- * The URI will match objects on a specific token. To be used as a GckUriFlags argument.
- */
-
-/**
- * GCK_URI_FOR_OBJECT_ON_TOKEN_AND_MODULE:
- *
- * The token inserted into a device with a specific module.
- */
-
-/**
- * GckUriError:
- * @GCK_URI_BAD_SCHEME: invalid URI scheme
- * @GCK_URI_BAD_ENCODING: bad URI encoding
- * @GCK_URI_BAD_SYNTAX: bad URI syntax
- * @GCK_URI_BAD_VERSION: bad URI version component
- * @GCK_URI_NOT_FOUND: piece of the URI was not found
- *
- * Various error codes used with PKCS\#11 URIs
- */
-
-/**
- * GCK_URI_ERROR:
- *
- * Error domain for URI errors.
- */
-
-/**
- * GCK_URI_BAD_PREFIX:
- *
- * Use %GCK_URI_BAD_SCHEME instead.
- *
- * Deprecated: Since 3.2
- */
-
-/**
- * CKR_GCK_MODULE_PROBLEM:
- *
- * Use %GCK_ERROR_MODULE_PROBLEM instead.
- *
- * Deprecated: Since 3.4
- */
-
-#define URI_PREFIX "pkcs11:"
-#define N_URI_PREFIX 7
-
-struct _GckUri {
- gboolean any_unrecognized;
- GckModuleInfo *module_info;
- GckTokenInfo *token_info;
- GckAttributes *attributes;
-};
-
-GQuark
-gck_uri_get_error_quark (void)
-{
- /* This is deprecated version */
- return gck_uri_get_error_quark ();
-}
-
-GQuark
-gck_uri_error_get_quark (void)
-{
- static GQuark domain = 0;
- static volatile gsize quark_inited = 0;
-
- if (g_once_init_enter (&quark_inited)) {
- domain = g_quark_from_static_string ("gck-uri-error");
- g_once_init_leave (&quark_inited, 1);
- }
-
- return domain;
-}
-
-/**
- * gck_uri_data_new:
- *
- * Allocate a new GckUriData structure. None of the fields
- * will be set.
- *
- * Returns: (transfer full): a newly allocated GckUriData, free with
- * gck_uri_data_free()
- */
-GckUriData *
-gck_uri_data_new (void)
-{
- return g_slice_new0 (GckUriData);
-}
-
-/**
- * gck_uri_parse:
- * @string: the URI to parse.
- * @flags: the context in which the URI will be used.
- * @error: a #GError, or %NULL.
- *
- * Parse a PKCS\#11 URI for use in a given context.
- *
- * The result will contain the fields that are relevant for
- * the given context. See #GckUriData for more info.
- * Other fields will be set to %NULL.
- *
- * Returns: (transfer full): a newly allocated #GckUriData; which should be
- * freed with gck_uri_data_free()
- */
-GckUriData*
-gck_uri_parse (const gchar *string, GckUriFlags flags, GError **error)
-{
- GckUriData *uri_data = NULL;
- CK_ATTRIBUTE_PTR attrs;
- CK_ULONG i, n_attrs;
- P11KitUri *p11_uri;
- gint res;
-
- g_return_val_if_fail (string, FALSE);
- g_return_val_if_fail (!error || !*error, FALSE);
-
- p11_uri = p11_kit_uri_new ();
- if (!p11_uri)
- g_error ("failed to allocate P11KitUri");
-
- res = p11_kit_uri_parse (string, flags, p11_uri);
- if (res != P11_KIT_URI_OK) {
- p11_kit_uri_free (p11_uri);
- switch (res) {
- case P11_KIT_URI_NO_MEMORY:
- g_error ("failed to allocate memory in p11_kit_uri_parse()");
- break;
- case P11_KIT_URI_BAD_ENCODING:
- g_set_error (error, GCK_URI_ERROR, GCK_URI_BAD_ENCODING,
- _("The URI has invalid encoding."));
- break;
- case P11_KIT_URI_BAD_SCHEME:
- g_set_error_literal (error, GCK_URI_ERROR, GCK_URI_BAD_SCHEME,
- _("The URI does not have the 'pkcs11' scheme."));
- break;
- case P11_KIT_URI_BAD_SYNTAX:
- g_set_error_literal (error, GCK_URI_ERROR, GCK_URI_BAD_SYNTAX,
- _("The URI has bad syntax."));
- break;
- case P11_KIT_URI_BAD_VERSION:
- g_set_error_literal (error, GCK_URI_ERROR, GCK_URI_BAD_SYNTAX,
- _("The URI has a bad version number."));
- break;
- case P11_KIT_URI_NOT_FOUND:
- g_assert_not_reached ();
- break;
- };
- return NULL;
- }
-
- /* Convert it to a GckUri */
- uri_data = gck_uri_data_new ();
- if (flags & GCK_URI_FOR_MODULE_WITH_VERSION)
- uri_data->module_info = _gck_module_info_from_pkcs11 (p11_kit_uri_get_module_info (p11_uri));
- if (flags & GCK_URI_FOR_TOKEN)
- uri_data->token_info = _gck_token_info_from_pkcs11 (p11_kit_uri_get_token_info (p11_uri));
- if (flags & GCK_URI_FOR_OBJECT) {
- attrs = p11_kit_uri_get_attributes (p11_uri, &n_attrs);
- uri_data->attributes = gck_attributes_new ();
- for (i = 0; i < n_attrs; ++i)
- gck_attributes_add (uri_data->attributes, (GckAttribute*)&attrs[i]);
- }
- uri_data->any_unrecognized = p11_kit_uri_any_unrecognized (p11_uri);
-
- p11_kit_uri_free (p11_uri);
- return uri_data;
-}
-
-/**
- * gck_uri_build:
- * @uri_data: the info to build the URI from.
- * @flags: The context that the URI is for
- *
- * Build a PKCS\#11 URI. The various parts relevant to the flags
- * specified will be used to build the URI.
- *
- * Return value: a newly allocated string containing a PKCS\#11 URI.
- */
-gchar*
-gck_uri_build (GckUriData *uri_data, GckUriFlags flags)
-{
- GckAttribute *attr;
- P11KitUri *p11_uri = 0;
- gchar *string;
- int res;
- guint i;
-
- g_return_val_if_fail (uri_data != NULL, NULL);
-
- p11_uri = p11_kit_uri_new ();
-
- if ((flags & GCK_URI_FOR_MODULE_WITH_VERSION) && uri_data->module_info)
- _gck_module_info_to_pkcs11 (uri_data->module_info,
- p11_kit_uri_get_module_info (p11_uri));
- if ((flags & GCK_URI_FOR_TOKEN) && uri_data->token_info)
- _gck_token_info_to_pkcs11 (uri_data->token_info,
- p11_kit_uri_get_token_info (p11_uri));
- if ((flags & GCK_URI_FOR_OBJECT) && uri_data->attributes) {
- for (i = 0; i < gck_attributes_count (uri_data->attributes); ++i) {
- attr = gck_attributes_at (uri_data->attributes, i);
- res = p11_kit_uri_set_attribute (p11_uri, (CK_ATTRIBUTE_PTR)attr);
- if (res == P11_KIT_URI_NO_MEMORY)
- g_error ("failed to allocate memory in p11_kit_uri_set_attribute()");
- else if (res != P11_KIT_URI_NOT_FOUND && res != P11_KIT_URI_OK)
- g_return_val_if_reached (NULL);
- }
- }
-
- res = p11_kit_uri_format (p11_uri, flags & GCK_URI_FOR_ANY, &string);
- if (res == P11_KIT_URI_NO_MEMORY)
- g_error ("failed to allocate memory in p11_kit_uri_format()");
- else if (res != P11_KIT_URI_OK)
- g_return_val_if_reached (NULL);
-
- p11_kit_uri_free (p11_uri);
- return string;
-}
-
-GType
-gck_uri_data_get_type (void)
-{
- static volatile gsize initialized = 0;
- static GType type = 0;
- if (g_once_init_enter (&initialized)) {
- type = g_boxed_type_register_static ("GckUriData",
- (GBoxedCopyFunc)gck_uri_data_copy,
- (GBoxedFreeFunc)gck_uri_data_free);
- g_once_init_leave (&initialized, 1);
- }
- return type;
-}
-
-/**
- * gck_uri_data_copy:
- * @uri_data: URI data to copy
- *
- * Copy a #GckUriData
- *
- * Returns: (transfer full): newly allocated copy of the uri data
- */
-GckUriData *
-gck_uri_data_copy (GckUriData *uri_data)
-{
- GckUriData *copy;
-
- copy = g_memdup (uri_data, sizeof (GckUriData));
- copy->attributes = gck_attributes_new ();
- gck_attributes_add_all (copy->attributes, uri_data->attributes);
- copy->module_info = gck_module_info_copy (copy->module_info);
- copy->token_info = gck_token_info_copy (copy->token_info);
- return copy;
-}
-
-/**
- * gck_uri_data_free:
- * @uri_data: URI data to free.
- *
- * Free a #GckUriData.
- */
-void
-gck_uri_data_free (GckUriData *uri_data)
-{
- if (uri_data) {
- if (uri_data->attributes)
- gck_attributes_unref (uri_data->attributes);
- if (uri_data->module_info)
- gck_module_info_free (uri_data->module_info);
- if (uri_data->token_info)
- gck_token_info_free (uri_data->token_info);
- g_slice_free (GckUriData, uri_data);
- }
-}
diff --git a/gck/gck.h b/gck/gck.h
deleted file mode 100644
index 588a09f9..00000000
--- a/gck/gck.h
+++ /dev/null
@@ -1,1324 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gck.h - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2008, Stefan Walter
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <nielsen@memberwebs.com>
-*/
-
-#ifndef GCK_H
-#define GCK_H
-
-#include <glib.h>
-#include <glib-object.h>
-#include <gio/gio.h>
-
-#include "pkcs11.h"
-
-#define __GCK_INSIDE_HEADER__
-
-#include "gck-deprecated.h"
-#include "gck-enum-types.h"
-
-G_BEGIN_DECLS
-
-/*
- * To use this API, you need to be prepared for changes to the API,
- * and add the C flag: -DGCK_API_SUBJECT_TO_CHANGE
- */
-
-#ifndef GCK_API_SUBJECT_TO_CHANGE
-#error "This API has not yet reached stability."
-#endif
-
-#define GCK_VENDOR_CODE 0x47434B00 /* GCK */
-
-/* An error code which results from a failure to load the PKCS11 module */
-typedef enum {
- GCK_ERROR_MODULE_PROBLEM = (CKR_VENDOR_DEFINED | (GCK_VENDOR_CODE + 1)),
-} GckError;
-
-#define GCK_ERROR (gck_error_get_quark ())
-
-GQuark gck_error_get_quark (void) G_GNUC_CONST;
-
-#define GCK_TYPE_LIST (gck_list_get_boxed_type ())
-
-GType gck_list_get_boxed_type (void) G_GNUC_CONST;
-
-GList* gck_list_ref_copy (GList *reflist);
-
-void gck_list_unref_free (GList *reflist);
-
-const gchar* gck_message_from_rv (gulong rv);
-
-gboolean gck_string_to_chars (guchar *data,
- gsize max,
- const gchar *string);
-
-gchar* gck_string_from_chars (const guchar *data,
- gsize max);
-
-typedef gpointer (*GckAllocator) (gpointer data, gsize length);
-
-typedef enum {
- GCK_SESSION_READ_ONLY = 0,
- GCK_SESSION_READ_WRITE = 1 << 1,
- GCK_SESSION_LOGIN_USER = 1 << 2,
- GCK_SESSION_AUTHENTICATE = 1 << 3,
-} GckSessionOptions;
-
-typedef struct _GckMechanism GckMechanism;
-
-struct _GckMechanism {
- gulong type;
- gconstpointer parameter;
- gulong n_parameter;
-};
-
-typedef struct _GckAttribute GckAttribute;
-
-struct _GckAttribute {
- gulong type;
- guchar *value;
- gulong length;
-};
-
-#define GCK_INVALID G_MAXULONG
-
-gboolean gck_value_to_ulong (const guchar *value,
- gsize length,
- gulong *result);
-
-gboolean gck_value_to_boolean (const guchar *value,
- gsize length,
- gboolean *result);
-
-void gck_attribute_init (GckAttribute *attr,
- gulong attr_type,
- const guchar *value,
- gsize length);
-
-void gck_attribute_init_invalid (GckAttribute *attr,
- gulong attr_type);
-
-void gck_attribute_init_empty (GckAttribute *attr,
- gulong attr_type);
-
-void gck_attribute_init_boolean (GckAttribute *attr,
- gulong attr_type,
- gboolean value);
-
-void gck_attribute_init_date (GckAttribute *attr,
- gulong attr_type,
- const GDate *value);
-
-void gck_attribute_init_ulong (GckAttribute *attr,
- gulong attr_type,
- gulong value);
-
-void gck_attribute_init_string (GckAttribute *attr,
- gulong attr_type,
- const gchar *value);
-
-void gck_attribute_init_copy (GckAttribute *dest,
- const GckAttribute *src);
-
-#define GCK_TYPE_ATTRIBUTE (gck_attribute_get_type ())
-
-GType gck_attribute_get_type (void) G_GNUC_CONST;
-
-GckAttribute* gck_attribute_new (gulong attr_type,
- gpointer value,
- gsize length);
-
-GckAttribute* gck_attribute_new_invalid (gulong attr_type);
-
-GckAttribute* gck_attribute_new_empty (gulong attr_type);
-
-GckAttribute* gck_attribute_new_boolean (gulong attr_type,
- gboolean value);
-
-GckAttribute* gck_attribute_new_date (gulong attr_type,
- const GDate *value);
-
-GckAttribute* gck_attribute_new_ulong (gulong attr_type,
- gulong value);
-
-GckAttribute* gck_attribute_new_string (gulong attr_type,
- const gchar *value);
-
-gboolean gck_attribute_is_invalid (GckAttribute *attr);
-
-gboolean gck_attribute_get_boolean (GckAttribute *attr);
-
-gulong gck_attribute_get_ulong (GckAttribute *attr);
-
-gchar* gck_attribute_get_string (GckAttribute *attr);
-
-void gck_attribute_get_date (GckAttribute *attr,
- GDate* value);
-
-gboolean gck_attribute_equal (gconstpointer a,
- gconstpointer b);
-
-GckAttribute* gck_attribute_dup (GckAttribute *attr);
-
-void gck_attribute_clear (GckAttribute *attr);
-
-void gck_attribute_free (GckAttribute *attr);
-
-void gck_attribute_dump (GckAttribute *attr);
-
-typedef struct _GckAttributes GckAttributes;
-
-#define GCK_TYPE_ATTRIBUTES (gck_attributes_get_boxed_type ())
-
-GType gck_attributes_get_type (void) G_GNUC_CONST;
-
-GckAttributes* gck_attributes_new (void);
-
-GckAttributes* gck_attributes_new_empty (gulong attr_type,
- ...);
-
-GckAttributes* gck_attributes_new_full (GckAllocator allocator);
-
-GckAttribute* gck_attributes_at (GckAttributes *attrs,
- guint index);
-
-GckAttribute* gck_attributes_add (GckAttributes *attrs,
- GckAttribute *attr);
-
-void gck_attributes_add_all (GckAttributes *attrs,
- GckAttributes *from);
-
-GckAttribute* gck_attributes_add_data (GckAttributes *attrs,
- gulong attr_type,
- const guchar *value,
- gsize length);
-
-GckAttribute* gck_attributes_add_invalid (GckAttributes *attrs,
- gulong attr_type);
-
-GckAttribute* gck_attributes_add_empty (GckAttributes *attrs,
- gulong attr_type);
-
-GckAttribute* gck_attributes_add_boolean (GckAttributes *attrs,
- gulong attr_type,
- gboolean value);
-
-GckAttribute* gck_attributes_add_string (GckAttributes *attrs,
- gulong attr_type,
- const gchar *value);
-
-GckAttribute* gck_attributes_add_date (GckAttributes *attrs,
- gulong attr_type,
- const GDate *value);
-
-GckAttribute* gck_attributes_add_ulong (GckAttributes *attrs,
- gulong attr_type,
- gulong value);
-
-GckAttribute* gck_attributes_find (GckAttributes *attrs,
- gulong attr_type);
-
-gboolean gck_attributes_find_boolean (GckAttributes *attrs,
- gulong attr_type,
- gboolean *value);
-
-gboolean gck_attributes_find_ulong (GckAttributes *attrs,
- gulong attr_type,
- gulong *value);
-
-gboolean gck_attributes_find_string (GckAttributes *attrs,
- gulong attr_type,
- gchar **value);
-
-gboolean gck_attributes_find_date (GckAttributes *attrs,
- gulong attr_type,
- GDate *value);
-
-void gck_attributes_set_boolean (GckAttributes *attrs,
- gulong attr_type,
- gboolean value);
-
-void gck_attributes_set_ulong (GckAttributes *attrs,
- gulong attr_type,
- gulong value);
-
-void gck_attributes_set_string (GckAttributes *attrs,
- gulong attr_type,
- const gchar *value);
-
-void gck_attributes_set_date (GckAttributes *attrs,
- gulong attr_type,
- const GDate *value);
-
-gulong gck_attributes_count (GckAttributes *attrs);
-
-GckAttributes* gck_attributes_ref (GckAttributes *attrs);
-
-void gck_attributes_unref (GckAttributes *attrs);
-
-gboolean gck_attributes_contains (GckAttributes *attrs,
- GckAttribute *match);
-
-void gck_attributes_dump (GckAttributes *attrs);
-
-/* -------------------------------------------------------------------------
- * FORWARDS
- */
-typedef struct _GckSlot GckSlot;
-typedef struct _GckModule GckModule;
-typedef struct _GckSession GckSession;
-typedef struct _GckObject GckObject;
-typedef struct _GckEnumerator GckEnumerator;
-typedef struct _GckUriData GckUriData;
-
-/* -------------------------------------------------------------------------
- * MODULE
- */
-
-typedef struct _GckModuleInfo GckModuleInfo;
-
-struct _GckModuleInfo {
- guint8 pkcs11_version_major;
- guint8 pkcs11_version_minor;
-
- gchar *manufacturer_id;
- gulong flags;
-
- gchar *library_description;
- guint8 library_version_major;
- guint8 library_version_minor;
-};
-
-#define GCK_TYPE_MODULE_INFO (gck_module_info_get_type ())
-
-GType gck_module_info_get_type (void) G_GNUC_CONST;
-
-GckModuleInfo * gck_module_info_copy (GckModuleInfo *module_info);
-
-void gck_module_info_free (GckModuleInfo *module_info);
-
-#define GCK_TYPE_MODULE (gck_module_get_type())
-#define GCK_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GCK_TYPE_MODULE, GckModule))
-#define GCK_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GCK_TYPE_MODULE, GckModule))
-#define GCK_IS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GCK_TYPE_MODULE))
-#define GCK_IS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GCK_TYPE_MODULE))
-#define GCK_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GCK_TYPE_MODULE, GckModuleClass))
-
-typedef struct _GckModuleClass GckModuleClass;
-typedef struct _GckModulePrivate GckModulePrivate;
-
-struct _GckModule {
- GObject parent;
-
- /*< private >*/
- GckModulePrivate *pv;
- gpointer reserved[4];
-};
-
-struct _GckModuleClass {
- GObjectClass parent;
-
- gboolean (*authenticate_slot) (GckModule *self, GckSlot *slot, gchar *label, gchar **password);
-
- gboolean (*authenticate_object) (GckModule *self, GckObject *object, gchar *label, gchar **password);
-
- /*< private >*/
- gpointer reserved[8];
-};
-
-GType gck_module_get_type (void) G_GNUC_CONST;
-
-GckModule* gck_module_new (CK_FUNCTION_LIST_PTR funcs);
-
-GckModule* gck_module_initialize (const gchar *path,
- GCancellable *cancellable,
- GError **error);
-
-void gck_module_initialize_async (const gchar *path,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-GckModule * gck_module_initialize_finish (GAsyncResult *result,
- GError **error);
-
-gboolean gck_module_equal (gconstpointer module1,
- gconstpointer module2);
-
-guint gck_module_hash (gconstpointer module);
-
-gboolean gck_module_match (GckModule *self,
- GckUriData *uri);
-
-const gchar* gck_module_get_path (GckModule *self);
-
-CK_FUNCTION_LIST_PTR gck_module_get_functions (GckModule *self);
-
-GckModuleInfo* gck_module_get_info (GckModule *self);
-
-GList* gck_module_get_slots (GckModule *self,
- gboolean token_present);
-
-GList* gck_modules_initialize_registered (GCancellable *cancellable,
- GError **error);
-
-void gck_modules_initialize_registered_async (GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-GList * gck_modules_initialize_registered_finish (GAsyncResult *result,
- GError **error);
-
-GList* gck_modules_get_slots (GList *modules,
- gboolean token_present);
-
-GckEnumerator* gck_modules_enumerate_objects (GList *modules,
- GckAttributes *attrs,
- GckSessionOptions session_options);
-
-GckSlot* gck_modules_token_for_uri (GList *modules,
- const gchar *uri,
- GError **error);
-
-GList * gck_modules_tokens_for_uri (GList *modules,
- const gchar *uri,
- GError **error);
-
-GckObject* gck_modules_object_for_uri (GList *modules,
- const gchar *uri,
- GckSessionOptions session_options,
- GError **error);
-
-GList* gck_modules_objects_for_uri (GList *modules,
- const gchar *uri,
- GckSessionOptions session_options,
- GError **error);
-
-GckEnumerator* gck_modules_enumerate_uri (GList *modules,
- const gchar *uri,
- GckSessionOptions session_options,
- GError **error);
-
-
-/* ------------------------------------------------------------------------
- * ENUMERATOR
- */
-
-#define GCK_TYPE_ENUMERATOR (gck_enumerator_get_type())
-#define GCK_ENUMERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GCK_TYPE_ENUMERATOR, GckEnumerator))
-#define GCK_ENUMERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GCK_TYPE_ENUMERATOR, GckEnumerator))
-#define GCK_IS_ENUMERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GCK_TYPE_ENUMERATOR))
-#define GCK_IS_ENUMERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GCK_TYPE_ENUMERATOR))
-#define GCK_ENUMERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GCK_TYPE_ENUMERATOR, GckEnumeratorClass))
-
-typedef struct _GckEnumeratorClass GckEnumeratorClass;
-typedef struct _GckEnumeratorPrivate GckEnumeratorPrivate;
-
-struct _GckEnumerator {
- GObject parent;
-
- /*< private >*/
- GckEnumeratorPrivate *pv;
- gpointer reserved[2];
-};
-
-struct _GckEnumeratorClass {
- GObjectClass parent;
-
- /*< private >*/
- gpointer reserved[2];
-};
-
-GType gck_enumerator_get_type (void) G_GNUC_CONST;
-
-GTlsInteraction * gck_enumerator_get_interaction (GckEnumerator *self);
-
-void gck_enumerator_set_interaction (GckEnumerator *self,
- GTlsInteraction *interaction);
-
-GckObject* gck_enumerator_next (GckEnumerator *self,
- GCancellable *cancellable,
- GError **error);
-
-GList* gck_enumerator_next_n (GckEnumerator *self,
- gint max_objects,
- GCancellable *cancellable,
- GError **error);
-
-void gck_enumerator_next_async (GckEnumerator *self,
- gint max_objects,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-GList* gck_enumerator_next_finish (GckEnumerator *self,
- GAsyncResult *result,
- GError **error);
-
-/* ------------------------------------------------------------------------
- * SLOT
- */
-
-typedef struct _GckSlotInfo GckSlotInfo;
-
-struct _GckSlotInfo {
- gchar *slot_description;
- gchar *manufacturer_id;
- gulong flags;
- guint8 hardware_version_major;
- guint8 hardware_version_minor;
- guint8 firmware_version_major;
- guint8 firmware_version_minor;
-};
-
-#define GCK_TYPE_SLOT_INFO (gck_slot_info_get_type ())
-
-GType gck_slot_info_get_type (void) G_GNUC_CONST;
-
-GckSlotInfo * gck_slot_info_copy (GckSlotInfo *slot_info);
-
-void gck_slot_info_free (GckSlotInfo *slot_info);
-
-typedef struct _GckTokenInfo GckTokenInfo;
-
-struct _GckTokenInfo {
- gchar *label;
- gchar *manufacturer_id;
- gchar *model;
- gchar *serial_number;
- gulong flags;
- glong max_session_count;
- glong session_count;
- glong max_rw_session_count;
- glong rw_session_count;
- glong max_pin_len;
- glong min_pin_len;
- glong total_public_memory;
- glong free_public_memory;
- glong total_private_memory;
- glong free_private_memory;
- guint8 hardware_version_major;
- guint8 hardware_version_minor;
- guint8 firmware_version_major;
- guint8 firmware_version_minor;
- gint64 utc_time;
-};
-
-#define GCK_TYPE_TOKEN_INFO (gck_token_info_get_type ())
-
-GType gck_token_info_get_type (void) G_GNUC_CONST;
-
-GckTokenInfo * gck_token_info_copy (GckTokenInfo *token_info);
-
-void gck_token_info_free (GckTokenInfo *token_info);
-
-typedef struct _GckMechanismInfo GckMechanismInfo;
-
-struct _GckMechanismInfo {
- gulong min_key_size;
- gulong max_key_size;
- gulong flags;
-};
-
-#define GCK_TYPE_MECHANISM_INFO (gck_mechanism_info_get_type ())
-
-GType gck_mechanism_info_get_type (void) G_GNUC_CONST;
-
-GckMechanismInfo * gck_mechanism_info_copy (GckMechanismInfo *mech_info);
-
-void gck_mechanism_info_free (GckMechanismInfo *mech_info);
-
-#define gck_mechanisms_length(a) ((a)->len)
-
-#define gck_mechanisms_at(a, i) (g_array_index (a, CK_MECHANISM_TYPE, i))
-
-gboolean gck_mechanisms_check (GArray *mechanisms,
- ...);
-
-#define GCK_TYPE_SLOT (gck_slot_get_type())
-#define GCK_SLOT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GCK_TYPE_SLOT, GckSlot))
-#define GCK_SLOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GCK_TYPE_SLOT, GckSlot))
-#define GCK_IS_SLOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GCK_TYPE_SLOT))
-#define GCK_IS_SLOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GCK_TYPE_SLOT))
-#define GCK_SLOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GCK_TYPE_SLOT, GckSlotClass))
-
-typedef struct _GckSlotClass GckSlotClass;
-typedef struct _GckSlotPrivate GckSlotPrivate;
-
-struct _GckSlot {
- GObject parent;
-
- /*< private >*/
- GckSlotPrivate *pv;
- gpointer reserved[4];
-};
-
-struct _GckSlotClass {
- GObjectClass parent;
-
- /*< private >*/
- gpointer reserved[9];
-};
-
-GType gck_slot_get_type (void) G_GNUC_CONST;
-
-gboolean gck_slot_equal (gconstpointer slot1,
- gconstpointer slot2);
-
-guint gck_slot_hash (gconstpointer slot);
-
-gboolean gck_slot_match (GckSlot *self,
- GckUriData *uri);
-
-GckSlot* gck_slot_from_handle (GckModule *module,
- gulong slot_id);
-
-GckModule* gck_slot_get_module (GckSlot *self);
-
-gulong gck_slot_get_handle (GckSlot *self);
-
-GckSlotInfo* gck_slot_get_info (GckSlot *self);
-
-GckTokenInfo* gck_slot_get_token_info (GckSlot *self);
-
-GArray * gck_slot_get_mechanisms (GckSlot *self);
-
-GckMechanismInfo* gck_slot_get_mechanism_info (GckSlot *self,
- gulong mech_type);
-
-gboolean gck_slot_has_flags (GckSlot *self,
- gulong flags);
-
-GTlsInteraction * gck_slot_get_interaction (GckSlot *self);
-
-void gck_slot_set_interaction (GckSlot *self,
- GTlsInteraction *interaction);
-
-GckSession* gck_slot_open_session (GckSlot *self,
- GckSessionOptions options,
- GCancellable *cancellable,
- GError **error);
-
-GckSession* gck_slot_open_session_full (GckSlot *self,
- GckSessionOptions options,
- gulong pkcs11_flags,
- gpointer app_data,
- CK_NOTIFY notify,
- GCancellable *cancellable,
- GError **error);
-
-void gck_slot_open_session_async (GckSlot *self,
- GckSessionOptions options,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-void gck_slot_open_session_full_async (GckSlot *self,
- GckSessionOptions options,
- gulong pkcs11_flags,
- gpointer app_data,
- CK_NOTIFY notify,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-GckSession* gck_slot_open_session_finish (GckSlot *self,
- GAsyncResult *result,
- GError **error);
-
-GckEnumerator* gck_slots_enumerate_objects (GList *slots,
- GckAttributes *attrs,
- GckSessionOptions options);
-
-/* ------------------------------------------------------------------------
- * SESSION
- */
-
-typedef struct _GckSessionInfo GckSessionInfo;
-
-struct _GckSessionInfo {
- gulong slot_id;
- gulong state;
- gulong flags;
- gulong device_error;
-};
-
-#define GCK_TYPE_SESSION_INFO (gck_session_info_get_type ())
-
-GType gck_session_info_get_type (void) G_GNUC_CONST;
-
-GckSessionInfo * gck_session_info_copy (GckSessionInfo *session_info);
-
-void gck_session_info_free (GckSessionInfo *session_info);
-
-#define GCK_TYPE_SESSION (gck_session_get_type())
-#define GCK_SESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GCK_TYPE_SESSION, GckSession))
-#define GCK_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GCK_TYPE_SESSION, GckSession))
-#define GCK_IS_SESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GCK_TYPE_SESSION))
-#define GCK_IS_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GCK_TYPE_SESSION))
-#define GCK_SESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GCK_TYPE_SESSION, GckSessionClass))
-
-typedef struct _GckSessionClass GckSessionClass;
-typedef struct _GckSessionPrivate GckSessionPrivate;
-
-struct _GckSession {
- GObject parent;
-
- /*< private >*/
- GckSessionPrivate *pv;
- gpointer reserved[4];
-};
-
-struct _GckSessionClass {
- GObjectClass parent;
-
- gboolean (*discard_handle) (GckSession *session, CK_SESSION_HANDLE handle);
-
- /*< private >*/
- gpointer reserved[8];
-};
-
-GType gck_session_get_type (void) G_GNUC_CONST;
-
-GckSession * gck_session_from_handle (GckSlot *slot,
- gulong session_handle,
- GckSessionOptions options);
-
-GckModule* gck_session_get_module (GckSession *self);
-
-GckSlot* gck_session_get_slot (GckSession *self);
-
-gulong gck_session_get_handle (GckSession *self);
-
-GckSessionInfo* gck_session_get_info (GckSession *self);
-
-gulong gck_session_get_state (GckSession *self);
-
-GckSessionOptions gck_session_get_options (GckSession *self);
-
-GTlsInteraction * gck_session_get_interaction (GckSession *self);
-
-gboolean gck_session_init_pin (GckSession *self,
- const guchar *pin,
- gsize n_pin,
- GCancellable *cancellable,
- GError **error);
-
-void gck_session_init_pin_async (GckSession *self,
- const guchar *pin,
- gsize n_pin,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean gck_session_init_pin_finish (GckSession *self,
- GAsyncResult *result,
- GError **error);
-
-gboolean gck_session_set_pin (GckSession *self,
- const guchar *old_pin,
- gsize n_old_pin,
- const guchar *new_pin,
- gsize n_new_pin,
- GCancellable *cancellable,
- GError **error);
-
-void gck_session_set_pin_async (GckSession *self,
- const guchar *old_pin,
- gsize n_old_pin,
- const guchar *new_pin,
- gsize n_new_pin,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean gck_session_set_pin_finish (GckSession *self,
- GAsyncResult *result,
- GError **error);
-
-gboolean gck_session_login (GckSession *self,
- gulong user_type,
- const guchar *pin,
- gsize n_pin,
- GCancellable *cancellable,
- GError **error);
-
-void gck_session_login_async (GckSession *self,
- gulong user_type,
- const guchar *pin,
- gsize n_pin,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean gck_session_login_finish (GckSession *self,
- GAsyncResult *result,
- GError **error);
-
-gboolean gck_session_logout (GckSession *self,
- GCancellable *cancellable,
- GError **error);
-
-void gck_session_logout_async (GckSession *self,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean gck_session_logout_finish (GckSession *self,
- GAsyncResult *result,
- GError **error);
-
-GckObject* gck_session_create_object (GckSession *self,
- GckAttributes *attrs,
- GCancellable *cancellable,
- GError **error);
-
-void gck_session_create_object_async (GckSession *self,
- GckAttributes *attrs,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-GckObject* gck_session_create_object_finish (GckSession *self,
- GAsyncResult *result,
- GError **error);
-
-GList* gck_session_find_objects (GckSession *self,
- GckAttributes *attrs,
- GCancellable *cancellable,
- GError **error);
-
-void gck_session_find_objects_async (GckSession *self,
- GckAttributes *attrs,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-GList* gck_session_find_objects_finish (GckSession *self,
- GAsyncResult *result,
- GError **error);
-
-gboolean gck_session_generate_key_pair (GckSession *self,
- gulong mech_type,
- GckAttributes *public_attrs,
- GckAttributes *private_attrs,
- GckObject **public_key,
- GckObject **private_key,
- GCancellable *cancellable,
- GError **error);
-
-gboolean gck_session_generate_key_pair_full (GckSession *self,
- GckMechanism *mechanism,
- GckAttributes *public_attrs,
- GckAttributes *private_attrs,
- GckObject **public_key,
- GckObject **private_key,
- GCancellable *cancellable,
- GError **error);
-
-void gck_session_generate_key_pair_async (GckSession *self,
- GckMechanism *mechanism,
- GckAttributes *public_attrs,
- GckAttributes *private_attrs,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean gck_session_generate_key_pair_finish (GckSession *self,
- GAsyncResult *result,
- GckObject **public_key,
- GckObject **private_key,
- GError **error);
-
-guchar* gck_session_encrypt (GckSession *self,
- GckObject *key,
- gulong mech_type,
- const guchar *input,
- gsize n_input,
- gsize *n_result,
- GCancellable *cancellable,
- GError **error);
-
-guchar* gck_session_encrypt_full (GckSession *self,
- GckObject *key,
- GckMechanism *mechanism,
- const guchar *input,
- gsize n_input,
- gsize *n_result,
- GCancellable *cancellable,
- GError **error);
-
-void gck_session_encrypt_async (GckSession *self,
- GckObject *key,
- GckMechanism *mechanism,
- const guchar *input,
- gsize n_input,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-guchar* gck_session_encrypt_finish (GckSession *self,
- GAsyncResult *result,
- gsize *n_result,
- GError **error);
-
-guchar* gck_session_decrypt (GckSession *self,
- GckObject *key,
- gulong mech_type,
- const guchar *input,
- gsize n_input,
- gsize *n_result,
- GCancellable *cancellable,
- GError **error);
-
-guchar* gck_session_decrypt_full (GckSession *self,
- GckObject *key,
- GckMechanism *mechanism,
- const guchar *input,
- gsize n_input,
- gsize *n_result,
- GCancellable *cancellable,
- GError **error);
-
-void gck_session_decrypt_async (GckSession *self,
- GckObject *key,
- GckMechanism *mechanism,
- const guchar *input,
- gsize n_input,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-guchar* gck_session_decrypt_finish (GckSession *self,
- GAsyncResult *result,
- gsize *n_result,
- GError **error);
-
-guchar* gck_session_sign (GckSession *self,
- GckObject *key,
- gulong mech_type,
- const guchar *input,
- gsize n_input,
- gsize *n_result,
- GCancellable *cancellable,
- GError **error);
-
-guchar* gck_session_sign_full (GckSession *self,
- GckObject *key,
- GckMechanism *mechanism,
- const guchar *input,
- gsize n_input,
- gsize *n_result,
- GCancellable *cancellable,
- GError **error);
-
-void gck_session_sign_async (GckSession *self,
- GckObject *key,
- GckMechanism *mechanism,
- const guchar *input,
- gsize n_input,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-guchar* gck_session_sign_finish (GckSession *self,
- GAsyncResult *result,
- gsize *n_result,
- GError **error);
-
-gboolean gck_session_verify (GckSession *self,
- GckObject *key,
- gulong mech_type,
- const guchar *input,
- gsize n_input,
- const guchar *signature,
- gsize n_signature,
- GCancellable *cancellable,
- GError **error);
-
-gboolean gck_session_verify_full (GckSession *self,
- GckObject *key,
- GckMechanism *mechanism,
- const guchar *input,
- gsize n_input,
- const guchar *signature,
- gsize n_signature,
- GCancellable *cancellable,
- GError **error);
-
-void gck_session_verify_async (GckSession *self,
- GckObject *key,
- GckMechanism *mechanism,
- const guchar *input,
- gsize n_input,
- const guchar *signature,
- gsize n_signature,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean gck_session_verify_finish (GckSession *self,
- GAsyncResult *result,
- GError **error);
-
-guchar * gck_session_wrap_key (GckSession *self,
- GckObject *wrapper,
- gulong mech_type,
- GckObject *wrapped,
- gsize *n_result,
- GCancellable *cancellable,
- GError **error);
-
-guchar * gck_session_wrap_key_full (GckSession *self,
- GckObject *wrapper,
- GckMechanism *mechanism,
- GckObject *wrapped,
- gsize *n_result,
- GCancellable *cancellable,
- GError **error);
-
-void gck_session_wrap_key_async (GckSession *self,
- GckObject *wrapper,
- GckMechanism *mechanism,
- GckObject *wrapped,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-guchar * gck_session_wrap_key_finish (GckSession *self,
- GAsyncResult *result,
- gsize *n_result,
- GError **error);
-
-GckObject* gck_session_unwrap_key (GckSession *self,
- GckObject *wrapper,
- gulong mech_type,
- const guchar *input,
- gsize n_input,
- GckAttributes *attrs,
- GCancellable *cancellable,
- GError **error);
-
-GckObject* gck_session_unwrap_key_full (GckSession *self,
- GckObject *wrapper,
- GckMechanism *mechanism,
- const guchar *input,
- gsize n_input,
- GckAttributes *attrs,
- GCancellable *cancellable,
- GError **error);
-
-void gck_session_unwrap_key_async (GckSession *self,
- GckObject *wrapper,
- GckMechanism *mechanism,
- const guchar *input,
- gsize n_input,
- GckAttributes *attrs,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-GckObject* gck_session_unwrap_key_finish (GckSession *self,
- GAsyncResult *result,
- GError **error);
-
-GckObject* gck_session_derive_key (GckSession *self,
- GckObject *base,
- gulong mech_type,
- GckAttributes *attrs,
- GCancellable *cancellable,
- GError **error);
-
-GckObject* gck_session_derive_key_full (GckSession *self,
- GckObject *base,
- GckMechanism *mechanism,
- GckAttributes *attrs,
- GCancellable *cancellable,
- GError **error);
-
-void gck_session_derive_key_async (GckSession *self,
- GckObject *base,
- GckMechanism *mechanism,
- GckAttributes *attrs,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-GckObject* gck_session_derive_key_finish (GckSession *self,
- GAsyncResult *result,
- GError **error);
-
-/* ------------------------------------------------------------------------
- * OBJECT
- */
-
-#define GCK_TYPE_OBJECT (gck_object_get_type())
-#define GCK_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GCK_TYPE_OBJECT, GckObject))
-#define GCK_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GCK_TYPE_OBJECT, GckObject))
-#define GCK_IS_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GCK_TYPE_OBJECT))
-#define GCK_IS_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GCK_TYPE_OBJECT))
-#define GCK_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GCK_TYPE_OBJECT, GckObjectClass))
-
-typedef struct _GckObjectClass GckObjectClass;
-typedef struct _GckObjectPrivate GckObjectPrivate;
-
-struct _GckObject {
- GObject parent;
-
- /*< private >*/
- GckObjectPrivate *pv;
- gpointer reserved[4];
-};
-
-struct _GckObjectClass {
- GObjectClass parent;
- gpointer reserved[8];
-};
-
-GType gck_object_get_type (void) G_GNUC_CONST;
-
-GckObject * gck_object_from_handle (GckSession *session,
- gulong object_handle);
-
-GList* gck_objects_from_handle_array (GckSession *session,
- gulong *object_handles,
- gulong n_object_handles);
-
-gboolean gck_object_equal (gconstpointer object1,
- gconstpointer object2);
-
-guint gck_object_hash (gconstpointer object);
-
-GckModule* gck_object_get_module (GckObject *self);
-
-gulong gck_object_get_handle (GckObject *self);
-
-GckSession* gck_object_get_session (GckObject *self);
-
-gboolean gck_object_destroy (GckObject *self,
- GCancellable *cancellable,
- GError **error);
-
-void gck_object_destroy_async (GckObject *self,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean gck_object_destroy_finish (GckObject *self,
- GAsyncResult *result,
- GError **error);
-
-gboolean gck_object_set (GckObject *self,
- GckAttributes *attrs,
- GCancellable *cancellable,
- GError **error);
-
-void gck_object_set_async (GckObject *self,
- GckAttributes *attrs,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean gck_object_set_finish (GckObject *self,
- GAsyncResult *result,
- GError **error);
-
-GckAttributes* gck_object_get (GckObject *self,
- GCancellable *cancellable,
- GError **error,
- ...);
-
-GckAttributes* gck_object_get_full (GckObject *self,
- gulong *attr_types,
- guint n_attr_types,
- GCancellable *cancellable,
- GError **error);
-
-void gck_object_get_async (GckObject *self,
- gulong *attr_types,
- guint n_attr_types,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-GckAttributes* gck_object_get_finish (GckObject *self,
- GAsyncResult *result,
- GError **error);
-
-guchar * gck_object_get_data (GckObject *self,
- gulong attr_type,
- GCancellable *cancellable,
- gsize *n_data,
- GError **error);
-
-guchar * gck_object_get_data_full (GckObject *self,
- gulong attr_type,
- GckAllocator allocator,
- GCancellable *cancellable,
- gsize *n_data,
- GError **error);
-
-void gck_object_get_data_async (GckObject *self,
- gulong attr_type,
- GckAllocator allocator,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-guchar * gck_object_get_data_finish (GckObject *self,
- GAsyncResult *result,
- gsize *n_data,
- GError **error);
-
-gboolean gck_object_set_template (GckObject *self,
- gulong attr_type,
- GckAttributes *attrs,
- GCancellable *cancellable,
- GError **error);
-
-void gck_object_set_template_async (GckObject *self,
- gulong attr_type,
- GckAttributes *attrs,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean gck_object_set_template_finish (GckObject *self,
- GAsyncResult *result,
- GError **error);
-
-GckAttributes* gck_object_get_template (GckObject *self,
- gulong attr_type,
- GCancellable *cancellable,
- GError **error);
-
-void gck_object_get_template_async (GckObject *self,
- gulong attr_type,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-GckAttributes* gck_object_get_template_finish (GckObject *self,
- GAsyncResult *result,
- GError **error);
-
-/* ------------------------------------------------------------------------
- * PASSWORD
- */
-
-#define GCK_TYPE_PASSWORD (gck_password_get_type ())
-#define GCK_PASSWORD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCK_TYPE_PASSWORD, GckPassword))
-#define GCK_PASSWORD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCK_TYPE_PASSWORD, GckPassword))
-#define GCK_IS_PASSWORD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCK_TYPE_PASSWORD))
-#define GCK_IS_PASSWORD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCK_TYPE_PASSWORD))
-#define GCK_PASSWORD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCK_TYPE_PASSWORD, GckPasswordClass))
-
-typedef struct _GckPassword GckPassword;
-typedef struct _GckPasswordClass GckPasswordClass;
-typedef struct _GckPasswordPrivate GckPasswordPrivate;
-
-struct _GckPassword {
- GTlsPassword parent;
-
- /*< private >*/
- GckPasswordPrivate *pv;
- gpointer reserved[4];
-};
-
-struct _GckPasswordClass {
- GTlsPasswordClass parent;
-
- /*< private >*/
- gpointer reserved[4];
-};
-
-GType gck_password_get_type (void) G_GNUC_CONST;
-
-GckModule * gck_password_get_module (GckPassword *self);
-
-GckSlot * gck_password_get_token (GckPassword *self);
-
-GckObject * gck_password_get_key (GckPassword *self);
-
-/* ----------------------------------------------------------------------------
- * URI
- */
-
-typedef enum {
- GCK_URI_BAD_SCHEME = 1,
- GCK_URI_BAD_ENCODING,
- GCK_URI_BAD_SYNTAX,
- GCK_URI_BAD_VERSION,
- GCK_URI_NOT_FOUND
-} GckUriError;
-
-/* WARNING: Don't modify these without syncing with p11-kit */
-typedef enum {
- GCK_URI_FOR_OBJECT = (1 << 1),
- GCK_URI_FOR_TOKEN = (1 << 2),
- GCK_URI_FOR_MODULE = (1 << 3),
- GCK_URI_WITH_VERSION = (1 << 4),
- GCK_URI_FOR_ANY = 0x0000FFFF,
-} GckUriFlags;
-
-#define GCK_URI_FOR_MODULE_WITH_VERSION (GCK_URI_WITH_VERSION | GCK_URI_FOR_MODULE)
-
-#define GCK_URI_FOR_OBJECT_ON_TOKEN (GCK_URI_FOR_OBJECT | GCK_URI_FOR_TOKEN)
-
-#define GCK_URI_FOR_OBJECT_ON_TOKEN_AND_MODULE (GCK_URI_FOR_OBJECT_ON_TOKEN | GCK_URI_FOR_MODULE)
-
-struct _GckUriData {
- gboolean any_unrecognized;
- GckModuleInfo *module_info;
- GckTokenInfo *token_info;
- GckAttributes *attributes;
-
- /*< private >*/
- gpointer dummy[4];
-};
-
-#define GCK_URI_ERROR (gck_uri_error_get_quark ())
-
-GQuark gck_uri_error_get_quark (void) G_GNUC_CONST;
-
-GckUriData* gck_uri_data_new (void);
-
-gchar* gck_uri_build (GckUriData *uri_data,
- GckUriFlags flags);
-
-GckUriData* gck_uri_parse (const gchar *string,
- GckUriFlags flags,
- GError **error);
-
-#define GCK_URI_DATA_TYPE (gck_uri_data_get_type ())
-
-GType gck_uri_data_get_type (void) G_GNUC_CONST;
-
-GckUriData * gck_uri_data_copy (GckUriData *uri_data);
-
-void gck_uri_data_free (GckUriData *uri_data);
-
-G_END_DECLS
-
-#undef __GCK_INSIDE_HEADER__
-
-#endif /* GCK_H */
diff --git a/gck/gck.pc.in b/gck/gck.pc.in
deleted file mode 100644
index 1f0f8acf..00000000
--- a/gck/gck.pc.in
+++ /dev/null
@@ -1,14 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-datarootdir=@datarootdir@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-
-Name: gck-@GCK_MAJOR@
-Description: GObject bindings for PKCS#11
-Version: @VERSION@
-Requires: glib-2.0 p11-kit-1
-Libs: -L${libdir} -lgck-@GCK_MAJOR@
-Cflags: -I${includedir}/gck-@GCK_MAJOR@
diff --git a/gck/gck.symbols b/gck/gck.symbols
deleted file mode 100644
index e5cb4036..00000000
--- a/gck/gck.symbols
+++ /dev/null
@@ -1,237 +0,0 @@
-/* This file lists all exported symbols. It is used to guarantee that we
- * only consciously change our ABI.
- */
-
-gck_attribute_clear
-gck_attribute_dump
-gck_attribute_dup
-gck_attribute_equal
-gck_attribute_free
-gck_attribute_get_boolean
-gck_attribute_get_date
-gck_attribute_get_string
-gck_attribute_get_type
-gck_attribute_get_ulong
-gck_attribute_init
-gck_attribute_init_boolean
-gck_attribute_init_copy
-gck_attribute_init_date
-gck_attribute_init_empty
-gck_attribute_init_invalid
-gck_attribute_init_string
-gck_attribute_init_ulong
-gck_attribute_is_invalid
-gck_attribute_new
-gck_attribute_new_boolean
-gck_attribute_new_date
-gck_attribute_new_empty
-gck_attribute_new_invalid
-gck_attribute_new_string
-gck_attribute_new_ulong
-gck_attributes_add
-gck_attributes_add_all
-gck_attributes_add_boolean
-gck_attributes_add_data
-gck_attributes_add_date
-gck_attributes_add_empty
-gck_attributes_add_invalid
-gck_attributes_add_string
-gck_attributes_add_ulong
-gck_attributes_at
-gck_attributes_contains
-gck_attributes_count
-gck_attributes_dump
-gck_attributes_find
-gck_attributes_find_boolean
-gck_attributes_find_date
-gck_attributes_find_string
-gck_attributes_find_ulong
-gck_attributes_get_boxed_type
-gck_attributes_get_type
-gck_attributes_new
-gck_attributes_new_empty
-gck_attributes_new_full
-gck_attributes_ref
-gck_attributes_set_boolean
-gck_attributes_set_date
-gck_attributes_set_string
-gck_attributes_set_ulong
-gck_attributes_unref
-gck_enumerator_get_interaction
-gck_enumerator_get_type
-gck_enumerator_next
-gck_enumerator_next_async
-gck_enumerator_next_finish
-gck_enumerator_next_n
-gck_enumerator_set_interaction
-gck_error_get_quark
-gck_error_get_type
-gck_get_error_quark
-gck_list_ref_copy
-gck_list_unref_free
-gck_list_get_boxed_type
-gck_mechanism_info_copy
-gck_mechanism_info_free
-gck_mechanism_info_get_type
-gck_mechanisms_check
-gck_message_from_rv
-gck_module_equal
-gck_module_get_functions
-gck_module_get_info
-gck_module_get_path
-gck_module_get_slots
-gck_module_get_type
-gck_module_hash
-gck_module_info_copy
-gck_module_info_free
-gck_module_info_get_type
-gck_module_initialize
-gck_module_initialize_async
-gck_module_initialize_finish
-gck_module_match
-gck_module_new
-gck_modules_enumerate_objects
-gck_modules_enumerate_uri
-gck_modules_get_slots
-gck_modules_initialize_registered
-gck_modules_initialize_registered_async
-gck_modules_initialize_registered_finish
-gck_modules_object_for_uri
-gck_modules_objects_for_uri
-gck_modules_token_for_uri
-gck_modules_tokens_for_uri
-gck_object_destroy
-gck_object_destroy_async
-gck_object_destroy_finish
-gck_object_equal
-gck_object_from_handle
-gck_object_get
-gck_object_get_async
-gck_object_get_data
-gck_object_get_data_async
-gck_object_get_data_finish
-gck_object_get_data_full
-gck_object_get_finish
-gck_object_get_full
-gck_object_get_handle
-gck_object_get_module
-gck_object_get_session
-gck_object_get_template
-gck_object_get_template_async
-gck_object_get_template_finish
-gck_object_get_type
-gck_object_hash
-gck_object_set
-gck_object_set_async
-gck_object_set_finish
-gck_object_set_template
-gck_object_set_template_async
-gck_object_set_template_finish
-gck_objects_from_handle_array
-gck_password_get_key
-gck_password_get_module
-gck_password_get_token
-gck_password_get_type
-gck_session_create_object
-gck_session_create_object_async
-gck_session_create_object_finish
-gck_session_decrypt
-gck_session_decrypt_async
-gck_session_decrypt_finish
-gck_session_decrypt_full
-gck_session_derive_key
-gck_session_derive_key_async
-gck_session_derive_key_finish
-gck_session_derive_key_full
-gck_session_encrypt
-gck_session_encrypt_async
-gck_session_encrypt_finish
-gck_session_encrypt_full
-gck_session_find_objects
-gck_session_find_objects_async
-gck_session_find_objects_finish
-gck_session_from_handle
-gck_session_generate_key_pair
-gck_session_generate_key_pair_async
-gck_session_generate_key_pair_finish
-gck_session_generate_key_pair_full
-gck_session_get_handle
-gck_session_get_info
-gck_session_get_interaction
-gck_session_get_module
-gck_session_get_options
-gck_session_get_slot
-gck_session_get_state
-gck_session_get_type
-gck_session_info_copy
-gck_session_info_free
-gck_session_info_get_type
-gck_session_init_pin
-gck_session_init_pin_async
-gck_session_init_pin_finish
-gck_session_login
-gck_session_login_async
-gck_session_login_finish
-gck_session_logout
-gck_session_logout_async
-gck_session_logout_finish
-gck_session_options_get_type
-gck_session_set_pin
-gck_session_set_pin_async
-gck_session_set_pin_finish
-gck_session_sign
-gck_session_sign_async
-gck_session_sign_finish
-gck_session_sign_full
-gck_session_unwrap_key
-gck_session_unwrap_key_async
-gck_session_unwrap_key_finish
-gck_session_unwrap_key_full
-gck_session_verify
-gck_session_verify_async
-gck_session_verify_finish
-gck_session_verify_full
-gck_session_wrap_key
-gck_session_wrap_key_async
-gck_session_wrap_key_finish
-gck_session_wrap_key_full
-gck_slot_equal
-gck_slot_from_handle
-gck_slot_get_handle
-gck_slot_get_info
-gck_slot_get_interaction
-gck_slot_get_mechanism_info
-gck_slot_get_mechanisms
-gck_slot_get_module
-gck_slot_get_token_info
-gck_slot_get_type
-gck_slot_has_flags
-gck_slot_hash
-gck_slot_info_copy
-gck_slot_info_free
-gck_slot_info_get_type
-gck_slot_match
-gck_slot_open_session
-gck_slot_open_session_async
-gck_slot_open_session_finish
-gck_slot_open_session_full
-gck_slot_open_session_full_async
-gck_slot_set_interaction
-gck_slots_enumerate_objects
-gck_string_from_chars
-gck_string_to_chars
-gck_token_info_copy
-gck_token_info_free
-gck_token_info_get_type
-gck_uri_build
-gck_uri_data_copy
-gck_uri_data_free
-gck_uri_data_get_type
-gck_uri_data_new
-gck_uri_error_get_quark
-gck_uri_error_get_type
-gck_uri_flags_get_type
-gck_uri_get_error_quark
-gck_uri_parse
-gck_value_to_boolean
-gck_value_to_ulong
diff --git a/gck/pkcs11-trust-assertions.h b/gck/pkcs11-trust-assertions.h
deleted file mode 100644
index ed8bb6bd..00000000
--- a/gck/pkcs11-trust-assertions.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * pkcs11x.h
- * Copyright 2010 Collabora, Ltd
- *
- * This file is free software; as a special exception the author gives
- * unlimited permission to copy and/or distribute it, with or without
- * modifications, as long as this notice is preserved.
- *
- * This file is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY, to the extent permitted by law; without even
- * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE.
- */
-
-/*
- * The latest version of this file is at:
- *
- * git://thewalter.net/git/pkcs11-trust-assertions
- *
- * or viewable on the web at:
- *
- * http://thewalter.net/git/cgit.cgi/pkcs11-trust-assertions/tree/pkcs11-trust-assertions.h
- *
- */
-
-#ifndef PKCS11_TRUST_ASSERTIONS_H
-#define PKCS11_TRUST_ASSERTIONS_H
-
-#include <p11-kit/pkcs11.h>
-
-#define CKA_XDG (CKA_VENDOR_DEFINED | 0x58444700UL /* XDG0 */ )
-#define CKO_XDG (CKA_VENDOR_DEFINED | 0x58444700UL /* XDG0 */ )
-
-/* -------------------------------------------------------------------
- * TRUST ASSERTIONS
- */
-
-#define CKO_X_TRUST_ASSERTION (CKO_XDG + 100)
-
-#define CKA_X_ASSERTION_TYPE (CKA_XDG + 1)
-
-#define CKA_X_CERTIFICATE_VALUE (CKA_XDG + 2)
-
-#define CKA_X_PURPOSE (CKA_XDG + 3)
-
-#define CKA_X_PEER (CKA_XDG + 4)
-
-typedef CK_ULONG CK_X_ASSERTION_TYPE;
-
-#define CKT_X_UNTRUSTED_CERTIFICATE 1UL
-
-#define CKT_X_PINNED_CERTIFICATE 2UL
-
-#define CKT_X_ANCHORED_CERTIFICATE 3UL
-
-#endif /* PKCS11_TRUST_ASSERTIONS_H */
diff --git a/gck/pkcs11.h b/gck/pkcs11.h
deleted file mode 100644
index 9a34c588..00000000
--- a/gck/pkcs11.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* pkcs11.h - Dummy pkcs11 file while building
-
- Copyright (C) 2008, Stefan Walter
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <nielsen@memberwebs.com>
-*/
-
-/*
- * This file is not installed. The one pkcs11/pkcs11.h is installed with the
- * gck.h header. However while building we included it here, so that relative
- * includes work from within gck.h
- */
-
-#include "pkcs11/pkcs11.h"
diff --git a/gck/tests/Makefile.am b/gck/tests/Makefile.am
deleted file mode 100644
index 734e9d86..00000000
--- a/gck/tests/Makefile.am
+++ /dev/null
@@ -1,58 +0,0 @@
-
-INCLUDES = \
- -I$(top_builddir) \
- -I$(top_srcdir) \
- -DSRCDIR="\"@abs_srcdir@\"" \
- -DBUILDDIR="\"$(builddir)\"" \
- -DGCK_API_SUBJECT_TO_CHANGE \
- $(GLIB_CFLAGS)
-
-LDADD = \
- libmock-test-module.la \
- $(top_builddir)/gck/libgck-testable.la \
- $(top_builddir)/egg/libegg-test.la \
- $(top_builddir)/egg/libegg-hex.la \
- $(GTHREAD_LIBS) \
- $(GLIB_LIBS) \
- $(GIO_LIBS)
-
-TEST_PROGS = \
- test-gck-attributes \
- test-gck-module \
- test-gck-slot \
- test-gck-session \
- test-gck-object \
- test-gck-crypto \
- test-gck-uri \
- test-gck-enumerator \
- test-gck-modules
-
-test_gck_enumerator_SOURCES = \
- test-gck-enumerator.c \
- mock-interaction.c mock-interaction.h
-
-check_PROGRAMS = $(TEST_PROGS)
-
-test: $(TEST_PROGS)
- gtester --verbose -m $(TEST_MODE) --g-fatal-warnings $(TEST_PROGS)
-
-check-local: test
-
-all-local: $(check_PROGRAMS)
-
-lib_LTLIBRARIES = libmock-test-module.la
-
-libmock_test_module_la_LDFLAGS = \
- -avoid-version
-
-libmock_test_module_la_CFLAGS = \
- -I$(top_srcdir)/gck \
- -I$(top_srcdir) \
- $(GLIB_CFLAGS) \
- -DGCK_API_SUBJECT_TO_CHANGE
-
-libmock_test_module_la_SOURCES = \
- mock-test-module.c
-
-libmock_test_module_la_LIBADD = \
- $(top_builddir)/gck/libgck-testable.la
diff --git a/gck/tests/mock-interaction.c b/gck/tests/mock-interaction.c
deleted file mode 100644
index ed25a47f..00000000
--- a/gck/tests/mock-interaction.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* mock-interaction.c
-
- Copyright (C) 2011 Collabora Ltd
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "mock-interaction.h"
-
-#define MOCK_INTERACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MOCK_TYPE_INTERACTION, MockInteraction))
-#define MOCK_IS_INTERACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MOCK_TYPE_INTERACTION))
-#define MOCK_INTERACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MOCK_TYPE_INTERACTION, MockInteractionClass))
-
-typedef struct _MockInteractionClass MockInteractionClass;
-
-struct _MockInteraction {
- GTlsInteraction interaction;
- gchar *password;
-};
-
-struct _MockInteractionClass {
- GTlsInteractionClass parent;
-};
-
-G_DEFINE_TYPE (MockInteraction, mock_interaction, G_TYPE_TLS_INTERACTION);
-
-static void
-mock_interaction_init (MockInteraction *self)
-{
-
-}
-
-static void
-mock_interaction_finalize (GObject *obj)
-{
- MockInteraction *self = MOCK_INTERACTION (obj);
-
- g_free (self->password);
-
- G_OBJECT_CLASS (mock_interaction_parent_class)->dispose (obj);
-}
-
-static GTlsInteractionResult
-mock_interaction_ask_password (GTlsInteraction *interaction,
- GTlsPassword *password,
- GCancellable *cancellable,
- GError **error)
-{
- MockInteraction *self = MOCK_INTERACTION (interaction);
-
- if (self->password) {
- g_tls_password_set_value (password, (const guchar *)self->password, -1);
- return G_TLS_INTERACTION_HANDLED;
- } else {
- return G_TLS_INTERACTION_UNHANDLED;
- }
-}
-
-static void
-mock_interaction_class_init (MockInteractionClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- GTlsInteractionClass *interaction_class = G_TLS_INTERACTION_CLASS (klass);
-
- object_class->finalize = mock_interaction_finalize;
-
- interaction_class->ask_password = mock_interaction_ask_password;
-}
-
-GTlsInteraction *
-mock_interaction_new (const gchar *password)
-{
- MockInteraction *result;
-
- result = g_object_new (MOCK_TYPE_INTERACTION, NULL);
- result->password = g_strdup (password);
-
- return G_TLS_INTERACTION (result);
-}
diff --git a/gck/tests/mock-interaction.h b/gck/tests/mock-interaction.h
deleted file mode 100644
index 0747f4b0..00000000
--- a/gck/tests/mock-interaction.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* mock-interaction.h
-
- Copyright (C) 2011 Collabora Ltd
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#ifndef MOCK_INTERACTION_H
-#define MOCK_INTERACTION_H
-
-#include <gio/gio.h>
-
-G_BEGIN_DECLS
-
-#define MOCK_TYPE_INTERACTION (mock_interaction_get_type ())
-#define MOCK_INTERACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MOCK_TYPE_INTERACTION, MockInteraction))
-#define MOCK_IS_INTERACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MOCK_TYPE_INTERACTION))
-
-typedef struct _MockInteraction MockInteraction;
-
-GType mock_interaction_get_type (void) G_GNUC_CONST;
-
-GTlsInteraction * mock_interaction_new (const gchar *password);
-
-G_END_DECLS
-
-#endif /* MOCK_INTERACTION_H */
diff --git a/gck/tests/mock-test-module.c b/gck/tests/mock-test-module.c
deleted file mode 100644
index c5431e70..00000000
--- a/gck/tests/mock-test-module.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include "config.h"
-
-#include "gck-mock.h"
-#include "pkcs11.h"
-
-CK_RV
-C_GetFunctionList (CK_FUNCTION_LIST_PTR_PTR list)
-{
- return gck_mock_C_GetFunctionList (list);
-}
diff --git a/gck/tests/test-gck-attributes.c b/gck/tests/test-gck-attributes.c
deleted file mode 100644
index bf2fc039..00000000
--- a/gck/tests/test-gck-attributes.c
+++ /dev/null
@@ -1,617 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* test-gck-attributes.c - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2011 Collabora Ltd.
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include <glib.h>
-#include <string.h>
-
-#include "gck/gck.h"
-
-#define ATTR_TYPE 55
-#define ATTR_DATA "TEST DATA"
-#define N_ATTR_DATA ((gsize)9)
-
-static void
-test_init_memory (void)
-{
- GckAttribute attr;
-
- g_assert (sizeof (attr) == sizeof (CK_ATTRIBUTE));
-
- gck_attribute_init (&attr, ATTR_TYPE, (const guchar *)ATTR_DATA, N_ATTR_DATA);
- g_assert (attr.type == ATTR_TYPE);
- g_assert (attr.length == N_ATTR_DATA);
- g_assert (memcmp (attr.value, ATTR_DATA, attr.length) == 0);
-
- gck_attribute_clear (&attr);
-}
-
-static void
-test_value_to_boolean (void)
-{
- CK_BBOOL data = CK_TRUE;
- gboolean result = FALSE;
-
- if (!gck_value_to_boolean (&data, sizeof (data), &result))
- g_assert_not_reached ();
-
- g_assert (result == TRUE);
-
- if (!gck_value_to_boolean (&data, sizeof (data), NULL))
- g_assert_not_reached ();
-
- /* Should fail */
- if (gck_value_to_boolean (&data, 0, NULL))
- g_assert_not_reached ();
- if (gck_value_to_boolean (&data, 2, NULL))
- g_assert_not_reached ();
- if (gck_value_to_boolean (&data, (CK_ULONG)-1, NULL))
- g_assert_not_reached ();
-}
-
-static void
-test_value_to_ulong (void)
-{
- CK_ULONG data = 34343;
- gulong result = 0;
-
- if (!gck_value_to_ulong ((const guchar *)&data, sizeof (data), &result))
- g_assert_not_reached ();
-
- g_assert (result == 34343);
-
- if (!gck_value_to_ulong ((const guchar *)&data, sizeof (data), NULL))
- g_assert_not_reached ();
-
- /* Should fail */
- if (gck_value_to_ulong ((const guchar *)&data, 0, NULL))
- g_assert_not_reached ();
- if (gck_value_to_ulong ((const guchar *)&data, 2, NULL))
- g_assert_not_reached ();
- if (gck_value_to_ulong ((const guchar *)&data, (CK_ULONG)-1, NULL))
- g_assert_not_reached ();
-}
-
-static void
-test_init_boolean (void)
-{
- GckAttribute attr;
-
- gck_attribute_init_boolean (&attr, ATTR_TYPE, TRUE);
- g_assert (attr.type == ATTR_TYPE);
- g_assert (attr.length == sizeof (CK_BBOOL));
- g_assert (*((CK_BBOOL*)attr.value) == CK_TRUE);
-
- gck_attribute_clear (&attr);
-}
-
-static void
-test_init_date (void)
-{
- GckAttribute attr;
- CK_DATE ck_date;
- GDate *date;
-
- date = g_date_new_dmy(05, 06, 1960);
- memcpy (ck_date.year, "1960", 4);
- memcpy (ck_date.month, "06", 2);
- memcpy (ck_date.day, "05", 2);
- gck_attribute_init_date (&attr, ATTR_TYPE, date);
- g_date_free (date);
- g_assert (attr.type == ATTR_TYPE);
- g_assert (attr.length == sizeof (CK_DATE));
- g_assert (memcmp (attr.value, &ck_date, attr.length) == 0);
-
- gck_attribute_clear (&attr);
-}
-
-static void
-test_init_ulong (void)
-{
- GckAttribute attr;
-
- gck_attribute_init_ulong (&attr, ATTR_TYPE, 88);
- g_assert (attr.type == ATTR_TYPE);
- g_assert (attr.length == sizeof (CK_ULONG));
- g_assert (*((CK_ULONG*)attr.value) == 88);
-
- gck_attribute_clear (&attr);
-}
-
-static void
-test_init_string (void)
-{
- GckAttribute attr;
-
- gck_attribute_init_string (&attr, ATTR_TYPE, "a test string");
- g_assert (attr.type == ATTR_TYPE);
- g_assert (attr.length == strlen ("a test string"));
- g_assert (memcmp (attr.value, "a test string", attr.length) == 0);
-
- gck_attribute_clear (&attr);
-}
-
-static void
-test_init_invalid (void)
-{
- GckAttribute attr;
-
- gck_attribute_init_invalid (&attr, ATTR_TYPE);
- g_assert (attr.type == ATTR_TYPE);
- g_assert (attr.length == (gulong)-1);
- g_assert (attr.value == NULL);
-
- g_assert (gck_attribute_is_invalid (&attr));
- gck_attribute_clear (&attr);
-}
-
-static void
-test_init_empty (void)
-{
- GckAttribute attr;
-
- gck_attribute_init_empty (&attr, ATTR_TYPE);
- g_assert (attr.type == ATTR_TYPE);
- g_assert (attr.length == 0);
- g_assert (attr.value == NULL);
-
- gck_attribute_clear (&attr);
-}
-
-static void
-test_new_memory (void)
-{
- GckAttribute *attr;
-
- attr = gck_attribute_new (ATTR_TYPE, ATTR_DATA, N_ATTR_DATA);
- g_assert (attr->type == ATTR_TYPE);
- g_assert (attr->length == N_ATTR_DATA);
- g_assert (memcmp (attr->value, ATTR_DATA, attr->length) == 0);
-
- gck_attribute_free (attr);
-}
-
-static void
-test_new_boolean (void)
-{
- GckAttribute *attr;
-
- attr = gck_attribute_new_boolean (ATTR_TYPE, TRUE);
- g_assert (attr->type == ATTR_TYPE);
- g_assert (attr->length == sizeof (CK_BBOOL));
- g_assert (*((CK_BBOOL*)attr->value) == CK_TRUE);
-
- gck_attribute_free (attr);
-}
-
-static void
-test_new_date (void)
-{
- GckAttribute *attr;
- CK_DATE ck_date;
- GDate *date;
-
- date = g_date_new_dmy(05, 06, 1800);
- memcpy (ck_date.year, "1800", 4);
- memcpy (ck_date.month, "06", 2);
- memcpy (ck_date.day, "05", 2);
- attr = gck_attribute_new_date (ATTR_TYPE, date);
- g_date_free (date);
- g_assert (attr->type == ATTR_TYPE);
- g_assert (attr->length == sizeof (CK_DATE));
- g_assert (memcmp (attr->value, &ck_date, attr->length) == 0);
-
- gck_attribute_free (attr);
-}
-
-static void
-test_new_ulong (void)
-{
- GckAttribute *attr;
-
- attr = gck_attribute_new_ulong (ATTR_TYPE, 88);
- g_assert (attr->type == ATTR_TYPE);
- g_assert (attr->length == sizeof (CK_ULONG));
- g_assert (*((CK_ULONG*)attr->value) == 88);
-
- gck_attribute_free (attr);
-}
-
-static void
-test_new_string (void)
-{
- GckAttribute *attr;
-
- attr = gck_attribute_new_string (ATTR_TYPE, "a test string");
- g_assert (attr->type == ATTR_TYPE);
- g_assert (attr->length == strlen ("a test string"));
- g_assert (memcmp (attr->value, "a test string", attr->length) == 0);
-
- gck_attribute_free (attr);
-}
-
-static void
-test_new_invalid (void)
-{
- GckAttribute *attr;
-
- attr = gck_attribute_new_invalid (ATTR_TYPE);
- g_assert (attr->type == ATTR_TYPE);
- g_assert (attr->length == (gulong)-1);
- g_assert (attr->value == NULL);
-
- g_assert (gck_attribute_is_invalid (attr));
-
- gck_attribute_free (attr);
-}
-
-static void
-test_new_empty (void)
-{
- GckAttribute *attr;
-
- attr = gck_attribute_new_empty (ATTR_TYPE);
- g_assert (attr->type == ATTR_TYPE);
- g_assert (attr->length == 0);
- g_assert (attr->value == NULL);
-
- gck_attribute_free (attr);
-}
-
-static void
-test_get_boolean (void)
-{
- GckAttribute *attr;
-
- attr = gck_attribute_new_boolean (ATTR_TYPE, TRUE);
- g_assert (gck_attribute_get_boolean (attr) == TRUE);
- gck_attribute_free (attr);
-}
-
-static void
-test_get_date (void)
-{
- GckAttribute *attr;
- CK_DATE ck_date;
- GDate date, date2;
-
- g_date_set_dmy(&date, 05, 06, 1800);
- memcpy (ck_date.year, "1800", 4);
- memcpy (ck_date.month, "06", 2);
- memcpy (ck_date.day, "05", 2);
- attr = gck_attribute_new_date (ATTR_TYPE, &date);
- gck_attribute_get_date (attr, &date2);
- g_assert (g_date_compare (&date, &date2) == 0);
- gck_attribute_free (attr);
-}
-
-static void
-test_get_ulong (void)
-{
- GckAttribute *attr;
-
- attr = gck_attribute_new_ulong (ATTR_TYPE, 88);
- g_assert (gck_attribute_get_ulong (attr) == 88);
- gck_attribute_free (attr);
-}
-
-static void
-test_get_string (void)
-{
- GckAttribute *attr;
- gchar *value;
-
- attr = gck_attribute_new_string (ATTR_TYPE, "a test string");
- value = gck_attribute_get_string (attr);
- g_assert (strcmp ("a test string", value) == 0);
- g_free (value);
- gck_attribute_free (attr);
-
- /* Should be able to store null strings */
- attr = gck_attribute_new_string (ATTR_TYPE, NULL);
- value = gck_attribute_get_string (attr);
- g_assert (value == NULL);
- gck_attribute_free (attr);
-}
-
-static void
-test_dup_attribute (void)
-{
- GckAttribute attr, *dup;
-
- gck_attribute_init_ulong (&attr, ATTR_TYPE, 88);
- dup = gck_attribute_dup (&attr);
- gck_attribute_clear (&attr);
- g_assert (gck_attribute_get_ulong (dup) == 88);
- g_assert (dup->type == ATTR_TYPE);
- gck_attribute_free (dup);
-
- /* Should be able to dup null */
- dup = gck_attribute_dup (NULL);
- g_assert (dup == NULL);
-}
-
-static void
-test_copy_attribute (void)
-{
- GckAttribute attr, copy;
-
- gck_attribute_init_ulong (&attr, ATTR_TYPE, 88);
- gck_attribute_init_copy (&copy, &attr);
- gck_attribute_clear (&attr);
- g_assert (gck_attribute_get_ulong (&copy) == 88);
- g_assert (copy.type == ATTR_TYPE);
- gck_attribute_clear (&copy);
-}
-
-static void
-test_new_attributes (void)
-{
- GckAttributes *attrs;
-
- attrs = gck_attributes_new ();
- g_assert (attrs != NULL);
- g_assert (gck_attributes_count (attrs) == 0);
-
- gck_attributes_ref (attrs);
- gck_attributes_unref (attrs);
-
- gck_attributes_unref (attrs);
-
- /* Can unref NULL */
- gck_attributes_unref (NULL);
-}
-
-static void
-test_attributes_contents (GckAttributes *attrs, gboolean extras)
-{
- GckAttribute *attr;
- gchar *value;
- GDate date, *check;
- guint count;
-
- g_assert (attrs != NULL);
- count = extras ? 7 : 5;
- g_assert_cmpuint (gck_attributes_count (attrs), ==, count);
-
- attr = gck_attributes_at (attrs, 0);
- g_assert (attr->type == 0);
- g_assert (gck_attribute_get_boolean (attr) == TRUE);
-
- attr = gck_attributes_at (attrs, 1);
- g_assert (attr->type == 101);
- g_assert (gck_attribute_get_ulong (attr) == 888);
-
- attr = gck_attributes_at (attrs, 2);
- g_assert (attr->type == 202);
- value = gck_attribute_get_string (attr);
- g_assert (strcmp (value, "string") == 0);
- g_free (value);
-
- attr = gck_attributes_at (attrs, 3);
- g_assert (attr->type == 303);
- check = g_date_new_dmy (11, 12, 2008);
- gck_attribute_get_date (attr, &date);
- g_assert (g_date_compare (&date, check) == 0);
- g_date_free (check);
-
- attr = gck_attributes_at (attrs, 4);
- g_assert (attr->type == 404);
- g_assert (attr->length == N_ATTR_DATA);
- g_assert (memcmp (attr->value, ATTR_DATA, N_ATTR_DATA) == 0);
-
- if (!extras)
- return;
-
- attr = gck_attributes_at (attrs, 5);
- g_assert (attr->type == 505);
- g_assert (attr->length == (gulong)-1);
- g_assert (attr->value == NULL);
- g_assert (gck_attribute_is_invalid (attr));
-
- attr = gck_attributes_at (attrs, 6);
- g_assert (attr->type == 606);
- g_assert (attr->length == 0);
- g_assert (attr->value == NULL);
-}
-
-static void
-test_new_empty_attributes (void)
-{
- GckAttributes *attrs = gck_attributes_new_empty (101UL, 202UL, 303UL, 404UL, GCK_INVALID);
- GckAttribute *attr;
- guint i;
-
- g_assert_cmpuint (gck_attributes_count (attrs), ==, 4);
- for (i = 0; i < gck_attributes_count (attrs); ++i) {
- attr = gck_attributes_at (attrs, i);
- g_assert (attr->type == ((i + 1) * 100) + i + 1);
- g_assert (attr->value == NULL);
- g_assert (attr->length == 0);
- }
-}
-
-static void
-test_add_data_attributes (void)
-{
- GckAttributes *attrs;
- GDate *date = g_date_new_dmy (11, 12, 2008);
- attrs = gck_attributes_new ();
- gck_attributes_add_boolean (attrs, 0UL, TRUE);
- gck_attributes_add_ulong (attrs, 101UL, 888);
- gck_attributes_add_string (attrs, 202UL, "string");
- gck_attributes_add_date (attrs, 303UL, date);
- g_date_free (date);
- gck_attributes_add_data (attrs, 404UL, (const guchar *)ATTR_DATA, N_ATTR_DATA);
- gck_attributes_add_invalid (attrs, 505UL);
- gck_attributes_add_empty (attrs, 606UL);
- test_attributes_contents (attrs, TRUE);
- gck_attributes_unref (attrs);
-}
-
-static void
-test_add_attributes (void)
-{
- GckAttributes *attrs;
- GckAttribute attr;
-
- GDate *date = g_date_new_dmy (11, 12, 2008);
- attrs = gck_attributes_new ();
-
- gck_attribute_init_boolean (&attr, 0UL, TRUE);
- gck_attributes_add (attrs, &attr);
- gck_attribute_clear (&attr);
-
- gck_attribute_init_ulong (&attr, 101UL, 888);
- gck_attributes_add (attrs, &attr);
- gck_attribute_clear (&attr);
- gck_attribute_init_string (&attr, 202UL, "string");
- gck_attributes_add (attrs, &attr);
- gck_attribute_clear (&attr);
-
- gck_attribute_init_date (&attr, 303UL, date);
- gck_attributes_add (attrs, &attr);
- gck_attribute_clear (&attr);
- g_date_free (date);
-
- gck_attribute_init (&attr, 404UL, (const guchar *)ATTR_DATA, N_ATTR_DATA);
- gck_attributes_add (attrs, &attr);
- gck_attribute_clear (&attr);
-
- gck_attribute_init_invalid (&attr, 505UL);
- gck_attributes_add (attrs, &attr);
- gck_attribute_clear (&attr);
-
- gck_attribute_init_empty (&attr, 606UL);
- gck_attributes_add (attrs, &attr);
- gck_attribute_clear (&attr);
-
- test_attributes_contents (attrs, TRUE);
- gck_attributes_unref (attrs);
-}
-
-static void
-test_add_all_attributes (void)
-{
- GckAttributes *attrs;
- GckAttributes *copy;
- GDate *date = g_date_new_dmy (11, 12, 2008);
- attrs = gck_attributes_new ();
- gck_attributes_add_boolean (attrs, 0UL, TRUE);
- gck_attributes_add_ulong (attrs, 101UL, 888);
- gck_attributes_add_string (attrs, 202UL, "string");
- gck_attributes_add_date (attrs, 303UL, date);
- g_date_free (date);
- gck_attributes_add_data (attrs, 404UL, (const guchar *)ATTR_DATA, N_ATTR_DATA);
- gck_attributes_add_invalid (attrs, 505UL);
- gck_attributes_add_empty (attrs, 606UL);
-
- copy = gck_attributes_new ();
- gck_attributes_add_all (copy, attrs);
- test_attributes_contents (copy, TRUE);
-
- gck_attributes_unref (attrs);
- gck_attributes_unref (copy);
-}
-
-
-static void
-test_find_attributes (void)
-{
- GckAttribute *attr;
- GDate check, *date = g_date_new_dmy (13, 12, 2008);
- gboolean bvalue, ret;
- gulong uvalue;
- gchar *svalue;
-
- GckAttributes *attrs = gck_attributes_new ();
- gck_attributes_add_boolean (attrs, 0UL, TRUE);
- gck_attributes_add_ulong (attrs, 101UL, 888UL);
- gck_attributes_add_string (attrs, 202UL, "string");
- gck_attributes_add_date (attrs, 303UL, date);
- gck_attributes_add_data (attrs, 404UL, (const guchar *)ATTR_DATA, N_ATTR_DATA);
-
- attr = gck_attributes_find (attrs, 404);
- g_assert (attr != NULL);
- g_assert (attr->length == N_ATTR_DATA);
- g_assert (memcmp (attr->value, ATTR_DATA, N_ATTR_DATA) == 0);
-
- ret = gck_attributes_find_boolean (attrs, 0UL, &bvalue);
- g_assert (ret == TRUE);
- g_assert (bvalue == TRUE);
-
- ret = gck_attributes_find_ulong (attrs, 101UL, &uvalue);
- g_assert (ret == TRUE);
- g_assert (uvalue == 888);
-
- ret = gck_attributes_find_string (attrs, 202UL, &svalue);
- g_assert (ret == TRUE);
- g_assert (svalue != NULL);
- g_assert (strcmp (svalue, "string") == 0);
- g_free (svalue);
-
- ret = gck_attributes_find_date (attrs, 303UL, &check);
- g_assert (ret == TRUE);
- g_assert (g_date_compare (date, &check) == 0);
-
- gck_attributes_unref (attrs);
- g_date_free (date);
-}
-
-int
-main (int argc, char **argv)
-{
- g_test_init (&argc, &argv, NULL);
-
- g_test_add_func ("/gck/attributes/init_memory", test_init_memory);
- g_test_add_func ("/gck/attributes/value_to_boolean", test_value_to_boolean);
- g_test_add_func ("/gck/attributes/value_to_ulong", test_value_to_ulong);
- g_test_add_func ("/gck/attributes/init_boolean", test_init_boolean);
- g_test_add_func ("/gck/attributes/init_date", test_init_date);
- g_test_add_func ("/gck/attributes/init_ulong", test_init_ulong);
- g_test_add_func ("/gck/attributes/init_string", test_init_string);
- g_test_add_func ("/gck/attributes/init_invalid", test_init_invalid);
- g_test_add_func ("/gck/attributes/init_empty", test_init_empty);
- g_test_add_func ("/gck/attributes/new_memory", test_new_memory);
- g_test_add_func ("/gck/attributes/new_boolean", test_new_boolean);
- g_test_add_func ("/gck/attributes/new_date", test_new_date);
- g_test_add_func ("/gck/attributes/new_ulong", test_new_ulong);
- g_test_add_func ("/gck/attributes/new_string", test_new_string);
- g_test_add_func ("/gck/attributes/new_invalid", test_new_invalid);
- g_test_add_func ("/gck/attributes/new_empty", test_new_empty);
- g_test_add_func ("/gck/attributes/get_boolean", test_get_boolean);
- g_test_add_func ("/gck/attributes/get_date", test_get_date);
- g_test_add_func ("/gck/attributes/get_ulong", test_get_ulong);
- g_test_add_func ("/gck/attributes/get_string", test_get_string);
- g_test_add_func ("/gck/attributes/dup_attribute", test_dup_attribute);
- g_test_add_func ("/gck/attributes/copy_attribute", test_copy_attribute);
- g_test_add_func ("/gck/attributes/new_attributes", test_new_attributes);
- g_test_add_func ("/gck/attributes/new_empty_attributes", test_new_empty_attributes);
- g_test_add_func ("/gck/attributes/add_data_attributes", test_add_data_attributes);
- g_test_add_func ("/gck/attributes/add_attributes", test_add_attributes);
- g_test_add_func ("/gck/attributes/add_all_attributes", test_add_all_attributes);
- g_test_add_func ("/gck/attributes/find_attributes", test_find_attributes);
-
- return g_test_run ();
-}
diff --git a/gck/tests/test-gck-crypto.c b/gck/tests/test-gck-crypto.c
deleted file mode 100644
index 9630123c..00000000
--- a/gck/tests/test-gck-crypto.c
+++ /dev/null
@@ -1,647 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* test-gck-crypto.c - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2011 Collabora Ltd.
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gck/gck.h"
-#include "gck/gck-mock.h"
-#include "gck/gck-test.h"
-
-#include "egg/egg-testing.h"
-
-#include <glib.h>
-
-#include <errno.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-typedef struct {
- GckModule *module;
- GckSession *session;
- GckSession *session_with_auth;
-} Test;
-
-static gboolean
-on_discard_handle_ignore (GckSession *self, CK_OBJECT_HANDLE handle, gpointer unused)
-{
- /* Don't close the handle for this session, since it's a duplicate */
- return TRUE;
-}
-
-static void
-setup (Test *test, gconstpointer unused)
-{
- GError *err = NULL;
- GList *slots;
- GckSlot *slot;
-
- /* Successful load */
- test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.so", NULL, &err);
- g_assert_no_error (err);
- g_assert (GCK_IS_MODULE (test->module));
-
- slots = gck_module_get_slots (test->module, TRUE);
- g_assert (slots != NULL);
-
- test->session = gck_slot_open_session (slots->data, 0, NULL, &err);
- g_assert_no_error (err);
- g_assert (GCK_IS_SESSION (test->session));
-
- slot = gck_session_get_slot (test->session);
- g_assert (slot);
-
- test->session_with_auth = gck_session_from_handle (slot, gck_session_get_handle (test->session), GCK_SESSION_AUTHENTICATE);
- g_signal_connect (test->session_with_auth, "discard-handle", G_CALLBACK (on_discard_handle_ignore), NULL);
- g_assert (test->session_with_auth);
-
- g_object_unref (slot);
- gck_list_unref_free (slots);
-}
-
-static void
-teardown (Test *test, gconstpointer unused)
-{
- g_object_unref (test->session);
- g_object_unref (test->module);
- g_object_unref (test->session_with_auth);
-}
-
-static void
-fetch_async_result (GObject *source, GAsyncResult *result, gpointer user_data)
-{
- *((GAsyncResult**)user_data) = result;
- g_object_ref (result);
- egg_test_wait_stop ();
-}
-
-static GckObject*
-find_key (GckSession *session, CK_ATTRIBUTE_TYPE method, CK_MECHANISM_TYPE mech)
-{
- GList *objects, *l;
- GckAttributes *attrs;
- GckObject *object = NULL;
- CK_MECHANISM_TYPE_PTR mechs;
- gsize n_mechs;
-
- attrs = gck_attributes_new ();
- gck_attributes_add_boolean (attrs, method, TRUE);
- objects = gck_session_find_objects (session, attrs, NULL, NULL);
- gck_attributes_unref (attrs);
- g_assert (objects);
-
- for (l = objects; l; l = g_list_next (l)) {
- if (mech) {
- mechs = (gulong *)gck_object_get_data (l->data, CKA_ALLOWED_MECHANISMS,
- NULL, &n_mechs, NULL);
- g_assert (mechs);
- g_assert (n_mechs == sizeof (CK_MECHANISM_TYPE));
- /* We know all of them only have one allowed mech */
- if (*mechs != mech)
- continue;
- }
- object = l->data;
- g_object_ref (object);
- break;
- }
-
- gck_list_unref_free (objects);
- return object;
-}
-
-static GckObject*
-find_key_with_value (GckSession *session, const gchar *value)
-{
- GList *objects;
- GckAttributes *attrs;
- GckObject *object;
-
- attrs = gck_attributes_new ();
- gck_attributes_add_string (attrs, CKA_VALUE, value);
- objects = gck_session_find_objects (session, attrs, NULL, NULL);
- gck_attributes_unref (attrs);
- g_assert (objects);
-
- object = g_object_ref (objects->data);
- gck_list_unref_free (objects);
- return object;
-}
-
-static void
-check_key_with_value (GckSession *session, GckObject *key, CK_OBJECT_CLASS klass, const gchar *value)
-{
- GckAttributes *attrs;
- GckAttribute *attr;
- gulong check;
-
- attrs = gck_object_get (key, NULL, NULL, CKA_CLASS, CKA_VALUE, GCK_INVALID);
- g_assert (attrs);
-
- if (!gck_attributes_find_ulong (attrs, CKA_CLASS, &check))
- g_assert_not_reached ();
- g_assert (check == klass);
-
- attr = gck_attributes_find (attrs, CKA_VALUE);
- g_assert (attr);
- g_assert (!gck_attribute_is_invalid (attr));
- egg_assert_cmpsize (attr->length, ==, strlen (value));
- g_assert (memcmp (attr->value, value, attr->length) == 0);
-
- gck_attributes_unref (attrs);
-}
-
-static gboolean
-authenticate_object (GckSlot *module, GckObject *object, gchar *label, gchar **password)
-{
- g_assert (GCK_IS_MODULE (module));
- g_assert (GCK_IS_OBJECT (object));
- g_assert (password);
- g_assert (!*password);
-
- *password = g_strdup ("booo");
- return TRUE;
-}
-
-static void
-test_encrypt (Test *test, gconstpointer unused)
-{
- GckMechanism mech = { CKM_MOCK_CAPITALIZE, NULL, 0 };
- GError *error = NULL;
- GAsyncResult *result = NULL;
- GckObject *key;
- guchar *output;
- gsize n_output;
-
- /* Find the right key */
- key = find_key (test->session, CKA_ENCRYPT, CKM_MOCK_CAPITALIZE);
- g_assert (key);
-
- /* Simple one */
- output = gck_session_encrypt (test->session, key, CKM_MOCK_CAPITALIZE, (const guchar*)"blah blah", 10, &n_output, NULL, &error);
- g_assert_no_error (error);
- g_assert (output);
- g_assert (n_output == 10);
- g_assert_cmpstr ((gchar*)output, ==, "BLAH BLAH");
- g_free (output);
-
- /* Asynchronous one */
- gck_session_encrypt_async (test->session, key, &mech, (const guchar*)"second chance", 14, NULL, fetch_async_result, &result);
-
- egg_test_wait_until (500);
- g_assert (result != NULL);
-
- /* Get the result */
- output = gck_session_encrypt_finish (test->session, result, &n_output, &error);
- g_assert_no_error (error);
- g_assert (output);
- g_assert (n_output == 14);
- g_assert_cmpstr ((gchar*)output, ==, "SECOND CHANCE");
- g_free (output);
-
- g_object_unref (result);
- g_object_unref (key);
-}
-
-static void
-test_decrypt (Test *test, gconstpointer unused)
-{
- GckMechanism mech = { CKM_MOCK_CAPITALIZE, NULL, 0 };
- GError *error = NULL;
- GAsyncResult *result = NULL;
- GckObject *key;
- guchar *output;
- gsize n_output;
-
- /* Find the right key */
- key = find_key (test->session, CKA_DECRYPT, CKM_MOCK_CAPITALIZE);
- g_assert (key);
-
- /* Simple one */
- output = gck_session_decrypt (test->session, key, CKM_MOCK_CAPITALIZE, (const guchar*)"FRY???", 7, &n_output, NULL, &error);
- g_assert_no_error (error);
- g_assert (output);
- g_assert (n_output == 7);
- g_assert_cmpstr ((gchar*)output, ==, "fry???");
- g_free (output);
-
- /* Asynchronous one */
- gck_session_decrypt_async (test->session, key, &mech, (const guchar*)"FAT CHANCE", 11, NULL, fetch_async_result, &result);
-
- egg_test_wait_until (500);
- g_assert (result != NULL);
-
- /* Get the result */
- output = gck_session_decrypt_finish (test->session, result, &n_output, &error);
- g_assert_no_error (error);
- g_assert (output);
- g_assert (n_output == 11);
- g_assert_cmpstr ((gchar*)output, ==, "fat chance");
- g_free (output);
-
- g_object_unref (result);
- g_object_unref (key);
-}
-
-static void
-test_login_context_specific (Test *test, gconstpointer unused)
-{
- /* The test module won't let us sign without doing a login, check that */
-
- GError *error = NULL;
- GckObject *key;
- guchar *output;
- gsize n_output;
-
- /* Find the right key */
- key = find_key (test->session, CKA_SIGN, CKM_MOCK_PREFIX);
- g_assert (key);
-
- /* Simple one */
- output = gck_session_sign (test->session, key, CKM_MOCK_PREFIX, (const guchar*)"TV Monster", 11, &n_output, NULL, &error);
- g_assert_error (error, GCK_ERROR, CKR_USER_NOT_LOGGED_IN);
- g_assert (output == NULL);
-
- g_object_unref (key);
-}
-
-static void
-test_sign (Test *test, gconstpointer unused)
-{
- GckMechanism mech = { CKM_MOCK_PREFIX, (guchar *)"my-prefix:", 10 };
- GError *error = NULL;
- GAsyncResult *result = NULL;
- GckObject *key;
- guchar *output;
- gsize n_output;
-
- /* Enable auto-login on this test->session, see previous test */
- g_signal_connect (test->module, "authenticate-object", G_CALLBACK (authenticate_object), NULL);
-
- /* Find the right key */
- key = find_key (test->session_with_auth, CKA_SIGN, CKM_MOCK_PREFIX);
- g_assert (key);
-
- /* Simple one */
- output = gck_session_sign (test->session_with_auth, key, CKM_MOCK_PREFIX, (const guchar*)"Labarbara", 10, &n_output, NULL, &error);
- g_assert_no_error (error);
- g_assert (output);
- g_assert_cmpuint (n_output, ==, 24);
- g_assert_cmpstr ((gchar*)output, ==, "signed-prefix:Labarbara");
- g_free (output);
-
- /* Asynchronous one */
- gck_session_sign_async (test->session_with_auth, key, &mech, (const guchar*)"Conrad", 7, NULL, fetch_async_result, &result);
-
- egg_test_wait_until (500);
- g_assert (result != NULL);
-
- /* Get the result */
- output = gck_session_sign_finish (test->session_with_auth, result, &n_output, &error);
- g_assert_no_error (error);
- g_assert (output);
- g_assert_cmpuint (n_output, ==, 17);
- g_assert_cmpstr ((gchar*)output, ==, "my-prefix:Conrad");
- g_free (output);
-
- g_object_unref (result);
- g_object_unref (key);
-}
-
-static void
-test_verify (Test *test, gconstpointer unused)
-{
- GckMechanism mech = { CKM_MOCK_PREFIX, (guchar *)"my-prefix:", 10 };
- GError *error = NULL;
- GAsyncResult *result = NULL;
- GckObject *key;
- gboolean ret;
-
- /* Enable auto-login on this session, shouldn't be needed */
- g_signal_connect (test->module, "authenticate-object", G_CALLBACK (authenticate_object), NULL);
-
- /* Find the right key */
- key = find_key (test->session, CKA_VERIFY, CKM_MOCK_PREFIX);
- g_assert (key);
-
- /* Simple one */
- ret = gck_session_verify (test->session, key, CKM_MOCK_PREFIX, (const guchar*)"Labarbara", 10,
- (const guchar*)"signed-prefix:Labarbara", 24, NULL, &error);
- g_assert_no_error (error);
- g_assert (ret);
-
- /* Failure one */
- ret = gck_session_verify_full (test->session, key, &mech, (const guchar*)"Labarbara", 10,
- (const guchar*)"my-prefix:Loborboro", 20, NULL, &error);
- g_assert (error != NULL);
- g_assert (!ret);
- g_clear_error (&error);
-
- /* Asynchronous one */
- gck_session_verify_async (test->session, key, &mech, (const guchar*)"Labarbara", 10,
- (const guchar*)"my-prefix:Labarbara", 20, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
- ret = gck_session_verify_finish (test->session, result, &error);
- g_assert_no_error (error);
- g_assert (ret);
- g_object_unref (result);
-
- /* Asynchronous failure */
- result = NULL;
- gck_session_verify_async (test->session, key, &mech, (const guchar*)"Labarbara", 10,
- (const guchar*)"my-prefix:Labarxoro", 20, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
- ret = gck_session_verify_finish (test->session, result, &error);
- g_assert (error != NULL);
- g_assert (!ret);
- g_clear_error (&error);
- g_object_unref (result);
-
- g_object_unref (key);
-}
-
-static void
-test_generate_key_pair (Test *test, gconstpointer unused)
-{
- GckMechanism mech = { CKM_MOCK_GENERATE, (guchar *)"generate", 9 };
- GckAttributes *pub_attrs, *prv_attrs;
- GError *error = NULL;
- GAsyncResult *result = NULL;
- GckObject *pub_key, *prv_key;
- gboolean ret;
-
- pub_attrs = gck_attributes_new ();
- gck_attributes_add_ulong (pub_attrs, CKA_CLASS, CKO_PUBLIC_KEY);
- prv_attrs = gck_attributes_new ();
- gck_attributes_add_ulong (prv_attrs, CKA_CLASS, CKO_PRIVATE_KEY);
-
- /* Full One*/
- ret = gck_session_generate_key_pair_full (test->session, &mech, pub_attrs, prv_attrs,
- &pub_key, &prv_key, NULL, &error);
- g_assert_no_error (error);
- g_assert (ret);
- g_object_unref (pub_key);
- g_object_unref (prv_key);
-
- /* Failure one */
- mech.type = 0;
- pub_key = prv_key = NULL;
- ret = gck_session_generate_key_pair_full (test->session, &mech, pub_attrs, prv_attrs,
- &pub_key, &prv_key, NULL, &error);
- g_assert (error != NULL);
- g_assert (!ret);
- g_clear_error (&error);
- g_assert (pub_key == NULL);
- g_assert (prv_key == NULL);
-
- /* Asynchronous one */
- mech.type = CKM_MOCK_GENERATE;
- gck_session_generate_key_pair_async (test->session, &mech, pub_attrs, prv_attrs, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
- ret = gck_session_generate_key_pair_finish (test->session, result, &pub_key, &prv_key, &error);
- g_assert_no_error (error);
- g_assert (ret);
- g_object_unref (result);
- g_object_unref (pub_key);
- g_object_unref (prv_key);
-
- /* Asynchronous failure */
- result = NULL;
- mech.type = 0;
- pub_key = prv_key = NULL;
- gck_session_generate_key_pair_async (test->session, &mech, pub_attrs, prv_attrs, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
- ret = gck_session_generate_key_pair_finish (test->session, result, &pub_key, &prv_key, &error);
- g_assert (error != NULL);
- g_assert (!ret);
- g_clear_error (&error);
- g_object_unref (result);
- g_assert (pub_key == NULL);
- g_assert (prv_key == NULL);
-
- gck_attributes_unref (pub_attrs);
- gck_attributes_unref (prv_attrs);
-}
-
-static void
-test_wrap_key (Test *test, gconstpointer unused)
-{
- GckMechanism mech = { CKM_MOCK_WRAP, (guchar *)"wrap", 4 };
- GError *error = NULL;
- GAsyncResult *result = NULL;
- GckObject *wrapper, *wrapped;
- gpointer output;
- gsize n_output;
-
- wrapper = find_key (test->session, CKA_WRAP, 0);
- wrapped = find_key_with_value (test->session, "value");
-
- /* Simple One */
- output = gck_session_wrap_key (test->session, wrapper, CKM_MOCK_WRAP, wrapped, &n_output, NULL, &error);
- g_assert_no_error (error);
- g_assert (output);
- egg_assert_cmpsize (n_output, ==, 5);
- g_assert (memcmp (output, "value", 5) == 0);
- g_free (output);
-
- /* Full One*/
- output = gck_session_wrap_key_full (test->session, wrapper, &mech, wrapped, &n_output, NULL, &error);
- g_assert_no_error (error);
- g_assert (output);
- egg_assert_cmpsize (n_output, ==, 5);
- g_assert (memcmp (output, "value", 5) == 0);
- g_free (output);
-
- /* Failure one */
- mech.type = 0;
- n_output = 0;
- output = gck_session_wrap_key_full (test->session, wrapper, &mech, wrapped, &n_output, NULL, &error);
- g_assert (error != NULL);
- g_assert (!output);
- g_clear_error (&error);
- egg_assert_cmpsize (n_output, ==, 0);
-
- /* Asynchronous one */
- mech.type = CKM_MOCK_WRAP;
- gck_session_wrap_key_async (test->session, wrapper, &mech, wrapped, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
- output = gck_session_wrap_key_finish (test->session, result, &n_output, &error);
- g_assert_no_error (error);
- g_assert (output);
- egg_assert_cmpsize (n_output, ==, 5);
- g_assert (memcmp (output, "value", 5) == 0);
- g_object_unref (result);
- g_free (output);
-
- /* Asynchronous failure */
- result = NULL;
- mech.type = 0;
- n_output = 0;
- gck_session_wrap_key_async (test->session, wrapper, &mech, wrapped, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
- output = gck_session_wrap_key_finish (test->session, result, &n_output, &error);
- g_assert (error != NULL);
- g_assert (!output);
- g_clear_error (&error);
- egg_assert_cmpsize (n_output, ==, 0);
- g_object_unref (result);
-
- g_object_unref (wrapper);
- g_object_unref (wrapped);
-}
-
-static void
-test_unwrap_key (Test *test, gconstpointer unused)
-{
- GckMechanism mech = { CKM_MOCK_WRAP, (guchar *)"wrap", 4 };
- GError *error = NULL;
- GAsyncResult *result = NULL;
- GckObject *wrapper, *unwrapped;
- GckAttributes *attrs;
-
- wrapper = find_key (test->session, CKA_UNWRAP, 0);
- attrs = gck_attributes_new ();
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_SECRET_KEY);
-
- /* Full One*/
- unwrapped = gck_session_unwrap_key_full (test->session, wrapper, &mech, (const guchar *)"special", 7, attrs, NULL, &error);
- g_assert_no_error (error);
- g_assert (GCK_IS_OBJECT (unwrapped));
- check_key_with_value (test->session, unwrapped, CKO_SECRET_KEY, "special");
- g_object_unref (unwrapped);
-
- /* Failure one */
- mech.type = 0;
- unwrapped = gck_session_unwrap_key_full (test->session, wrapper, &mech, (const guchar *)"special", 7, attrs, NULL, &error);
- g_assert (error != NULL);
- g_assert (!unwrapped);
- g_clear_error (&error);
-
- /* Asynchronous one */
- mech.type = CKM_MOCK_WRAP;
- gck_session_unwrap_key_async (test->session, wrapper, &mech, (const guchar *)"special", 7, attrs, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
- unwrapped = gck_session_unwrap_key_finish (test->session, result, &error);
- g_assert_no_error (error);
- g_assert (GCK_IS_OBJECT (unwrapped));
- check_key_with_value (test->session, unwrapped, CKO_SECRET_KEY, "special");
- g_object_unref (unwrapped);
- g_object_unref (result);
-
- /* Asynchronous failure */
- result = NULL;
- mech.type = 0;
- gck_session_unwrap_key_async (test->session, wrapper, &mech, (const guchar *)"special", 6, attrs, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
- unwrapped = gck_session_unwrap_key_finish (test->session, result, &error);
- g_assert (error != NULL);
- g_assert (!unwrapped);
- g_clear_error (&error);
- g_object_unref (result);
-
- g_object_unref (wrapper);
- gck_attributes_unref (attrs);
-}
-
-static void
-test_derive_key (Test *test, gconstpointer unused)
-{
- GckMechanism mech = { CKM_MOCK_DERIVE, (guchar *)"derive", 6 };
- GError *error = NULL;
- GAsyncResult *result = NULL;
- GckObject *wrapper, *derived;
- GckAttributes *attrs;
-
- wrapper = find_key (test->session, CKA_DERIVE, 0);
- attrs = gck_attributes_new ();
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_SECRET_KEY);
-
- /* Full One*/
- derived = gck_session_derive_key_full (test->session, wrapper, &mech, attrs, NULL, &error);
- g_assert_no_error (error);
- g_assert (GCK_IS_OBJECT (derived));
- check_key_with_value (test->session, derived, CKO_SECRET_KEY, "derived");
- g_object_unref (derived);
-
- /* Failure one */
- mech.type = 0;
- derived = gck_session_derive_key_full (test->session, wrapper, &mech, attrs, NULL, &error);
- g_assert (error != NULL);
- g_assert (!derived);
- g_clear_error (&error);
-
- /* Asynchronous one */
- mech.type = CKM_MOCK_DERIVE;
- gck_session_derive_key_async (test->session, wrapper, &mech, attrs, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
- derived = gck_session_derive_key_finish (test->session, result, &error);
- g_assert_no_error (error);
- g_assert (GCK_IS_OBJECT (derived));
- check_key_with_value (test->session, derived, CKO_SECRET_KEY, "derived");
- g_object_unref (derived);
- g_object_unref (result);
-
- /* Asynchronous failure */
- result = NULL;
- mech.type = 0;
- gck_session_derive_key_async (test->session, wrapper, &mech, attrs, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
- derived = gck_session_derive_key_finish (test->session, result, &error);
- g_assert (error != NULL);
- g_assert (!derived);
- g_clear_error (&error);
- g_object_unref (result);
-
- g_object_unref (wrapper);
- gck_attributes_unref (attrs);
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
-
- g_set_prgname ("test-gck-crypto");
-
- g_test_add ("/gck/crypto/encrypt", Test, NULL, setup, test_encrypt, teardown);
- g_test_add ("/gck/crypto/decrypt", Test, NULL, setup, test_decrypt, teardown);
- g_test_add ("/gck/crypto/login_context_specific", Test, NULL, setup, test_login_context_specific, teardown);
- g_test_add ("/gck/crypto/sign", Test, NULL, setup, test_sign, teardown);
- g_test_add ("/gck/crypto/verify", Test, NULL, setup, test_verify, teardown);
- g_test_add ("/gck/crypto/generate_key_pair", Test, NULL, setup, test_generate_key_pair, teardown);
- g_test_add ("/gck/crypto/wrap_key", Test, NULL, setup, test_wrap_key, teardown);
- g_test_add ("/gck/crypto/unwrap_key", Test, NULL, setup, test_unwrap_key, teardown);
- g_test_add ("/gck/crypto/derive_key", Test, NULL, setup, test_derive_key, teardown);
-
- return egg_tests_run_in_thread_with_loop ();
-}
diff --git a/gck/tests/test-gck-enumerator.c b/gck/tests/test-gck-enumerator.c
deleted file mode 100644
index d5d669e3..00000000
--- a/gck/tests/test-gck-enumerator.c
+++ /dev/null
@@ -1,359 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* test-gck-enumerator.c - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2011 Collabora Ltd.
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gck/gck.h"
-#include "gck/gck-mock.h"
-#include "gck/gck-private.h"
-#include "gck/gck-test.h"
-
-#include "mock-interaction.h"
-
-#include "egg/egg-testing.h"
-
-#include <glib.h>
-
-#include <errno.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-typedef struct {
- GList *modules;
- GckModule *module;
-} Test;
-
-static void
-setup (Test *test, gconstpointer unused)
-{
- GError *err = NULL;
-
- /* Successful load */
- test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.so", NULL, &err);
- g_assert_no_error (err);
- g_assert (GCK_IS_MODULE (test->module));
-
- test->modules = g_list_append (NULL, g_object_ref (test->module));
-}
-
-static void
-teardown (Test *test, gconstpointer unused)
-{
- gck_list_unref_free (test->modules);
- test->modules = NULL;
-
- g_object_unref (test->module);
- test->module = NULL;
-}
-
-static void
-test_create (Test *test, gconstpointer unused)
-{
- GckUriData *uri_data;
- GckEnumerator *en;
-
- uri_data = gck_uri_data_new ();
- en = _gck_enumerator_new (test->modules, 0, uri_data);
- g_assert (GCK_IS_ENUMERATOR (en));
- g_object_unref (en);
-}
-
-static void
-test_create_slots (Test *test, gconstpointer unused)
-{
- GckUriData *uri_data;
- GckEnumerator *en;
- GList *slots;
-
- uri_data = gck_uri_data_new ();
- slots = gck_module_get_slots (test->module, FALSE);
- en = _gck_enumerator_new (slots, 0, uri_data);
- g_assert (GCK_IS_ENUMERATOR (en));
- g_object_unref (en);
- gck_list_unref_free (slots);
-}
-
-static void
-test_next (Test *test, gconstpointer unused)
-{
- GckUriData *uri_data;
- GError *error = NULL;
- GckEnumerator *en;
- GckObject *obj;
-
- uri_data = gck_uri_data_new ();
- en = _gck_enumerator_new (test->modules, 0, uri_data);
- g_assert (GCK_IS_ENUMERATOR (en));
-
- obj = gck_enumerator_next (en, NULL, &error);
- g_assert (GCK_IS_OBJECT (obj));
-
- g_object_unref (obj);
- g_object_unref (en);
-}
-
-static void
-test_next_slots (Test *test, gconstpointer unused)
-{
- GckUriData *uri_data;
- GError *error = NULL;
- GList *slots = NULL;
- GckEnumerator *en;
- GckObject *obj;
-
- uri_data = gck_uri_data_new ();
- slots = gck_module_get_slots (test->module, FALSE);
- en = _gck_enumerator_new (slots, 0, uri_data);
- g_assert (GCK_IS_ENUMERATOR (en));
-
- obj = gck_enumerator_next (en, NULL, &error);
- g_assert (GCK_IS_OBJECT (obj));
-
- g_object_unref (obj);
- g_object_unref (en);
- gck_list_unref_free (slots);
-}
-
-static void
-test_next_and_resume (Test *test, gconstpointer unused)
-{
- GckUriData *uri_data;
- GError *error = NULL;
- GckEnumerator *en;
- GckObject *obj, *obj2;
-
- uri_data = gck_uri_data_new ();
- en = _gck_enumerator_new (test->modules, 0, uri_data);
- g_assert (GCK_IS_ENUMERATOR (en));
-
- obj = gck_enumerator_next (en, NULL, &error);
- g_assert_no_error (error);
- g_assert (GCK_IS_OBJECT (obj));
-
- obj2 = gck_enumerator_next (en, NULL, &error);
- g_assert_no_error (error);
- g_assert (GCK_IS_OBJECT (obj2));
-
- g_assert (!gck_object_equal (obj, obj2));
-
- g_object_unref (obj);
- g_object_unref (obj2);
- g_object_unref (en);
-}
-
-static void
-test_next_n (Test *test, gconstpointer unused)
-{
- GckUriData *uri_data;
- GError *error = NULL;
- GckEnumerator *en;
- GList *objects, *l;
-
- uri_data = gck_uri_data_new ();
- en = _gck_enumerator_new (test->modules, 0, uri_data);
- g_assert (GCK_IS_ENUMERATOR (en));
-
- objects = gck_enumerator_next_n (en, -1, NULL, &error);
- g_assert_no_error (error);
- g_assert_cmpint (g_list_length (objects), ==, 5);
- for (l = objects; l; l = g_list_next (l))
- g_assert (GCK_IS_OBJECT (l->data));
-
- gck_list_unref_free (objects);
- g_object_unref (en);
-}
-
-static void
-fetch_async_result (GObject *source, GAsyncResult *result, gpointer user_data)
-{
- *((GAsyncResult**)user_data) = result;
- g_object_ref (result);
- egg_test_wait_stop ();
-}
-
-static void
-test_next_async (Test *test, gconstpointer unused)
-{
- GckUriData *uri_data;
- GAsyncResult *result = NULL;
- GError *error = NULL;
- GckEnumerator *en;
- GList *objects, *l;
-
- uri_data = gck_uri_data_new ();
- en = _gck_enumerator_new (test->modules, 0, uri_data);
- g_assert (GCK_IS_ENUMERATOR (en));
-
- gck_enumerator_next_async (en, -1, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result);
-
- objects = gck_enumerator_next_finish (en, result, &error);
- g_assert_no_error (error);
- g_assert_cmpint (g_list_length (objects), ==, 5);
- for (l = objects; l; l = g_list_next (l))
- g_assert (GCK_IS_OBJECT (l->data));
-
- g_object_unref (result);
- gck_list_unref_free (objects);
- g_object_unref (en);
-}
-
-static void
-test_attributes (Test *test, gconstpointer unused)
-{
- GckUriData *uri_data;
- GError *error = NULL;
- GckEnumerator *en;
- GList *objects;
-
- uri_data = gck_uri_data_new ();
- uri_data->attributes = gck_attributes_new ();
- gck_attributes_add_string (uri_data->attributes, CKA_LABEL, "Private Capitalize Key");
- en = _gck_enumerator_new (test->modules, 0, uri_data);
- g_assert (GCK_IS_ENUMERATOR (en));
-
- objects = gck_enumerator_next_n (en, -1, NULL, &error);
- g_assert_no_error (error);
- g_assert_cmpint (g_list_length (objects), ==, 1);
- g_assert (GCK_IS_OBJECT (objects->data));
-
- gck_list_unref_free (objects);
- g_object_unref (en);
-}
-
-static void
-test_authenticate_interaction (Test *test,
- gconstpointer unused)
-{
- GTlsInteraction *interaction;
- GTlsInteraction *check;
- GckUriData *uri_data;
- GError *error = NULL;
- GckEnumerator *en;
- GckObject *obj;
-
- uri_data = gck_uri_data_new ();
- en = _gck_enumerator_new (test->modules, GCK_SESSION_LOGIN_USER, uri_data);
- g_assert (GCK_IS_ENUMERATOR (en));
-
- interaction = mock_interaction_new ("booo");
- g_object_set (en, "interaction", interaction, NULL);
-
- check = NULL;
- g_object_get (en, "interaction", &check, NULL);
- g_assert (interaction == check);
- g_object_unref (interaction);
-
- obj = gck_enumerator_next (en, NULL, &error);
- g_assert (GCK_IS_OBJECT (obj));
-
- g_object_unref (obj);
- g_object_unref (en);
-}
-
-static gboolean
-on_authenticate_token (GckModule *module,
- GckSlot *slot,
- gchar *label,
- gchar **password,
- gpointer unused)
-{
- g_assert (unused == GUINT_TO_POINTER (35));
- g_assert (password != NULL);
- g_assert (*password == NULL);
- g_assert (GCK_IS_MODULE (module));
- g_assert (GCK_IS_SLOT (slot));
-
- *password = g_strdup ("booo");
- return TRUE;
-}
-
-static void
-test_authenticate_compat (Test *test,
- gconstpointer unused)
-{
- GckUriData *uri_data;
- GError *error = NULL;
- GckEnumerator *en;
- GckObject *obj;
-
- g_signal_connect (test->modules->data, "authenticate-slot",
- G_CALLBACK (on_authenticate_token), GUINT_TO_POINTER (35));
-
- uri_data = gck_uri_data_new ();
- en = _gck_enumerator_new (test->modules, GCK_SESSION_LOGIN_USER, uri_data);
- g_assert (GCK_IS_ENUMERATOR (en));
-
- obj = gck_enumerator_next (en, NULL, &error);
- g_assert (GCK_IS_OBJECT (obj));
-
- g_object_unref (obj);
- g_object_unref (en);
-}
-
-static void
-test_token_match (Test *test, gconstpointer unused)
-{
- GckUriData *uri_data;
- GError *error = NULL;
- GckEnumerator *en;
- GList *objects;
-
- uri_data = gck_uri_data_new ();
- uri_data->token_info = g_new0 (GckTokenInfo, 1);
- uri_data->token_info->label = g_strdup ("Invalid token name");
- en = _gck_enumerator_new (test->modules, 0, uri_data);
- g_assert (GCK_IS_ENUMERATOR (en));
-
- objects = gck_enumerator_next_n (en, -1, NULL, &error);
- g_assert_cmpint (g_list_length (objects), ==, 0);
- g_assert (error == NULL);
-
- gck_list_unref_free (objects);
- g_object_unref (en);
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
-
- g_set_prgname ("test-gck-enumerator");
-
- g_test_add ("/gck/enumerator/create", Test, NULL, setup, test_create, teardown);
- g_test_add ("/gck/enumerator/create_slots", Test, NULL, setup, test_create_slots, teardown);
- g_test_add ("/gck/enumerator/next", Test, NULL, setup, test_next, teardown);
- g_test_add ("/gck/enumerator/next_slots", Test, NULL, setup, test_next_slots, teardown);
- g_test_add ("/gck/enumerator/next_and_resume", Test, NULL, setup, test_next_and_resume, teardown);
- g_test_add ("/gck/enumerator/next_n", Test, NULL, setup, test_next_n, teardown);
- g_test_add ("/gck/enumerator/next_async", Test, NULL, setup, test_next_async, teardown);
- g_test_add ("/gck/enumerator/authenticate-interaction", Test, NULL, setup, test_authenticate_interaction, teardown);
- g_test_add ("/gck/enumerator/authenticate-compat", Test, NULL, setup, test_authenticate_compat, teardown);
- g_test_add ("/gck/enumerator/attributes", Test, NULL, setup, test_attributes, teardown);
- g_test_add ("/gck/enumerator/token_match", Test, NULL, setup, test_token_match, teardown);
-
- return egg_tests_run_in_thread_with_loop ();
-}
diff --git a/gck/tests/test-gck-module.c b/gck/tests/test-gck-module.c
deleted file mode 100644
index b5db530a..00000000
--- a/gck/tests/test-gck-module.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* test-gck-module.c - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2011 Collabora Ltd.
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include <errno.h>
-#include <glib.h>
-#include <string.h>
-
-#include "egg/egg-testing.h"
-
-#include "gck/gck.h"
-#include "gck/gck-test.h"
-
-typedef struct {
- GckModule *module;
-} Test;
-
-static void
-setup (Test *test, gconstpointer unused)
-{
- GError *err = NULL;
-
- /* Successful load */
- test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.so", NULL, &err);
- g_assert_no_error (err);
- g_assert (test->module);
-}
-
-static void
-teardown (Test *test, gconstpointer unused)
-{
- g_object_unref (test->module);
-}
-
-static void
-fetch_async_result (GObject *source, GAsyncResult *result, gpointer user_data)
-{
- *((GAsyncResult**)user_data) = result;
- g_object_ref (result);
- egg_test_wait_stop ();
-}
-
-static void
-test_initialize_async (void)
-{
- GckModule *module;
- GAsyncResult *result;
- GError *error = NULL;
-
- /* Shouldn't be able to load modules */
- gck_module_initialize_async (BUILDDIR "/.libs/libmock-test-module.so",
- NULL, fetch_async_result, &result);
-
- egg_test_wait_until (500);
- g_assert (result != NULL);
-
- /* Get the result */
- module = gck_module_initialize_finish (result, &error);
- g_assert_no_error (error);
- g_assert (GCK_IS_MODULE (module));
-
- g_object_unref (result);
- g_object_unref (module);
-}
-
-
-static void
-test_invalid_modules (Test *test, gconstpointer unused)
-{
- GckModule *invalid;
- GError *error = NULL;
-
- /* Shouldn't be able to load modules */
- invalid = gck_module_initialize ("blah-blah-non-existant", NULL, &error);
- g_assert_error (error, GCK_ERROR, (int)CKR_GCK_MODULE_PROBLEM);
- g_assert (invalid == NULL);
-
- g_clear_error (&error);
-
- /* Shouldn't be able to load any file successfully */
- invalid = gck_module_initialize ("/usr/lib/libm.so", NULL, &error);
- g_assert_error (error, GCK_ERROR, (int)CKR_GCK_MODULE_PROBLEM);
- g_assert (invalid == NULL);
-
- g_clear_error (&error);
-}
-
-static void
-test_module_equals_hash (Test *test, gconstpointer unused)
-{
- GckModule *other;
- GObject *obj;
- guint hash;
-
- hash = gck_module_hash (test->module);
- g_assert (hash != 0);
-
- g_assert (gck_module_equal (test->module, test->module));
-
- other = gck_module_new (gck_module_get_functions (test->module));
- obj = g_object_new (G_TYPE_OBJECT, NULL);
-
- g_assert (gck_module_equal (test->module, other));
-
- /* TODO: Could do with another test for inequality */
- g_assert (!gck_module_equal (test->module, obj));
-
- g_object_unref (other);
- g_object_unref (obj);
-}
-
-static void
-test_module_props (Test *test, gconstpointer unused)
-{
- gchar *path;
-
- g_object_get (test->module, "path", &path, NULL);
- g_assert (path != NULL && "no module-path");
- g_assert (strcmp (BUILDDIR "/.libs/libmock-test-module.so", path) == 0 && "module path wrong");
- g_free (path);
-}
-
-static void
-test_module_info (Test *test, gconstpointer unused)
-{
- GckModuleInfo *info;
-
- info = gck_module_get_info (test->module);
- g_assert (info != NULL && "no module info");
-
- g_assert (info->pkcs11_version_major == CRYPTOKI_VERSION_MAJOR && "wrong major version");
- g_assert (info->pkcs11_version_minor == CRYPTOKI_VERSION_MINOR && "wrong minor version");
- g_assert (strcmp ("TEST MANUFACTURER", info->manufacturer_id) == 0);
- g_assert (strcmp ("TEST LIBRARY", info->library_description) == 0);
- g_assert (0 == info->flags);
- g_assert (45 == info->library_version_major);
- g_assert (145 == info->library_version_minor);
-
- gck_module_info_free (info);
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
-
- g_test_add_func ("/gck/module/initialize_async", test_initialize_async);
- g_test_add ("/gck/module/invalid_modules", Test, NULL, setup, test_invalid_modules, teardown);
- g_test_add ("/gck/module/module_equals_hash", Test, NULL, setup, test_module_equals_hash, teardown);
- g_test_add ("/gck/module/module_props", Test, NULL, setup, test_module_props, teardown);
- g_test_add ("/gck/module/module_info", Test, NULL, setup, test_module_info, teardown);
-
- return egg_tests_run_in_thread_with_loop ();
-}
diff --git a/gck/tests/test-gck-modules.c b/gck/tests/test-gck-modules.c
deleted file mode 100644
index 246c771f..00000000
--- a/gck/tests/test-gck-modules.c
+++ /dev/null
@@ -1,210 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* test-gck-modules.c - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2011 Collabora Ltd.
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gck/gck.h"
-#include "gck/gck-mock.h"
-#include "gck/gck-private.h"
-#include "gck/gck-test.h"
-
-#include "egg/egg-testing.h"
-
-#include <glib.h>
-
-#include <errno.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-typedef struct {
- GList *modules;
-} Test;
-
-static void
-setup (Test *test, gconstpointer unused)
-{
- GckModule *module;
- GError *err = NULL;
-
- /* Successful load */
- module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.so", NULL, &err);
- g_assert_no_error (err);
- g_assert (GCK_IS_MODULE (module));
-
- test->modules = g_list_append (NULL, module);
-}
-
-static void
-teardown (Test *test, gconstpointer unused)
-{
- gck_list_unref_free (test->modules);
- test->modules = NULL;
-}
-
-static void
-test_enumerate_objects (Test *test, gconstpointer unused)
-{
- GckAttributes *attrs;
- GError *error = NULL;
- GckEnumerator *en;
- GList *objects;
-
- attrs = gck_attributes_new ();
- gck_attributes_add_string (attrs, CKA_LABEL, "Private Capitalize Key");
- en = gck_modules_enumerate_objects (test->modules, attrs, 0);
- g_assert (GCK_IS_ENUMERATOR (en));
- gck_attributes_unref (attrs);
-
- objects = gck_enumerator_next_n (en, -1, NULL, &error);
- g_assert_no_error (error);
- g_assert_cmpint (g_list_length (objects), ==, 1);
- g_assert (GCK_IS_OBJECT (objects->data));
-
- gck_list_unref_free (objects);
- g_object_unref (en);
-}
-
-
-static void
-test_token_for_uri (Test *test, gconstpointer unused)
-{
- GckSlot *slot;
- GError *error = NULL;
-
- slot = gck_modules_token_for_uri (test->modules, "pkcs11:token=TEST%20LABEL", &error);
- g_assert (GCK_IS_SLOT (slot));
-
- g_object_unref (slot);
-}
-
-static void
-test_token_for_uri_not_found (Test *test, gconstpointer unused)
-{
- GckSlot *slot;
- GError *error = NULL;
-
- slot = gck_modules_token_for_uri (test->modules, "pkcs11:token=UNKNOWN", &error);
- g_assert (slot == NULL);
- g_assert (error == NULL);
-}
-
-static void
-test_token_for_uri_error (Test *test, gconstpointer unused)
-{
- GckSlot *slot;
- GError *error = NULL;
-
- slot = gck_modules_token_for_uri (test->modules, "http://invalid.uri", &error);
- g_assert (slot == NULL);
- g_assert (error != NULL);
- g_assert (g_error_matches (error, GCK_URI_ERROR, GCK_URI_BAD_PREFIX));
- g_error_free (error);
-}
-
-static void
-test_object_for_uri (Test *test, gconstpointer unused)
-{
- GckObject *object;
- GError *error = NULL;
-
- object = gck_modules_object_for_uri (test->modules, "pkcs11:object=Public%20Capitalize%20Key;objecttype=public", 0, &error);
- g_assert (GCK_IS_OBJECT (object));
- g_object_unref (object);
-}
-
-static void
-test_object_for_uri_not_found (Test *test, gconstpointer unused)
-{
- GckObject *object;
- GError *error = NULL;
-
- object = gck_modules_object_for_uri (test->modules, "pkcs11:object=Unknown%20Label", 0, &error);
- g_assert (object == NULL);
- g_assert (error == NULL);
-}
-
-static void
-test_object_for_uri_error (Test *test, gconstpointer unused)
-{
- GckObject *object;
- GError *error = NULL;
-
- object = gck_modules_object_for_uri (test->modules, "http://invalid.uri", 0, &error);
- g_assert (object == NULL);
- g_assert (error != NULL);
- g_assert (g_error_matches (error, GCK_URI_ERROR, GCK_URI_BAD_PREFIX));
- g_error_free (error);
-}
-
-static void
-test_objects_for_uri (Test *test, gconstpointer unused)
-{
- GList *objects;
- GError *error = NULL;
-
- objects = gck_modules_objects_for_uri (test->modules, "pkcs11:token=TEST%20LABEL", 0, &error);
- g_assert (objects);
- g_assert (!error);
- g_assert_cmpint (g_list_length (objects), ==, 5);
-
- gck_list_unref_free (objects);
-}
-
-static void
-test_enumerate_uri (Test *test, gconstpointer unused)
-{
- GckEnumerator *en;
- GList *objects;
- GError *error = NULL;
-
- en = gck_modules_enumerate_uri (test->modules, "pkcs11:token=TEST%20LABEL", 0, &error);
- g_assert (GCK_IS_ENUMERATOR (en));
- g_assert (!error);
-
- objects = gck_enumerator_next_n (en, -1, NULL, &error);
- g_assert_cmpint (g_list_length (objects), ==, 5);
- g_assert (!error);
-
- g_object_unref (en);
- gck_list_unref_free (objects);
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
-
- g_test_add ("/gck/modules/enumerate_objects", Test, NULL, setup, test_enumerate_objects, teardown);
- g_test_add ("/gck/modules/token_for_uri", Test, NULL, setup, test_token_for_uri, teardown);
- g_test_add ("/gck/modules/token_for_uri_not_found", Test, NULL, setup, test_token_for_uri_not_found, teardown);
- g_test_add ("/gck/modules/token_for_uri_error", Test, NULL, setup, test_token_for_uri_error, teardown);
- g_test_add ("/gck/modules/object_for_uri", Test, NULL, setup, test_object_for_uri, teardown);
- g_test_add ("/gck/modules/object_for_uri_not_found", Test, NULL, setup, test_object_for_uri_not_found, teardown);
- g_test_add ("/gck/modules/object_for_uri_error", Test, NULL, setup, test_object_for_uri_error, teardown);
- g_test_add ("/gck/modules/objects_for_uri", Test, NULL, setup, test_objects_for_uri, teardown);
- g_test_add ("/gck/modules/enumerate_uri", Test, NULL, setup, test_enumerate_uri, teardown);
-
- return egg_tests_run_in_thread_with_loop ();
-}
diff --git a/gck/tests/test-gck-object.c b/gck/tests/test-gck-object.c
deleted file mode 100644
index f1026201..00000000
--- a/gck/tests/test-gck-object.c
+++ /dev/null
@@ -1,419 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* test-gck-object.c - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2011 Collabora Ltd.
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gck/gck.h"
-#include "gck/gck-mock.h"
-#include "gck/gck-test.h"
-
-#include "egg/egg-testing.h"
-
-#include <glib.h>
-
-#include <errno.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-typedef struct {
- GckModule *module;
- GckSlot *slot;
- GckSession *session;
- GckObject *object;
-} Test;
-
-static void
-setup (Test *test, gconstpointer unused)
-{
- GError *err = NULL;
- GList *slots;
-
- /* Successful load */
- test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.so", NULL, &err);
- g_assert_no_error (err);
- g_assert (GCK_IS_MODULE (test->module));
-
- slots = gck_module_get_slots (test->module, TRUE);
- g_assert (slots != NULL);
-
- test->slot = GCK_SLOT (slots->data);
- g_object_ref (test->slot);
- gck_list_unref_free (slots);
-
- test->session = gck_slot_open_session (test->slot, 0, NULL, &err);
- g_assert_no_error (err);
- g_assert (GCK_IS_SESSION (test->session));
-
- /* Our module always exports a token object with this */
- test->object = gck_object_from_handle (test->session, 2);
- g_assert (test->object != NULL);
-}
-
-static void
-teardown (Test *test, gconstpointer unused)
-{
- g_object_unref (test->object);
- g_object_unref (test->session);
- g_object_unref (test->slot);
- g_object_unref (test->module);
-}
-
-static void
-test_object_props (Test *test, gconstpointer unused)
-{
- GckSession *sess;
- GckModule *mod;
- CK_OBJECT_HANDLE handle;
- g_object_get (test->object, "session", &sess, "module", &mod, "handle", &handle, NULL);
- g_assert (test->session == sess);
- g_object_unref (sess);
- g_assert (test->module == mod);
- g_object_unref (mod);
- g_assert (handle == 2);
-}
-
-static void
-test_object_equals_hash (Test *test, gconstpointer unused)
-{
- GckSlot *other_slot;
- GckSession *other_session;
- GckObject *other_object;
- GObject *obj;
- GError *err = NULL;
- guint hash;
-
- hash = gck_object_hash (test->object);
- g_assert (hash != 0);
-
- g_assert (gck_object_equal (test->object, test->object));
-
- other_slot = g_object_new (GCK_TYPE_SLOT, "module", test->module, "handle", GCK_MOCK_SLOT_TWO_ID, NULL);
- other_session = gck_slot_open_session (other_slot, 0, NULL, &err);
- g_assert_no_error (err);
- g_assert (GCK_IS_SESSION (other_session));
- other_object = gck_object_from_handle (other_session, gck_object_get_handle (test->object));
- g_assert (!gck_object_equal (test->object, other_object));
- g_object_unref (other_slot);
- g_object_unref (other_session);
- g_object_unref (other_object);
-
- obj = g_object_new (G_TYPE_OBJECT, NULL);
- g_assert (!gck_object_equal (test->object, obj));
- g_object_unref (obj);
-
- other_object = gck_object_from_handle (test->session, 383838);
- g_assert (!gck_object_equal (test->object, other_object));
- g_object_unref (other_object);
-
- other_object = gck_object_from_handle (test->session, gck_object_get_handle (test->object));
- g_assert (gck_object_equal (test->object, other_object));
- g_object_unref (other_object);
-}
-
-static void
-fetch_async_result (GObject *source, GAsyncResult *result, gpointer user_data)
-{
- *((GAsyncResult**)user_data) = result;
- g_object_ref (result);
- egg_test_wait_stop ();
-}
-
-static void
-test_create_object (Test *test, gconstpointer unused)
-{
- GAsyncResult *result = NULL;
- GckAttributes *attrs;
- GckObject *object;
- CK_OBJECT_HANDLE last_handle;
- GError *err = NULL;
-
- attrs = gck_attributes_new ();
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_DATA);
- gck_attributes_add_string (attrs, CKA_LABEL, "TEST LABEL");
- gck_attributes_add_boolean (attrs, CKA_TOKEN, CK_FALSE);
- gck_attributes_add_data (attrs, CKA_VALUE, (const guchar *)"BLAH", 4);
-
- object = gck_session_create_object (test->session, attrs, NULL, &err);
- g_assert (GCK_IS_OBJECT (object));
- g_assert_no_error (err);
-
- last_handle = gck_object_get_handle (object);
- g_object_unref (object);
-
- /* Using async */
- gck_session_create_object_async (test->session, attrs, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
-
- object = gck_session_create_object_finish (test->session, result, &err);
- g_object_unref (result);
- g_assert_no_error (err);
- g_assert (GCK_IS_OBJECT (object));
-
- g_assert (last_handle != gck_object_get_handle (object));
- g_object_unref (object);
-
- gck_attributes_unref (attrs);
-}
-
-static void
-test_destroy_object (Test *test, gconstpointer unused)
-{
- GAsyncResult *result = NULL;
- GckAttributes *attrs;
- GckObject *object;
- GError *err = NULL;
- gboolean ret;
-
- attrs = gck_attributes_new ();
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_DATA);
- gck_attributes_add_string (attrs, CKA_LABEL, "TEST OBJECT");
- gck_attributes_add_boolean (attrs, CKA_TOKEN, CK_TRUE);
-
- /* Using simple */
- object = gck_session_create_object (test->session, attrs, NULL, &err);
- g_assert_no_error (err);
- g_assert (GCK_IS_OBJECT (object));
-
- ret = gck_object_destroy (object, NULL, &err);
- g_assert_no_error (err);
- g_assert (ret);
- g_object_unref (object);
-
- /* Using async */
- object = gck_session_create_object (test->session, attrs, NULL, &err);
- g_assert_no_error (err);
- g_assert (GCK_IS_OBJECT (object));
-
- /* Using async */
- gck_object_destroy_async (object, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
-
- ret = gck_object_destroy_finish (object, result, &err);
- g_object_unref (result);
- g_assert_no_error (err);
- g_assert (ret);
- g_object_unref (object);
-}
-
-static void
-test_get_attributes (Test *test, gconstpointer unused)
-{
- GAsyncResult *result = NULL;
- GckAttributes *attrs;
- gulong attr_types[2];
- GError *err = NULL;
- gulong klass;
- gchar *value = NULL;
-
- attr_types[0] = CKA_CLASS;
- attr_types[1] = CKA_LABEL;
-
- /* Simple */
- attrs = gck_object_get (test->object, NULL, &err, CKA_CLASS, CKA_LABEL, GCK_INVALID);
- g_assert_no_error (err);
- if (attrs != NULL) {
- g_assert (gck_attributes_find_ulong (attrs, CKA_CLASS, &klass) && klass == CKO_DATA);
- g_assert (gck_attributes_find_string (attrs, CKA_LABEL, &value) && strcmp (value, "TEST LABEL") == 0);
- g_free (value); value = NULL;
- }
- gck_attributes_unref (attrs);
-
- /* Full */
- attrs = gck_object_get_full (test->object, attr_types, G_N_ELEMENTS (attr_types), NULL, &err);
- g_assert_no_error (err);
- g_assert (attrs);
- g_assert (gck_attributes_find_ulong (attrs, CKA_CLASS, &klass) && klass == CKO_DATA);
- g_assert (gck_attributes_find_string (attrs, CKA_LABEL, &value) && strcmp (value, "TEST LABEL") == 0);
- g_free (value); value = NULL;
- gck_attributes_unref (attrs);
-
- /* Async */
- gck_object_get_async (test->object, attr_types, G_N_ELEMENTS (attr_types), NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
-
- attrs = gck_object_get_finish (test->object, result, &err);
- g_object_unref (result);
- g_assert_no_error (err);
- g_assert (attrs);
- g_assert (gck_attributes_find_ulong (attrs, CKA_CLASS, &klass) && klass == CKO_DATA);
- g_assert (gck_attributes_find_string (attrs, CKA_LABEL, &value) && strcmp (value, "TEST LABEL") == 0);
- g_free (value); value = NULL;
- gck_attributes_unref (attrs);
-}
-
-static void
-test_get_data_attribute (Test *test, gconstpointer unused)
-{
- GAsyncResult *result = NULL;
- CK_OBJECT_CLASS_PTR klass;
- gsize n_data;
- GError *err = NULL;
-
- /* Simple */
- klass = (gulong *)gck_object_get_data (test->object, CKA_CLASS, NULL, &n_data, &err);
- g_assert_no_error (err);
- g_assert (klass);
- g_assert (n_data == sizeof (CK_OBJECT_CLASS));
- g_assert (*klass == CKO_DATA);
- g_free (klass);
-
- /* Full */
- klass = (gulong *)gck_object_get_data_full (test->object, CKA_CLASS, NULL, NULL, &n_data, &err);
- g_assert_no_error (err);
- g_assert (klass);
- g_assert (n_data == sizeof (CK_OBJECT_CLASS));
- g_assert (*klass == CKO_DATA);
- g_free (klass);
-
- /* Async */
- gck_object_get_data_async (test->object, CKA_CLASS, NULL, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
-
- klass = (gulong *)gck_object_get_data_finish (test->object, result, &n_data, &err);
- g_object_unref (result);
- g_assert_no_error (err);
- g_assert (klass);
- g_assert (n_data == sizeof (CK_OBJECT_CLASS));
- g_assert (*klass == CKO_DATA);
- g_free (klass);
-
-}
-
-static void
-test_set_attributes (Test *test, gconstpointer unused)
-{
- GAsyncResult *result = NULL;
- GckAttributes *attrs, *templ;
- GError *err = NULL;
- gulong klass;
- gchar *value = NULL;
- gboolean ret;
-
- templ = gck_attributes_new ();
- gck_attributes_add_ulong (templ, CKA_CLASS, 6);
- gck_attributes_add_string (templ, CKA_LABEL, "CHANGE TWO");
-
- /* Full */
- ret = gck_object_set (test->object, templ, NULL, &err);
- gck_attributes_unref (templ);
- g_assert_no_error (err);
- g_assert (ret);
- attrs = gck_object_get (test->object, NULL, &err, CKA_CLASS, CKA_LABEL, GCK_INVALID);
- g_assert (gck_attributes_find_ulong (attrs, CKA_CLASS, &klass) && klass == 6);
- g_assert (gck_attributes_find_string (attrs, CKA_LABEL, &value) && strcmp (value, "CHANGE TWO") == 0);
- g_free (value); value = NULL;
- gck_attributes_unref (attrs);
-
- templ = gck_attributes_new ();
- gck_attributes_add_ulong (templ, CKA_CLASS, 7);
- gck_attributes_add_string (templ, CKA_LABEL, "CHANGE THREE");
-
- /* Async */
- gck_object_set_async (test->object, templ, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
-
- ret = gck_object_set_finish (test->object, result, &err);
- g_object_unref (result);
- g_assert_no_error (err);
- g_assert (ret);
- attrs = gck_object_get (test->object, NULL, &err, CKA_CLASS, CKA_LABEL, GCK_INVALID);
- g_assert (gck_attributes_find_ulong (attrs, CKA_CLASS, &klass) && klass == 7);
- g_assert (gck_attributes_find_string (attrs, CKA_LABEL, &value) && strcmp (value, "CHANGE THREE") == 0);
- g_free (value); value = NULL;
- gck_attributes_unref (attrs);
-}
-
-static void
-test_find_objects (Test *test, gconstpointer unused)
-{
- GAsyncResult *result = NULL;
- GckAttributes *templ, *attrs;
- GList *objects;
- GckObject *testobj;
- GError *err = NULL;
-
- attrs = gck_attributes_new ();
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_DATA);
- gck_attributes_add_string (attrs, CKA_LABEL, "UNIQUE LABEL");
- testobj = gck_session_create_object (test->session, attrs, NULL, &err);
- gck_attributes_unref (attrs);
- g_object_unref (testobj);
-
- attrs = gck_attributes_new ();
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_DATA);
- gck_attributes_add_string (attrs, CKA_LABEL, "OTHER LABEL");
- testobj = gck_session_create_object (test->session, attrs, NULL, &err);
- gck_attributes_unref (attrs);
- g_object_unref (testobj);
-
- /* Simple, "TEST LABEL" */
- attrs = gck_attributes_new ();
- gck_attributes_add_string (attrs, CKA_LABEL, "UNIQUE LABEL");
- objects = gck_session_find_objects (test->session, attrs, NULL, &err);
- g_assert_no_error (err);
- g_assert (g_list_length (objects) == 1);
- gck_list_unref_free (objects);
- gck_attributes_unref (attrs);
-
- /* Full, All */
- templ = gck_attributes_new ();
- objects = gck_session_find_objects (test->session, templ, NULL, &err);
- g_assert_no_error (err);
- g_assert (g_list_length (objects) > 1);
- gck_list_unref_free (objects);
-
- /* Async, None */
- gck_attributes_add_string (templ, CKA_LABEL, "blah blah");
- gck_session_find_objects_async (test->session, templ, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
-
- objects = gck_session_find_objects_finish (test->session, result, &err);
- g_object_unref (result);
- g_assert (objects == NULL);
- gck_list_unref_free (objects);
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
-
- g_test_add ("/gck/object/object_props", Test, NULL, setup, test_object_props, teardown);
- g_test_add ("/gck/object/object_equals_hash", Test, NULL, setup, test_object_equals_hash, teardown);
- g_test_add ("/gck/object/create_object", Test, NULL, setup, test_create_object, teardown);
- g_test_add ("/gck/object/destroy_object", Test, NULL, setup, test_destroy_object, teardown);
- g_test_add ("/gck/object/get_attributes", Test, NULL, setup, test_get_attributes, teardown);
- g_test_add ("/gck/object/get_data_attribute", Test, NULL, setup, test_get_data_attribute, teardown);
- g_test_add ("/gck/object/set_attributes", Test, NULL, setup, test_set_attributes, teardown);
- g_test_add ("/gck/object/find_objects", Test, NULL, setup, test_find_objects, teardown);
-
- return egg_tests_run_in_thread_with_loop ();
-}
diff --git a/gck/tests/test-gck-session.c b/gck/tests/test-gck-session.c
deleted file mode 100644
index 632a7600..00000000
--- a/gck/tests/test-gck-session.c
+++ /dev/null
@@ -1,319 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* test-gck-session.c - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2011 Collabora Ltd.
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gck/gck.h"
-#include "gck/gck-test.h"
-
-#include "egg/egg-testing.h"
-
-#include <glib.h>
-
-#include <errno.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-typedef struct {
- GckModule *module;
- GckSlot *slot;
- GckSession *session;
-} Test;
-
-static void
-setup (Test *test, gconstpointer unused)
-{
- GError *err = NULL;
- GList *slots;
-
- /* Successful load */
- test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.so", NULL, &err);
- g_assert_no_error (err);
- g_assert (GCK_IS_MODULE (test->module));
-
- slots = gck_module_get_slots (test->module, TRUE);
- g_assert (slots != NULL);
-
- test->slot = GCK_SLOT (slots->data);
- g_object_ref (test->slot);
- gck_list_unref_free (slots);
-
- test->session = gck_slot_open_session (test->slot, 0, NULL, &err);
- g_assert_no_error (err);
- g_assert (GCK_IS_SESSION (test->session));
-}
-
-static void
-teardown (Test *test, gconstpointer unused)
-{
- g_object_unref (test->session);
- g_object_unref (test->slot);
- g_object_unref (test->module);
-}
-
-static void
-test_session_props (Test *test, gconstpointer unused)
-{
- GckModule *mod;
- GckSlot *sl;
- gulong handle;
-
- g_object_get (test->session, "module", &mod, "handle", &handle, "slot", &sl, NULL);
- g_assert (mod == test->module);
- g_assert (sl == test->slot);
- g_object_unref (mod);
- g_object_unref (sl);
-
- g_assert (handle != 0);
- g_assert (gck_session_get_handle (test->session) == handle);
-}
-
-static void
-test_session_info (Test *test, gconstpointer unused)
-{
- GckSessionInfo *info;
-
- info = gck_session_get_info (test->session);
- g_assert (info != NULL && "no session info");
-
- g_assert (info->slot_id == gck_slot_get_handle (test->slot));
- g_assert ((info->flags & CKF_SERIAL_SESSION) == CKF_SERIAL_SESSION);
- g_assert (info->device_error == 1414);
- gck_session_info_free (info);
-}
-
-static void
-fetch_async_result (GObject *source, GAsyncResult *result, gpointer user_data)
-{
- *((GAsyncResult**)user_data) = result;
- g_object_ref (result);
- egg_test_wait_stop ();
-}
-
-static void
-test_open_close_session (Test *test, gconstpointer unused)
-{
- GckSession *sess;
- GAsyncResult *result = NULL;
- GError *err = NULL;
-
- sess = gck_slot_open_session (test->slot, 0, NULL, &err);
- g_assert_no_error (err);
- g_assert (GCK_IS_SESSION (sess));
-
- g_object_unref (sess);
-
- /* Test opening async */
- gck_slot_open_session_async (test->slot, 0, NULL, fetch_async_result, &result);
-
- egg_test_wait_until (500);
- g_assert (result != NULL);
-
- /* Get the result */
- sess = gck_slot_open_session_finish (test->slot, result, &err);
- g_assert_no_error (err);
- g_assert (GCK_IS_SESSION (sess));
-
- g_object_unref (result);
- g_object_unref (sess);
-}
-
-static void
-test_init_set_pin (Test *test, gconstpointer unused)
-{
- GAsyncResult *result = NULL;
- GError *err = NULL;
- gboolean ret;
-
- /* init pin */
- ret = gck_session_init_pin (test->session, (guchar*)"booo", 4, NULL, &err);
- g_assert_no_error (err);
- g_assert (ret);
-
- /* set pin */
- ret = gck_session_set_pin (test->session, (guchar*)"booo", 4, (guchar*)"tooo", 4, NULL, &err);
- g_assert_no_error (err);
- g_assert (ret);
-
- /* init pin async */
- gck_session_init_pin_async (test->session, (guchar*)"booo", 4, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
- ret = gck_session_init_pin_finish (test->session, result, &err);
- g_assert_no_error (err);
- g_assert (ret);
- g_object_unref (result);
- result = NULL;
-
- /* set pin async */
- gck_session_set_pin_async (test->session, (guchar*)"booo", 4, (guchar*)"tooo", 4, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
- ret = gck_session_set_pin_finish (test->session, result, &err);
- g_assert_no_error (err);
- g_assert (ret);
- g_object_unref (result);
- result = NULL;
-}
-
-
-static void
-test_login_logout (Test *test, gconstpointer unused)
-{
- GAsyncResult *result = NULL;
- GError *err = NULL;
- gboolean ret;
-
- /* login/logout */
- ret = gck_session_login (test->session, CKU_USER, (guchar*)"booo", 4, NULL, &err);
- g_assert_no_error (err);
- g_assert (ret);
-
- ret = gck_session_logout (test->session, NULL, &err);
- g_assert_no_error (err);
- g_assert (ret);
-
- /* login async */
- gck_session_login_async (test->session, CKU_USER, (guchar*)"booo", 4, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
-
- ret = gck_session_login_finish (test->session, result, &err);
- g_assert_no_error (err);
- g_assert (ret);
-
- g_object_unref (result);
- result = NULL;
-
- /* logout async */
- gck_session_logout_async (test->session, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
-
- ret = gck_session_logout_finish (test->session, result, &err);
- g_assert_no_error (err);
- g_assert (ret);
-
- g_object_unref (result);
- result = NULL;
-
-}
-
-static gboolean
-authenticate_token (GckModule *module, GckSlot *slot, gchar *label, gchar **password, gpointer unused)
-{
- g_assert (unused == GUINT_TO_POINTER (35));
- g_assert (password != NULL);
- g_assert (*password == NULL);
- g_assert (GCK_IS_MODULE (module));
- g_assert (GCK_IS_SLOT (slot));
-
- *password = g_strdup ("booo");
- return TRUE;
-}
-
-static void
-test_auto_login (Test *test, gconstpointer unused)
-{
- GckObject *object;
- GckSession *new_session;
- GAsyncResult *result = NULL;
- GError *err = NULL;
- GckAttributes *attrs;
- gboolean ret;
-
- attrs = gck_attributes_new ();
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_DATA);
- gck_attributes_add_string (attrs, CKA_LABEL, "TEST OBJECT");
- gck_attributes_add_boolean (attrs, CKA_PRIVATE, CK_TRUE);
-
- /* Try to do something that requires a login */
- object = gck_session_create_object (test->session, attrs, NULL, &err);
- g_assert (!object);
- g_assert (err && err->code == CKR_USER_NOT_LOGGED_IN);
- g_clear_error (&err);
-
- /* Setup for auto login */
- g_signal_connect (test->module, "authenticate-slot", G_CALLBACK (authenticate_token), GUINT_TO_POINTER (35));
- new_session = gck_slot_open_session (test->slot, GCK_SESSION_READ_WRITE | GCK_SESSION_LOGIN_USER, NULL, &err);
- g_assert_no_error (err);
- g_assert (GCK_IS_SESSION (new_session));
-
- /* Try again to do something that requires a login */
- object = gck_session_create_object (new_session, attrs, NULL, &err);
- g_assert_no_error (err);
- g_assert (GCK_IS_OBJECT (object));
- g_object_unref (object);
-
- /* We should now be logged in, try to log out */
- ret = gck_session_logout (new_session, NULL, &err);
- g_assert_no_error (err);
- g_assert (ret);
-
- g_object_unref (new_session);
-
- /* Now try the same thing, but asyncronously */
- gck_slot_open_session_async (test->slot, GCK_SESSION_READ_WRITE | GCK_SESSION_LOGIN_USER, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
- new_session = gck_slot_open_session_finish (test->slot, result, &err);
- g_assert_no_error (err);
- g_assert (GCK_IS_SESSION (new_session));
- g_object_unref (result);
-
- result = NULL;
- gck_session_create_object_async (new_session, attrs, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result != NULL);
- object = gck_session_create_object_finish (new_session, result, &err);
- g_assert_no_error (err);
- g_assert (GCK_IS_OBJECT (object));
- g_object_unref (result);
- g_object_unref (object);
-
- /* We should now be logged in, try to log out */
- ret = gck_session_logout (new_session, NULL, &err);
- g_assert_no_error (err);
- g_assert (ret);
-
- g_object_unref (new_session);
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
-
- g_set_prgname ("test-gck-session");
-
- g_test_add ("/gck/session/session_props", Test, NULL, setup, test_session_props, teardown);
- g_test_add ("/gck/session/session_info", Test, NULL, setup, test_session_info, teardown);
- g_test_add ("/gck/session/open_close_session", Test, NULL, setup, test_open_close_session, teardown);
- g_test_add ("/gck/session/init_set_pin", Test, NULL, setup, test_init_set_pin, teardown);
- g_test_add ("/gck/session/login_logout", Test, NULL, setup, test_login_logout, teardown);
- g_test_add ("/gck/session/auto_login", Test, NULL, setup, test_auto_login, teardown);
-
- return egg_tests_run_in_thread_with_loop ();
-}
diff --git a/gck/tests/test-gck-slot.c b/gck/tests/test-gck-slot.c
deleted file mode 100644
index affc3b26..00000000
--- a/gck/tests/test-gck-slot.c
+++ /dev/null
@@ -1,257 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* test-gck-slot.c - the GObject PKCS#11 wrapper library
-
- Copyright (C) 2011 Collabora Ltd.
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include <errno.h>
-#include <glib.h>
-#include <string.h>
-
-#include "gck/gck.h"
-#include "gck/gck-private.h"
-#include "gck/gck-test.h"
-
-typedef struct {
- GckModule *module;
- GckSlot *slot;
-} Test;
-
-static void
-setup (Test *test, gconstpointer unused)
-{
- GError *err = NULL;
- GList *slots;
-
- /* Successful load */
- test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.so", NULL, &err);
- g_assert_no_error (err);
- g_assert (GCK_IS_MODULE (test->module));
-
- slots = gck_module_get_slots (test->module, TRUE);
- g_assert (slots != NULL);
-
- test->slot = GCK_SLOT (slots->data);
- g_object_ref (test->slot);
- gck_list_unref_free (slots);
-
-}
-
-static void
-teardown (Test *test, gconstpointer unused)
-{
- g_object_unref (test->slot);
- g_object_unref (test->module);
-}
-
-static void
-test_slot_info (Test *test, gconstpointer unused)
-{
- GckSlotInfo *info;
- GckTokenInfo *token;
- GList *slots, *l;
-
- slots = gck_module_get_slots (test->module, FALSE);
- g_assert (2 == g_list_length (slots) && "wrong number of slots returned");
- g_assert (GCK_IS_SLOT (slots->data) && "missing slot one");
- g_assert (GCK_IS_SLOT (slots->next->data) && "missing slot two");
-
- for (l = slots; l; l = g_list_next (l)) {
- info = gck_slot_get_info (GCK_SLOT (l->data));
- g_assert (info != NULL && "no slot info");
-
- g_assert (strcmp("TEST MANUFACTURER", info->manufacturer_id) == 0);
- g_assert (strcmp("TEST SLOT", info->slot_description) == 0);
- g_assert (55 == info->hardware_version_major);
- g_assert (155 == info->hardware_version_minor);
- g_assert (65 == info->firmware_version_major);
- g_assert (165 == info->firmware_version_minor);
-
- if (info->flags & CKF_TOKEN_PRESENT) {
- token = gck_slot_get_token_info (test->slot);
- g_assert (token != NULL && "no token info");
-
- g_assert (strcmp ("TEST MANUFACTURER", token->manufacturer_id) == 0);
- g_assert (strcmp ("TEST LABEL", token->label) == 0);
- g_assert (strcmp ("TEST MODEL", token->model) == 0);
- g_assert (strcmp ("TEST SERIAL", token->serial_number) == 0);
- g_assert (1 == token->max_session_count);
- g_assert (2 == token->session_count);
- g_assert (3 == token->max_rw_session_count);
- g_assert (4 == token->rw_session_count);
- g_assert (5 == token->max_pin_len);
- g_assert (6 == token->min_pin_len);
- g_assert (7 == token->total_public_memory);
- g_assert (8 == token->free_public_memory);
- g_assert (9 == token->total_private_memory);
- g_assert (10 == token->free_private_memory);
- g_assert (75 == token->hardware_version_major);
- g_assert (175 == token->hardware_version_minor);
- g_assert (85 == token->firmware_version_major);
- g_assert (185 == token->firmware_version_minor);
- g_assert (927623999 == token->utc_time);
-
- gck_token_info_free (token);
- }
-
- gck_slot_info_free (info);
- }
-
- gck_list_unref_free (slots);
-}
-
-static void
-test_slot_props (Test *test, gconstpointer unused)
-{
- GckModule *mod;
- CK_SLOT_ID slot_id;
-
- g_object_get (test->slot, "module", &mod, "handle", &slot_id, NULL);
- g_assert (mod == test->module);
- g_assert (slot_id == 52);
-
- g_object_unref (mod);
-}
-
-static void
-test_slot_equals_hash (Test *test, gconstpointer unused)
-{
- GckModule *other_mod;
- GckSlot *other_slot;
- GObject *obj;
- guint hash;
-
- hash = gck_slot_hash (test->slot);
- g_assert (hash != 0);
-
- g_assert (gck_slot_equal (test->slot, test->slot));
-
- other_mod = gck_module_new (gck_module_get_functions (test->module));
- other_slot = g_object_new (GCK_TYPE_SLOT, "module", other_mod, "handle", gck_slot_get_handle (test->slot), NULL);
- g_assert (gck_slot_equal (test->slot, other_slot));
- g_object_unref (other_mod);
- g_object_unref (other_slot);
-
- obj = g_object_new (G_TYPE_OBJECT, NULL);
- g_assert (!gck_slot_equal (test->slot, obj));
- g_object_unref (obj);
-
- other_slot = g_object_new (GCK_TYPE_SLOT, "module", test->module, "handle", 8909, NULL);
- g_assert (!gck_slot_equal (test->slot, obj));
- g_object_unref (other_slot);
-}
-
-static void
-test_slot_mechanisms (Test *test, gconstpointer unused)
-{
- GArray *mechs;
- GckMechanismInfo *info;
- guint i;
-
- mechs = gck_slot_get_mechanisms (test->slot);
- g_assert (2 == gck_mechanisms_length (mechs) && "wrong number of mech types returned");
-
- for (i = 0; i < gck_mechanisms_length (mechs); ++i) {
-
- info = gck_slot_get_mechanism_info (test->slot, gck_mechanisms_at (mechs, i));
- g_assert (info != NULL && "no mech info returned");
-
- gck_mechanism_info_free (info);
- }
-
- gck_mechanisms_free (mechs);
-}
-
-static void
-test_token_info_match_null (Test *test, gconstpointer unused)
-{
- GckTokenInfo *match;
- GckTokenInfo *token;
- gboolean ret;
-
- token = gck_slot_get_token_info (test->slot);
- match = g_new0 (GckTokenInfo, 1);
-
- /* Should match, since no fields are set */
- ret = _gck_token_info_match (match, token);
- g_assert (ret);
-
- gck_token_info_free (match);
- gck_token_info_free (token);
-}
-
-static void
-test_token_info_match_label (Test *test, gconstpointer unused)
-{
- GckTokenInfo *match;
- GckTokenInfo *token;
- gboolean ret;
-
- token = gck_slot_get_token_info (test->slot);
- match = g_new0 (GckTokenInfo, 1);
-
- /* Should match since the label and serial are matching */
- match->label = g_strdup (token->label);
- match->serial_number = g_strdup (token->serial_number);
- ret = _gck_token_info_match (match, token);
- g_assert (ret);
-
- gck_token_info_free (match);
- gck_token_info_free (token);
-}
-
-static void
-test_token_info_match_different (Test *test, gconstpointer unused)
-{
- GckTokenInfo *match;
- GckTokenInfo *token;
- gboolean ret;
-
- token = gck_slot_get_token_info (test->slot);
- match = g_new0 (GckTokenInfo, 1);
-
- /* Should not match since serial is different */
- match->label = g_strdup (token->label);
- match->serial_number = g_strdup ("393939393939393");
- ret = _gck_token_info_match (match, token);
- g_assert (!ret);
-
- gck_token_info_free (match);
- gck_token_info_free (token);
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
-
- g_test_add ("/gck/slot/slot_info", Test, NULL, setup, test_slot_info, teardown);
- g_test_add ("/gck/slot/slot_props", Test, NULL, setup, test_slot_props, teardown);
- g_test_add ("/gck/slot/slot_equals_hash", Test, NULL, setup, test_slot_equals_hash, teardown);
- g_test_add ("/gck/slot/slot_mechanisms", Test, NULL, setup, test_slot_mechanisms, teardown);
- g_test_add ("/gck/slot/token_info_match_null", Test, NULL, setup, test_token_info_match_null, teardown);
- g_test_add ("/gck/slot/token_info_match_label", Test, NULL, setup, test_token_info_match_label, teardown);
- g_test_add ("/gck/slot/token_info_match_different", Test, NULL, setup, test_token_info_match_different, teardown);
-
- return g_test_run ();
-}
diff --git a/gck/tests/test-gck-uri.c b/gck/tests/test-gck-uri.c
deleted file mode 100644
index b8d640f0..00000000
--- a/gck/tests/test-gck-uri.c
+++ /dev/null
@@ -1,556 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* test-gck-uri.c: Test routines for PKCS#11 URIs
-
- Copyright (C) 2011, Collabora Ltd.
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gck/gck.h"
-#include "gck/gck-private.h"
-#include "gck/gck-test.h"
-
-#include <glib.h>
-
-#include <errno.h>
-#include <string.h>
-
-static void
-test_parse (void)
-{
- GError *error = NULL;
- GckUriData *uri_data;
-
- uri_data = gck_uri_parse ("pkcs11:", GCK_URI_FOR_MODULE, &error);
- g_assert (uri_data != NULL);
- g_assert_no_error (error);
-
- g_assert (uri_data->attributes == NULL);
- g_assert (uri_data->token_info == NULL);
-
- g_assert (uri_data->module_info != NULL);
- g_assert (uri_data->module_info->library_description == NULL);
- g_assert (uri_data->module_info->manufacturer_id == NULL);
-
- gck_uri_data_free (uri_data);
-}
-
-static void
-test_parse_bad_scheme (void)
-{
- GError *error = NULL;
- GckUriData *uri_data;
-
- uri_data = gck_uri_parse ("http:\\example.com\test", GCK_URI_FOR_ANY, &error);
- g_assert (uri_data == NULL);
- g_assert_error (error, GCK_URI_ERROR, GCK_URI_BAD_PREFIX);
- g_error_free (error);
-}
-
-static void
-test_parse_with_label (void)
-{
- GError *error = NULL;
- GckUriData *uri_data;
- gchar *value;
-
- uri_data = gck_uri_parse ("pkcs11:object=Test%20Label", GCK_URI_FOR_ANY, &error);
- g_assert (uri_data != NULL);
- g_assert (uri_data->attributes != NULL);
-
- if (!gck_attributes_find_string (uri_data->attributes, CKA_LABEL, &value))
- g_assert_not_reached ();
-
- g_assert_cmpstr (value, ==, "Test Label");
- g_free (value);
-
- gck_uri_data_free (uri_data);
-}
-
-static void
-test_parse_with_label_and_klass (void)
-{
- GError *error = NULL;
- GckUriData *uri_data;
- gchar *value;
- gulong klass;
-
- uri_data = gck_uri_parse ("pkcs11:object=Test%20Label;objecttype=cert", GCK_URI_FOR_ANY, &error);
- g_assert (uri_data);
- g_assert (uri_data->attributes);
-
- if (!gck_attributes_find_string (uri_data->attributes, CKA_LABEL, &value))
- g_assert_not_reached ();
-
- if (!gck_attributes_find_ulong (uri_data->attributes, CKA_CLASS, &klass))
- g_assert_not_reached ();
-
- g_assert_cmpstr (value, ==, "Test Label");
- g_assert (klass == CKO_CERTIFICATE);
- g_free (value);
-
- gck_uri_data_free (uri_data);
-}
-
-static void
-test_parse_with_id (void)
-{
- GError *error = NULL;
- GckAttribute *attr;
- GckUriData *uri_data;
-
- uri_data = gck_uri_parse ("pkcs11:id=%54%45%53%54%00", GCK_URI_FOR_OBJECT, &error);
- g_assert (uri_data != NULL);
- g_assert (uri_data->attributes != NULL);
-
- attr = gck_attributes_find (uri_data->attributes, CKA_ID);
- g_assert (attr);
- g_assert (attr->value);
- g_assert (attr->length == 5);
- g_assert (memcmp (attr->value, "TEST", 5) == 0);
-
- gck_uri_data_free (uri_data);
-}
-
-static void
-test_parse_with_bad_string_encoding (void)
-{
- GError *error = NULL;
- GckUriData *uri_data;
-
- uri_data = gck_uri_parse ("pkcs11:object=Test%", GCK_URI_FOR_OBJECT, &error);
- g_assert (uri_data == NULL);
- g_assert_error (error, GCK_URI_ERROR, GCK_URI_BAD_ENCODING);
- g_error_free (error);
-}
-
-static void
-test_parse_with_bad_binary_encoding (void)
-{
- GError *error = NULL;
- GckUriData *uri_data;
- uri_data = gck_uri_parse ("pkcs11:id=%%", GCK_URI_FOR_ANY, &error);
- g_assert (!uri_data);
- g_assert_error (error, GCK_URI_ERROR, GCK_URI_BAD_ENCODING);
- g_error_free (error);
-}
-
-static void
-test_parse_with_token (void)
-{
- GError *error = NULL;
- GckUriData *uri_data = NULL;
-
- uri_data = gck_uri_parse ("pkcs11:token=Token%20Label;serial=3333;model=Deluxe;manufacturer=Me",
- GCK_URI_FOR_TOKEN, &error);
-
- g_assert (uri_data);
- g_assert (uri_data->token_info);
- g_assert_cmpstr (uri_data->token_info->label, ==, "Token Label");
- g_assert_cmpstr (uri_data->token_info->serial_number, ==, "3333");
- g_assert_cmpstr (uri_data->token_info->model, ==, "Deluxe");
- g_assert_cmpstr (uri_data->token_info->manufacturer_id, ==, "Me");
- gck_uri_data_free (uri_data);
-}
-
-static void
-test_parse_with_token_bad_encoding (void)
-{
- GError *error = NULL;
- GckUriData *uri_data;
-
- uri_data = gck_uri_parse ("pkcs11:token=Token%", GCK_URI_FOR_TOKEN, &error);
- g_assert (!uri_data);
- g_assert_error (error, GCK_URI_ERROR, GCK_URI_BAD_ENCODING);
- g_error_free (error);
-}
-
-static void
-test_parse_with_bad_syntax (void)
-{
- GError *error = NULL;
- GckUriData *uri_data;
-
- uri_data = gck_uri_parse ("pkcs11:token", GCK_URI_FOR_ANY, &error);
- g_assert (uri_data == NULL);
- g_assert (g_error_matches (error, GCK_URI_ERROR, GCK_URI_BAD_SYNTAX));
- g_error_free (error);
-}
-
-static void
-test_parse_with_library (void)
-{
- GError *error = NULL;
- GckUriData *uri_data = NULL;
-
- uri_data = gck_uri_parse ("pkcs11:library-description=The%20Library;library-manufacturer=Me",
- GCK_URI_FOR_MODULE, &error);
-
- g_assert (uri_data);
- g_assert (uri_data->module_info);
- g_assert_cmpstr (uri_data->module_info->manufacturer_id, ==, "Me");
- g_assert_cmpstr (uri_data->module_info->library_description, ==, "The Library");
- gck_uri_data_free (uri_data);
-}
-
-static void
-test_parse_with_library_bad_encoding (void)
-{
- GError *error = NULL;
- GckUriData *uri_data;
-
- uri_data = gck_uri_parse ("pkcs11:library-description=Library%", GCK_URI_FOR_MODULE, &error);
- g_assert (!uri_data);
- g_assert_error (error, GCK_URI_ERROR, GCK_URI_BAD_ENCODING);
- g_error_free (error);
-}
-
-static void
-test_build_empty (void)
-{
- GckUriData uri_data;
- gchar *uri;
-
- memset (&uri_data, 0, sizeof (uri_data));
- uri = gck_uri_build (&uri_data, 0);
- g_assert_cmpstr (uri, ==, "pkcs11:");
- g_free (uri);
-}
-
-static void
-test_build_with_token_info (void)
-{
- gchar *uri = NULL;
- GckUriData uri_data;
- GckUriData *check;
-
- memset (&uri_data, 0, sizeof (uri_data));
- uri_data.token_info = g_new0 (GckTokenInfo, 1);
- uri_data.token_info->label = g_strdup ("The Label");
- uri_data.token_info->serial_number = g_strdup ("44444");
- uri_data.token_info->manufacturer_id = g_strdup ("Me");
- uri_data.token_info->model = g_strdup ("Deluxe");
-
- uri = gck_uri_build (&uri_data, GCK_URI_FOR_TOKEN);
- g_assert (uri);
-
- check = gck_uri_parse (uri, GCK_URI_FOR_TOKEN, NULL);
- g_assert (check);
- g_assert (check->token_info);
-
- g_assert (_gck_token_info_match (uri_data.token_info, check->token_info));
-
- gck_token_info_free (uri_data.token_info);
- gck_uri_data_free (check);
-
- g_assert (g_str_has_prefix (uri, "pkcs11:"));
- g_assert (strstr (uri, "token=The%20Label"));
- g_assert (strstr (uri, "serial=44444"));
- g_assert (strstr (uri, "manufacturer=Me"));
- g_assert (strstr (uri, "model=Deluxe"));
-
- g_free (uri);
-}
-
-static void
-test_build_with_token_null_info (void)
-{
- gchar *uri = NULL;
- GckUriData uri_data;
-
- memset (&uri_data, 0, sizeof (uri_data));
- uri_data.token_info = g_new0 (GckTokenInfo, 1);
- uri_data.token_info->label = g_strdup ("The Label");
-
- uri = gck_uri_build (&uri_data, GCK_URI_FOR_TOKEN);
- g_assert (uri);
-
- g_assert (g_str_has_prefix (uri, "pkcs11:"));
- g_assert (strstr (uri, "token=The%20Label"));
- g_assert (!strstr (uri, "serial="));
-
- gck_token_info_free (uri_data.token_info);
- g_free (uri);
-}
-
-static void
-test_build_with_token_empty_info (void)
-{
- gchar *uri = NULL;
- GckUriData uri_data;
-
- memset (&uri_data, 0, sizeof (uri_data));
- uri_data.token_info = g_new0 (GckTokenInfo, 1);
- uri_data.token_info->label = g_strdup ("The Label");
- uri_data.token_info->serial_number = g_strdup ("");
-
- uri = gck_uri_build (&uri_data, GCK_URI_FOR_TOKEN);
- g_assert (uri);
-
- g_assert (g_str_has_prefix (uri, "pkcs11:"));
- g_assert (strstr (uri, "token=The%20Label"));
- g_assert (strstr (uri, "serial="));
-
- gck_token_info_free (uri_data.token_info);
- g_free (uri);
-}
-
-static void
-test_build_with_attributes (void)
-{
- gchar *uri = NULL;
- GckUriData uri_data;
- GckUriData *check;
- gchar *string;
- gulong value;
- GckAttribute *attr;
-
- memset (&uri_data, 0, sizeof (uri_data));
- uri_data.attributes = gck_attributes_new ();
- gck_attributes_add_string (uri_data.attributes, CKA_LABEL, "The Label");
- gck_attributes_add_ulong (uri_data.attributes, CKA_CLASS, CKO_DATA);
- gck_attributes_add_data (uri_data.attributes, CKA_ID, (const guchar *)"TEST", 5);
-
- uri = gck_uri_build (&uri_data, GCK_URI_FOR_OBJECT);
- g_assert (uri);
-
- gck_attributes_unref (uri_data.attributes);
-
- check = gck_uri_parse (uri, GCK_URI_FOR_ANY, NULL);
- g_assert (check);
- g_assert (check->attributes);
-
- if (!gck_attributes_find_string (check->attributes, CKA_LABEL, &string))
- g_assert_not_reached ();
- g_assert_cmpstr (string, ==, "The Label");
-
- if (!gck_attributes_find_ulong (check->attributes, CKA_CLASS, &value))
- g_assert_not_reached ();
- g_assert (value == CKO_DATA);
-
- attr = gck_attributes_find (check->attributes, CKA_ID);
- g_assert (attr);
- g_assert (attr->length == 5);
- g_assert (memcmp (attr->value, "TEST", 5) == 0);
-
- gck_uri_data_free (check);
-
- g_assert (g_str_has_prefix (uri, "pkcs11:"));
- g_assert (strstr (uri, "object=The%20Label"));
- g_assert (strstr (uri, "object-type=data"));
- g_assert (strstr (uri, "id=TEST%00"));
-
- g_free (uri);
-}
-
-static void
-test_parse_private_key (void)
-{
- GckUriData *uri_data;
- GError *error = NULL;
- gulong klass;
-
- uri_data = gck_uri_parse ("pkcs11:objecttype=private", GCK_URI_FOR_OBJECT, &error);
- g_assert (uri_data);
- g_assert_no_error (error);
-
- g_assert (uri_data->attributes);
- if (!gck_attributes_find_ulong (uri_data->attributes, CKA_CLASS, &klass))
- g_assert_not_reached ();
- gck_assert_cmpulong (klass, ==, CKO_PRIVATE_KEY);
-
- gck_uri_data_free (uri_data);
-}
-
-static void
-test_parse_secret_key (void)
-{
- GckUriData *uri_data;
- GError *error = NULL;
- gulong klass;
-
- uri_data = gck_uri_parse ("pkcs11:objecttype=secretkey", GCK_URI_FOR_OBJECT, &error);
- g_assert (uri_data);
- g_assert_no_error (error);
-
- g_assert (uri_data->attributes);
- if (!gck_attributes_find_ulong (uri_data->attributes, CKA_CLASS, &klass))
- g_assert_not_reached ();
- gck_assert_cmpulong (klass, ==, CKO_SECRET_KEY);
-
- gck_uri_data_free (uri_data);
-}
-
-
-static void
-test_parse_unknown_objecttype (void)
-{
- GckUriData *uri_data;
- GError *error = NULL;
- gulong klass;
-
- uri_data = gck_uri_parse ("pkcs11:objecttype=unknown", GCK_URI_FOR_OBJECT, &error);
- g_assert (uri_data);
- g_assert_no_error (error);
-
- g_assert (uri_data->attributes);
- g_assert (uri_data->any_unrecognized == TRUE);
- if (gck_attributes_find_ulong (uri_data->attributes, CKA_CLASS, &klass))
- g_assert_not_reached ();
-
- gck_uri_data_free (uri_data);
-}
-
-static void
-test_build_objecttype_cert (void)
-{
- GckUriData *uri_data;
- gchar *uri;
-
- uri_data = gck_uri_data_new ();
- uri_data->attributes = gck_attributes_new ();
- gck_attributes_add_ulong (uri_data->attributes, CKA_CLASS, CKO_CERTIFICATE);
-
- uri = gck_uri_build (uri_data, GCK_URI_FOR_OBJECT);
- g_assert (uri);
- g_assert (strstr (uri, "object-type=cert"));
-
- gck_uri_data_free (uri_data);
- g_free (uri);
-}
-
-static void
-test_build_objecttype_private (void)
-{
- GckUriData *uri_data;
- gchar *uri;
-
- uri_data = gck_uri_data_new ();
- uri_data->attributes = gck_attributes_new ();
- gck_attributes_add_ulong (uri_data->attributes, CKA_CLASS, CKO_PRIVATE_KEY);
-
- uri = gck_uri_build (uri_data, GCK_URI_FOR_OBJECT);
- g_assert (uri);
- g_assert (strstr (uri, "object-type=private"));
-
- gck_uri_data_free (uri_data);
- g_free (uri);
-}
-
-static void
-test_build_objecttype_public (void)
-{
- GckUriData *uri_data;
- gchar *uri;
-
- uri_data = gck_uri_data_new ();
- uri_data->attributes = gck_attributes_new ();
- gck_attributes_add_ulong (uri_data->attributes, CKA_CLASS, CKO_PUBLIC_KEY);
-
- uri = gck_uri_build (uri_data, GCK_URI_FOR_OBJECT);
- g_assert (uri);
- g_assert (strstr (uri, "object-type=public"));
-
- gck_uri_data_free (uri_data);
- g_free (uri);
-}
-
-static void
-test_build_objecttype_secret (void)
-{
- GckUriData *uri_data;
- gchar *uri;
-
- uri_data = gck_uri_data_new ();
- uri_data->attributes = gck_attributes_new ();
- gck_attributes_add_ulong (uri_data->attributes, CKA_CLASS, CKO_SECRET_KEY);
-
- uri = gck_uri_build (uri_data, GCK_URI_FOR_OBJECT);
- g_assert (uri);
- g_assert (strstr (uri, "object-type=secret-key"));
-
- gck_uri_data_free (uri_data);
- g_free (uri);
-}
-
-static void
-test_build_with_library (void)
-{
- GckUriData *uri_data;
- gchar *uri;
-
- uri_data = gck_uri_data_new ();
- uri_data->module_info = g_new0 (GckModuleInfo, 1);
- uri_data->module_info->library_description = g_strdup ("The Description");
-
- uri = gck_uri_build (uri_data, GCK_URI_FOR_MODULE);
- g_assert (uri);
- g_assert (strstr (uri, "library-description=The%20Description"));
-
- gck_uri_data_free (uri_data);
- g_free (uri);
-}
-
-
-static void
-null_log_handler (const gchar *log_domain, GLogLevelFlags log_level,
- const gchar *message, gpointer user_data)
-{
-
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
-
- /* Suppress these messages in tests */
- g_log_set_handler (G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE | G_LOG_LEVEL_INFO | G_LOG_LEVEL_DEBUG,
- null_log_handler, NULL);
-
- g_test_add_func ("/gck/uri/parse", test_parse);
- g_test_add_func ("/gck/uri/parse_bad_scheme", test_parse_bad_scheme);
- g_test_add_func ("/gck/uri/parse_with_label", test_parse_with_label);
- g_test_add_func ("/gck/uri/parse_with_label_and_klass", test_parse_with_label_and_klass);
- g_test_add_func ("/gck/uri/parse_with_id", test_parse_with_id);
- g_test_add_func ("/gck/uri/parse_with_bad_string_encoding", test_parse_with_bad_string_encoding);
- g_test_add_func ("/gck/uri/parse_with_bad_binary_encoding", test_parse_with_bad_binary_encoding);
- g_test_add_func ("/gck/uri/parse_with_token", test_parse_with_token);
- g_test_add_func ("/gck/uri/parse_with_token_bad_encoding", test_parse_with_token_bad_encoding);
- g_test_add_func ("/gck/uri/parse_with_bad_syntax", test_parse_with_bad_syntax);
- g_test_add_func ("/gck/uri/parse_with_library", test_parse_with_library);
- g_test_add_func ("/gck/uri/parse_with_library_bad_encoding", test_parse_with_library_bad_encoding);
- g_test_add_func ("/gck/uri/build_empty", test_build_empty);
- g_test_add_func ("/gck/uri/build_with_token_info", test_build_with_token_info);
- g_test_add_func ("/gck/uri/build_with_token_null_info", test_build_with_token_null_info);
- g_test_add_func ("/gck/uri/build_with_token_empty_info", test_build_with_token_empty_info);
- g_test_add_func ("/gck/uri/build_with_attributes", test_build_with_attributes);
- g_test_add_func ("/gck/uri/parse_private_key", test_parse_private_key);
- g_test_add_func ("/gck/uri/parse_secret_key", test_parse_secret_key);
- g_test_add_func ("/gck/uri/parse_unknown_objecttype", test_parse_unknown_objecttype);
- g_test_add_func ("/gck/uri/build_objecttype_cert", test_build_objecttype_cert);
- g_test_add_func ("/gck/uri/build_objecttype_private", test_build_objecttype_private);
- g_test_add_func ("/gck/uri/build_objecttype_public", test_build_objecttype_public);
- g_test_add_func ("/gck/uri/build_objecttype_secret", test_build_objecttype_secret);
- g_test_add_func ("/gck/uri/build_with_library", test_build_with_library);
-
- return g_test_run ();
-}
diff --git a/gcr/.gitignore b/gcr/.gitignore
deleted file mode 100644
index ff88723d..00000000
--- a/gcr/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-/gcr.pc
-/gcr-0.pc
-/gcr-3.pc
-/gcr-viewer.desktop
-/gcr-viewer.desktop.in
-/Gcr-3.0.gir
-/Gcr-3.0.typelib
diff --git a/gcr/Makefile.am b/gcr/Makefile.am
deleted file mode 100644
index f1fd40b7..00000000
--- a/gcr/Makefile.am
+++ /dev/null
@@ -1,376 +0,0 @@
-SUBDIRS = . icons tests
-
-# ------------------------------------------------------------------
-# UI BUILDER
-#
-
-uidir = $(datadir)/gcr-@GCR_MAJOR@/ui/
-
-ui_DATA = \
- gcr-pkcs11-import-dialog.ui \
- gcr-unlock-options-widget.ui
-
-# ------------------------------------------------------------------
-# HEADERS
-
-HEADER_BASE_FILES = \
- gcr-base.h \
- gcr-certificate.h \
- gcr-certificate-chain.h \
- gcr-collection.h \
- gcr-comparable.h \
- gcr-deprecated-base.h \
- gcr-fingerprint.h \
- gcr-icons.h \
- gcr-importer.h \
- gcr-import-interaction.h \
- gcr-library.h \
- gcr-parser.h \
- gcr-pkcs11-certificate.h \
- gcr-secret-exchange.h \
- gcr-simple-certificate.h \
- gcr-trust.h \
- gcr-types.h \
- gcr-union-collection.h \
- gcr-unlock-options.h
-
-HEADER_UI_FILES = \
- gcr.h \
- gcr-certificate-basics-widget.h \
- gcr-certificate-details-widget.h \
- gcr-certificate-renderer.h \
- gcr-certificate-widget.h \
- gcr-collection-model.h \
- gcr-column.h \
- gcr-combo-selector.h \
- gcr-deprecated.h \
- gcr-failure-renderer.h \
- gcr-key-renderer.h \
- gcr-key-widget.h \
- gcr-import-button.h \
- gcr-list-selector.h \
- gcr-renderer.h \
- gcr-simple-collection.h \
- gcr-tree-selector.h \
- gcr-unlock-options-widget.h \
- gcr-viewer.h \
- gcr-viewer-widget.h
-
-incdir = $(includedir)/gcr-@GCR_MAJOR@/gcr
-
-inc_HEADERS = \
- $(HEADER_BASE_FILES) \
- $(HEADER_UI_FILES) \
- gcr-enum-types-base.h \
- gcr-enum-types.h
-
-# ------------------------------------------------------------------
-# LIBRARY
-
-INCLUDES = \
- -I$(top_builddir) \
- -I$(top_srcdir) \
- $(GOBJECT_CFLAGS) \
- $(GLIB_CFLAGS) \
- $(LIBGCRYPT_CFLAGS) \
- $(P11_KIT_CFLAGS) \
- -DG_LOG_DOMAIN=\"Gcr\"
-
-lib_LTLIBRARIES = \
- libgcr-base-@GCR_MAJOR@.la \
- libgcr-@GCR_MAJOR@.la
-
-BUILT_BASE_FILES = \
- gcr-marshal.c gcr-marshal.h \
- gcr-enum-types-base.c gcr-enum-types-base.h \
- gcr-oids.c gcr-oids.h
-
-BUILT_UI_FILES = \
- gcr-marshal.c gcr-marshal.h \
- gcr-enum-types.c gcr-enum-types.h \
- gcr-oids.c gcr-oids.h
-
-BUILT_SOURCES = \
- $(BUILT_BASE_FILES) \
- $(BUILT_UI_FILES)
-
-libgcr_base_@GCR_MAJOR@_la_SOURCES = \
- gcr-callback-output-stream.c gcr-callback-output-stream.h \
- gcr-certificate.c gcr-certificate.h \
- gcr-certificate-chain.c gcr-certificate-chain.h \
- gcr-collection.c gcr-collection.h \
- gcr-comparable.c gcr-comparable.h \
- gcr-debug.c gcr-debug.h \
- gcr-fingerprint.c gcr-fingerprint.h \
- gcr-gnupg-collection.c gcr-gnupg-collection.h \
- gcr-gnupg-importer.c gcr-gnupg-importer.h \
- gcr-gnupg-key.c gcr-gnupg-key.h \
- gcr-gnupg-process.c gcr-gnupg-process.h \
- gcr-gnupg-records.c gcr-gnupg-records.h \
- gcr-gnupg-util.c gcr-gnupg-util.h \
- gcr-icons.c gcr-icons.h \
- gcr-importer.c gcr-importer.h \
- gcr-import-interaction.c gcr-import-interaction.h \
- gcr-internal.h \
- gcr-library.c gcr-library.h \
- gcr-memory.c \
- gcr-memory-icon.c gcr-memory-icon.h \
- gcr-openpgp.c gcr-openpgp.h \
- gcr-openssh.c gcr-openssh.h \
- gcr-parser.c gcr-parser.h \
- gcr-pkcs11-certificate.c gcr-pkcs11-certificate.h \
- gcr-pkcs11-importer.c gcr-pkcs11-importer.h \
- gcr-record.c gcr-record.h \
- gcr-secret-exchange.c gcr-secret-exchange.h \
- gcr-simple-certificate.c gcr-simple-certificate.h \
- gcr-simple-collection.c gcr-simple-collection.h \
- gcr-single-collection.c gcr-single-collection.h \
- gcr-trust.c gcr-trust.h \
- gcr-types.h \
- gcr-union-collection.c gcr-union-collection.h \
- gcr-util.c gcr-util.h \
- $(BUILT_BASE_FILES)
-
-libgcr_@GCR_MAJOR@_la_SOURCES = \
- gcr-certificate-basics-widget.c gcr-certificate-basics-widget.h \
- gcr-certificate-details-widget.c gcr-certificate-details-widget.h \
- gcr-certificate-exporter.c gcr-certificate-exporter.h \
- gcr-certificate-extensions.c gcr-certificate-extensions.h \
- gcr-certificate-renderer.c gcr-certificate-renderer.h \
- gcr-certificate-widget.c gcr-certificate-widget.h \
- gcr-collection-model.c gcr-collection-model.h \
- gcr-combo-selector.c gcr-combo-selector.h \
- gcr-debug.c gcr-debug.h \
- gcr-dialog-util.c gcr-dialog-util.h \
- gcr-display-scrolled.c gcr-display-scrolled.h \
- gcr-display-view.c gcr-display-view.h \
- gcr-failure-renderer.c gcr-failure-renderer.h \
- gcr-gnupg-renderer.c gcr-gnupg-renderer.h \
- gcr-gnupg-records.c gcr-gnupg-records.h \
- gcr-import-button.c gcr-import-button.h \
- gcr-key-renderer.c gcr-key-renderer.h \
- gcr-key-widget.c gcr-key-widget.h \
- gcr-list-selector.c gcr-list-selector.h gcr-list-selector-private.h \
- gcr-live-search.c gcr-live-search.h \
- gcr-memory.c \
- gcr-memory-icon.c gcr-memory-icon.h \
- gcr-menu-button.c gcr-menu-button.h \
- gcr-pkcs11-import-interaction.c gcr-pkcs11-import-interaction.h \
- gcr-pkcs11-import-dialog.c gcr-pkcs11-import-dialog.h \
- gcr-record.c gcr-record.h \
- gcr-renderer.c gcr-renderer.h \
- gcr-tree-selector.c gcr-tree-selector.h \
- gcr-unlock-options.h \
- gcr-unlock-options-widget.c gcr-unlock-options-widget.h \
- gcr-unlock-renderer.c gcr-unlock-renderer.h \
- gcr-viewer.c gcr-viewer.h \
- gcr-viewer-widget.c gcr-viewer-widget.h \
- gcr-viewer-window.c gcr-viewer-window.h \
- $(BUILT_UI_FILES)
-
-libgcr_base_@GCR_MAJOR@_la_CFLAGS = \
- -DGCK_API_SUBJECT_TO_CHANGE \
- -DGCR_API_SUBJECT_TO_CHANGE \
- -DP11_KIT_API_SUBJECT_TO_CHANGE \
- -DGCR_COMPILATION
-
-libgcr_@GCR_MAJOR@_la_CFLAGS = \
- $(GTK_CFLAGS) \
- -DUIDIR=\""$(uidir)"\" \
- $(libgcr_base_@GCR_MAJOR@_la_CFLAGS)
-
-libgcr_base_@GCR_MAJOR@_la_LDFLAGS = \
- -version-info $(GCR_LT_RELEASE) \
- -no-undefined \
- -export-symbols-regex '^gcr_*'
-
-libgcr_@GCR_MAJOR@_la_LDFLAGS = \
- $(libgcr_base_@GCR_MAJOR@_la_LDFLAGS)
-
-libgcr_base_@GCR_MAJOR@_la_LIBADD = \
- $(top_builddir)/egg/libegg.la \
- $(top_builddir)/gck/libgck-@GCK_MAJOR@.la \
- $(GOBJECT_LIBS) \
- $(GLIB_LIBS) \
- $(LIBGCRYPT_LIBS) \
- $(P11_KIT_LIBS)
-
-libgcr_@GCR_MAJOR@_la_LIBADD = \
- $(GTK_LIBS) \
- $(libgcr_base_@GCR_MAJOR@_la_LIBADD) \
- $(top_builddir)/egg/libegg-entry-buffer.la \
- $(builddir)/libgcr-base-$(GCR_MAJOR).la
-
-noinst_LTLIBRARIES = libgcr-testable.la
-libgcr_testable_la_SOURCES =
-libgcr_testable_la_LIBADD = \
- $(libgcr_base_@GCR_MAJOR@_la_OBJECTS) \
- $(libgcr_@GCR_MAJOR@_la_OBJECTS) \
- $(libgcr_@GCR_MAJOR@_la_LIBADD)
-libgcr_testable_la_DEPENDENCIES = \
- $(libgcr_base_@GCR_MAJOR@_la_OBJECTS) \
- $(libgcr_@GCR_MAJOR@_la_OBJECTS)
-
-gcr-marshal.h: gcr-marshal.list $(GLIB_GENMARSHAL)
- $(AM_V_GEN) $(GLIB_GENMARSHAL) $< --header --prefix=_gcr_marshal > $@
-
-gcr-marshal.c: gcr-marshal.list $(GLIB_GENMARSHAL)
- $(AM_V_GEN) ( echo "#include \"gcr-marshal.h\"" > $@ && \
- $(GLIB_GENMARSHAL) $< --body --prefix=_gcr_marshal >> $@ )
-
-gcr-enum-types.h: $(HEADER_UI_FILES) gcr-enum-types.h.template
- $(AM_V_GEN) $(GLIB_MKENUMS) --template $(srcdir)/gcr-enum-types.h.template \
- $(HEADER_UI_FILES) > $@
-
-gcr-enum-types.c: $(HEADER_UI_FILES) gcr-enum-types.c.template
- $(AM_V_GEN) $(GLIB_MKENUMS) --template $(srcdir)/gcr-enum-types.c.template \
- $(HEADER_UI_FILES) > $@
-
-gcr-enum-types-base.h: $(HEADER_BASE_FILES) gcr-enum-types.h.template
- $(AM_V_GEN) $(GLIB_MKENUMS) --template $(srcdir)/gcr-enum-types.h.template \
- $(HEADER_BASE_FILES) > $@
-
-gcr-enum-types-base.c: $(HEADER_BASE_FILES) gcr-enum-types.c.template
- $(AM_V_GEN) $(GLIB_MKENUMS) --template $(srcdir)/gcr-enum-types.c.template \
- $(HEADER_BASE_FILES) > $@
-
-gcr-oids.c: gcr-oids.list gcr-mkoids
- $(AM_V_GEN) sh gcr-mkoids -p GCR -c gcr-oids.c -h gcr-oids.h gcr-oids.list
-
-gcr-oids.h: gcr-oids.c
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = gcr-$(GCR_MAJOR).pc gcr-base-$(GCR_MAJOR).pc
-
-gcr-$(GCR_MAJOR).pc: gcr.pc
- cp gcr.pc gcr-$(GCR_MAJOR).pc
-gcr-base-$(GCR_MAJOR).pc: gcr-base.pc
- cp gcr-base.pc gcr-base-$(GCR_MAJOR).pc
-
-# ----------------------------------------------------------------
-# SYSTEM INTEGRATION
-
-# The new mime system
-mimedir = $(datadir)/mime/packages
-mime_DATA = gcr-crypto-types.xml
-
-if WITH_UPDATE_MIME
-update_mime_database_cmd = update-mime-database $(datadir)/mime/
-
-install-data-hook: update_mime_database
-uninstall-hook: update_mime_database
-
-update_mime_database:
- @-if test -z "$(DESTDIR)"; then \
- echo "Updating MIME database."; \
- $(update_mime_database_cmd); \
- else \
- echo "*** MIME database not updated. After (un)install, run this:"; \
- echo "*** $(update_mime_database_cmd)"; \
- fi
-endif
-
-desktopdir = $(datadir)/applications
-desktop_in_in_files = gcr-viewer.desktop.in.in
-desktop_in_files = $(desktop_in_in_files:.desktop.in.in=.desktop.in)
-desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
-@INTLTOOL_DESKTOP_RULE@
-
-# ----------------------------------------------------------------
-# TOOLS
-
-bin_PROGRAMS = gcr-viewer
-
-gcr_viewer_SOURCES = \
- gcr-viewer-tool.c
-
-gcr_viewer_CFLAGS = \
- $(GTK_CFLAGS) \
- -DLOCALEDIR=\""$(datadir)/locale"\" \
- -DGCR_API_SUBJECT_TO_CHANGE
-
-gcr_viewer_LDADD = \
- $(builddir)/libgcr-$(GCR_MAJOR).la \
- $(top_builddir)/gck/libgck-@GCK_MAJOR@.la \
- $(GTK_LIBS)
-
-# ------------------------------------------------------------------
-# INTROSPECTION
-
-if HAVE_INTROSPECTION
-
-include $(INTROSPECTION_MAKEFILE)
-
-INTROSPECTION_GIRS = Gcr-@GCR_MAJOR@.gir
-INTROSPECTION_SCANNER_ARGS = $(INTROSPECTION_FLAGS) --warn-all --add-include-path=$(srcdir) --add-include-path=$(top_builddir)/gck
-INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) --includedir=$(top_builddir)/gck
-
-Gcr-@GCR_MAJOR@.gir: libgcr-@GCR_MAJOR@.la
-
-Gcr_@GCR_MAJOR@_gir_PACKAGES = gobject-2.0 gtk+-3.0 p11-kit-1
-Gcr_@GCR_MAJOR@_gir_EXPORT_PACKAGES = gcr-3
-Gcr_@GCR_MAJOR@_gir_INCLUDES = GObject-2.0 Gtk-3.0 Gck-@GCK_MAJOR@
-Gcr_@GCR_MAJOR@_gir_LIBS = libgcr-base-@GCR_MAJOR@.la libgcr-@GCR_MAJOR@.la
-Gcr_@GCR_MAJOR@_gir_CFLAGS = -I$(top_srcdir) -I$(top_builddir) -DGCR_COMPILATION -DGCR_API_SUBJECT_TO_CHANGE
-Gcr_@GCR_MAJOR@_gir_FILES = $(libgcr_base_@GCR_MAJOR@_la_SOURCES) $(libgcr_@GCR_MAJOR@_la_SOURCES)
-Gcr_@GCR_MAJOR@_gir_SCANNERFLAGS = --c-include "gcr.h" --c-include "gcr-base.h"
-
-girdir = $(datadir)/gir-1.0
-gir_DATA = $(INTROSPECTION_GIRS)
-
-typelibsdir = $(libdir)/girepository-1.0
-typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
-
-endif
-
-# ----------------------------------------------------------------
-
-gcr-expected-base.abi: gcr-base.symbols
- $(AM_V_GEN) cpp -P $< | sort > $@
-gcr-expected.abi: gcr.symbols
- $(AM_V_GEN) cpp -P $< | sort > $@
-
-gcr-actual-base.abi: $(builddir)/.libs/libgcr-base-@GCR_MAJOR@.so
- $(AM_V_GEN) $(NM) -D -g --defined-only $< | \
- cut -d ' ' -f 3 | grep -Ev '^(__bss_start|_edata|_end)' | sort > $@
-gcr-actual.abi: $(builddir)/.libs/libgcr-@GCR_MAJOR@.so
- $(AM_V_GEN) $(NM) -D -g --defined-only $< | \
- cut -d ' ' -f 3 | grep -Ev '^(__bss_start|_edata|_end)' | sort > $@
-
-check-symbols: gcr-expected.abi gcr-actual.abi gcr-expected-base.abi gcr-actual-base.abi
- $(AM_V_GEN) diff -U0 --ignore-blank-lines gcr-expected-base.abi gcr-actual-base.abi || \
- (echo "check-symbols: Symbols have CHANGED. Fix gcr-base.symbols"; exit 1)
- $(AM_V_GEN) diff -U0 --ignore-blank-lines gcr-expected.abi gcr-actual.abi || \
- (echo "check-symbols: Symbols have CHANGED. Fix gcr.symbols"; exit 1)
-
-check-local: check-symbols
-
-EXTRA_DIST = \
- gcr.pc.in \
- gcr-base.pc.in \
- gcr-marshal.list \
- gcr-oids.list \
- gcr-mkoids \
- $(ui_DATA) \
- $(conf_DATA) \
- gcr-enum-types.h.template \
- gcr-enum-types.c.template \
- gcr.symbols \
- gcr-base.symbols \
- $(desktop_in_in_files) \
- $(desktop_in_files) \
- $(desktop_DATA) \
- $(mime_DATA)
-
-CLEANFILES = \
- $(BUILT_SOURCES) \
- $(pkgconfig_DATA) \
- gcr-actual.abi \
- gcr-actual-base.abi \
- gcr-expected.abi \
- gcr-expected-base.abi
-
-DISTCLEANFILES = \
- $(desktop_in_files) \
- $(desktop_DATA) \
- $(pkgconfig_DATA)
diff --git a/gcr/gcr-base.h b/gcr/gcr-base.h
deleted file mode 100644
index 69133f11..00000000
--- a/gcr/gcr-base.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#ifndef GCR_API_SUBJECT_TO_CHANGE
-#error "This API has not yet reached stability."
-#endif
-
-#ifndef __GCR_BASE_H__
-#define __GCR_BASE_H__
-
-#include <glib.h>
-
-#define __GCR_INSIDE_HEADER__
-
-#include "gcr-types.h"
-
-#include "gcr-certificate.h"
-#include "gcr-certificate-chain.h"
-#include "gcr-deprecated-base.h"
-#include "gcr-enum-types-base.h"
-#include "gcr-icons.h"
-#include "gcr-importer.h"
-#include "gcr-library.h"
-#include "gcr-parser.h"
-#include "gcr-pkcs11-certificate.h"
-#include "gcr-secret-exchange.h"
-#include "gcr-simple-certificate.h"
-#include "gcr-simple-collection.h"
-#include "gcr-trust.h"
-#include "gcr-union-collection.h"
-#include "gcr-unlock-options.h"
-
-#undef __GCR_INSIDE_HEADER__
-
-#endif /* __GCR_BASE_H__ */
diff --git a/gcr/gcr-base.pc.in b/gcr/gcr-base.pc.in
deleted file mode 100644
index 629882ab..00000000
--- a/gcr/gcr-base.pc.in
+++ /dev/null
@@ -1,16 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-datarootdir=@datarootdir@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-pkcs11dir=@P11_MODULE_PATH@
-pkcs11standalonedir=@pkcs11standalonedir@
-
-Name: gcr-base-@GCR_MAJOR@
-Description: GObject library for high level crypto parsing
-Version: @VERSION@
-Requires: glib-2.0 gck-@GCK_MAJOR@ p11-kit-1
-Libs: -L${libdir} -lgcr-base-@GCR_MAJOR@
-Cflags: -I${includedir}/gcr-@GCR_MAJOR@
diff --git a/gcr/gcr-base.symbols b/gcr/gcr-base.symbols
deleted file mode 100644
index 0d48bd1f..00000000
--- a/gcr/gcr-base.symbols
+++ /dev/null
@@ -1,157 +0,0 @@
-/* This file lists all exported symbols. It is used to guarantee that we
- * only consciously change our ABI.
- */
-
-gcr_certificate_compare
-gcr_certificate_chain_add
-gcr_certificate_chain_build
-gcr_certificate_chain_build_async
-gcr_certificate_chain_build_finish
-gcr_certificate_chain_flags_get_type
-gcr_certificate_chain_get_anchor
-gcr_certificate_chain_get_certificate
-gcr_certificate_chain_get_endpoint
-gcr_certificate_chain_get_length
-gcr_certificate_chain_get_status
-gcr_certificate_chain_get_type
-gcr_certificate_chain_new
-gcr_certificate_chain_status_get_type
-gcr_certificate_get_columns
-gcr_certificate_get_der_data
-gcr_certificate_get_expiry_date
-gcr_certificate_get_fingerprint
-gcr_certificate_get_fingerprint_hex
-gcr_certificate_get_icon
-gcr_certificate_get_issued_date
-gcr_certificate_get_issuer_cn
-gcr_certificate_get_issuer_dn
-gcr_certificate_get_issuer_part
-gcr_certificate_get_issuer_raw
-gcr_certificate_get_key_size
-gcr_certificate_get_serial_number
-gcr_certificate_get_serial_number_hex
-gcr_certificate_get_subject_cn
-gcr_certificate_get_subject_dn
-gcr_certificate_get_subject_part
-gcr_certificate_get_subject_raw
-gcr_certificate_get_type
-gcr_certificate_mixin_class_init
-gcr_certificate_mixin_comparable_init
-gcr_certificate_mixin_get_property
-gcr_certificate_is_issuer
-gcr_collection_contains
-gcr_collection_emit_added
-gcr_collection_emit_removed
-gcr_collection_get_length
-gcr_collection_get_objects
-gcr_collection_get_type
-gcr_comparable_compare
-gcr_comparable_get_type
-gcr_comparable_memcmp
-gcr_data_error_get_domain
-gcr_data_error_get_type
-gcr_data_format_get_type
-gcr_error_get_domain
-gcr_fingerprint_from_attributes
-gcr_fingerprint_from_certificate_public_key
-gcr_fingerprint_from_subject_public_key_info
-gcr_icon_for_token
-gcr_importer_create_for_parsed
-gcr_importer_get_interaction
-gcr_importer_get_parser
-gcr_importer_get_prompt_behavior
-gcr_importer_get_slot
-gcr_importer_get_type
-gcr_importer_import
-gcr_importer_import_async
-gcr_importer_import_finish
-gcr_importer_prompt_behavior_get_type
-gcr_importer_queue_and_filter_for_parsed
-gcr_importer_queue_for_parsed
-gcr_importer_register
-gcr_importer_register_well_known
-gcr_importer_set_interaction
-gcr_importer_set_parser
-gcr_importer_set_prompt_behavior
-gcr_importer_set_slot
-gcr_import_interaction_get_type
-gcr_import_interaction_supplement
-gcr_import_interaction_supplement_async
-gcr_import_interaction_supplement_finish
-gcr_import_interaction_supplement_prep
-gcr_parsed_get_attributes
-gcr_parsed_get_data
-gcr_parsed_get_description
-gcr_parsed_get_format
-gcr_parsed_get_label
-gcr_parsed_get_type
-gcr_parsed_ref
-gcr_parsed_unref
-gcr_parser_add_password
-gcr_parser_format_disable
-gcr_parser_format_enable
-gcr_parser_format_supported
-gcr_parser_get_parsed
-gcr_parser_get_parsed_attributes
-gcr_parser_get_parsed_block
-gcr_parser_get_parsed_description
-gcr_parser_get_parsed_format
-gcr_parser_get_parsed_label
-gcr_parser_get_type
-gcr_parser_new
-gcr_parser_parse_data
-gcr_parser_parse_stream
-gcr_parser_parse_stream_async
-gcr_parser_parse_stream_finish
-gcr_pkcs11_add_module
-gcr_pkcs11_add_module_from_file
-gcr_pkcs11_certificate_get_attributes
-gcr_pkcs11_certificate_get_type
-gcr_pkcs11_certificate_lookup_issuer
-gcr_pkcs11_certificate_lookup_issuer_async
-gcr_pkcs11_certificate_lookup_issuer_finish
-gcr_pkcs11_get_modules
-gcr_pkcs11_get_trust_lookup_slots
-gcr_pkcs11_get_trust_lookup_uris
-gcr_pkcs11_get_trust_store_slot
-gcr_pkcs11_get_trust_store_uri
-gcr_pkcs11_initialize
-gcr_pkcs11_initialize_async
-gcr_pkcs11_initialize_finish
-gcr_pkcs11_set_modules
-gcr_pkcs11_set_trust_lookup_uris
-gcr_pkcs11_set_trust_store_uri
-gcr_secret_exchange_begin
-gcr_secret_exchange_get_protocol
-gcr_secret_exchange_get_secret
-gcr_secret_exchange_get_type
-gcr_secret_exchange_new
-gcr_secret_exchange_receive
-gcr_secret_exchange_send
-gcr_simple_certificate_get_type
-gcr_simple_certificate_new
-gcr_simple_certificate_new_static
-gcr_simple_collection_add
-gcr_simple_collection_contains
-gcr_simple_collection_get_type
-gcr_simple_collection_new
-gcr_simple_collection_remove
-gcr_trust_add_pinned_certificate
-gcr_trust_add_pinned_certificate_async
-gcr_trust_add_pinned_certificate_finish
-gcr_trust_is_certificate_anchored
-gcr_trust_is_certificate_anchored_async
-gcr_trust_is_certificate_anchored_finish
-gcr_trust_is_certificate_pinned
-gcr_trust_is_certificate_pinned_async
-gcr_trust_is_certificate_pinned_finish
-gcr_trust_remove_pinned_certificate
-gcr_trust_remove_pinned_certificate_async
-gcr_trust_remove_pinned_certificate_finish
-gcr_union_collection_add
-gcr_union_collection_get_type
-gcr_union_collection_have
-gcr_union_collection_new
-gcr_union_collection_remove
-gcr_union_collection_size
-gcr_union_collection_take
diff --git a/gcr/gcr-callback-output-stream.c b/gcr/gcr-callback-output-stream.c
deleted file mode 100644
index 91bdbf3f..00000000
--- a/gcr/gcr-callback-output-stream.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-callback-output-stream.h"
-#define DEBUG_FLAG GCR_DEBUG_GNUPG
-#include "gcr-debug.h"
-
-#include <glib/gi18n.h>
-
-struct _GcrCallbackOutputStream {
- GOutputStream parent;
- GcrCallbackOutputFunc callback;
- gpointer user_data;
- GDestroyNotify destroy_func;
-};
-
-struct _GcrCallbackOutputStreamClass {
- GOutputStreamClass parent_class;
-};
-
-G_DEFINE_TYPE (GcrCallbackOutputStream, _gcr_callback_output_stream, G_TYPE_OUTPUT_STREAM);
-
-static void
-_gcr_callback_output_stream_init (GcrCallbackOutputStream *self)
-{
-
-}
-
-static gssize
-_gcr_callback_output_stream_write (GOutputStream *stream,
- const void *buffer,
- gsize count,
- GCancellable *cancellable,
- GError **error)
-{
- GcrCallbackOutputStream *self = GCR_CALLBACK_OUTPUT_STREAM (stream);
-
- if (g_cancellable_set_error_if_cancelled (cancellable, error)) {
- return -1;
- } else if (self->callback == NULL) {
- g_set_error (error, G_IO_ERROR, G_IO_ERROR_CLOSED,
- _("The stream was closed"));
- return -1;
- }
-
- return (self->callback) (buffer, count, cancellable, self->user_data, error);
-}
-
-static gboolean
-_gcr_callback_output_stream_close (GOutputStream *stream,
- GCancellable *cancellable,
- GError **error)
-{
- GcrCallbackOutputStream *self = GCR_CALLBACK_OUTPUT_STREAM (stream);
- if (g_cancellable_set_error_if_cancelled (cancellable, error)) {
- return FALSE;
- } else if (self->callback == NULL) {
- g_set_error (error, G_IO_ERROR, G_IO_ERROR_CLOSED,
- _("The stream was closed"));
- return FALSE;
- }
-
- if (self->destroy_func != NULL)
- (self->destroy_func) (self->user_data);
- self->destroy_func = NULL;
- self->user_data = NULL;
- self->callback = NULL;
-
- return TRUE;
-}
-
-static void
-_gcr_callback_output_stream_dispose (GObject *obj)
-{
- _gcr_callback_output_stream_close (G_OUTPUT_STREAM (obj), NULL, NULL);
- G_OBJECT_CLASS (_gcr_callback_output_stream_parent_class)->dispose (obj);
-}
-
-static void
-_gcr_callback_output_stream_class_init (GcrCallbackOutputStreamClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- GOutputStreamClass *output_class = G_OUTPUT_STREAM_CLASS (klass);
-
- gobject_class->dispose = _gcr_callback_output_stream_dispose;
- output_class->write_fn = _gcr_callback_output_stream_write;
- output_class->close_fn = _gcr_callback_output_stream_close;
-}
-
-/**
- * _gcr_callback_output_stream_new: (skip)
- *
- * Returns: (transfer full) (type Gcr.CallbackOutputStream): the new stream
- */
-GOutputStream *
-_gcr_callback_output_stream_new (GcrCallbackOutputFunc callback,
- gpointer user_data,
- GDestroyNotify destroy_func)
-{
- GcrCallbackOutputStream *self;
-
- g_return_val_if_fail (callback, NULL);
-
- self = g_object_new (GCR_TYPE_CALLBACK_OUTPUT_STREAM, NULL);
- self->callback = callback;
- self->user_data = user_data;
- self->destroy_func = destroy_func;
-
- return G_OUTPUT_STREAM (self);
-}
diff --git a/gcr/gcr-callback-output-stream.h b/gcr/gcr-callback-output-stream.h
deleted file mode 100644
index 51d618e5..00000000
--- a/gcr/gcr-callback-output-stream.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#ifndef GCR_CALLBACK_OUTPUT_STREAM_H
-#define GCR_CALLBACK_OUTPUT_STREAM_H
-
-#include "gcr-base.h"
-#include "gcr-collection.h"
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_CALLBACK_OUTPUT_STREAM (_gcr_callback_output_stream_get_type ())
-#define GCR_CALLBACK_OUTPUT_STREAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_CALLBACK_OUTPUT_STREAM, GcrCallbackOutputStream))
-#define GCR_CALLBACK_OUTPUT_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_CALLBACK_OUTPUT_STREAM, GcrCallbackOutputStreamClass))
-#define GCR_IS_CALLBACK_OUTPUT_STREAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_CALLBACK_OUTPUT_STREAM))
-#define GCR_IS_CALLBACK_OUTPUT_STREAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_CALLBACK_OUTPUT_STREAM))
-#define GCR_CALLBACK_OUTPUT_STREAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_CALLBACK_OUTPUT_STREAM, GcrCallbackOutputStreamClass))
-
-typedef struct _GcrCallbackOutputStream GcrCallbackOutputStream;
-typedef struct _GcrCallbackOutputStreamClass GcrCallbackOutputStreamClass;
-
-GType _gcr_callback_output_stream_get_type (void);
-
-typedef gssize (*GcrCallbackOutputFunc) (gconstpointer buffer,
- gsize count,
- GCancellable *cancellable,
- gpointer user_data,
- GError **error);
-
-GOutputStream * _gcr_callback_output_stream_new (GcrCallbackOutputFunc callback,
- gpointer user_data,
- GDestroyNotify destroy_func);
-
-G_END_DECLS
-
-#endif /* GCR_CALLBACK_OUTPUT_STREAM_H */
diff --git a/gcr/gcr-certificate-basics-widget.c b/gcr/gcr-certificate-basics-widget.c
deleted file mode 100644
index f1d45283..00000000
--- a/gcr/gcr-certificate-basics-widget.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-#include "gcr-certificate-basics-widget.h"
-
-#ifndef GCR_DISABLE_DEPRECATED
-
-/* These are all stubs for GcrCertificateWidget */
-
-GType
-gcr_certificate_basics_widget_get_type (void)
-{
- return gcr_certificate_widget_get_type ();
-}
-
-/**
- * gcr_certificate_basics_widget_new: (skip)
- *
- * Deprecated: Since 2.30
- *
- * Returns: (transfer full) (type Gcr.CertificateWidget): a new certificate widget
- */
-GcrCertificateBasicsWidget *
-gcr_certificate_basics_widget_new (GcrCertificate *cert)
-{
- return gcr_certificate_widget_new (cert);
-}
-
-/**
- * gcr_certificate_basics_widget_get_certificate: (skip)
- *
- * Deprecated: Since 2.30
- *
- * Returns: (transfer none): the certificate
- */
-GcrCertificate *
-gcr_certificate_basics_widget_get_certificate (GcrCertificateBasicsWidget *basics)
-{
- return gcr_certificate_widget_get_certificate (basics);
-}
-
-/**
- * gcr_certificate_basics_widget_set_certificate: (skip)
- * @basics: the certificate widget
- * @cert: the certificate
- *
- * Deprecated: Since 2.30
- */
-void
-gcr_certificate_basics_widget_set_certificate (GcrCertificateBasicsWidget *basics,
- GcrCertificate *cert)
-{
- return gcr_certificate_widget_set_certificate (basics, cert);
-}
-
-#endif /* GCR_DISABLE_DEPRECATED */
diff --git a/gcr/gcr-certificate-basics-widget.h b/gcr/gcr-certificate-basics-widget.h
deleted file mode 100644
index 4dee8e5d..00000000
--- a/gcr/gcr-certificate-basics-widget.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (C) 2008 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#ifndef __GCR_CERTIFICATE_BASICS_WIDGET_H__
-#define __GCR_CERTIFICATE_BASICS_WIDGET_H__
-
-/*
- * GcrCertificateBasicsWidget has been replaced with GcrCertificateWidget.
- * These functions are stubs for GcrCertificateWidget.
- */
-
-#ifndef GCR_DISABLE_DEPRECATED
-
-#include <glib-object.h>
-#include <gtk/gtk.h>
-
-#include "gcr-certificate.h"
-#include "gcr-certificate-widget.h"
-#include "gcr-types.h"
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_CERTIFICATE_BASICS_WIDGET (gcr_certificate_basics_widget_get_type ())
-#define GCR_CERTIFICATE_BASICS_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_CERTIFICATE_BASICS_WIDGET, GcrCertificateBasicsWidget))
-#define GCR_CERTIFICATE_BASICS_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_CERTIFICATE_BASICS_WIDGET, GcrCertificateBasicsWidgetClass))
-#define GCR_IS_CERTIFICATE_BASICS_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_CERTIFICATE_BASICS_WIDGET))
-#define GCR_IS_CERTIFICATE_BASICS_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_CERTIFICATE_BASICS_WIDGET))
-#define GCR_CERTIFICATE_BASICS_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_CERTIFICATE_BASICS_WIDGET, GcrCertificateBasicsWidgetClass))
-
-typedef GcrCertificateWidget GcrCertificateBasicsWidget;
-typedef GcrCertificateWidgetClass GcrCertificateBasicsWidgetClass;
-
-GType gcr_certificate_basics_widget_get_type (void);
-
-GcrCertificateBasicsWidget* gcr_certificate_basics_widget_new (GcrCertificate *cert);
-
-GcrCertificate* gcr_certificate_basics_widget_get_certificate (GcrCertificateBasicsWidget *basics);
-
-void gcr_certificate_basics_widget_set_certificate (GcrCertificateBasicsWidget *basics,
- GcrCertificate *cert);
-
-G_END_DECLS
-
-#endif /* GCR_DISABLE_DEPRECATED */
-
-#endif /* __GCR_CERTIFICATE_BASICS_WIDGET_H__ */
diff --git a/gcr/gcr-certificate-chain.c b/gcr/gcr-certificate-chain.c
deleted file mode 100644
index 78a88323..00000000
--- a/gcr/gcr-certificate-chain.c
+++ /dev/null
@@ -1,825 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Collabora Ltd
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-certificate-chain.h"
-
-#include "gcr-certificate.h"
-#define DEBUG_FLAG GCR_DEBUG_CERTIFICATE_CHAIN
-#include "gcr-debug.h"
-#include "gcr-pkcs11-certificate.h"
-#include "gcr-simple-certificate.h"
-#include "gcr-trust.h"
-
-#include "egg/egg-error.h"
-
-/**
- * SECTION:gcr-certificate-chain
- * @title: GcrCertificateChain
- * @short_description: A certificate chain
- *
- * #GcrCertificateChain represents a chain of certificates, normally used to
- * validate the trust in a certificate. An X.509 certificate chain has one
- * endpoint certificate (the one for which trust is being verified) and then
- * in turn the certificate that issued each previous certificate in the chain.
- *
- * This functionality is for building of certificate chains not for validating
- * them. Use your favorite crypto library to validate trust in a certificate
- * chain once its built.
- *
- * The order of certificates in the chain should be first the endpoint
- * certificates and then the signing certificates.
- *
- * Create a new certificate chain with gcr_certificate_chain_new() and then
- * add the certificates with gcr_certificate_chain_add().
- *
- * You can then use gcr_certificate_chain_build() to build the remainder of
- * the chain. This will lookup missing certificates in PKCS\#11 modules and
- * also check that each certificate in the chain is the signer of the previous
- * one. If a trust anchor, pinned certificate, or self-signed certificate is
- * found, then the chain is considered built. Any extra certificates are
- * removed from the chain.
- *
- * Once the certificate chain has been built, you can access its status
- * through gcr_certificate_chain_get_status(). The status signifies whether
- * the chain is anchored on a trust root, self-signed, incomplete etc. See
- * #GcrCertificateChainStatus for information on the various statuses.
- *
- * It's important to understand that the building of a certificate chain is
- * merely the first step towards verifying trust in a certificate.
- */
-
-
-/**
- * GCR_TYPE_CERTIFICATE_CHAIN_STATUS:
- *
- * The flags #GType for #GcrCertificateChainFlags.
- */
-
-/**
- * GcrCertificateChain:
- *
- * A chain of certificates.
- */
-
-/**
- * GcrCertificateChainClass:
- * @parent_class: The parent class
- *
- * The class for #GcrCertificateChain.
- */
-
-enum {
- PROP_0,
- PROP_STATUS,
- PROP_LENGTH,
-};
-
-struct _GcrCertificateChainPrivate {
- GPtrArray *certificates;
- GcrCertificateChainStatus status;
-
- /* Used in build operation */
- gchar *purpose;
- gchar *peer;
- guint flags;
-};
-
-static GQuark Q_ORIGINAL_CERT = 0;
-static GQuark Q_OPERATION_DATA = 0;
-
-G_DEFINE_TYPE (GcrCertificateChain, gcr_certificate_chain, G_TYPE_OBJECT);
-
-/* -----------------------------------------------------------------------------
- * INTERNAL
- */
-
-static void
-free_chain_private (gpointer data)
-{
- GcrCertificateChainPrivate *pv = data;
- g_ptr_array_unref (pv->certificates);
- g_free (pv->purpose);
- g_free (pv->peer);
- g_slice_free (GcrCertificateChainPrivate, pv);
-}
-
-static GcrCertificateChainPrivate*
-new_chain_private (void)
-{
- GcrCertificateChainPrivate *pv = g_slice_new0 (GcrCertificateChainPrivate);
- pv->certificates = g_ptr_array_new_with_free_func (g_object_unref);
- return pv;
-}
-
-static GcrCertificateChainPrivate*
-prep_chain_private (GcrCertificateChainPrivate *orig, const gchar *purpose,
- const gchar *peer, guint flags)
-{
- GcrCertificateChainPrivate *pv;
- GcrCertificate *certificate;
- guint i;
-
- g_assert (orig);
- g_assert (purpose);
-
- pv = new_chain_private ();
- for (i = 0; i < orig->certificates->len; ++i) {
- certificate = g_ptr_array_index (orig->certificates, i);
- g_ptr_array_add (pv->certificates, g_object_ref (certificate));
- }
-
- pv->status = orig->status;
- pv->purpose = g_strdup (purpose);
- pv->peer = g_strdup (peer);
- pv->flags = flags;
- return pv;
-}
-
-static GcrCertificateChainPrivate*
-prep_chain_private_thread_safe (GcrCertificateChainPrivate *orig, const gchar *purpose,
- const gchar *peer, guint flags)
-{
- GcrCertificateChainPrivate *pv;
- GcrCertificate *certificate, *safe;
- gconstpointer der;
- gsize n_der;
- guint i;
-
- g_assert (orig);
-
- pv = prep_chain_private (orig, purpose, peer, flags);
-
- for (i = 0; i < pv->certificates->len; ++i) {
- certificate = g_ptr_array_index (pv->certificates, i);
-
- /* We regard these types as thread safe */
- if (GCR_IS_SIMPLE_CERTIFICATE (certificate) ||
- GCR_IS_PKCS11_CERTIFICATE (certificate)) {
- safe = g_object_ref (certificate);
-
- /* Otherwise copy the certificate data */
- } else {
- der = gcr_certificate_get_der_data (certificate, &n_der);
- g_return_val_if_fail (der, NULL);
- safe = gcr_simple_certificate_new (der, n_der);
-
- _gcr_debug ("copying certificate so it's thread safe");
-
- /* Always set the original certificate onto the safe one */
- g_object_set_qdata_full (G_OBJECT (safe), Q_ORIGINAL_CERT,
- g_object_ref (certificate), g_object_unref);
- }
-
- g_ptr_array_index (pv->certificates, i) = safe;
- g_object_unref (certificate);
- }
-
- return pv;
-}
-
-static GcrCertificateChainPrivate*
-cleanup_chain_private (GcrCertificateChainPrivate *pv)
-{
- GcrCertificate *certificate, *orig;
- guint i;
-
- for (i = 0; i < pv->certificates->len; ++i) {
- certificate = g_ptr_array_index (pv->certificates, i);
-
- /* If there's an original certificate set, then replace it back */
- orig = g_object_get_qdata (G_OBJECT (certificate), Q_ORIGINAL_CERT);
- if (orig != NULL) {
- g_ptr_array_index (pv->certificates, i) = g_object_ref (orig);
- g_object_unref (certificate);
- }
- }
-
- return pv;
-}
-
-static gboolean
-perform_build_chain (GcrCertificateChainPrivate *pv, GCancellable *cancellable,
- GError **rerror)
-{
- GError *error = NULL;
- GcrCertificate *certificate;
- gboolean lookups;
- gboolean ret;
- guint length;
- gchar *subject;
-
- g_assert (pv);
- g_assert (pv->certificates);
-
- pv->status = GCR_CERTIFICATE_CHAIN_UNKNOWN;
- lookups = !((pv->flags & GCR_CERTIFICATE_CHAIN_NO_LOOKUPS) == GCR_CERTIFICATE_CHAIN_NO_LOOKUPS);
-
- /* This chain is built */
- if (!pv->certificates->len) {
- _gcr_debug ("empty certificate chain");
- return TRUE;
- }
-
- /* First check for pinned certificates */
- certificate = g_ptr_array_index (pv->certificates, 0);
- if (_gcr_debugging) {
- subject = gcr_certificate_get_subject_dn (certificate);
- _gcr_debug ("first certificate: %s", subject);
- g_free (subject);
- }
-
- if (lookups && pv->peer) {
- ret = gcr_trust_is_certificate_pinned (certificate, pv->purpose,
- pv->peer, cancellable, &error);
- if (!ret && error) {
- _gcr_debug ("failed to lookup pinned certificate: %s",
- egg_error_message (error));
- g_propagate_error (rerror, error);
- return FALSE;
- }
-
- /*
- * This is a pinned certificate and the rest of the chain
- * is irrelevant, so truncate chain and consider built.
- */
- if (ret) {
- _gcr_debug ("found pinned certificate for peer '%s', truncating chain",
- pv->peer);
-
- g_ptr_array_set_size (pv->certificates, 1);
- pv->status = GCR_CERTIFICATE_CHAIN_PINNED;
- return TRUE;
- }
- }
-
- length = 1;
-
- /* The first certificate is always unconditionally in the chain */
- while (pv->status == GCR_CERTIFICATE_CHAIN_UNKNOWN) {
-
- /* Stop the chain if previous was self-signed */
- if (gcr_certificate_is_issuer (certificate, certificate)) {
- _gcr_debug ("found self-signed certificate");
- pv->status = GCR_CERTIFICATE_CHAIN_SELFSIGNED;
- break;
- }
-
- /* Try the next certificate in the chain */
- if (length < pv->certificates->len) {
- certificate = g_ptr_array_index (pv->certificates, length);
- if (_gcr_debugging) {
- subject = gcr_certificate_get_subject_dn (certificate);
- _gcr_debug ("next certificate: %s", subject);
- g_free (subject);
- }
-
- /* No more in chain, try to lookup */
- } else if (lookups) {
- certificate = gcr_pkcs11_certificate_lookup_issuer (certificate,
- cancellable, &error);
- if (error != NULL) {
- _gcr_debug ("failed to lookup issuer: %s", error->message);
- g_propagate_error (rerror, error);
- return FALSE;
-
- } else if (certificate) {
- g_ptr_array_add (pv->certificates, certificate);
- if (_gcr_debugging) {
- subject = gcr_certificate_get_subject_dn (certificate);
- _gcr_debug ("found issuer certificate: %s", subject);
- g_free (subject);
- }
-
- } else {
- _gcr_debug ("no issuer found");
- }
-
- /* No more in chain, and can't lookup */
- } else {
- _gcr_debug ("no more certificates available, and no lookups");
- certificate = NULL;
- }
-
- /* Stop the chain if nothing found */
- if (certificate == NULL) {
- _gcr_debug ("chain is incomplete");
- pv->status = GCR_CERTIFICATE_CHAIN_INCOMPLETE;
- break;
- }
-
- ++length;
-
- /* See if this certificate is an anchor */
- if (lookups) {
- ret = gcr_trust_is_certificate_anchored (certificate, pv->purpose,
- cancellable, &error);
-
- if (!ret && error) {
- _gcr_debug ("failed to lookup anchored certificate: %s",
- egg_error_message (error));
- g_propagate_error (rerror, error);
- return FALSE;
-
- /* Stop the chain at the first anchor */
- } else if (ret) {
- _gcr_debug ("found anchored certificate");
- pv->status = GCR_CERTIFICATE_CHAIN_ANCHORED;
- break;
- }
- }
- }
-
- /* TODO: Need to check each certificate in the chain for distrusted */
-
- /* Truncate to the appropriate length */
- g_assert (length <= pv->certificates->len);
- g_ptr_array_set_size (pv->certificates, length);
- return TRUE;
-}
-
-static void
-thread_build_chain (GSimpleAsyncResult *result, GObject *object,
- GCancellable *cancellable)
-{
- GcrCertificateChainPrivate *pv;
- GError *error = NULL;
-
- pv = g_object_get_qdata (G_OBJECT (result), Q_OPERATION_DATA);
- g_assert (pv);
-
- _gcr_debug ("building asynchronously in another thread");
-
- if (!perform_build_chain (pv, cancellable, &error)) {
- g_simple_async_result_set_from_error (result, error);
- g_clear_error (&error);
- }
-}
-
-/* -----------------------------------------------------------------------------
- * OBJECT
- */
-
-static void
-gcr_certificate_chain_init (GcrCertificateChain *self)
-{
- self->pv = new_chain_private ();
-}
-
-static void
-gcr_certificate_chain_dispose (GObject *obj)
-{
- GcrCertificateChain *self = GCR_CERTIFICATE_CHAIN (obj);
-
- g_ptr_array_set_size (self->pv->certificates, 0);
- self->pv->status = GCR_CERTIFICATE_CHAIN_UNKNOWN;
-
- G_OBJECT_CLASS (gcr_certificate_chain_parent_class)->dispose (obj);
-}
-
-static void
-gcr_certificate_chain_finalize (GObject *obj)
-{
- GcrCertificateChain *self = GCR_CERTIFICATE_CHAIN (obj);
-
- free_chain_private (self->pv);
- self->pv = NULL;
-
- G_OBJECT_CLASS (gcr_certificate_chain_parent_class)->finalize (obj);
-}
-
-static void
-gcr_certificate_chain_get_property (GObject *obj, guint prop_id, GValue *value,
- GParamSpec *pspec)
-{
- GcrCertificateChain *self = GCR_CERTIFICATE_CHAIN (obj);
-
- switch (prop_id) {
- case PROP_STATUS:
- g_value_set_enum (value, gcr_certificate_chain_get_status (self));
- break;
- case PROP_LENGTH:
- g_value_set_uint (value, gcr_certificate_chain_get_length (self));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_certificate_chain_class_init (GcrCertificateChainClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- gcr_certificate_chain_parent_class = g_type_class_peek_parent (klass);
-
- gobject_class->dispose = gcr_certificate_chain_dispose;
- gobject_class->finalize = gcr_certificate_chain_finalize;
- gobject_class->get_property = gcr_certificate_chain_get_property;
-
- /**
- * GcrCertificateChain:status:
- *
- * The certificate chain status. See #GcrCertificateChainStatus
- */
- g_object_class_install_property (gobject_class, PROP_STATUS,
- g_param_spec_enum ("status", "Status", "Status of certificate chain",
- GCR_TYPE_CERTIFICATE_CHAIN_STATUS,
- GCR_CERTIFICATE_CHAIN_UNKNOWN, G_PARAM_READABLE));
-
- /**
- * GcrCertificateChain:length:
- *
- * The length of the certificate chain.
- */
- g_object_class_install_property (gobject_class, PROP_LENGTH,
- g_param_spec_uint ("length", "Length", "Length of certificate chain",
- 0, G_MAXUINT, 0, G_PARAM_READABLE));
-
- Q_ORIGINAL_CERT = g_quark_from_static_string ("gcr-certificate-chain-original-cert");
- Q_OPERATION_DATA = g_quark_from_static_string ("gcr-certificate-chain-operation-data");
-}
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-/**
- * GcrCertificateChainStatus:
- * @GCR_CERTIFICATE_CHAIN_UNKNOWN: The certificate chain's status is unknown.
- * When a chain is not yet built it has this status. If a chain is modified after
- * being built, it has this status.
- * @GCR_CERTIFICATE_CHAIN_INCOMPLETE: A full chain could not be loaded. The
- * chain does not end with a self-signed certificate, a trusted anchor, or a
- * pinned certificate.
- * @GCR_CERTIFICATE_CHAIN_SELFSIGNED: The chain ends with a self-signed
- * certificate. No trust anchor was found.
- * @GCR_CERTIFICATE_CHAIN_DISTRUSTED: The certificate chain contains a revoked
- * or otherwise explicitly distrusted certificate. The entire chain should
- * be distrusted.
- * @GCR_CERTIFICATE_CHAIN_ANCHORED: The chain ends with an anchored
- * certificate. The anchored certificate is not necessarily self-signed.
- * @GCR_CERTIFICATE_CHAIN_PINNED: The chain represents a pinned certificate. A
- * pinned certificate is an exception which trusts a given certificate
- * explicitly for a purpose and communication with a certain peer.
- *
- * The status of a built certificate chain. Will be set to
- * %GCR_CERTIFICATE_CHAIN_UNKNOWN for certificate chains that have not been
- * built.
- */
-
-/**
- * GCR_TYPE_CERTIFICATE_CHAIN_STATUS:
- *
- * The enum #GType for #GcrCertificateChainStatus.
- */
-
-/**
- * GcrCertificateChainFlags:
- * @GCR_CERTIFICATE_CHAIN_NONE: no flags
- * @GCR_CERTIFICATE_CHAIN_NO_LOOKUPS: If this flag is specified then no
- * lookups for anchors or pinned certificates are done, and the resulting chain
- * will be neither anchored or pinned. Additionally no missing certificate
- * authorities are looked up in PKCS\#11.
- *
- * Flags to be used with the gcr_certificate_chain_build() operation.
- */
-
-/**
- * GCR_TYPE_CERTIFICATE_CHAIN_FLAGS:
- *
- * The flags #GType for #GcrCertificateChainFlags.
- */
-
-/**
- * gcr_certificate_chain_new:
- *
- * Create a new #GcrCertificateChain.
- *
- * Returns: (transfer full): a newly allocated certificate chain
- */
-GcrCertificateChain *
-gcr_certificate_chain_new (void)
-{
- return g_object_new (GCR_TYPE_CERTIFICATE_CHAIN, NULL);
-}
-
-/**
- * gcr_certificate_chain_add:
- * @self: the #GcrCertificateChain
- * @certificate: a #GcrCertificate to add to the chain
- *
- * Add @certificate to the chain. The order of certificates in the chain are
- * important. The first certificate should be the endpoint certificate, and
- * then come the signers (certificate authorities) each in turn. If a root
- * certificate authority is present, it should come last.
- *
- * Adding a certificate an already built chain (see
- * gcr_certificate_chain_build()) resets the type of the certificate chain
- * to %GCR_CERTIFICATE_CHAIN_UNKNOWN
- */
-void
-gcr_certificate_chain_add (GcrCertificateChain *self, GcrCertificate *certificate)
-{
- g_return_if_fail (GCR_IS_CERTIFICATE_CHAIN (self));
- g_return_if_fail (GCR_IS_CERTIFICATE (certificate));
- g_ptr_array_add (self->pv->certificates, g_object_ref (certificate));
- self->pv->status = GCR_CERTIFICATE_CHAIN_UNKNOWN;
- g_object_notify (G_OBJECT (self), "status");
- g_object_notify (G_OBJECT (self), "length");
-}
-
-/**
- * gcr_certificate_chain_get_status:
- * @self: the #GcrCertificateChain
- *
- * Get the status of a certificate chain. If the certificate chain has not
- * been built, then the status will be %GCR_CERTIFICATE_CHAIN_UNKNOWN.
- *
- * A status of %GCR_CERTIFICATE_CHAIN_ANCHORED does not mean that the
- * certificate chain has been verified, but merely that an anchor has been
- * found.
- *
- * Returns: the status of the certificate chain.
- */
-GcrCertificateChainStatus
-gcr_certificate_chain_get_status (GcrCertificateChain *self)
-{
- g_return_val_if_fail (GCR_IS_CERTIFICATE_CHAIN (self), GCR_CERTIFICATE_CHAIN_UNKNOWN);
- return self->pv->status;
-}
-
-/**
- * gcr_certificate_chain_get_anchor:
- * @self: the #GcrCertificateChain
- *
- * If the certificate chain has been built and is of status
- * %GCR_CERTIFICATE_CHAIN_ANCHORED, then this will return the anchor
- * certificate that was found. This is not necessarily a root certificate
- * authority. If an intermediate certificate authority in the chain was
- * found to be anchored, then that certificate will be returned.
- *
- * If an anchor is returned it does not mean that the certificate chain has
- * been verified, but merely that an anchor has been found.
- *
- * Returns: (transfer none): the anchor certificate, or NULL if not anchored.
- */
-GcrCertificate *
-gcr_certificate_chain_get_anchor (GcrCertificateChain *self)
-{
- g_return_val_if_fail (GCR_IS_CERTIFICATE_CHAIN (self), NULL);
- if (self->pv->status != GCR_CERTIFICATE_CHAIN_ANCHORED)
- return NULL;
- g_assert (self->pv->certificates->len > 0);
- return GCR_CERTIFICATE (g_ptr_array_index (self->pv->certificates,
- self->pv->certificates->len - 1));
-}
-
-/**
- * gcr_certificate_chain_get_endpoint:
- * @self: the #GcrCertificateChain
- *
- * Get the endpoint certificate in the chain. This is always the first
- * certificate in the chain. The endpoint certificate cannot be anchored.
- *
- * Returns: (transfer none): the endpoint certificate, or %NULL if the chain
- * is empty
- */
-GcrCertificate*
-gcr_certificate_chain_get_endpoint (GcrCertificateChain *self)
-{
- g_return_val_if_fail (GCR_IS_CERTIFICATE_CHAIN (self), NULL);
- if (!self->pv->certificates->len)
- return NULL;
- return GCR_CERTIFICATE (g_ptr_array_index (self->pv->certificates, 0));
-}
-
-/**
- * gcr_certificate_chain_get_length:
- * @self: the #GcrCertificateChain
- *
- * Get the length of the certificate chain.
- *
- * Returns: the length of the certificate chain
- */
-guint
-gcr_certificate_chain_get_length (GcrCertificateChain *self)
-{
- g_return_val_if_fail (GCR_IS_CERTIFICATE_CHAIN (self), 0);
- return self->pv->certificates->len;
-}
-
-/**
- * gcr_certificate_chain_get_certificate:
- * @self: the #GcrCertificateChain
- * @index: index of the certificate to get
- *
- * Get a certificate in the chain. It is an error to call this function
- * with an invalid index.
- *
- * Returns: (transfer none): the certificate
- */
-GcrCertificate *
-gcr_certificate_chain_get_certificate (GcrCertificateChain *self, guint index)
-{
- g_return_val_if_fail (GCR_IS_CERTIFICATE_CHAIN (self), NULL);
- g_return_val_if_fail (index < self->pv->certificates->len, NULL);
- return GCR_CERTIFICATE (g_ptr_array_index (self->pv->certificates, index));
-}
-
-/**
- * gcr_certificate_chain_build:
- * @self: the #GcrCertificateChain
- * @purpose: the purpose the certificate chain will be used for
- * @peer: (allow-none): the peer the certificate chain will be used with, or %NULL
- * @flags: chain completion flags
- * @cancellable: a #GCancellable or %NULL
- * @error: a #GError or %NULL
- *
- * Complete a certificate chain. Once a certificate chain has been built
- * its status can be examined.
- *
- * This operation will lookup missing certificates in PKCS\#11
- * modules and also that each certificate in the chain is the signer of the
- * previous one. If a trust anchor, pinned certificate, or self-signed certificate
- * is found, then the chain is considered built. Any extra certificates are
- * removed from the chain.
- *
- * It's important to understand that building of a certificate chain does not
- * constitute verifying that chain. This is merely the first step towards
- * trust verification.
- *
- * The @purpose is a string like %GCR_PURPOSE_CLIENT_AUTH and is the purpose
- * for which the certificate chain will be used. Trust anchors are looked up
- * for this purpose. This argument is required.
- *
- * The @peer is usually the host name of the peer whith which this certificate
- * chain is being used. It is used to look up pinned certificates that have
- * been stored for this peer. If %NULL then no pinned certificates will
- * be considered.
- *
- * If the %GCR_CERTIFICATE_CHAIN_NO_LOOKUPS flag is specified then no
- * lookups for anchors or pinned certificates are done, and the resulting chain
- * will be neither anchored or pinned. Additionally no missing certificate
- * authorities are looked up in PKCS\#11
- *
- * This call will block, see gcr_certificate_chain_build_async() for the
- * asynchronous version.
- *
- * Returns: whether the operation completed successfully
- */
-gboolean
-gcr_certificate_chain_build (GcrCertificateChain *self,
- const gchar *purpose,
- const gchar *peer,
- GcrCertificateChainFlags flags,
- GCancellable *cancellable,
- GError **error)
-{
- GcrCertificateChainPrivate *pv;
- gboolean ret;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE_CHAIN (self), FALSE);
- g_return_val_if_fail (purpose != NULL, FALSE);
-
- pv = prep_chain_private (self->pv, purpose, peer, flags);
-
- ret = perform_build_chain (pv, cancellable, error);
-
- if (ret) {
- free_chain_private (self->pv);
- self->pv = cleanup_chain_private (pv);
- g_object_notify (G_OBJECT (self), "status");
- g_object_notify (G_OBJECT (self), "length");
- } else {
- free_chain_private (pv);
- }
-
- return ret;
-}
-
-/**
- * gcr_certificate_chain_build_async:
- * @self: the #GcrCertificateChain
- * @purpose: the purpose the certificate chain will be used for
- * @peer: (allow-none): the peer the certificate chain will be used with, or %NULL
- * @flags: chain completion flags
- * @cancellable: a #GCancellable or %NULL
- * @callback: this will be called when the operation completes.
- * @user_data: data to pass to the callback
- *
- * Complete a certificate chain. Once a certificate chain has been built
- * its status can be examined.
- *
- * This will lookup missing certificates in PKCS\#11
- * modules and also that each certificate in the chain is the signer of the
- * previous one. If a trust anchor, pinned certificate, or self-signed certificate
- * is found, then the chain is considered built. Any extra certificates are
- * removed from the chain.
- *
- * It's important to understand that building of a certificate chain does not
- * constitute verifying that chain. This is merely the first step towards
- * trust verification.
- *
- * The @purpose is a string like %GCR_PURPOSE_CLIENT_AUTH and is the purpose
- * for which the certificate chain will be used. Trust anchors are looked up
- * for this purpose. This argument is required.
- *
- * The @peer is usually the host name of the peer whith which this certificate
- * chain is being used. It is used to look up pinned certificates that have
- * been stored for this peer. If %NULL then no pinned certificates will
- * be considered.
- *
- * If the %GCR_CERTIFICATE_CHAIN_NO_LOOKUPS flag is specified then no
- * lookups for anchors or pinned certificates are done, and the resulting chain
- * will be neither anchored or pinned. Additionally no missing certificate
- * authorities are looked up in PKCS\#11
- *
- * When the operation is finished, @callback will be called. You can then call
- * gcr_certificate_chain_build_finish() to get the result of the operation.
- */
-void
-gcr_certificate_chain_build_async (GcrCertificateChain *self,
- const gchar *purpose,
- const gchar *peer,
- GcrCertificateChainFlags flags,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- GcrCertificateChainPrivate *pv;
- GSimpleAsyncResult *result;
-
- g_return_if_fail (GCR_IS_CERTIFICATE_CHAIN (self));
-
- g_return_if_fail (GCR_IS_CERTIFICATE_CHAIN (self));
- g_return_if_fail (purpose);
-
- pv = prep_chain_private_thread_safe (self->pv, purpose, peer, flags);
-
- result = g_simple_async_result_new (G_OBJECT (self), callback, user_data,
- gcr_certificate_chain_build_async);
- g_object_set_qdata_full (G_OBJECT (result), Q_OPERATION_DATA, pv, free_chain_private);
-
- g_simple_async_result_run_in_thread (result, thread_build_chain,
- G_PRIORITY_DEFAULT, cancellable);
- g_object_unref (result);
-}
-
-/**
- * gcr_certificate_chain_build_finish:
- * @self: the #GcrCertificateChain
- * @result: the #GAsyncResult passed to the callback
- * @error: a #GError, or NULL
- *
- * Finishes an asynchronous operation started by
- * gcr_certificate_chain_build_async().
- *
- * Returns: whether the operation succeeded
- */
-gboolean
-gcr_certificate_chain_build_finish (GcrCertificateChain *self, GAsyncResult *result,
- GError **error)
-{
- GcrCertificateChainPrivate *pv;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE_CHAIN (self), FALSE);
- g_return_val_if_fail (G_IS_ASYNC_RESULT (result), FALSE);
- g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (self),
- gcr_certificate_chain_build_async), FALSE);
-
- if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error))
- return FALSE;
-
- pv = g_object_steal_qdata (G_OBJECT (result), Q_OPERATION_DATA);
- g_return_val_if_fail (pv, FALSE);
-
- free_chain_private (self->pv);
- self->pv = cleanup_chain_private (pv);
-
- g_object_notify (G_OBJECT (self), "status");
- g_object_notify (G_OBJECT (self), "length");
- return TRUE;
-}
diff --git a/gcr/gcr-certificate-chain.h b/gcr/gcr-certificate-chain.h
deleted file mode 100644
index ef8bdcfa..00000000
--- a/gcr/gcr-certificate-chain.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Collabora Ltd
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef __GCR_CERTIFICATE_CHAIN_H__
-#define __GCR_CERTIFICATE_CHAIN_H__
-
-#include <glib-object.h>
-
-#include "gcr-certificate.h"
-#include "gcr-types.h"
-
-G_BEGIN_DECLS
-
-typedef enum {
- GCR_CERTIFICATE_CHAIN_UNKNOWN,
- GCR_CERTIFICATE_CHAIN_INCOMPLETE,
- GCR_CERTIFICATE_CHAIN_DISTRUSTED,
- GCR_CERTIFICATE_CHAIN_SELFSIGNED,
- GCR_CERTIFICATE_CHAIN_PINNED,
- GCR_CERTIFICATE_CHAIN_ANCHORED,
-} GcrCertificateChainStatus;
-
-typedef enum {
- GCR_CERTIFICATE_CHAIN_NONE = 0,
- GCR_CERTIFICATE_CHAIN_NO_LOOKUPS = 1 << 0,
-} GcrCertificateChainFlags;
-
-#define GCR_TYPE_CERTIFICATE_CHAIN (gcr_certificate_chain_get_type ())
-#define GCR_CERTIFICATE_CHAIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_CERTIFICATE_CHAIN, GcrCertificateChain))
-#define GCR_CERTIFICATE_CHAIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_CERTIFICATE_CHAIN, GcrCertificateChainClass))
-#define GCR_IS_CERTIFICATE_CHAIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_CERTIFICATE_CHAIN))
-#define GCR_IS_CERTIFICATE_CHAIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_CERTIFICATE_CHAIN))
-#define GCR_CERTIFICATE_CHAIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_CERTIFICATE_CHAIN, GcrCertificateChainClass))
-
-typedef struct _GcrCertificateChain GcrCertificateChain;
-typedef struct _GcrCertificateChainClass GcrCertificateChainClass;
-typedef struct _GcrCertificateChainPrivate GcrCertificateChainPrivate;
-
-struct _GcrCertificateChain {
- GObject parent;
-
- /*< private >*/
- GcrCertificateChainPrivate *pv;
-};
-
-struct _GcrCertificateChainClass {
- GObjectClass parent_class;
-};
-
-GType gcr_certificate_chain_get_type (void) G_GNUC_CONST;
-
-GcrCertificateChain* gcr_certificate_chain_new (void);
-
-void gcr_certificate_chain_add (GcrCertificateChain *self,
- GcrCertificate *certificate);
-
-GcrCertificateChainStatus gcr_certificate_chain_get_status (GcrCertificateChain *self);
-
-GcrCertificate* gcr_certificate_chain_get_anchor (GcrCertificateChain *self);
-
-GcrCertificate* gcr_certificate_chain_get_endpoint (GcrCertificateChain *self);
-
-guint gcr_certificate_chain_get_length (GcrCertificateChain *self);
-
-GcrCertificate* gcr_certificate_chain_get_certificate (GcrCertificateChain *self,
- guint index);
-
-gboolean gcr_certificate_chain_build (GcrCertificateChain *self,
- const gchar *purpose,
- const gchar *peer,
- guint flags,
- GCancellable *cancellable,
- GError **error);
-
-void gcr_certificate_chain_build_async (GcrCertificateChain *self,
- const gchar *purpose,
- const gchar *peer,
- guint flags,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean gcr_certificate_chain_build_finish (GcrCertificateChain *self,
- GAsyncResult *result,
- GError **error);
-
-G_END_DECLS
-
-#endif /* __GCR_CERTIFICATE_CHAIN_H__ */
diff --git a/gcr/gcr-certificate-details-widget.c b/gcr/gcr-certificate-details-widget.c
deleted file mode 100644
index 9fc23070..00000000
--- a/gcr/gcr-certificate-details-widget.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-#include "gcr-certificate-details-widget.h"
-
-#ifndef GCR_DISABLE_DEPRECATED
-
-/* These are all stubs for GcrCertificateWidget */
-
-GType
-gcr_certificate_details_widget_get_type (void)
-{
- return gcr_certificate_widget_get_type ();
-}
-
-/**
- * gcr_certificate_details_widget_new: (skip)
- *
- * Deprecated: Since 2.30
- *
- * Returns: (transfer full) (type Gcr.CertificateWidget): a new certificate widget
- */
-GcrCertificateDetailsWidget *
-gcr_certificate_details_widget_new (GcrCertificate *cert)
-{
- return gcr_certificate_widget_new (cert);
-}
-
-/**
- * gcr_certificate_details_widget_get_certificate: (skip)
- *
- * Deprecated: Since 2.30
- *
- * Returns: (transfer none): the certificate
- */
-GcrCertificate*
-gcr_certificate_details_widget_get_certificate (GcrCertificateDetailsWidget *details)
-{
- return gcr_certificate_widget_get_certificate (details);
-}
-
-/**
- * gcr_certificate_details_widget_set_certificate: (skip)
- * @details: the certificate widget
- * @cert: the certificate
- *
- * Deprecated: Since 2.30
- */
-void
-gcr_certificate_details_widget_set_certificate (GcrCertificateDetailsWidget *details,
- GcrCertificate *cert)
-{
- return gcr_certificate_widget_set_certificate (details, cert);
-}
-
-#endif /* GCR_DISABLE_DEPRECATED */
diff --git a/gcr/gcr-certificate-details-widget.h b/gcr/gcr-certificate-details-widget.h
deleted file mode 100644
index 5a3d74b0..00000000
--- a/gcr/gcr-certificate-details-widget.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (C) 2008 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#ifndef __GCR_CERTIFICATE_DETAILS_WIDGET_H__
-#define __GCR_CERTIFICATE_DETAILS_WIDGET_H__
-
-/*
- * GcrCertificateDetailsWidget has been replaced with GcrCertificateWidget.
- * These functions are stubs for GcrCertificateWidget.
- */
-
-#ifndef GCR_DISABLE_DEPRECATED
-
-#include <glib-object.h>
-#include <gtk/gtk.h>
-
-#include "gcr-certificate.h"
-#include "gcr-certificate-widget.h"
-#include "gcr-types.h"
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_CERTIFICATE_DETAILS_WIDGET (gcr_certificate_details_widget_get_type ())
-#define GCR_CERTIFICATE_DETAILS_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_CERTIFICATE_DETAILS_WIDGET, GcrCertificateDetailsWidget))
-#define GCR_CERTIFICATE_DETAILS_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_CERTIFICATE_DETAILS_WIDGET, GcrCertificateDetailsWidgetClass))
-#define GCR_IS_CERTIFICATE_DETAILS_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_CERTIFICATE_DETAILS_WIDGET))
-#define GCR_IS_CERTIFICATE_DETAILS_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_CERTIFICATE_DETAILS_WIDGET))
-#define GCR_CERTIFICATE_DETAILS_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_CERTIFICATE_DETAILS_WIDGET, GcrCertificateDetailsWidgetClass))
-
-typedef GcrCertificateWidget GcrCertificateDetailsWidget;
-typedef GcrCertificateWidgetClass GcrCertificateDetailsWidgetClass;
-
-GType gcr_certificate_details_widget_get_type (void);
-
-GcrCertificateDetailsWidget* gcr_certificate_details_widget_new (GcrCertificate *cert);
-
-GcrCertificate* gcr_certificate_details_widget_get_certificate (GcrCertificateDetailsWidget *details);
-
-void gcr_certificate_details_widget_set_certificate (GcrCertificateDetailsWidget *details,
- GcrCertificate *cert);
-
-G_END_DECLS
-
-#endif /* GCR_DISABLE_DEPRECATED */
-
-#endif /* __GCR_CERTIFICATE_DETAILS_WIDGET_H__ */
diff --git a/gcr/gcr-certificate-exporter.c b/gcr/gcr-certificate-exporter.c
deleted file mode 100644
index 7806533e..00000000
--- a/gcr/gcr-certificate-exporter.c
+++ /dev/null
@@ -1,567 +0,0 @@
-/*
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-certificate.h"
-#include "gcr-certificate-exporter.h"
-
-#include "egg/egg-armor.h"
-#include "egg/egg-openssl.h"
-
-#include <glib/gi18n-lib.h>
-
-enum {
- PROP_0,
- PROP_CERTIFICATE,
- PROP_LABEL,
- PROP_TRANSIENT_FOR
-};
-
-struct _GcrCertificateExporterPrivate {
-
- /* Setup stuff */
- GcrCertificate *certificate;
- gchar *label;
- GtkWindow *transient_for;
-
- /* Used during operation */
- GtkFileChooser *chooser_dialog;
- GFile *output_file;
- GByteArray *buffer;
- guint buffer_at;
-
- /* Async stuff */
- GAsyncReadyCallback callback;
- gpointer user_data;
- GCancellable *cancellable;
- GError *error;
- gboolean completed;
-};
-
-static const gchar *BAD_FILENAME_CHARS = "/\\<>|?*";
-
-/* Forward declarations */
-static void _gcr_certificate_exporter_async_result_init (GAsyncResultIface *iface);
-static void write_to_outputstream (GcrCertificateExporter *self, GOutputStream *os);
-
-G_DEFINE_TYPE_WITH_CODE (GcrCertificateExporter, _gcr_certificate_exporter, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (G_TYPE_ASYNC_RESULT, _gcr_certificate_exporter_async_result_init));
-
-typedef void (*PrepareDataFunc) (GcrCertificateExporter *self);
-
-/* -----------------------------------------------------------------------------
- * INTERNAL
- */
-
-static void
-prepare_data_for_der (GcrCertificateExporter *self)
-{
- gconstpointer data;
- gsize n_data;
-
- data = gcr_certificate_get_der_data (self->pv->certificate, &n_data);
- g_return_if_fail (data);
-
- self->pv->buffer = g_byte_array_new ();
- g_byte_array_append (self->pv->buffer, data, n_data);
-}
-
-static void
-prepare_data_for_pem (GcrCertificateExporter *self)
-{
- gconstpointer data;
- gpointer encoded;
- gsize n_data, n_encoded;
-
- data = gcr_certificate_get_der_data (self->pv->certificate, &n_data);
- g_return_if_fail (data);
-
- self->pv->buffer = g_byte_array_new ();
-
- encoded = egg_armor_write (data, n_data,
- g_quark_from_static_string ("CERTIFICATE"),
- NULL, &n_encoded);
-
- g_byte_array_append (self->pv->buffer, encoded, n_encoded);
- g_free (encoded);
-}
-
-static void
-complete_async_result (GcrCertificateExporter *self)
-{
- g_assert (self->pv->callback);
- g_assert (!self->pv->completed);
-
- if (self->pv->chooser_dialog)
- gtk_widget_hide (GTK_WIDGET (self->pv->chooser_dialog));
-
- self->pv->completed = TRUE;
- (self->pv->callback) (G_OBJECT (self), G_ASYNC_RESULT (self),
- self->pv->user_data);
-}
-
-static void
-on_outputstream_write_ready (GObject *source, GAsyncResult *res, gpointer user_data)
-{
- GcrCertificateExporter *self = GCR_CERTIFICATE_EXPORTER (user_data);
- GOutputStream *os = G_OUTPUT_STREAM (source);
- gssize written;
-
- written = g_output_stream_write_finish (os, res, &self->pv->error);
-
- if (self->pv->error) {
- complete_async_result (self);
- return;
- }
-
- g_return_if_fail (written >= 0);
- g_return_if_fail (written <= self->pv->buffer->len - self->pv->buffer_at);
- self->pv->buffer_at += written;
-
- /* Write next bit, or finished */
- write_to_outputstream (self, os);
-}
-
-static void
-on_outputstream_closed (GObject *source, GAsyncResult *res, gpointer user_data)
-{
- GcrCertificateExporter *self = GCR_CERTIFICATE_EXPORTER (user_data);
- g_output_stream_close_finish (G_OUTPUT_STREAM (source), res, &self->pv->error);
- complete_async_result (self);
-}
-
-static void
-write_to_outputstream (GcrCertificateExporter *self, GOutputStream *os)
-{
- gtk_widget_hide (GTK_WIDGET (self->pv->chooser_dialog));
- g_assert (GTK_IS_WIDGET (self->pv->chooser_dialog));
-
- /* Are we all done? */
- g_assert (self->pv->buffer_at <= self->pv->buffer->len);
- if (self->pv->buffer_at == self->pv->buffer->len) {
- g_output_stream_close_async (os, G_PRIORITY_DEFAULT,
- self->pv->cancellable,
- on_outputstream_closed, self);
- return;
- }
-
- g_output_stream_write_async (os, self->pv->buffer->data + self->pv->buffer_at,
- self->pv->buffer->len - self->pv->buffer_at,
- G_PRIORITY_DEFAULT, self->pv->cancellable,
- on_outputstream_write_ready, self);
-}
-
-static void
-on_replace_file_ready (GObject *source, GAsyncResult *res, gpointer user_data)
-{
- GcrCertificateExporter *self = GCR_CERTIFICATE_EXPORTER (user_data);
- GFile *file = G_FILE (source);
- GFileOutputStream *os;
-
- os = g_file_replace_finish (file, res, &self->pv->error);
-
- if (self->pv->error) {
- complete_async_result (self);
- return;
- }
-
- write_to_outputstream (self, G_OUTPUT_STREAM (os));
-}
-
-static void
-on_replace_dialog_response (GtkDialog *dialog, gint response_id, gpointer user_data)
-{
- GcrCertificateExporter *self = GCR_CERTIFICATE_EXPORTER (user_data);
-
- if (response_id == GTK_RESPONSE_ACCEPT) {
- g_file_replace_async (self->pv->output_file, NULL, FALSE, G_FILE_CREATE_NONE,
- G_PRIORITY_DEFAULT, self->pv->cancellable,
- on_replace_file_ready, self);
- }
-
- gtk_widget_destroy (GTK_WIDGET (dialog));
-}
-
-static void
-on_cancel_replace_dialog (GCancellable *cancellable, gpointer user_data)
-{
- gtk_widget_destroy (user_data);
-}
-
-static void
-on_create_file_ready (GObject *source, GAsyncResult *res, gpointer user_data)
-{
- GcrCertificateExporter *self = GCR_CERTIFICATE_EXPORTER (user_data);
- GFileOutputStream *os;
- GtkWidget *dialog;
-
- os = g_file_create_finish (self->pv->output_file, res, &self->pv->error);
-
- /* Try again this time replacing the file */
- if (g_error_matches (self->pv->error, G_IO_ERROR, G_IO_ERROR_EXISTS)) {
- g_clear_error (&self->pv->error);
-
- dialog = gtk_message_dialog_new_with_markup (GTK_WINDOW (self->pv->chooser_dialog),
- GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION,
- GTK_BUTTONS_NONE, _("<b>A file already exists with this name.</b>\n\nDo you want to replace it with a new file?"));
- gtk_dialog_add_buttons (GTK_DIALOG (dialog),
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- _("_Replace"), GTK_RESPONSE_ACCEPT, NULL);
-
- g_signal_connect (dialog, "response",
- G_CALLBACK (on_replace_dialog_response), self);
- if (self->pv->cancellable)
- g_cancellable_connect (self->pv->cancellable,
- G_CALLBACK (on_cancel_replace_dialog),
- g_object_ref (dialog), g_object_unref);
- gtk_widget_show (dialog);
-
- return;
- }
-
- if (self->pv->error) {
- complete_async_result (self);
- return;
- }
-
- write_to_outputstream (self, G_OUTPUT_STREAM (os));
-}
-
-static void
-on_chooser_dialog_response (GtkDialog *dialog, gint response_id, gpointer user_data)
-{
- GcrCertificateExporter *self = GCR_CERTIFICATE_EXPORTER (user_data);
- GtkFileFilter *filter;
- PrepareDataFunc prepare_data;
-
- if (response_id != GTK_RESPONSE_ACCEPT) {
- g_set_error (&self->pv->error, G_IO_ERROR, G_IO_ERROR_CANCELLED,
- _("The operation was cancelled."));
- complete_async_result (self);
- return;
- }
-
- if (self->pv->output_file)
- g_object_unref (self->pv->output_file);
- self->pv->output_file = gtk_file_chooser_get_file (self->pv->chooser_dialog);
- g_return_if_fail (self->pv->output_file);
-
- filter = gtk_file_chooser_get_filter (self->pv->chooser_dialog);
- prepare_data = g_object_get_data (G_OBJECT (filter), "prepare-data-func");
- g_assert (prepare_data);
-
- if (self->pv->buffer)
- g_byte_array_free (self->pv->buffer, TRUE);
- self->pv->buffer = NULL;
- self->pv->buffer_at = 0;
-
- /* Prepare the for writing out */
- (prepare_data) (self);
-
- /* Try to open the file */
- g_file_create_async (self->pv->output_file, G_FILE_CREATE_NONE, G_PRIORITY_DEFAULT,
- self->pv->cancellable, on_create_file_ready,
- self);
-}
-
-static void
-on_cancel_chooser_dialog (GCancellable *cancellable, gpointer user_data)
-{
- GtkDialog *dialog = GTK_DIALOG (user_data);
- gtk_dialog_response (dialog, GTK_RESPONSE_CANCEL);
-}
-
-static void
-exporter_display_chooser (GcrCertificateExporter *self)
-{
- GtkFileFilter* filter;
- GtkWidget *dialog;
- gchar *filename;
-
- g_assert (!self->pv->chooser_dialog);
-
- dialog = gtk_file_chooser_dialog_new (_("Export certificate"),
- NULL, GTK_FILE_CHOOSER_ACTION_SAVE,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
- NULL);
-
- self->pv->chooser_dialog = g_object_ref_sink(dialog);
- gtk_dialog_set_default_response (GTK_DIALOG (dialog),
- GTK_RESPONSE_ACCEPT);
- gtk_file_chooser_set_local_only (self->pv->chooser_dialog, FALSE);
-
- filter = gtk_file_filter_new ();
- gtk_file_filter_set_name (filter, _("Certificate files"));
- gtk_file_filter_add_mime_type (filter, "application/x-x509-ca-cert");
- gtk_file_filter_add_mime_type (filter, "application/x-x509-user-cert");
- gtk_file_filter_add_mime_type (filter, "application/pkix-cert");
- gtk_file_filter_add_pattern (filter, "*.cer");
- gtk_file_filter_add_pattern (filter, "*.crt");
- g_object_set_data (G_OBJECT (filter), "prepare-data-func", prepare_data_for_der);
- gtk_file_chooser_add_filter (self->pv->chooser_dialog, filter);
- gtk_file_chooser_set_filter (self->pv->chooser_dialog, filter);
-
- filter = gtk_file_filter_new ();
- gtk_file_filter_set_name (filter, _("PEM files"));
- gtk_file_filter_add_mime_type (filter, "text/plain");
- gtk_file_filter_add_pattern (filter, "*.pem");
- g_object_set_data (G_OBJECT (filter), "prepare-data-func", prepare_data_for_pem);
- gtk_file_chooser_add_filter (self->pv->chooser_dialog, filter);
-
- filename = g_strconcat (self->pv->label, ".crt", NULL);
- g_strdelimit (filename, BAD_FILENAME_CHARS, '_');
- gtk_file_chooser_set_current_name (self->pv->chooser_dialog, filename);
- g_free (filename);
-
- g_signal_connect (self->pv->chooser_dialog, "response",
- G_CALLBACK (on_chooser_dialog_response), self);
- if (self->pv->cancellable)
- g_cancellable_connect (self->pv->cancellable,
- G_CALLBACK (on_cancel_chooser_dialog), self, NULL);
-
- gtk_widget_show (GTK_WIDGET (self->pv->chooser_dialog));
-}
-
-/* -----------------------------------------------------------------------------
- * OBJECT
- */
-
-static void
-_gcr_certificate_exporter_init (GcrCertificateExporter *self)
-{
- self->pv = (G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_CERTIFICATE_EXPORTER,
- GcrCertificateExporterPrivate));
-}
-
-static void
-_gcr_certificate_exporter_dispose (GObject *obj)
-{
- GcrCertificateExporter *self = GCR_CERTIFICATE_EXPORTER (obj);
-
- if (self->pv->certificate)
- g_object_unref (self->pv->certificate);
- self->pv->certificate = NULL;
-
- if (self->pv->cancellable)
- g_object_unref (self->pv->cancellable);
- self->pv->cancellable = NULL;
-
- G_OBJECT_CLASS (_gcr_certificate_exporter_parent_class)->dispose (obj);
-}
-
-static void
-_gcr_certificate_exporter_finalize (GObject *obj)
-{
- GcrCertificateExporter *self = GCR_CERTIFICATE_EXPORTER (obj);
-
- g_free (self->pv->label);
-
- /*
- * Should have been freed in _export_finish, which holds a ref to self
- * so this should never be reached without being finished.
- */
- g_assert (!self->pv->chooser_dialog);
- g_assert (!self->pv->output_file);
- g_assert (!self->pv->buffer);
-
- g_clear_error (&self->pv->error);
-
- G_OBJECT_CLASS (_gcr_certificate_exporter_parent_class)->finalize (obj);
-}
-
-static void
-_gcr_certificate_exporter_set_property (GObject *obj, guint prop_id, const GValue *value,
- GParamSpec *pspec)
-{
- GcrCertificateExporter *self = GCR_CERTIFICATE_EXPORTER (obj);
- GcrCertificate *cert;
-
- switch (prop_id) {
- case PROP_CERTIFICATE:
- cert = g_value_dup_object (value);
- if (self->pv->certificate)
- g_object_unref (self->pv->certificate);
- self->pv->certificate = cert;
- g_object_notify (G_OBJECT (self), "certificate");
- break;
- case PROP_LABEL:
- g_free (self->pv->label);
- self->pv->label = g_value_dup_string (value);
- g_object_notify (obj, "label");
- break;
- case PROP_TRANSIENT_FOR:
- self->pv->transient_for = g_value_get_object (value);
- g_object_notify (obj, "transient-for");
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-_gcr_certificate_exporter_get_property (GObject *obj, guint prop_id, GValue *value,
- GParamSpec *pspec)
-{
- GcrCertificateExporter *self = GCR_CERTIFICATE_EXPORTER (obj);
-
- switch (prop_id) {
- case PROP_CERTIFICATE:
- g_value_set_object (value, self->pv->certificate);
- break;
- case PROP_LABEL:
- g_value_take_string (value, self->pv->label);
- break;
- case PROP_TRANSIENT_FOR:
- g_value_set_object (value, self->pv->transient_for);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-_gcr_certificate_exporter_class_init (GcrCertificateExporterClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- _gcr_certificate_exporter_parent_class = g_type_class_peek_parent (klass);
- g_type_class_add_private (klass, sizeof (GcrCertificateExporterPrivate));
-
- gobject_class->dispose = _gcr_certificate_exporter_dispose;
- gobject_class->finalize = _gcr_certificate_exporter_finalize;
- gobject_class->set_property = _gcr_certificate_exporter_set_property;
- gobject_class->get_property = _gcr_certificate_exporter_get_property;
-
- g_object_class_install_property (gobject_class, PROP_CERTIFICATE,
- g_param_spec_object ("certificate", "Certificate", "Certificate to display.",
- GCR_TYPE_CERTIFICATE, G_PARAM_READWRITE));
-
- g_object_class_install_property (gobject_class, PROP_LABEL,
- g_param_spec_string ("label", "Label", "Label of certificate.",
- _("Certificate"), G_PARAM_READWRITE));
-
- g_object_class_install_property (gobject_class, PROP_TRANSIENT_FOR,
- g_param_spec_object ("transient-for", "Transient For", "Transient for this Window",
- GTK_TYPE_WINDOW, G_PARAM_READWRITE));
-}
-
-static GObject*
-_gcr_certificate_exporter_get_source_object (GAsyncResult *result)
-{
- g_return_val_if_fail (GCR_IS_CERTIFICATE_EXPORTER (result), NULL);
- return G_OBJECT (result);
-}
-
-static gpointer
-_gcr_certificate_exporter_get_user_data (GAsyncResult *result)
-{
- g_return_val_if_fail (GCR_IS_CERTIFICATE_EXPORTER (result), NULL);
- return GCR_CERTIFICATE_EXPORTER (result)->pv->user_data;
-}
-
-static void
-_gcr_certificate_exporter_async_result_init (GAsyncResultIface *iface)
-{
- iface->get_source_object = _gcr_certificate_exporter_get_source_object;
- iface->get_user_data = _gcr_certificate_exporter_get_user_data;
-}
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-GcrCertificateExporter*
-_gcr_certificate_exporter_new (GcrCertificate *certificate, const gchar *label,
- GtkWindow *transient_for)
-{
- return g_object_new (GCR_TYPE_CERTIFICATE_EXPORTER,
- "certificate", certificate,
- "label", label,
- "transient-for", transient_for,
- NULL);
-}
-
-void
-_gcr_certificate_exporter_export_async (GcrCertificateExporter *self,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- g_return_if_fail (GCR_IS_CERTIFICATE_EXPORTER (self));
- g_return_if_fail (callback);
-
- /* Must not have already started */
- g_return_if_fail (!self->pv->callback);
- g_return_if_fail (!self->pv->cancellable);
-
- self->pv->callback = callback;
- self->pv->user_data = user_data;
- if (cancellable)
- self->pv->cancellable = g_object_ref (cancellable);
-
- exporter_display_chooser (self);
-
- /* Matching in export_finish */
- g_object_ref (self);
-}
-
-gboolean
-_gcr_certificate_exporter_export_finish (GcrCertificateExporter *self,
- GAsyncResult *result,
- GError **error)
-{
- gboolean ret = TRUE;
-
- g_return_val_if_fail (G_ASYNC_RESULT (self) == result, FALSE);
- g_return_val_if_fail (!error || !*error, FALSE);
- g_return_val_if_fail (self->pv->completed, FALSE);
-
- /* Cleanup all the operation stuff */
- self->pv->callback = NULL;
-
- if (self->pv->chooser_dialog)
- g_object_unref (self->pv->chooser_dialog);
- self->pv->chooser_dialog = NULL;
-
- if (self->pv->output_file)
- g_object_unref (self->pv->output_file);
- self->pv->output_file = NULL;
-
- if (self->pv->buffer)
- g_byte_array_free (self->pv->buffer, TRUE);
- self->pv->buffer = NULL;
- self->pv->buffer_at = 0;
-
- self->pv->completed = FALSE;
-
- if (self->pv->error) {
- g_propagate_error (error, self->pv->error);
- ret = FALSE;
- }
-
- /* Matches in export_async */
- g_object_unref (self);
- return ret;
-}
diff --git a/gcr/gcr-certificate-exporter.h b/gcr/gcr-certificate-exporter.h
deleted file mode 100644
index fd04a20a..00000000
--- a/gcr/gcr-certificate-exporter.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef __GCR_CERTIFICATE_EXPORTER_H__
-#define __GCR_CERTIFICATE_EXPORTER_H__
-
-#include <glib-object.h>
-#include <gtk/gtk.h>
-
-#include "gcr-types.h"
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_CERTIFICATE_EXPORTER (_gcr_certificate_exporter_get_type ())
-#define GCR_CERTIFICATE_EXPORTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_CERTIFICATE_EXPORTER, GcrCertificateExporter))
-#define GCR_CERTIFICATE_EXPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_CERTIFICATE_EXPORTER, GcrCertificateExporterClass))
-#define GCR_IS_CERTIFICATE_EXPORTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_CERTIFICATE_EXPORTER))
-#define GCR_IS_CERTIFICATE_EXPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_CERTIFICATE_EXPORTER))
-#define GCR_CERTIFICATE_EXPORTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_CERTIFICATE_EXPORTER, GcrCertificateExporterClass))
-
-typedef struct _GcrCertificateExporter GcrCertificateExporter;
-typedef struct _GcrCertificateExporterClass GcrCertificateExporterClass;
-typedef struct _GcrCertificateExporterPrivate GcrCertificateExporterPrivate;
-
-struct _GcrCertificateExporter {
- /*< private >*/
- GObject parent;
- GcrCertificateExporterPrivate *pv;
-};
-
-struct _GcrCertificateExporterClass {
- GObjectClass parent_class;
-};
-
-GType _gcr_certificate_exporter_get_type (void);
-
-GcrCertificateExporter* _gcr_certificate_exporter_new (GcrCertificate *certificate,
- const gchar *label,
- GtkWindow *transient_for);
-
-void _gcr_certificate_exporter_export_async (GcrCertificateExporter *self,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean _gcr_certificate_exporter_export_finish (GcrCertificateExporter *self,
- GAsyncResult *result,
- GError **error);
-
-G_END_DECLS
-
-#endif /* __GCR_CERTIFICATE_EXPORTER_H__ */
diff --git a/gcr/gcr-certificate-extensions.c b/gcr/gcr-certificate-extensions.c
deleted file mode 100644
index 8256da23..00000000
--- a/gcr/gcr-certificate-extensions.c
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-#include "config.h"
-
-#include "gcr-certificate-extensions.h"
-#include "gcr-oids.h"
-
-#include "egg/egg-asn1x.h"
-#include "egg/egg-asn1-defs.h"
-#include "egg/egg-dn.h"
-
-#include <glib/gi18n-lib.h>
-
-gboolean
-_gcr_certificate_extension_basic_constraints (gconstpointer data, gsize n_data,
- gboolean *is_ca, gint *path_len)
-{
- gboolean ret = TRUE;
- GNode *asn = NULL;
- GNode *node;
- gulong value;
-
- g_return_val_if_fail (data, FALSE);
- g_return_val_if_fail (n_data, FALSE);
-
- asn = egg_asn1x_create_and_decode (pkix_asn1_tab, "BasicConstraints", data, n_data);
- if (asn == NULL)
- return FALSE;
-
- if (path_len) {
- node = egg_asn1x_node (asn, "pathLenConstraint", NULL);
- if (!egg_asn1x_have (node))
- *path_len = -1;
- else if (!egg_asn1x_get_integer_as_ulong (node, &value))
- ret = FALSE;
- else
- *path_len = value;
- }
-
- if (is_ca) {
- node = egg_asn1x_node (asn, "cA", NULL);
- if (!egg_asn1x_have (node))
- *is_ca = FALSE;
- else if (!egg_asn1x_get_boolean (node, is_ca))
- ret = FALSE;
- }
-
- egg_asn1x_destroy (asn);
- return ret;
-}
-
-GQuark*
-_gcr_certificate_extension_extended_key_usage (gconstpointer data, gsize n_data)
-{
- GNode *asn = NULL;
- GNode *node;
- GArray *array;
- GQuark oid;
- int i;
-
- asn = egg_asn1x_create_and_decode (pkix_asn1_tab, "ExtKeyUsageSyntax", data, n_data);
- if (asn == NULL)
- return NULL;
-
- array = g_array_new (TRUE, TRUE, sizeof (GQuark));
- for (i = 0; TRUE; ++i) {
- node = egg_asn1x_node (asn, i + 1, NULL);
- if (node == NULL)
- break;
- oid = egg_asn1x_get_oid_as_quark (node);
- g_array_append_val (array, oid);
- }
-
- egg_asn1x_destroy (asn);
- return (GQuark*)g_array_free (array, FALSE);
-}
-
-gpointer
-_gcr_certificate_extension_subject_key_identifier (gconstpointer data, gsize n_data,
- gsize *n_keyid)
-{
- GNode *asn = NULL;
- gpointer result;
-
- asn = egg_asn1x_create_and_decode (pkix_asn1_tab, "SubjectKeyIdentifier", data, n_data);
- if (asn == NULL)
- return NULL;
-
- result = egg_asn1x_get_string_as_raw (asn, g_realloc, n_keyid);
- egg_asn1x_destroy (asn);
-
- return result;
-}
-
-gboolean
-_gcr_certificate_extension_key_usage (gconstpointer data, gsize n_data,
- gulong *key_usage)
-{
- GNode *asn = NULL;
- gboolean ret = TRUE;
- guint n_bits;
-
- asn = egg_asn1x_create_and_decode (pkix_asn1_tab, "KeyUsage", data, n_data);
- if (asn == NULL)
- return FALSE;
-
- ret = egg_asn1x_get_bits_as_ulong (asn, key_usage, &n_bits);
- egg_asn1x_destroy (asn);
- return ret;
-}
-
-static void
-general_name_parse_other (GNode *node, GcrGeneralName *general)
-{
- GNode *decode = NULL;
- GQuark oid;
- gconstpointer value;
- gsize n_value;
-
- general->type = GCR_GENERAL_NAME_OTHER;
- general->description = _("Other Name");
-
- oid = egg_asn1x_get_oid_as_quark (egg_asn1x_node (node, "type-id", NULL));
- value = egg_asn1x_get_raw_element (egg_asn1x_node (node, "value", NULL), &n_value);
-
- if (value == NULL)
- return;
-
- if (oid == GCR_OID_ALT_NAME_XMPP_ADDR) {
- general->description = _("XMPP Addr");
- decode = egg_asn1x_create_and_decode (pkix_asn1_tab, "UTF8String", value, n_value);
- general->display = egg_asn1x_get_string_as_utf8 (decode, g_realloc);
- } else if (oid == GCR_OID_ALT_NAME_DNS_SRV) {
- general->description = _("DNS SRV");
- decode = egg_asn1x_create_and_decode (pkix_asn1_tab, "IA5String", value, n_value);
- general->display = egg_asn1x_get_string_as_utf8 (decode, g_realloc);
- }
-
- egg_asn1x_destroy (decode);
-}
-
-static void
-general_name_parse_rfc822 (GNode *node, GcrGeneralName *general)
-{
- general->type = GCR_GENERAL_NAME_RFC822;
- general->description = _("Email");
- general->display = egg_asn1x_get_string_as_utf8 (node, g_realloc);
-}
-
-static void
-general_name_parse_dns (GNode *node, GcrGeneralName *general)
-{
- general->type = GCR_GENERAL_NAME_DNS;
- general->description = _("DNS");
- general->display = egg_asn1x_get_string_as_utf8 (node, g_realloc);
-}
-
-static void
-general_name_parse_x400 (GNode *node, GcrGeneralName *general)
-{
- general->type = GCR_GENERAL_NAME_X400;
- general->description = _("X400 Address");
-}
-
-static void
-general_name_parse_dn (GNode *node, GcrGeneralName *general)
-{
- general->type = GCR_GENERAL_NAME_DNS;
- general->description = _("Directory Name");
- general->display = egg_dn_read (node);
-}
-
-static void
-general_name_parse_edi (GNode *node, GcrGeneralName *general)
-{
- general->type = GCR_GENERAL_NAME_EDI;
- general->description = _("EDI Party Name");
-}
-
-static void
-general_name_parse_uri (GNode *node, GcrGeneralName *general)
-{
- general->type = GCR_GENERAL_NAME_URI;
- general->description = _("URI");
- general->display = egg_asn1x_get_string_as_utf8 (node, g_realloc);
-}
-
-static void
-general_name_parse_ip (GNode *node, GcrGeneralName *general)
-{
- general->type = GCR_GENERAL_NAME_IP;
- general->description = _("IP Address");
- general->display = egg_asn1x_get_string_as_utf8 (node, g_realloc);
-}
-
-static void
-general_name_parse_registered (GNode *node, GcrGeneralName *general)
-{
- general->type = GCR_GENERAL_NAME_REGISTERED_ID;
- general->description = _("Registered ID");
- general->display = egg_asn1x_get_oid_as_string (node);
-}
-
-GArray*
-_gcr_certificate_extension_subject_alt_name (gconstpointer data, gsize n_data)
-{
- GNode *asn = NULL;
- guint count, i;
- const gchar *node_name;
- GArray *names;
- GcrGeneralName general;
- GNode *choice;
-
- _gcr_oids_init ();
-
- asn = egg_asn1x_create_and_decode (pkix_asn1_tab, "SubjectAltName", data, n_data);
- if (asn == NULL)
- return NULL;
-
- names = g_array_new (FALSE, TRUE, sizeof (GcrGeneralName));
- count = egg_asn1x_count (asn);
-
- for (i = 0; i < count; i++) {
- choice = egg_asn1x_get_choice (egg_asn1x_node (asn, i + 1, NULL));
- g_return_val_if_fail (choice, NULL);
-
- node_name = egg_asn1x_name (choice);
- g_return_val_if_fail (node_name, NULL);
-
- memset (&general, 0, sizeof (general));
-
- if (g_str_equal (node_name, "otherName"))
- general_name_parse_other (choice, &general);
-
- else if (g_str_equal (node_name, "rfc822Name"))
- general_name_parse_rfc822 (choice, &general);
-
- else if (g_str_equal (node_name, "dNSName"))
- general_name_parse_dns (choice, &general);
-
- else if (g_str_equal (node_name, "x400Address"))
- general_name_parse_x400 (choice, &general);
-
- else if (g_str_equal (node_name, "directoryName"))
- general_name_parse_dn (choice, &general);
-
- else if (g_str_equal (node_name, "ediPartyName"))
- general_name_parse_edi (choice, &general);
-
- else if (g_str_equal (node_name, "uniformResourceIdentifier"))
- general_name_parse_uri (choice, &general);
-
- else if (g_str_equal (node_name, "IPAddress"))
- general_name_parse_ip (choice, &general);
-
- else if (g_str_equal (node_name, "registeredID"))
- general_name_parse_registered (choice, &general);
-
- general.raw = egg_asn1x_get_raw_element (choice, &general.n_raw);
- g_array_append_val (names, general);
- }
-
- egg_asn1x_destroy (asn);
- return names;
-}
-
-void
-_gcr_general_names_free (GArray *names)
-{
- guint i;
-
- for (i = 0; names && i < names->len; i++)
- g_free (g_array_index (names, GcrGeneralName, i).display);
- g_array_free (names, TRUE);
-}
diff --git a/gcr/gcr-certificate-extensions.h b/gcr/gcr-certificate-extensions.h
deleted file mode 100644
index 9101008d..00000000
--- a/gcr/gcr-certificate-extensions.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef GCR_CERTIFICATE_EXTENSIONS_H
-#define GCR_CERTIFICATE_EXTENSIONS_H
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-gboolean _gcr_certificate_extension_basic_constraints (gconstpointer data,
- gsize n_data,
- gboolean *is_ca,
- gint *path_len);
-
-GQuark* _gcr_certificate_extension_extended_key_usage (gconstpointer data,
- gsize n_data);
-
-gpointer _gcr_certificate_extension_subject_key_identifier (gconstpointer data,
- gsize n_data,
- gsize *n_keyid);
-
-typedef enum {
- GCR_KEY_USAGE_DIGITAL_SIGNATURE = 1 << 0,
- GCR_KEY_USAGE_NON_REPUDIATION = 1 << 1,
- GCR_KEY_USAGE_KEY_ENCIPHERMENT = 1 << 2,
- GCR_KEY_USAGE_DATA_ENCIPHERMENT = 1 << 3,
- GCR_KEY_USAGE_KEY_AGREEMENT = 1 << 4,
- GCR_KEY_USAGE_KEY_CERT_SIGN = 1 << 5,
- GCR_KEY_USAGE_CRL_SIGN = 1 << 6,
-} GcrCertificateExtensionKeyUsage;
-
-gboolean _gcr_certificate_extension_key_usage (gconstpointer data,
- gsize n_data,
- gulong *key_usage);
-
-typedef enum {
- GCR_GENERAL_NAME_OTHER,
- GCR_GENERAL_NAME_RFC822,
- GCR_GENERAL_NAME_DNS,
- GCR_GENERAL_NAME_X400,
- GCR_GENERAL_NAME_DN,
- GCR_GENERAL_NAME_EDI,
- GCR_GENERAL_NAME_URI,
- GCR_GENERAL_NAME_IP,
- GCR_GENERAL_NAME_REGISTERED_ID,
-} GcrGeneralNameType;
-
-typedef struct {
- GcrGeneralNameType type;
- const gchar *description;
- gchar *display;
- gconstpointer raw;
- gsize n_raw;
-} GcrGeneralName;
-
-GArray * _gcr_certificate_extension_subject_alt_name (gconstpointer data,
- gsize n_data);
-
-void _gcr_general_names_free (GArray *names);
-
-G_END_DECLS
-
-#endif /* GCR_CERTIFICATE_H */
diff --git a/gcr/gcr-certificate-renderer.c b/gcr/gcr-certificate-renderer.c
deleted file mode 100644
index 7995917e..00000000
--- a/gcr/gcr-certificate-renderer.c
+++ /dev/null
@@ -1,909 +0,0 @@
-/*
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-certificate.h"
-#include "gcr-certificate-exporter.h"
-#include "gcr-certificate-extensions.h"
-#include "gcr-certificate-renderer.h"
-#include "gcr-display-view.h"
-#include "gcr-fingerprint.h"
-#include "gcr-icons.h"
-#include "gcr-oids.h"
-#include "gcr-simple-certificate.h"
-#include "gcr-renderer.h"
-
-#include "egg/egg-asn1x.h"
-#include "egg/egg-asn1-defs.h"
-#include "egg/egg-dn.h"
-#include "egg/egg-oid.h"
-#include "egg/egg-hex.h"
-
-#include "gck/gck.h"
-
-#include <gdk/gdk.h>
-#include <glib/gi18n-lib.h>
-
-/**
- * GcrCertificateRenderer:
- *
- * An implementation of #GcrRenderer which renders certificates.
- */
-
-/**
- * GcrCertificateRendererClass:
- * @parent_class: The parent class.
- *
- * The class for #GcrCertificateRenderer.
- */
-
-enum {
- PROP_0,
- PROP_CERTIFICATE,
- PROP_LABEL,
- PROP_ATTRIBUTES
-};
-
-struct _GcrCertificateRendererPrivate {
- GcrCertificate *opt_cert;
- GckAttributes *opt_attrs;
- guint key_size;
- gchar *label;
-};
-
-static void gcr_renderer_iface_init (GcrRendererIface *iface);
-static void gcr_renderer_certificate_iface_init (GcrCertificateIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (GcrCertificateRenderer, gcr_certificate_renderer, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (GCR_TYPE_RENDERER, gcr_renderer_iface_init);
- GCR_CERTIFICATE_MIXIN_IMPLEMENT_COMPARABLE ();
- G_IMPLEMENT_INTERFACE (GCR_TYPE_CERTIFICATE, gcr_renderer_certificate_iface_init);
-);
-
-/* -----------------------------------------------------------------------------
- * INTERNAL
- */
-
-static gchar*
-calculate_label (GcrCertificateRenderer *self)
-{
- gchar *label;
-
- if (self->pv->label)
- return g_strdup (self->pv->label);
-
- if (self->pv->opt_attrs) {
- if (gck_attributes_find_string (self->pv->opt_attrs, CKA_LABEL, &label))
- return label;
- }
-
- label = gcr_certificate_get_subject_cn (GCR_CERTIFICATE (self));
- if (label != NULL)
- return label;
-
- return g_strdup (_("Certificate"));
-}
-
-static gboolean
-append_extension_basic_constraints (GcrCertificateRenderer *self, GcrDisplayView *view,
- gconstpointer data, gsize n_data)
-{
- GcrRenderer *renderer = GCR_RENDERER (self);
- gboolean is_ca = FALSE;
- gint path_len = -1;
- gchar *number;
-
- if (!_gcr_certificate_extension_basic_constraints (data, n_data, &is_ca, &path_len))
- return FALSE;
-
- _gcr_display_view_append_heading (view, renderer, _("Basic Constraints"));
-
- _gcr_display_view_append_value (view, renderer, _("Certificate Authority"),
- is_ca ? _("Yes") : _("No"), FALSE);
-
- number = g_strdup_printf ("%d", path_len);
- _gcr_display_view_append_value (view, renderer, _("Max Path Length"),
- path_len < 0 ? _("Unlimited") : number, FALSE);
- g_free (number);
-
- return TRUE;
-}
-
-static gboolean
-append_extension_extended_key_usage (GcrCertificateRenderer *self, GcrDisplayView *view,
- gconstpointer data, gsize n_data)
-{
- GcrRenderer *renderer = GCR_RENDERER (self);
- GQuark *oids;
- GString *text;
- guint i;
-
- oids = _gcr_certificate_extension_extended_key_usage (data, n_data);
- if (oids == NULL)
- return FALSE;
-
- _gcr_display_view_append_heading (view, renderer, _("Extended Key Usage"));
-
- text = g_string_new ("");
- for (i = 0; oids[i] != 0; i++) {
- if (i > 0)
- g_string_append_unichar (text, GCR_DISPLAY_VIEW_LINE_BREAK);
- g_string_append (text, egg_oid_get_description (oids[i]));
- }
-
- g_free (oids);
-
- _gcr_display_view_append_value (view, renderer, _("Allowed Purposes"),
- text->str, FALSE);
-
- g_string_free (text, TRUE);
-
- return TRUE;
-}
-
-static gboolean
-append_extension_subject_key_identifier (GcrCertificateRenderer *self, GcrDisplayView *view,
- gconstpointer data, gsize n_data)
-{
- GcrRenderer *renderer = GCR_RENDERER (self);
- gpointer keyid;
- gsize n_keyid;
-
- keyid = _gcr_certificate_extension_subject_key_identifier (data, n_data, &n_keyid);
- if (keyid == NULL)
- return FALSE;
-
- _gcr_display_view_append_heading (view, renderer, _("Subject Key Identifier"));
- _gcr_display_view_append_hex (view, renderer, _("Key Identifier"), keyid, n_keyid);
-
- g_free (keyid);
-
- return TRUE;
-}
-
-static const struct {
- guint usage;
- const gchar *description;
-} usage_descriptions[] = {
- { GCR_KEY_USAGE_DIGITAL_SIGNATURE, N_("Digital signature") },
- { GCR_KEY_USAGE_KEY_ENCIPHERMENT, N_("Key encipherment") },
- { GCR_KEY_USAGE_DATA_ENCIPHERMENT, N_("Data encipherment") },
- { GCR_KEY_USAGE_KEY_AGREEMENT, N_("Key agreement") },
- { GCR_KEY_USAGE_KEY_CERT_SIGN, N_("Certificate signature") },
- { GCR_KEY_USAGE_CRL_SIGN, N_("Revocation list signature") }
-};
-
-static gboolean
-append_extension_key_usage (GcrCertificateRenderer *self, GcrDisplayView *view,
- gconstpointer data, gsize n_data)
-{
- GcrRenderer *renderer = GCR_RENDERER (self);
- gulong key_usage;
- GString *text;
- guint i;
-
- if (!_gcr_certificate_extension_key_usage (data, n_data, &key_usage))
- return FALSE;
-
- text = g_string_new ("");
-
- for (i = 0; i < G_N_ELEMENTS (usage_descriptions); i++) {
- if (key_usage & usage_descriptions[i].usage) {
- if (text->len > 0)
- g_string_append_unichar (text, GCR_DISPLAY_VIEW_LINE_BREAK);
- g_string_append (text, gettext (usage_descriptions[i].description));
- }
- }
-
- _gcr_display_view_append_heading (view, renderer, _("Key Usage"));
- _gcr_display_view_append_value (view, renderer, _("Usages"), text->str, FALSE);
-
- g_string_free (text, TRUE);
-
- return TRUE;
-}
-
-static gboolean
-append_extension_subject_alt_name (GcrCertificateRenderer *self, GcrDisplayView *view,
- gconstpointer data, gsize n_data)
-{
- GcrRenderer *renderer = GCR_RENDERER (self);
- GArray *general_names;
- GcrGeneralName *general;
- guint i;
-
- general_names = _gcr_certificate_extension_subject_alt_name (data, n_data);
- if (general_names == NULL)
- return FALSE;
-
- _gcr_display_view_append_heading (view, renderer, _("Subject Alternative Names"));
-
- for (i = 0; i < general_names->len; i++) {
- general = &g_array_index (general_names, GcrGeneralName, i);
- if (general->display == NULL)
- _gcr_display_view_append_hex (view, renderer, general->description,
- general->raw, general->n_raw);
- else
- _gcr_display_view_append_value (view, renderer, general->description,
- general->display, FALSE);
- }
-
- _gcr_general_names_free (general_names);
-
- return TRUE;
-}
-
-
-static gboolean
-append_extension_hex (GcrCertificateRenderer *self, GcrDisplayView *view,
- GQuark oid, gconstpointer data, gsize n_data)
-{
- GcrRenderer *renderer = GCR_RENDERER (self);
- const gchar *text;
-
- _gcr_display_view_append_heading (view, renderer, _("Extension"));
-
- /* Extension type */
- text = egg_oid_get_description (oid);
- _gcr_display_view_append_value (view, renderer, _("Identifier"), text, FALSE);
- _gcr_display_view_append_hex (view, renderer, _("Value"), data, n_data);
-
- return TRUE;
-}
-
-static gboolean
-append_extension (GcrCertificateRenderer *self, GcrDisplayView *view,
- GNode *asn, const guchar *data, gsize n_data, gint index)
-{
- GcrRenderer *renderer = GCR_RENDERER (self);
- GNode *node;
- GQuark oid;
- gsize n_value;
- const guchar *value;
- gboolean critical;
- gboolean ret = FALSE;
-
- /* Make sure it is present */
- node = egg_asn1x_node (asn, "tbsCertificate", "extensions", index, NULL);
- if (node == NULL)
- return FALSE;
-
- /* Dig out the OID */
- oid = egg_asn1x_get_oid_as_quark (egg_asn1x_node (node, "extnID", NULL));
- g_return_val_if_fail (oid, FALSE);
-
- /* Extension value */
- value = egg_asn1x_get_raw_value (egg_asn1x_node (node, "extnValue", NULL), &n_value);
-
- /* The custom parsers */
- if (oid == GCR_OID_BASIC_CONSTRAINTS)
- ret = append_extension_basic_constraints (self, view, value, n_value);
- else if (oid == GCR_OID_EXTENDED_KEY_USAGE)
- ret = append_extension_extended_key_usage (self, view, value, n_value);
- else if (oid == GCR_OID_SUBJECT_KEY_IDENTIFIER)
- ret = append_extension_subject_key_identifier (self, view, value, n_value);
- else if (oid == GCR_OID_KEY_USAGE)
- ret = append_extension_key_usage (self, view, value, n_value);
- else if (oid == GCR_OID_SUBJECT_ALT_NAME)
- ret = append_extension_subject_alt_name (self, view, value, n_value);
-
- /* Otherwise the default raw display */
- if (ret == FALSE)
- ret = append_extension_hex (self, view, oid, value, n_value);
-
- /* Critical */
- if (ret == TRUE && egg_asn1x_get_boolean (egg_asn1x_node (node, "critical", NULL), &critical)) {
- _gcr_display_view_append_value (view, renderer, _("Critical"),
- critical ? _("Yes") : _("No"), FALSE);
- }
-
- return ret;
-}
-
-typedef struct _on_parsed_dn_args {
- GcrCertificateRenderer *renderer;
- GcrDisplayView *view;
-} on_parsed_dn_args;
-
-static void
-on_parsed_dn_part (guint index, GQuark oid, const guchar *value,
- gsize n_value, gpointer user_data)
-{
- GcrCertificateRenderer *self = ((on_parsed_dn_args*)user_data)->renderer;
- GcrDisplayView *view = ((on_parsed_dn_args*)user_data)->view;
- const gchar *attr;
- const gchar *desc;
- gchar *field = NULL;
- gchar *display;
-
- g_return_if_fail (GCR_IS_CERTIFICATE_RENDERER (self));
-
- attr = egg_oid_get_name (oid);
- desc = egg_oid_get_description (oid);
-
- /* Combine them into something sane */
- if (attr && desc) {
- if (strcmp (attr, desc) == 0)
- field = g_strdup (attr);
- else
- field = g_strdup_printf ("%s (%s)", attr, desc);
- } else if (!attr && !desc) {
- field = g_strdup ("");
- } else if (attr) {
- field = g_strdup (attr);
- } else if (desc) {
- field = g_strdup (desc);
- } else {
- g_assert_not_reached ();
- }
-
- display = egg_dn_print_value (oid, value, n_value);
- if (display == NULL)
- display = g_strdup ("");
-
- _gcr_display_view_append_value (view, GCR_RENDERER (self), field, display, FALSE);
- g_free (field);
- g_free (display);
-}
-
-static gboolean
-on_delete_unref_dialog (GtkWidget *widget, GdkEvent *event, gpointer data)
-{
- g_object_unref (widget);
- return FALSE;
-}
-
-static void
-on_export_completed (GObject *source, GAsyncResult *result, gpointer user_data)
-{
- GtkWindow *parent = GTK_WINDOW (user_data);
- GcrCertificateExporter *exporter = GCR_CERTIFICATE_EXPORTER (source);
- GError *error = NULL;
- GtkWidget *dialog;
-
- if (!_gcr_certificate_exporter_export_finish (exporter, result, &error)) {
- if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
- dialog = gtk_message_dialog_new_with_markup (parent,
- GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR,
- GTK_BUTTONS_OK, "<big>%s</big>\n\n%s",
- _("Couldn't export the certificate."),
- error->message);
- gtk_widget_show (dialog);
- g_signal_connect (dialog, "delete-event",
- G_CALLBACK (on_delete_unref_dialog), NULL);
- }
- }
-
- /* Matches ref in on_certificate_export */
- if (parent)
- g_object_unref (parent);
-}
-
-static void
-on_certificate_export (GtkMenuItem *menuitem, gpointer user_data)
-{
- GcrCertificateRenderer *self = GCR_CERTIFICATE_RENDERER (user_data);
- GcrCertificateExporter *exporter;
- gchar *label;
- GtkWidget *parent;
-
- label = calculate_label (self);
-
- parent = gtk_widget_get_toplevel (GTK_WIDGET (menuitem));
- if (parent && !GTK_IS_WINDOW (parent))
- parent = NULL;
-
- exporter = _gcr_certificate_exporter_new (GCR_CERTIFICATE (self), label,
- GTK_WINDOW (parent));
-
- g_free (label);
-
- _gcr_certificate_exporter_export_async (exporter, NULL, on_export_completed,
- parent ? g_object_ref (parent) : NULL);
-}
-
-/* -----------------------------------------------------------------------------
- * OBJECT
- */
-
-static void
-gcr_certificate_renderer_init (GcrCertificateRenderer *self)
-{
- self->pv = (G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_CERTIFICATE_RENDERER, GcrCertificateRendererPrivate));
-}
-
-static void
-gcr_certificate_renderer_dispose (GObject *obj)
-{
- GcrCertificateRenderer *self = GCR_CERTIFICATE_RENDERER (obj);
-
- if (self->pv->opt_cert)
- g_object_unref (self->pv->opt_cert);
- self->pv->opt_cert = NULL;
-
- G_OBJECT_CLASS (gcr_certificate_renderer_parent_class)->dispose (obj);
-}
-
-static void
-gcr_certificate_renderer_finalize (GObject *obj)
-{
- GcrCertificateRenderer *self = GCR_CERTIFICATE_RENDERER (obj);
-
- g_assert (!self->pv->opt_cert);
-
- if (self->pv->opt_attrs)
- gck_attributes_unref (self->pv->opt_attrs);
- self->pv->opt_attrs = NULL;
-
- g_free (self->pv->label);
- self->pv->label = NULL;
-
- G_OBJECT_CLASS (gcr_certificate_renderer_parent_class)->finalize (obj);
-}
-
-static void
-gcr_certificate_renderer_set_property (GObject *obj, guint prop_id, const GValue *value,
- GParamSpec *pspec)
-{
- GcrCertificateRenderer *self = GCR_CERTIFICATE_RENDERER (obj);
-
- switch (prop_id) {
- case PROP_CERTIFICATE:
- gcr_certificate_renderer_set_certificate (self, g_value_get_object (value));
- break;
- case PROP_LABEL:
- g_free (self->pv->label);
- self->pv->label = g_value_dup_string (value);
- g_object_notify (obj, "label");
- gcr_renderer_emit_data_changed (GCR_RENDERER (self));
- break;
- case PROP_ATTRIBUTES:
- gcr_certificate_renderer_set_attributes (self, g_value_get_boxed (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_certificate_renderer_get_property (GObject *obj, guint prop_id, GValue *value,
- GParamSpec *pspec)
-{
- GcrCertificateRenderer *self = GCR_CERTIFICATE_RENDERER (obj);
-
- switch (prop_id) {
- case PROP_CERTIFICATE:
- g_value_set_object (value, self->pv->opt_cert);
- break;
- case PROP_LABEL:
- g_value_take_string (value, calculate_label (self));
- break;
- case PROP_ATTRIBUTES:
- g_value_set_boxed (value, self->pv->opt_attrs);
- break;
- default:
- gcr_certificate_mixin_get_property (obj, prop_id, value, pspec);
- break;
- }
-}
-
-static void
-gcr_certificate_renderer_class_init (GcrCertificateRendererClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- GckAttributes *registered;
-
- _gcr_oids_init ();
-
- gcr_certificate_renderer_parent_class = g_type_class_peek_parent (klass);
- g_type_class_add_private (klass, sizeof (GcrCertificateRendererPrivate));
-
- gobject_class->dispose = gcr_certificate_renderer_dispose;
- gobject_class->finalize = gcr_certificate_renderer_finalize;
- gobject_class->set_property = gcr_certificate_renderer_set_property;
- gobject_class->get_property = gcr_certificate_renderer_get_property;
-
- /**
- * GcrCertificateRenderer:certificate:
- *
- * The certificate to display. May be %NULL.
- */
- g_object_class_install_property (gobject_class, PROP_CERTIFICATE,
- g_param_spec_object ("certificate", "Certificate", "Certificate to display.",
- GCR_TYPE_CERTIFICATE, G_PARAM_READWRITE));
-
- /**
- * GcrCertificateRenderer:attributes:
- *
- * The certificate attributes to display. One of the attributes must be
- * a CKA_VALUE type attribute which contains a DER encoded certificate.
- */
- g_object_class_install_property (gobject_class, PROP_ATTRIBUTES,
- g_param_spec_boxed ("attributes", "Attributes", "Certificate pkcs11 attributes",
- GCK_TYPE_ATTRIBUTES, G_PARAM_READWRITE));
-
- /**
- * GcrCertificateRenderer:label:
- *
- * The label to display.
- */
- g_object_class_install_property (gobject_class, PROP_LABEL,
- g_param_spec_string ("label", "Label", "Certificate Label",
- "", G_PARAM_READWRITE));
-
- gcr_certificate_mixin_class_init (gobject_class);
-
- /* Register this as a renderer which can be loaded */
- registered = gck_attributes_new ();
- gck_attributes_add_ulong (registered, CKA_CLASS, CKO_CERTIFICATE);
- gcr_renderer_register (GCR_TYPE_CERTIFICATE_RENDERER, registered);
- gck_attributes_unref (registered);
-}
-
-static void
-gcr_certificate_renderer_render (GcrRenderer *renderer, GcrViewer *viewer)
-{
- GcrCertificateRenderer *self;
- gconstpointer data, value;
- gsize n_data, n_value, n_raw;
- GcrDisplayView *view;
- on_parsed_dn_args args;
- const gchar *text;
- GcrCertificate *cert;
- gpointer raw;
- gconstpointer number;
- gulong version;
- guint bits, index;
- gchar *display;
- GNode *asn;
- GQuark oid;
- GDate date;
- GIcon *icon;
-
- self = GCR_CERTIFICATE_RENDERER (renderer);
-
- if (GCR_IS_DISPLAY_VIEW (viewer)) {
- view = GCR_DISPLAY_VIEW (viewer);
-
- } else {
- g_warning ("GcrCertificateRenderer only works with internal specific "
- "GcrViewer returned by gcr_viewer_new().");
- return;
- }
-
- _gcr_display_view_begin (view, renderer);
- cert = GCR_CERTIFICATE (self);
-
- data = gcr_certificate_get_der_data (cert, &n_data);
- if (!data) {
- _gcr_display_view_end (view, renderer);
- return;
- }
-
- icon = gcr_certificate_get_icon (cert);
- _gcr_display_view_set_icon (view, GCR_RENDERER (self), icon);
- g_object_unref (icon);
-
- asn = egg_asn1x_create_and_decode (pkix_asn1_tab, "Certificate", data, n_data);
- g_return_if_fail (asn);
-
- display = calculate_label (self);
- _gcr_display_view_append_title (view, renderer, display);
- g_free (display);
-
- display = egg_dn_read_part (egg_asn1x_node (asn, "tbsCertificate", "subject", "rdnSequence", NULL), "CN");
- _gcr_display_view_append_content (view, renderer, _("Identity"), display);
- g_free (display);
-
- display = egg_dn_read_part (egg_asn1x_node (asn, "tbsCertificate", "issuer", "rdnSequence", NULL), "CN");
- _gcr_display_view_append_content (view, renderer, _("Verified by"), display);
- g_free (display);
-
- if (egg_asn1x_get_time_as_date (egg_asn1x_node (asn, "tbsCertificate", "validity", "notAfter", NULL), &date)) {
- display = g_malloc0 (128);
- if (!g_date_strftime (display, 128, "%x", &date))
- g_return_if_reached ();
- _gcr_display_view_append_content (view, renderer, _("Expires"), display);
- g_free (display);
- }
-
- _gcr_display_view_start_details (view, renderer);
-
- args.renderer = self;
- args.view = view;
-
- /* The subject */
- _gcr_display_view_append_heading (view, renderer, _("Subject Name"));
- egg_dn_parse (egg_asn1x_node (asn, "tbsCertificate", "subject", "rdnSequence", NULL), on_parsed_dn_part, &args);
-
- /* The Issuer */
- _gcr_display_view_append_heading (view, renderer, _("Issuer Name"));
- egg_dn_parse (egg_asn1x_node (asn, "tbsCertificate", "issuer", "rdnSequence", NULL), on_parsed_dn_part, &args);
-
- /* The Issued Parameters */
- _gcr_display_view_append_heading (view, renderer, _("Issued Certificate"));
-
- if (!egg_asn1x_get_integer_as_ulong (egg_asn1x_node (asn, "tbsCertificate", "version", NULL), &version))
- g_return_if_reached ();
- display = g_strdup_printf ("%lu", version + 1);
- _gcr_display_view_append_value (view, renderer, _("Version"), display, FALSE);
- g_free (display);
-
- number = egg_asn1x_get_integer_as_raw (egg_asn1x_node (asn, "tbsCertificate", "serialNumber", NULL), &n_raw);
- g_return_if_fail (number != NULL);
- _gcr_display_view_append_hex (view, renderer, _("Serial Number"), number, n_raw);
-
- display = g_malloc0 (128);
- if (egg_asn1x_get_time_as_date (egg_asn1x_node (asn, "tbsCertificate", "validity", "notBefore", NULL), &date)) {
- if (!g_date_strftime (display, 128, "%Y-%m-%d", &date))
- g_return_if_reached ();
- _gcr_display_view_append_value (view, renderer, _("Not Valid Before"), display, FALSE);
- }
- if (egg_asn1x_get_time_as_date (egg_asn1x_node (asn, "tbsCertificate", "validity", "notAfter", NULL), &date)) {
- if (!g_date_strftime (display, 128, "%Y-%m-%d", &date))
- g_return_if_reached ();
- _gcr_display_view_append_value (view, renderer, _("Not Valid After"), display, FALSE);
- }
- g_free (display);
-
- /* Fingerprints */
- _gcr_display_view_append_heading (view, renderer, _("Certificate Fingerprints"));
-
- _gcr_display_view_append_fingerprint (view, renderer, data, n_data, "SHA1", G_CHECKSUM_SHA1);
- _gcr_display_view_append_fingerprint (view, renderer, data, n_data, "MD5", G_CHECKSUM_MD5);
-
- /* Signature */
- _gcr_display_view_append_heading (view, renderer, _("Signature"));
-
- oid = egg_asn1x_get_oid_as_quark (egg_asn1x_node (asn, "signatureAlgorithm", "algorithm", NULL));
- text = egg_oid_get_description (oid);
- _gcr_display_view_append_value (view, renderer, _("Signature Algorithm"), text, FALSE);
-
- value = egg_asn1x_get_raw_element (egg_asn1x_node (asn, "signatureAlgorithm", "parameters", NULL), &n_value);
- if (value && n_value)
- _gcr_display_view_append_hex (view, renderer, _("Signature Parameters"), value, n_value);
-
- raw = egg_asn1x_get_bits_as_raw (egg_asn1x_node (asn, "signature", NULL), NULL, &bits);
- g_return_if_fail (raw);
- _gcr_display_view_append_hex (view, renderer, _("Signature"), raw, bits / 8);
- g_free (raw);
-
- /* Public Key Info */
- _gcr_display_view_append_heading (view, renderer, _("Public Key Info"));
-
- oid = egg_asn1x_get_oid_as_quark (egg_asn1x_node (asn, "tbsCertificate", "subjectPublicKeyInfo",
- "algorithm", "algorithm", NULL));
- text = egg_oid_get_description (oid);
- _gcr_display_view_append_value (view, renderer, _("Key Algorithm"), text, FALSE);
-
- value = egg_asn1x_get_raw_element (egg_asn1x_node (asn, "tbsCertificate", "subjectPublicKeyInfo",
- "algorithm", "parameters", NULL), &n_value);
- if (value && n_value)
- _gcr_display_view_append_hex (view, renderer, _("Key Parameters"), value, n_value);
-
- bits = gcr_certificate_get_key_size (cert);
- if (bits > 0) {
- display = g_strdup_printf ("%u", bits);
- _gcr_display_view_append_value (view, renderer, _("Key Size"), display, FALSE);
- g_free (display);
- }
-
- value = egg_asn1x_get_raw_element (egg_asn1x_node (asn, "tbsCertificate",
- "subjectPublicKeyInfo", NULL), &n_value);
- raw = gcr_fingerprint_from_subject_public_key_info (value, n_value, G_CHECKSUM_SHA1, &n_raw);
- _gcr_display_view_append_hex (view, renderer, _("Key SHA1 Fingerprint"), raw, n_raw);
- g_free (raw);
-
- raw = egg_asn1x_get_bits_as_raw (egg_asn1x_node (asn, "tbsCertificate", "subjectPublicKeyInfo",
- "subjectPublicKey", NULL), NULL, &bits);
- g_return_if_fail (raw);
- _gcr_display_view_append_hex (view, renderer, _("Public Key"), raw, bits / 8);
- g_free (raw);
-
- /* Extensions */
- for (index = 1; TRUE; ++index) {
- if (!append_extension (self, view, asn, data, n_data, index))
- break;
- }
-
- egg_asn1x_destroy (asn);
- _gcr_display_view_end (view, renderer);
-}
-
-static void
-gcr_certificate_renderer_populate_popup (GcrRenderer *self, GcrViewer *viewer,
- GtkMenu *menu)
-{
- GtkWidget *item;
-
- item = gtk_separator_menu_item_new ();
- gtk_widget_show (item);
- gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), item);
-
- item = gtk_menu_item_new_with_label ("Export Certificate...");
- gtk_widget_show (item);
- g_signal_connect_data (item, "activate", G_CALLBACK (on_certificate_export),
- g_object_ref (self), (GClosureNotify)g_object_unref, 0);
- gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), item);
-}
-
-static void
-gcr_renderer_iface_init (GcrRendererIface *iface)
-{
- iface->populate_popup = gcr_certificate_renderer_populate_popup;
- iface->render_view = gcr_certificate_renderer_render;
-}
-
-static const guchar *
-gcr_certificate_renderer_get_der_data (GcrCertificate *cert,
- gsize *n_data)
-{
- GcrCertificateRenderer *self = GCR_CERTIFICATE_RENDERER (cert);
- GckAttribute *attr;
-
- g_assert (n_data);
-
- if (self->pv->opt_cert)
- return gcr_certificate_get_der_data (self->pv->opt_cert, n_data);
-
- if (self->pv->opt_attrs) {
- attr = gck_attributes_find (self->pv->opt_attrs, CKA_VALUE);
- g_return_val_if_fail (attr, NULL);
- *n_data = attr->length;
- return attr->value;
- }
-
- return NULL;
-}
-
-static void
-gcr_renderer_certificate_iface_init (GcrCertificateIface *iface)
-{
- iface->get_der_data = gcr_certificate_renderer_get_der_data;
-}
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-/**
- * gcr_certificate_renderer_new:
- * @certificate: The certificate to display
- *
- * Create a new certificate renderer to display the certificate.
- *
- * Returns: (transfer full): a newly allocated #GcrCertificateRenderer, which
- * should be released with g_object_unref()
- */
-GcrCertificateRenderer *
-gcr_certificate_renderer_new (GcrCertificate *certificate)
-{
- return g_object_new (GCR_TYPE_CERTIFICATE_RENDERER, "certificate", certificate, NULL);
-}
-
-/**
- * gcr_certificate_renderer_new_for_attributes:
- * @label: (allow-none): the label to display
- * @attrs: The attributes to display
- *
- * Create a new certificate renderer to display the label and attributes. One
- * of the attributes should be a CKA_VALUE type attribute containing a DER
- * encoded certificate.
- *
- * Returns: (transfer full): a newly allocated #GcrCertificateRenderer, which
- * should be released with g_object_unref()
- */
-GcrCertificateRenderer *
-gcr_certificate_renderer_new_for_attributes (const gchar *label, struct _GckAttributes *attrs)
-{
- return g_object_new (GCR_TYPE_CERTIFICATE_RENDERER, "label", label, "attributes", attrs, NULL);
-}
-
-/**
- * gcr_certificate_renderer_get_certificate:
- * @self: The renderer
- *
- * Get the certificate displayed in the renderer. If no certificate was
- * explicitly set, then the renderer will return itself since it acts as
- * a valid certificate.
- *
- * Returns: (transfer none): The certificate, owned by the renderer.
- */
-GcrCertificate *
-gcr_certificate_renderer_get_certificate (GcrCertificateRenderer *self)
-{
- g_return_val_if_fail (GCR_IS_CERTIFICATE_RENDERER (self), NULL);
- if (self->pv->opt_cert)
- return self->pv->opt_cert;
- return GCR_CERTIFICATE (self);
-}
-
-/**
- * gcr_certificate_renderer_set_certificate:
- * @self: The renderer
- * @certificate: (allow-none): the certificate to display
- *
- * Set a certificate to display in the renderer.
- */
-void
-gcr_certificate_renderer_set_certificate (GcrCertificateRenderer *self, GcrCertificate *certificate)
-{
- g_return_if_fail (GCR_IS_CERTIFICATE_RENDERER (self));
-
- if (self->pv->opt_cert)
- g_object_unref (self->pv->opt_cert);
- self->pv->opt_cert = certificate;
- if (self->pv->opt_cert)
- g_object_ref (self->pv->opt_cert);
-
- if (self->pv->opt_attrs) {
- gck_attributes_unref (self->pv->opt_attrs);
- self->pv->opt_attrs = NULL;
- }
-
- gcr_renderer_emit_data_changed (GCR_RENDERER (self));
- g_object_notify (G_OBJECT (self), "certificate");
-}
-
-/**
- * gcr_certificate_renderer_get_attributes:
- * @self: The renderer
- *
- * Get the PKCS\#11 attributes, if any, set for this renderer to display.
- *
- * Returns: (allow-none) (transfer none): the attributes, owned by the renderer
- */
-GckAttributes *
-gcr_certificate_renderer_get_attributes (GcrCertificateRenderer *self)
-{
- g_return_val_if_fail (GCR_IS_CERTIFICATE_RENDERER (self), NULL);
- return self->pv->opt_attrs;
-}
-
-/**
- * gcr_certificate_renderer_set_attributes:
- * @self: The renderer
- * @attrs: (allow-none): attributes to set
- *
- * Set the PKCS\#11 attributes for this renderer to display. One of the attributes
- * should be a CKA_VALUE type attribute containing a DER encoded certificate.
- */
-void
-gcr_certificate_renderer_set_attributes (GcrCertificateRenderer *self, GckAttributes *attrs)
-{
- g_return_if_fail (GCR_IS_CERTIFICATE_RENDERER (self));
-
- gck_attributes_unref (self->pv->opt_attrs);
- self->pv->opt_attrs = attrs;
-
- if (self->pv->opt_attrs)
- gck_attributes_ref (self->pv->opt_attrs);
-
- if (self->pv->opt_cert) {
- g_object_unref (self->pv->opt_cert);
- g_object_notify (G_OBJECT (self), "certificate");
- self->pv->opt_cert = NULL;
- }
-
- gcr_renderer_emit_data_changed (GCR_RENDERER (self));
- g_object_notify (G_OBJECT (self), "attributes");
-
-}
diff --git a/gcr/gcr-certificate-renderer.h b/gcr/gcr-certificate-renderer.h
deleted file mode 100644
index 6167dd5a..00000000
--- a/gcr/gcr-certificate-renderer.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef __GCR_CERTIFICATE_RENDERER_H__
-#define __GCR_CERTIFICATE_RENDERER_H__
-
-#include <glib-object.h>
-#include <gtk/gtk.h>
-
-#include "gcr-certificate.h"
-#include "gcr-renderer.h"
-#include "gcr-types.h"
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_CERTIFICATE_RENDERER (gcr_certificate_renderer_get_type ())
-#define GCR_CERTIFICATE_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_CERTIFICATE_RENDERER, GcrCertificateRenderer))
-#define GCR_CERTIFICATE_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_CERTIFICATE_RENDERER, GcrCertificateRendererClass))
-#define GCR_IS_CERTIFICATE_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_CERTIFICATE_RENDERER))
-#define GCR_IS_CERTIFICATE_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_CERTIFICATE_RENDERER))
-#define GCR_CERTIFICATE_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_CERTIFICATE_RENDERER, GcrCertificateRendererClass))
-
-typedef struct _GcrCertificateRenderer GcrCertificateRenderer;
-typedef struct _GcrCertificateRendererClass GcrCertificateRendererClass;
-typedef struct _GcrCertificateRendererPrivate GcrCertificateRendererPrivate;
-
-struct _GcrCertificateRenderer {
- GObject parent;
-
- /*< private >*/
- GcrCertificateRendererPrivate *pv;
-};
-
-struct _GcrCertificateRendererClass {
- GObjectClass parent_class;
-};
-
-GType gcr_certificate_renderer_get_type (void);
-
-GcrCertificateRenderer* gcr_certificate_renderer_new (GcrCertificate *certificate);
-
-GcrCertificateRenderer* gcr_certificate_renderer_new_for_attributes (const gchar *label,
- struct _GckAttributes *attrs);
-
-GcrCertificate* gcr_certificate_renderer_get_certificate (GcrCertificateRenderer *self);
-
-void gcr_certificate_renderer_set_certificate (GcrCertificateRenderer *self,
- GcrCertificate *certificate);
-
-GckAttributes* gcr_certificate_renderer_get_attributes (GcrCertificateRenderer *self);
-
-void gcr_certificate_renderer_set_attributes (GcrCertificateRenderer *self,
- GckAttributes *attrs);
-
-G_END_DECLS
-
-#endif /* __GCR_CERTIFICATE_RENDERER_H__ */
diff --git a/gcr/gcr-certificate-widget.c b/gcr/gcr-certificate-widget.c
deleted file mode 100644
index 6ffdd443..00000000
--- a/gcr/gcr-certificate-widget.c
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-certificate.h"
-#include "gcr-certificate-renderer.h"
-#include "gcr-certificate-widget.h"
-#include "gcr-renderer.h"
-#include "gcr-viewer.h"
-
-#include "gck/gck.h"
-
-#include <gdk/gdk.h>
-#include <glib/gi18n-lib.h>
-
-/**
- * SECTION:gcr-certificate-widget
- * @title: GcrCertificateWidget
- * @short_description: Certificate widget and renderer
- *
- * A #GcrCertificateWidget can be used to display a certificate. The widget
- * is normally in a collapsed state showing only details, but can be expanded
- * by the user.
- *
- * Use gcr_certificate_widget_new() to create a new certificate widget. Only
- * one certificate can be displayed. A #GcrCertificateWidget contains a
- * #GcrViewer internally and #GcrCertificateRenderer is used to render the
- * certificate to the viewer. To show more than one certificate in a view,
- * create the viewer and add renderers to it.
- */
-
-/**
- * GcrCertificateWidget:
- *
- * A widget that displays a certificate.
- */
-
-/**
- * GcrCertificateWidgetClass:
- *
- * The class for #GcrCertificateWidget
- */
-
-enum {
- PROP_0,
- PROP_CERTIFICATE,
- PROP_ATTRIBUTES
-};
-
-struct _GcrCertificateWidget {
- /*< private >*/
- GtkAlignment parent;
- GcrCertificateWidgetPrivate *pv;
-};
-
-struct _GcrCertificateWidgetClass {
- /*< private >*/
- GtkAlignmentClass parent_class;
-};
-
-struct _GcrCertificateWidgetPrivate {
- GcrViewer *viewer;
- GcrCertificateRenderer *renderer;
-};
-
-G_DEFINE_TYPE (GcrCertificateWidget, gcr_certificate_widget, GTK_TYPE_ALIGNMENT);
-
-/* -----------------------------------------------------------------------------
- * OBJECT
- */
-
-static GObject*
-gcr_certificate_widget_constructor (GType type, guint n_props, GObjectConstructParam *props)
-{
- GObject *obj = G_OBJECT_CLASS (gcr_certificate_widget_parent_class)->constructor (type, n_props, props);
- GcrCertificateWidget *self = NULL;
-
- g_return_val_if_fail (obj, NULL);
-
- self = GCR_CERTIFICATE_WIDGET (obj);
-
- self->pv->viewer = gcr_viewer_new_scrolled ();
- gtk_container_add (GTK_CONTAINER (self), GTK_WIDGET (self->pv->viewer));
- gtk_widget_show (GTK_WIDGET (self->pv->viewer));
-
- gcr_viewer_add_renderer (self->pv->viewer, GCR_RENDERER (self->pv->renderer));
- return obj;
-}
-
-static void
-gcr_certificate_widget_init (GcrCertificateWidget *self)
-{
- self->pv = (G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_CERTIFICATE_WIDGET, GcrCertificateWidgetPrivate));
- self->pv->renderer = gcr_certificate_renderer_new (NULL);
-}
-
-static void
-gcr_certificate_widget_finalize (GObject *obj)
-{
- GcrCertificateWidget *self = GCR_CERTIFICATE_WIDGET (obj);
-
- g_assert (self->pv->renderer);
- g_object_unref (self->pv->renderer);
- self->pv->renderer = NULL;
-
- g_assert (self->pv->viewer);
- self->pv->viewer = NULL;
-
- G_OBJECT_CLASS (gcr_certificate_widget_parent_class)->finalize (obj);
-}
-
-static void
-gcr_certificate_widget_set_property (GObject *obj, guint prop_id, const GValue *value,
- GParamSpec *pspec)
-{
- GcrCertificateWidget *self = GCR_CERTIFICATE_WIDGET (obj);
-
- switch (prop_id) {
- case PROP_CERTIFICATE:
- gcr_certificate_widget_set_certificate (self, g_value_get_object (value));
- break;
- case PROP_ATTRIBUTES:
- gcr_certificate_widget_set_attributes (self, g_value_get_boxed (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_certificate_widget_get_property (GObject *obj, guint prop_id, GValue *value,
- GParamSpec *pspec)
-{
- GcrCertificateWidget *self = GCR_CERTIFICATE_WIDGET (obj);
-
- switch (prop_id) {
- case PROP_CERTIFICATE:
- g_value_set_object (value, gcr_certificate_widget_get_certificate (self));
- break;
- case PROP_ATTRIBUTES:
- g_value_set_boxed (value, gcr_certificate_widget_get_attributes (self));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_certificate_widget_class_init (GcrCertificateWidgetClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- gcr_certificate_widget_parent_class = g_type_class_peek_parent (klass);
- g_type_class_add_private (klass, sizeof (GcrCertificateWidgetPrivate));
-
- gobject_class->constructor = gcr_certificate_widget_constructor;
- gobject_class->finalize = gcr_certificate_widget_finalize;
- gobject_class->set_property = gcr_certificate_widget_set_property;
- gobject_class->get_property = gcr_certificate_widget_get_property;
-
- g_object_class_install_property (gobject_class, PROP_CERTIFICATE,
- g_param_spec_object("certificate", "Certificate", "Certificate to display.",
- GCR_TYPE_CERTIFICATE, G_PARAM_READWRITE));
-
- g_object_class_install_property (gobject_class, PROP_ATTRIBUTES,
- g_param_spec_boxed ("attributes", "Attributes", "Attributes which contain the certificate",
- GCK_TYPE_ATTRIBUTES, G_PARAM_READWRITE));
-}
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-/**
- * gcr_certificate_widget_new:
- * @certificate: (allow-none): certificate to display, or %NULL
- *
- * Create a new certificate widget which displays a given certificate.
- *
- * Returns: (transfer full): a newly allocated #GcrCertificateWidget, which
- * should be freed with g_object_unref()
- */
-GcrCertificateWidget *
-gcr_certificate_widget_new (GcrCertificate *certificate)
-{
- return g_object_new (GCR_TYPE_CERTIFICATE_WIDGET, "certificate", certificate, NULL);
-}
-
-/**
- * gcr_certificate_widget_get_certificate:
- * @self: The certificate widget
- *
- * Get the certificate displayed in the widget.
- *
- * Returns: (allow-none) (transfer none): the certificate
- */
-GcrCertificate *
-gcr_certificate_widget_get_certificate (GcrCertificateWidget *self)
-{
- g_return_val_if_fail (GCR_IS_CERTIFICATE_WIDGET (self), NULL);
- return gcr_certificate_renderer_get_certificate (self->pv->renderer);
-}
-
-/**
- * gcr_certificate_widget_set_certificate:
- * @self: The certificate widget
- * @certificate: (allow-none): the certificate to display
- *
- * Set the certificate displayed in the widget
- */
-void
-gcr_certificate_widget_set_certificate (GcrCertificateWidget *self, GcrCertificate *certificate)
-{
- g_return_if_fail (GCR_IS_CERTIFICATE_WIDGET (self));
- gcr_certificate_renderer_set_certificate (self->pv->renderer, certificate);
-}
-
-/**
- * gcr_certificate_widget_get_attributes:
- * @self: The certificate widget
- *
- * Get the attributes displayed in the widget. The attributes should contain
- * a certificate.
- *
- * Returns: (allow-none) (transfer none): the attributes, owned by the widget
- */
-GckAttributes *
-gcr_certificate_widget_get_attributes (GcrCertificateWidget *self)
-{
- g_return_val_if_fail (GCR_IS_CERTIFICATE_WIDGET (self), NULL);
- return gcr_certificate_renderer_get_attributes (self->pv->renderer);
-}
-
-/**
- * gcr_certificate_widget_set_attributes:
- * @self: The certificate widget
- * @attrs: (allow-none): the attributes to display
- *
- * Set the attributes displayed in the widget. The attributes should contain
- * a certificate.
- */
-void
-gcr_certificate_widget_set_attributes (GcrCertificateWidget *self, GckAttributes* attrs)
-{
- g_return_if_fail (GCR_IS_CERTIFICATE_WIDGET (self));
- gcr_certificate_renderer_set_attributes (self->pv->renderer, attrs);
-}
diff --git a/gcr/gcr-certificate-widget.h b/gcr/gcr-certificate-widget.h
deleted file mode 100644
index 3ad2f194..00000000
--- a/gcr/gcr-certificate-widget.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef __GCR_CERTIFICATE_WIDGET_H__
-#define __GCR_CERTIFICATE_WIDGET_H__
-
-#include <glib-object.h>
-#include <gtk/gtk.h>
-
-#include "gcr-certificate.h"
-#include "gcr-types.h"
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_CERTIFICATE_WIDGET (gcr_certificate_widget_get_type ())
-#define GCR_CERTIFICATE_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_CERTIFICATE_WIDGET, GcrCertificateWidget))
-#define GCR_CERTIFICATE_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_CERTIFICATE_WIDGET, GcrCertificateWidgetClass))
-#define GCR_IS_CERTIFICATE_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_CERTIFICATE_WIDGET))
-#define GCR_IS_CERTIFICATE_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_CERTIFICATE_WIDGET))
-#define GCR_CERTIFICATE_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_CERTIFICATE_WIDGET, GcrCertificateWidgetClass))
-
-typedef struct _GcrCertificateWidget GcrCertificateWidget;
-typedef struct _GcrCertificateWidgetClass GcrCertificateWidgetClass;
-typedef struct _GcrCertificateWidgetPrivate GcrCertificateWidgetPrivate;
-
-/*
- * TODO: GcrCertificateWidget and GcrCertificateWidgetClass are hidden until
- * we can figure out what they should be derived from.
- */
-
-GType gcr_certificate_widget_get_type (void);
-
-GcrCertificateWidget* gcr_certificate_widget_new (GcrCertificate *certificate);
-
-GcrCertificate* gcr_certificate_widget_get_certificate (GcrCertificateWidget *self);
-
-void gcr_certificate_widget_set_certificate (GcrCertificateWidget *self,
- GcrCertificate *certificate);
-
-GckAttributes* gcr_certificate_widget_get_attributes (GcrCertificateWidget *self);
-
-void gcr_certificate_widget_set_attributes (GcrCertificateWidget *self,
- GckAttributes* attrs);
-
-G_END_DECLS
-
-#endif /* __GCR_CERTIFICATE_WIDGET_H__ */
diff --git a/gcr/gcr-certificate.c b/gcr/gcr-certificate.c
deleted file mode 100644
index 95b513c3..00000000
--- a/gcr/gcr-certificate.c
+++ /dev/null
@@ -1,1082 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2008 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-certificate.h"
-#include "gcr-comparable.h"
-#include "gcr-icons.h"
-#include "gcr-internal.h"
-#include "gcr-oids.h"
-
-#include "egg/egg-asn1x.h"
-#include "egg/egg-asn1-defs.h"
-#include "egg/egg-dn.h"
-#include "egg/egg-hex.h"
-
-#include <string.h>
-#include <glib/gi18n-lib.h>
-
-/**
- * SECTION:gcr-certificate
- * @title: GcrCertificate
- * @short_description: Represents an X.509 certificate
- *
- * This is an interface that represents an X.509 certificate. Objects can
- * implement this interface to make a certificate usable with the GCR
- * library.
- *
- * Various methods are available to parse out relevant bits of the certificate.
- * However no verification of the validity of a certificate is done here. Use
- * your favorite crypto library to do this.
- *
- * You can use #GcrSimpleCertificate to simply load a certificate for which
- * you already have the raw certificate data.
- *
- * The #GcrCertificate interface has several properties that must be implemented.
- * You can use a mixin to implement these properties if desired. See the
- * gcr_certificate_mixin_class_init() and gcr_certificate_mixin_get_property()
- * functions.
- *
- * All certificates are comparable. If implementing a #GcrCertificate, you can
- * use GCR_CERTIFICATE_MIXIN_IMPLEMENT_COMPARABLE() to implement the #GcrComparable
- * interface.
- */
-
-/**
- * GcrCertificate:
- *
- * An object which holds a certificate.
- */
-
-/**
- * GcrCertificateIface:
- * @parent: the parent interface type
- * @get_der_data: a method which returns the RAW der data of the certificate
- *
- * The interface that implementors of #GcrCertificate must implement.
- */
-
-/**
- * GCR_CERTIFICATE_COLUMNS:
- *
- * The columns that are valid for a certificate. This is to be used with
- * the #GcrTreeSelector or #GcrCollectionModel.
- *
- * This is an array of #GcrColumn, owned by the gcr library.
- */
-
-/*
- * The DER data in this structure is owned by the derived class.
- * It is only valid for the duration of the current call stack
- * after we call gcr_certificate_get_der_data(). We shouldn't
- * save it anywhere else.
- *
- * We keep the pointer around and compare it so that if the derived
- * class returns exactly the same pointer and size, then we can
- * keep from parsing things over again.
- */
-
-typedef struct _GcrCertificateInfo {
- gconstpointer der;
- gsize n_der;
- GNode *asn1;
- guint key_size;
-} GcrCertificateInfo;
-
-/* Forward declarations */
-
-static gconstpointer _gcr_certificate_get_subject_const (GcrCertificate *self, gsize *n_data);
-static gconstpointer _gcr_certificate_get_issuer_const (GcrCertificate *self, gsize *n_data);
-
-enum {
- PROP_FIRST = 0x0007000,
- PROP_LABEL,
- PROP_MARKUP,
- PROP_DESCRIPTION,
- PROP_ICON,
- PROP_SUBJECT,
- PROP_ISSUER,
- PROP_EXPIRY
-};
-
-/* -----------------------------------------------------------------------------
- * INTERNAL
- */
-
-static GQuark CERTIFICATE_INFO = 0;
-
-static void
-certificate_info_free (gpointer data)
-{
- GcrCertificateInfo *info = data;
- if (info) {
- g_assert (info->asn1);
- egg_asn1x_destroy (info->asn1);
- g_free (info);
- }
-}
-
-static GcrCertificateInfo*
-certificate_info_load (GcrCertificate *cert)
-{
- GcrCertificateInfo *info;
- GNode *asn1;
- gconstpointer der;
- gsize n_der;
-
- g_assert (GCR_IS_CERTIFICATE (cert));
-
- der = gcr_certificate_get_der_data (cert, &n_der);
- g_return_val_if_fail (der, NULL);
-
- info = g_object_get_qdata (G_OBJECT (cert), CERTIFICATE_INFO);
- if (info != NULL) {
- if (n_der == info->n_der && der == info->der)
- return info;
- }
-
- /* Cache is invalid or non existent */
- asn1 = egg_asn1x_create_and_decode (pkix_asn1_tab, "Certificate", der, n_der);
- if (asn1 == NULL) {
- g_warning ("a derived class provided an invalid or unparseable X.509 DER certificate data.");
- return NULL;
- }
-
- info = g_new0 (GcrCertificateInfo, 1);
- info->der = der;
- info->n_der = n_der;
- info->asn1 = asn1;
-
- g_object_set_qdata_full (G_OBJECT (cert), CERTIFICATE_INFO, info, certificate_info_free);
- return info;
-}
-
-static guint
-calculate_rsa_key_size (gconstpointer data, gsize n_data)
-{
- GNode *asn;
- gsize n_content;
-
- asn = egg_asn1x_create_and_decode (pk_asn1_tab, "RSAPublicKey", data, n_data);
- g_return_val_if_fail (asn, 0);
-
- if (!egg_asn1x_get_raw_value (egg_asn1x_node (asn, "modulus", NULL), &n_content))
- g_return_val_if_reached (0);
-
- egg_asn1x_destroy (asn);
-
- /* Removes the complement */
- return (n_content / 2) * 2 * 8;
-}
-
-static guint
-calculate_dsa_params_size (gconstpointer data, gsize n_data)
-{
- GNode *asn;
- gsize n_content;
-
- asn = egg_asn1x_create_and_decode (pk_asn1_tab, "DSAParameters", data, n_data);
- g_return_val_if_fail (asn, 0);
-
- if (!egg_asn1x_get_raw_value (egg_asn1x_node (asn, "p", NULL), &n_content))
- g_return_val_if_reached (0);
-
- egg_asn1x_destroy (asn);
-
- /* Removes the complement */
- return (n_content / 2) * 2 * 8;
-}
-
-static guint
-calculate_key_size (GcrCertificateInfo *info)
-{
- GNode *asn;
- gconstpointer data, params;
- gsize n_data, n_params;
- guint key_size = 0, n_bits;
- guchar *key = NULL;
- GQuark oid;
-
- data = egg_asn1x_get_raw_element (egg_asn1x_node (info->asn1, "tbsCertificate", "subjectPublicKeyInfo", NULL), &n_data);
- g_return_val_if_fail (data != NULL, 0);
-
- asn = egg_asn1x_create_and_decode (pkix_asn1_tab, "SubjectPublicKeyInfo", data, n_data);
- g_return_val_if_fail (asn, 0);
-
- /* Figure out the algorithm */
- oid = egg_asn1x_get_oid_as_quark (egg_asn1x_node (asn, "algorithm", "algorithm", NULL));
- g_return_val_if_fail (oid, 0);
-
- /* RSA keys are stored in the main subjectPublicKey field */
- if (oid == GCR_OID_PKIX1_RSA) {
-
- /* A bit string so we cannot process in place */
- key = egg_asn1x_get_bits_as_raw (egg_asn1x_node (asn, "subjectPublicKey", NULL), NULL, &n_bits);
- g_return_val_if_fail (key, 0);
- key_size = calculate_rsa_key_size (key, n_bits / 8);
- g_free (key);
-
- /* The DSA key size is discovered by the prime in params */
- } else if (oid == GCR_OID_PKIX1_DSA) {
- params = egg_asn1x_get_raw_element (egg_asn1x_node (asn, "algorithm", "parameters", NULL), &n_params);
- key_size = calculate_dsa_params_size (params, n_params);
-
- } else {
- g_message ("unsupported key algorithm in certificate: %s", g_quark_to_string (oid));
- }
-
- egg_asn1x_destroy (asn);
-
- return key_size;
-}
-
-static GChecksum*
-digest_certificate (GcrCertificate *self, GChecksumType type)
-{
- GChecksum *digest;
- gconstpointer der;
- gsize n_der;
-
- g_assert (GCR_IS_CERTIFICATE (self));
-
- der = gcr_certificate_get_der_data (self, &n_der);
- g_return_val_if_fail (der, NULL);
-
- digest = g_checksum_new (type);
- g_return_val_if_fail (digest, NULL);
-
- g_checksum_update (digest, der, n_der);
- return digest;
-}
-
-static gchar*
-calculate_markup (GcrCertificate *self)
-{
- gchar *label = NULL;
- gchar *issuer;
- gchar *markup;
-
- g_object_get (self, "label", &label, NULL);
- issuer = gcr_certificate_get_issuer_cn (self);
-
- if (issuer)
- markup = g_markup_printf_escaped ("%s\n<small>Issued by: %s</small>", label, issuer);
- else
- markup = g_markup_printf_escaped ("%s\n<small>Issued by: <i>No name</i></small>", label);
-
- g_free (label);
- g_free (issuer);
- return markup;
-}
-
-static void
-on_transform_date_to_string (const GValue *src, GValue *dest)
-{
- static const gsize len = 256;
- GDate *date;
- gchar *result;
-
- g_return_if_fail (G_VALUE_TYPE (src) == G_TYPE_DATE);
-
- date = g_value_get_boxed (src);
- g_return_if_fail (date);
-
- result = g_malloc0 (len);
- if (!g_date_strftime (result, len, "%x", date)) {
- g_free (result);
- result = NULL;
- }
-
- g_value_take_string (dest, result);
-}
-
-/* ---------------------------------------------------------------------------------
- * INTERFACE
- */
-
-static void
-gcr_certificate_default_init (GcrCertificateIface *iface)
-{
- static volatile gsize initialized = 0;
-
- if (g_once_init_enter (&initialized)) {
- _gcr_oids_init ();
-
- CERTIFICATE_INFO = g_quark_from_static_string ("_gcr_certificate_certificate_info");
-
- g_object_interface_install_property (iface,
- g_param_spec_string ("label", "Label", "Certificate label",
- "", G_PARAM_READABLE));
-
- g_object_interface_install_property (iface,
- g_param_spec_string ("description", "Description", "Description of object being rendered",
- "", G_PARAM_READABLE));
-
- g_object_interface_install_property (iface,
- g_param_spec_string ("markup", "Markup", "Markup which describes object being rendered",
- "", G_PARAM_READABLE));
-
- g_object_interface_install_property (iface,
- g_param_spec_object ("icon", "Icon", "Icon for the object being rendered",
- G_TYPE_ICON, G_PARAM_READABLE));
-
- g_object_interface_install_property (iface,
- g_param_spec_string ("subject", "Subject", "Common name of subject",
- "", G_PARAM_READABLE));
-
- g_object_interface_install_property (iface,
- g_param_spec_string ("issuer", "Issuer", "Common name of issuer",
- "", G_PARAM_READABLE));
-
- g_object_interface_install_property (iface,
- g_param_spec_boxed ("expiry", "Expiry", "Certificate expiry",
- G_TYPE_DATE, G_PARAM_READABLE));
-
- g_once_init_leave (&initialized, 1);
- }
-}
-
-typedef GcrCertificateIface GcrCertificateInterface;
-
-G_DEFINE_INTERFACE (GcrCertificate, gcr_certificate, GCR_TYPE_COMPARABLE);
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-/**
- * gcr_certificate_get_columns: (skip)
- *
- * Get the columns appropriate for a certificate
- *
- * Returns: (transfer none): the columns
- */
-const GcrColumn*
-gcr_certificate_get_columns (void)
-{
- static GcrColumn columns[] = {
- { "icon", /* later */ 0, /* later */ 0, NULL, 0 },
- { "label", G_TYPE_STRING, G_TYPE_STRING, NC_("column", "Name"),
- GCR_COLUMN_SORTABLE },
- { "issuer", G_TYPE_STRING, G_TYPE_STRING, NC_("column", "Issued By"),
- GCR_COLUMN_SORTABLE },
- { "expiry", /* later */ 0, G_TYPE_STRING, NC_("column", "Expires"),
- GCR_COLUMN_SORTABLE, on_transform_date_to_string },
- { NULL }
- };
-
- columns[0].property_type = columns[0].column_type = G_TYPE_ICON;
- columns[3].property_type = G_TYPE_DATE;
- return columns;
-}
-
-/**
- * gcr_certificate_compare:
- * @first: (allow-none): the certificate to compare
- * @other: (allow-none): the certificate to compare against
- *
- * Compare one certificate against another. If the certificates are equal
- * then zero is returned. If one certificate is %NULL or not a certificate,
- * then a non-zero value is returned.
- *
- * The return value is useful in a stable sort, but has no user logical
- * meaning.
- *
- * Returns: zero if the certificates match, non-zero otherwise.
- */
-gint
-gcr_certificate_compare (GcrComparable *first, GcrComparable *other)
-{
- gconstpointer data1, data2;
- gsize size1, size2;
-
- if (!GCR_IS_CERTIFICATE (first))
- first = NULL;
- if (!GCR_IS_CERTIFICATE (other))
- other = NULL;
-
- if (first == other)
- return TRUE;
- if (!first)
- return 1;
- if (!other)
- return -1;
-
- data1 = gcr_certificate_get_der_data (GCR_CERTIFICATE (first), &size1);
- data2 = gcr_certificate_get_der_data (GCR_CERTIFICATE (other), &size2);
-
- return gcr_comparable_memcmp (data1, size1, data2, size2);
-}
-
-
-/**
- * gcr_certificate_get_der_data:
- * @self: a #GcrCertificate
- * @n_data: a pointer to a location to store the size of the resulting DER data.
- *
- * Gets the raw DER data for an X.509 certificate.
- *
- * Returns: (array length=n_data): raw DER data of the X.509 certificate
- **/
-const guchar *
-gcr_certificate_get_der_data (GcrCertificate *self,
- gsize *n_data)
-{
- g_return_val_if_fail (GCR_IS_CERTIFICATE (self), NULL);
- g_return_val_if_fail (n_data != NULL, NULL);
- g_return_val_if_fail (GCR_CERTIFICATE_GET_INTERFACE (self)->get_der_data, NULL);
- return GCR_CERTIFICATE_GET_INTERFACE (self)->get_der_data (self, n_data);
-}
-
-/**
- * gcr_certificate_get_issuer_cn:
- * @self: a #GcrCertificate
- *
- * Get the common name of the issuer of this certificate.
- *
- * The string returned should be freed by the caller when no longer
- * required.
- *
- * Returns: The allocated issuer CN, or NULL if no issuer CN present.
- */
-gchar*
-gcr_certificate_get_issuer_cn (GcrCertificate *self)
-{
- return gcr_certificate_get_issuer_part (self, "cn");
-}
-
-/**
- * gcr_certificate_get_issuer_part:
- * @self: a #GcrCertificate
- * @part: a DN type string or OID.
- *
- * Get a part of the DN of the issuer of this certificate.
- *
- * Examples of a @part might be the 'OU' (organizational unit)
- * or the 'CN' (common name). Only the value of that part
- * of the DN is returned.
- *
- * The string returned should be freed by the caller when no longer
- * required.
- *
- * Returns: (allow-none): the allocated part of the issuer DN, or %NULL if no
- * such part is present
- */
-gchar *
-gcr_certificate_get_issuer_part (GcrCertificate *self, const char *part)
-{
- GcrCertificateInfo *info;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (self), NULL);
- g_return_val_if_fail (part != NULL, NULL);
-
- info = certificate_info_load (self);
- g_return_val_if_fail (info, NULL);
-
- return egg_dn_read_part (egg_asn1x_node (info->asn1, "tbsCertificate", "issuer", "rdnSequence", NULL), part);
-}
-
-static gconstpointer
-_gcr_certificate_get_issuer_const (GcrCertificate *self, gsize *n_data)
-{
- GcrCertificateInfo *info;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (self), NULL);
- g_return_val_if_fail (n_data != NULL, NULL);
-
- info = certificate_info_load (self);
- g_return_val_if_fail (info, NULL);
-
- return egg_asn1x_get_raw_element (egg_asn1x_node (info->asn1, "tbsCertificate", "issuer", NULL), n_data);
-}
-
-/**
- * gcr_certificate_get_issuer_raw:
- * @self: a #GcrCertificate
- * @n_data: The length of the returned data.
- *
- * Get the raw DER data for the issuer DN of the certificate.
- *
- * The data should be freed by using g_free() when no longer required.
- *
- * Returns: (transfer full) (array length=n_data): allocated memory containing
- * the raw issuer
- */
-guchar *
-gcr_certificate_get_issuer_raw (GcrCertificate *self,
- gsize *n_data)
-{
- gconstpointer data;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (self), NULL);
- g_return_val_if_fail (n_data != NULL, NULL);
-
- data = _gcr_certificate_get_issuer_const (self, n_data);
- return g_memdup (data, data ? *n_data : 0);
-}
-
-/**
- * gcr_certificate_is_issuer:
- * @self: a #GcrCertificate
- * @issuer: a possible issuer #GcrCertificate
- *
- * Check if @issuer could be the issuer of this certificate. This is done by
- * comparing the relevant subject and issuer fields. No signature check is
- * done. Proper verification of certificates must be done via a crypto
- * library.
- *
- * Returns: whether @issuer could be the issuer of the certificate.
- */
-gboolean
-gcr_certificate_is_issuer (GcrCertificate *self, GcrCertificate *issuer)
-{
- gconstpointer subject_dn, issuer_dn;
- gsize n_subject_dn, n_issuer_dn;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (self), FALSE);
- g_return_val_if_fail (GCR_IS_CERTIFICATE (issuer), FALSE);
-
- subject_dn = _gcr_certificate_get_subject_const (issuer, &n_subject_dn);
- g_return_val_if_fail (subject_dn, FALSE);
-
- issuer_dn = _gcr_certificate_get_issuer_const (self, &n_issuer_dn);
- g_return_val_if_fail (issuer_dn, FALSE);
-
- return (n_issuer_dn == n_subject_dn &&
- memcmp (issuer_dn, subject_dn, n_issuer_dn) == 0);
-}
-
-/**
- * gcr_certificate_get_issuer_dn:
- * @self: a #GcrCertificate
- *
- * Get the full issuer DN of the certificate as a (mostly)
- * readable string.
- *
- * The string returned should be freed by the caller when no longer
- * required.
- *
- * Returns: The allocated issuer DN of the certificate.
- */
-gchar*
-gcr_certificate_get_issuer_dn (GcrCertificate *self)
-{
- GcrCertificateInfo *info;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (self), NULL);
-
- info = certificate_info_load (self);
- g_return_val_if_fail (info, NULL);
-
- return egg_dn_read (egg_asn1x_node (info->asn1, "tbsCertificate", "issuer", "rdnSequence", NULL));
-}
-
-/**
- * gcr_certificate_get_subject_cn:
- * @self: a #GcrCertificate
- *
- * Get the common name of the subject of this certificate.
- *
- * The string returned should be freed by the caller when no longer
- * required.
- *
- * Returns: The allocated subject CN, or NULL if no subject CN present.
- */
-gchar*
-gcr_certificate_get_subject_cn (GcrCertificate *self)
-{
- return gcr_certificate_get_subject_part (self, "cn");
-}
-
-/**
- * gcr_certificate_get_subject_part:
- * @self: a #GcrCertificate
- * @part: a DN type string or OID.
- *
- * Get a part of the DN of the subject of this certificate.
- *
- * Examples of a @part might be the 'OU' (organizational unit)
- * or the 'CN' (common name). Only the value of that part
- * of the DN is returned.
- *
- * The string returned should be freed by the caller when no longer
- * required.
- *
- * Returns: (allow-none): the allocated part of the subject DN, or %NULL if no
- * such part is present.
- */
-gchar*
-gcr_certificate_get_subject_part (GcrCertificate *self, const char *part)
-{
- GcrCertificateInfo *info;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (self), NULL);
- g_return_val_if_fail (part != NULL, NULL);
-
- info = certificate_info_load (self);
- g_return_val_if_fail (info, NULL);
-
- return egg_dn_read_part (egg_asn1x_node (info->asn1, "tbsCertificate", "subject", "rdnSequence", NULL), part);
-}
-
-/**
- * gcr_certificate_get_subject_dn:
- * @self: a #GcrCertificate
- *
- * Get the full subject DN of the certificate as a (mostly)
- * readable string.
- *
- * The string returned should be freed by the caller when no longer
- * required.
- *
- * Returns: The allocated subject DN of the certificate.
- */
-gchar*
-gcr_certificate_get_subject_dn (GcrCertificate *self)
-{
- GcrCertificateInfo *info;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (self), NULL);
-
- info = certificate_info_load (self);
- g_return_val_if_fail (info, NULL);
-
- return egg_dn_read (egg_asn1x_node (info->asn1, "tbsCertificate", "subject", "rdnSequence", NULL));
-}
-
-static gconstpointer
-_gcr_certificate_get_subject_const (GcrCertificate *self, gsize *n_data)
-{
- GcrCertificateInfo *info;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (self), NULL);
- g_return_val_if_fail (n_data != NULL, NULL);
-
- info = certificate_info_load (self);
- g_return_val_if_fail (info, NULL);
-
- return egg_asn1x_get_raw_element (egg_asn1x_node (info->asn1, "tbsCertificate", "subject", NULL), n_data);
-}
-
-/**
- * gcr_certificate_get_subject_raw:
- * @self: a #GcrCertificate
- * @n_data: The length of the returned data.
- *
- * Get the raw DER data for the subject DN of the certificate.
- *
- * The data should be freed by using g_free() when no longer required.
- *
- * Returns: (transfer full) (array length=n_data): allocated memory containing
- * the raw subject
- */
-guchar *
-gcr_certificate_get_subject_raw (GcrCertificate *self, gsize *n_data)
-{
- GcrCertificateInfo *info;
- gconstpointer data;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (self), NULL);
- g_return_val_if_fail (n_data != NULL, NULL);
-
- info = certificate_info_load (self);
- g_return_val_if_fail (info, NULL);
-
- data = _gcr_certificate_get_subject_const (self, n_data);
- return g_memdup (data, data ? *n_data : 0);
-}
-
-/**
- * gcr_certificate_get_issued_date:
- * @self: a #GcrCertificate
- *
- * Get the issued date of this certificate.
- *
- * The #GDate returned should be freed by the caller using
- * g_date_free() when no longer required.
- *
- * Returns: An allocated issued date of this certificate.
- */
-GDate*
-gcr_certificate_get_issued_date (GcrCertificate *self)
-{
- GcrCertificateInfo *info;
- GDate *date;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (self), NULL);
-
- info = certificate_info_load (self);
- g_return_val_if_fail (info, NULL);
-
- date = g_date_new ();
- if (!egg_asn1x_get_time_as_date (egg_asn1x_node (info->asn1, "tbsCertificate", "validity", "notBefore", NULL), date)) {
- g_date_free (date);
- return NULL;
- }
-
- return date;
-}
-
-/**
- * gcr_certificate_get_expiry_date:
- * @self: a #GcrCertificate
- *
- * Get the expiry date of this certificate.
- *
- * The #GDate returned should be freed by the caller using
- * g_date_free() when no longer required.
- *
- * Returns: An allocated expiry date of this certificate.
- */
-GDate*
-gcr_certificate_get_expiry_date (GcrCertificate *self)
-{
- GcrCertificateInfo *info;
- GDate *date;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (self), NULL);
-
- info = certificate_info_load (self);
- g_return_val_if_fail (info, NULL);
-
- date = g_date_new ();
- if (!egg_asn1x_get_time_as_date (egg_asn1x_node (info->asn1, "tbsCertificate", "validity", "notAfter", NULL), date)) {
- g_date_free (date);
- return NULL;
- }
-
- return date;
-}
-
-/**
- * gcr_certificate_get_key_size:
- * @self: a #GcrCertificate
- *
- * Get the key size in bits of the public key represented
- * by this certificate.
- *
- * Returns: The key size of the certificate.
- */
-guint
-gcr_certificate_get_key_size (GcrCertificate *self)
-{
- GcrCertificateInfo *info;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (self), 0);
-
- info = certificate_info_load (self);
- g_return_val_if_fail (info, 0);
-
- if (!info->key_size)
- info->key_size = calculate_key_size (info);
-
- return info->key_size;
-}
-
-/**
- * gcr_certificate_get_fingerprint:
- * @self: a #GcrCertificate
- * @type: the type of algorithm for the fingerprint.
- * @n_length: The length of the resulting fingerprint.
- *
- * Calculate the fingerprint for this certificate.
- *
- * You can pass G_CHECKSUM_SHA1 or G_CHECKSUM_MD5 as the @type
- * parameter.
- *
- * The caller should free the returned data using g_free() when
- * it is no longer required.
- *
- * Returns: (array length=n_length): the raw binary fingerprint
- **/
-guchar *
-gcr_certificate_get_fingerprint (GcrCertificate *self, GChecksumType type, gsize *n_length)
-{
- GChecksum *sum;
- guchar *digest;
- gssize length;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (self), NULL);
- g_return_val_if_fail (n_length != NULL, NULL);
-
- sum = digest_certificate (self, type);
- g_return_val_if_fail (sum, NULL);
- length = g_checksum_type_get_length (type);
- g_return_val_if_fail (length > 0, NULL);
- digest = g_malloc (length);
- *n_length = length;
- g_checksum_get_digest (sum, digest, n_length);
- g_checksum_free (sum);
-
- return digest;
-}
-
-/**
- * gcr_certificate_get_fingerprint_hex:
- * @self: a #GcrCertificate
- * @type: the type of algorithm for the fingerprint.
- *
- * Calculate the fingerprint for this certificate, and return it
- * as a hex string.
- *
- * You can pass G_CHECKSUM_SHA1 or G_CHECKSUM_MD5 as the @type
- * parameter.
- *
- * The caller should free the returned data using g_free() when
- * it is no longer required.
- *
- * Returns: an allocated hex string which contains the fingerprint.
- */
-gchar*
-gcr_certificate_get_fingerprint_hex (GcrCertificate *self, GChecksumType type)
-{
- GChecksum *sum;
- guchar *digest;
- gsize n_digest;
- gssize length;
- gchar *hex;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (self), NULL);
-
- sum = digest_certificate (self, type);
- g_return_val_if_fail (sum, NULL);
- length = g_checksum_type_get_length (type);
- g_return_val_if_fail (length > 0, NULL);
- digest = g_malloc (length);
- n_digest = length;
- g_checksum_get_digest (sum, digest, &n_digest);
- hex = egg_hex_encode_full (digest, n_digest, TRUE, ' ', 1);
- g_checksum_free (sum);
- g_free (digest);
- return hex;
-}
-
-/**
- * gcr_certificate_get_serial_number:
- * @self: a #GcrCertificate
- * @n_length: the length of the returned data.
- *
- * Get the raw binary serial number of the certificate.
- *
- * The caller should free the returned data using g_free() when
- * it is no longer required.
- *
- * Returns: (array length=n_length): the raw binary serial number.
- */
-guchar *
-gcr_certificate_get_serial_number (GcrCertificate *self, gsize *n_length)
-{
- GcrCertificateInfo *info;
- const guchar *serial;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (self), NULL);
- g_return_val_if_fail (n_length != NULL, NULL);
-
- info = certificate_info_load (self);
- g_return_val_if_fail (info, NULL);
-
- serial = egg_asn1x_get_integer_as_raw (egg_asn1x_node (info->asn1, "tbsCertificate", "serialNumber", NULL), n_length);
- return g_memdup (serial, *n_length);
-}
-
-/**
- * gcr_certificate_get_serial_number_hex:
- * @self: a #GcrCertificate
- *
- * Get the serial number of the certificate as a hex string.
- *
- * The caller should free the returned data using g_free() when
- * it is no longer required.
- *
- * Returns: an allocated string containing the serial number as hex.
- */
-gchar*
-gcr_certificate_get_serial_number_hex (GcrCertificate *self)
-{
- guchar *serial;
- gsize n_serial;
- gchar *hex;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (self), NULL);
-
- serial = gcr_certificate_get_serial_number (self, &n_serial);
- if (serial == NULL)
- return NULL;
-
- hex = egg_hex_encode (serial, n_serial);
- g_free (serial);
- return hex;
-}
-
-/**
- * gcr_certificate_get_icon:
- * @self: The certificate
- *
- * Get the icon for a certificate.
- *
- * Returns: (transfer full): the icon for this certificate, which should be
- * released with g_object_unref()
- */
-GIcon *
-gcr_certificate_get_icon (GcrCertificate *self)
-{
- g_return_val_if_fail (GCR_IS_CERTIFICATE (self), FALSE);
- return g_themed_icon_new (GCR_ICON_CERTIFICATE);
-}
-
-/* -----------------------------------------------------------------------------
- * MIXIN
- */
-
-/**
- * GCR_CERTIFICATE_MIXIN_IMPLEMENT_COMPARABLE:
- *
- * Implement the GcrComparable interface. Use this macro like this:
- *
- * <informalexample><programlisting>
- * G_DEFINE_TYPE_WITH_CODE (MyCertificate, my_certificate, G_TYPE_OBJECT,
- * GCR_CERTIFICATE_MIXIN_IMPLEMENT_COMPARABLE ();
- * G_IMPLEMENT_INTERFACE (GCR_TYPE_CERTIFICATE, my_certificate_iface_init);
- * );
- * </programlisting></informalexample>
- */
-
-/**
- * gcr_certificate_mixin_comparable_init: (skip)
- * @iface: The interface
- *
- * Initialize a #GcrComparableIface to compare the current certificate.
- * In general it's easier to use the GCR_CERTIFICATE_MIXIN_IMPLEMENT_COMPARABLE()
- * macro instead of this function.
- */
-void
-gcr_certificate_mixin_comparable_init (GcrComparableIface *iface)
-{
- iface->compare = gcr_certificate_compare;
-}
-
-/**
- * gcr_certificate_mixin_class_init: (skip)
- * @object_class: The GObjectClass for this class
- *
- * Initialize the certificate mixin for the class. This mixin implements the
- * various required properties for the certificate.
- *
- * Call this function near the end of your derived class_init function. The
- * derived class must implement the #GcrCertificate interface.
- */
-void
-gcr_certificate_mixin_class_init (GObjectClass *object_class)
-{
- if (!g_object_class_find_property (object_class, "description"))
- g_object_class_override_property (object_class, PROP_DESCRIPTION, "description");
- if (!g_object_class_find_property (object_class, "markup"))
- g_object_class_override_property (object_class, PROP_MARKUP, "markup");
- if (!g_object_class_find_property (object_class, "label"))
- g_object_class_override_property (object_class, PROP_LABEL, "label");
- if (!g_object_class_find_property (object_class, "icon"))
- g_object_class_override_property (object_class, PROP_ICON, "icon");
- if (!g_object_class_find_property (object_class, "subject"))
- g_object_class_override_property (object_class, PROP_SUBJECT, "subject");
- if (!g_object_class_find_property (object_class, "issuer"))
- g_object_class_override_property (object_class, PROP_ISSUER, "issuer");
- if (!g_object_class_find_property (object_class, "expiry"))
- g_object_class_override_property (object_class, PROP_EXPIRY, "expiry");
-
- _gcr_initialize_library ();
-}
-
-/**
- * gcr_certificate_mixin_get_property: (skip)
- * @obj: The object
- * @prop_id: The property id
- * @value: The value to fill in.
- * @pspec: The param specification.
- *
- * Implementation to get various required certificate properties. This should
- * be called from your derived class get_property function, or used as a
- * get_property virtual function.
- *
- * Example of use as called from derived class get_property function:
- *
- * <informalexample><programlisting>
- * static void
- * my_get_property (GObject *obj, guint prop_id, GValue *value, GParamSpec *pspec)
- * {
- * switch (prop_id) {
- *
- * ...
- *
- * default:
- * gcr_certificate_mixin_get_property (obj, prop_id, value, pspec);
- * break;
- * }
- *}
- * </programlisting></informalexample>
- *
- * Example of use as get_property function:
- *
- * <informalexample><programlisting>
- * static void
- * my_class_init (MyClass *klass)
- * {
- * GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- * gobject_class->get_property = gcr_certificate_mixin_get_property;
- *
- * ...
- * }
- * </programlisting></informalexample>
-
- */
-void
-gcr_certificate_mixin_get_property (GObject *obj, guint prop_id,
- GValue *value, GParamSpec *pspec)
-{
- GcrCertificate *cert = GCR_CERTIFICATE (obj);
-
- switch (prop_id) {
- case PROP_LABEL:
- g_value_take_string (value, gcr_certificate_get_subject_cn (cert));
- break;
- case PROP_SUBJECT:
- g_value_take_string (value, gcr_certificate_get_subject_cn (cert));
- break;
- case PROP_ICON:
- g_value_set_object (value, gcr_certificate_get_icon (cert));
- break;
- case PROP_DESCRIPTION:
- g_value_set_string (value, _("Certificate"));
- break;
- case PROP_MARKUP:
- g_value_take_string (value, calculate_markup (cert));
- break;
- case PROP_ISSUER:
- g_value_take_string (value, gcr_certificate_get_issuer_cn (cert));
- break;
- case PROP_EXPIRY:
- g_value_take_boxed (value, gcr_certificate_get_expiry_date (cert));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
diff --git a/gcr/gcr-certificate.h b/gcr/gcr-certificate.h
deleted file mode 100644
index d60be227..00000000
--- a/gcr/gcr-certificate.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2008 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef __GCR_CERTIFICATE_H__
-#define __GCR_CERTIFICATE_H__
-
-#include "gcr-types.h"
-#include "gcr-column.h"
-#include "gcr-comparable.h"
-
-#include <glib-object.h>
-#include <gio/gio.h>
-
-G_BEGIN_DECLS
-
-#define GCR_CERTIFICATE_COLUMNS (gcr_certificate_get_columns ())
-#define GCR_TYPE_CERTIFICATE (gcr_certificate_get_type ())
-#define GCR_CERTIFICATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_CERTIFICATE, GcrCertificate))
-#define GCR_IS_CERTIFICATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_CERTIFICATE))
-#define GCR_CERTIFICATE_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GCR_TYPE_CERTIFICATE, GcrCertificateIface))
-
-typedef struct _GcrCertificate GcrCertificate;
-typedef struct _GcrCertificateIface GcrCertificateIface;
-
-struct _GcrCertificateIface {
- GTypeInterface parent;
-
- const guchar * (*get_der_data) (GcrCertificate *self,
- gsize *n_data);
-
- /*< private >*/
- gpointer dummy1;
- gpointer dummy2;
- gpointer dummy3;
- gpointer dummy5;
- gpointer dummy6;
- gpointer dummy7;
- gpointer dummy8;
-};
-
-GType gcr_certificate_get_type (void);
-
-const guchar * gcr_certificate_get_der_data (GcrCertificate *self,
- gsize *n_data);
-
-const GcrColumn* gcr_certificate_get_columns (void);
-
-gint gcr_certificate_compare (GcrComparable *first,
- GcrComparable *other);
-
-gchar* gcr_certificate_get_issuer_cn (GcrCertificate *self);
-
-gchar* gcr_certificate_get_issuer_dn (GcrCertificate *self);
-
-gchar* gcr_certificate_get_issuer_part (GcrCertificate *self,
- const gchar *part);
-
-guchar * gcr_certificate_get_issuer_raw (GcrCertificate *self,
- gsize *n_data);
-
-gboolean gcr_certificate_is_issuer (GcrCertificate *self,
- GcrCertificate *issuer);
-
-gchar* gcr_certificate_get_subject_cn (GcrCertificate *self);
-
-gchar* gcr_certificate_get_subject_dn (GcrCertificate *self);
-
-gchar* gcr_certificate_get_subject_part (GcrCertificate *self,
- const gchar *part);
-
-guchar * gcr_certificate_get_subject_raw (GcrCertificate *self,
- gsize *n_data);
-
-GDate* gcr_certificate_get_issued_date (GcrCertificate *self);
-
-GDate* gcr_certificate_get_expiry_date (GcrCertificate *self);
-
-guchar* gcr_certificate_get_serial_number (GcrCertificate *self,
- gsize *n_length);
-
-gchar* gcr_certificate_get_serial_number_hex (GcrCertificate *self);
-
-guint gcr_certificate_get_key_size (GcrCertificate *self);
-
-guchar* gcr_certificate_get_fingerprint (GcrCertificate *self,
- GChecksumType type,
- gsize *n_length);
-
-gchar* gcr_certificate_get_fingerprint_hex (GcrCertificate *self,
- GChecksumType type);
-
-GIcon* gcr_certificate_get_icon (GcrCertificate *self);
-
-#define GCR_CERTIFICATE_MIXIN_IMPLEMENT_COMPARABLE() \
- G_IMPLEMENT_INTERFACE (GCR_TYPE_COMPARABLE, gcr_certificate_mixin_comparable_init)
-
-void gcr_certificate_mixin_comparable_init (GcrComparableIface *iface);
-
-void gcr_certificate_mixin_class_init (GObjectClass *object_class);
-
-void gcr_certificate_mixin_get_property (GObject *obj,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
-
-G_END_DECLS
-
-#endif /* __GCR_CERTIFICATE_H__ */
diff --git a/gcr/gcr-collection-model.c b/gcr/gcr-collection-model.c
deleted file mode 100644
index 79493e08..00000000
--- a/gcr/gcr-collection-model.c
+++ /dev/null
@@ -1,1575 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the
- * Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-collection-model.h"
-
-#include <gtk/gtk.h>
-
-#include <string.h>
-#include <unistd.h>
-
-/**
- * SECTION:gcr-collection-model
- * @title: GcrCollectionModel
- * @short_description: A GtkTreeModel that represents a collection
- *
- * This is an implementation of #GtkTreeModel which represents the objects in
- * the a #GcrCollection. As objects are added or removed from the collection,
- * rows are added and removed from this model.
- *
- * The row values come from the properties of the objects in the collection. Use
- * gcr_collection_model_new() to create a new collection model. To have more
- * control over the values use a set of #GcrColumn structures to define the
- * columns. This can be done with gcr_collection_model_new_full() or
- * gcr_collection_model_set_columns().
- *
- * Each row can have a selected state, which is represented by a boolean column.
- * The selected state can be toggled with gcr_collection_model_toggle_selected()
- * or set with gcr_collection_model_set_selected_objects() and retrieved with
- * gcr_collection_model_get_selected_objects().
- *
- * To determine which object a row represents and vice versa, use the
- * gcr_collection_model_iter_for_object() or gcr_collection_model_object_for_iter()
- * functions.
- */
-
-/**
- * GcrCollectionModel:
- *
- * A #GtkTreeModel which contains a row for each object in a #GcrCollection.
- */
-
-/**
- * GcrCollectionModelClass:
- * @parent_class: The parent class
- *
- * The class for #GcrCollectionModel.
- */
-
-#define COLLECTION_MODEL_STAMP 0xAABBCCDD
-
-enum {
- PROP_0,
- PROP_COLLECTION,
- PROP_COLUMNS
-};
-
-typedef struct {
- GObject *object;
- GSequenceIter *parent;
- GSequence *children;
-} GcrCollectionRow;
-
-typedef struct {
- GtkTreeIterCompareFunc sort_func;
- gpointer user_data;
- GDestroyNotify destroy_func;
-} GcrCollectionSortClosure;
-
-typedef struct _GcrCollectionColumn {
- gchar *property;
- GType *type;
- GtkTreeIterCompareFunc sort_func;
- gpointer sort_data;
- GDestroyNotify sort_destroy;
-} GcrCollectionColumn;
-
-struct _GcrCollectionModelPrivate {
- GcrCollection *collection;
- GHashTable *selected;
- GSequence *root_sequence;
- GHashTable *object_to_seq;
-
- const GcrColumn *columns;
- guint n_columns;
-
- /* Sort information */
- gint sort_column_id;
- GtkSortType sort_order_type;
- GcrCollectionSortClosure *column_sort_closures;
- GcrCollectionSortClosure default_sort_closure;
-
- /* Sequence ordering information */
- GCompareDataFunc order_current;
- gpointer order_argument;
-};
-
-/* Forward declarations */
-static void gcr_collection_model_tree_model_init (GtkTreeModelIface *iface);
-static void gcr_collection_model_tree_sortable_init (GtkTreeSortableIface *iface);
-
-G_DEFINE_TYPE_EXTENDED (GcrCollectionModel, gcr_collection_model, G_TYPE_OBJECT, 0,
- G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_MODEL, gcr_collection_model_tree_model_init)
- G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_SORTABLE, gcr_collection_model_tree_sortable_init)
-);
-
-typedef gint (*CompareValueFunc) (const GValue *va,
- const GValue *vb);
-
-static gint
-compare_int_value (const GValue *va,
- const GValue *vb)
-{
- gint a = g_value_get_int (va);
- gint b = g_value_get_int (vb);
- if (a > b) return 1;
- else if (a < b) return -1;
- return 0;
-}
-
-static gint
-compare_uint_value (const GValue *va,
- const GValue *vb)
-{
- guint a = g_value_get_uint (va);
- guint b = g_value_get_uint (vb);
- if (a > b) return 1;
- else if (a < b) return -1;
- return 0;
-}
-
-static gint
-compare_long_value (const GValue *va,
- const GValue *vb)
-{
- glong a = g_value_get_long (va);
- glong b = g_value_get_long (vb);
- if (a > b) return 1;
- else if (a < b) return -1;
- return 0;
-}
-
-static gint
-compare_ulong_value (const GValue *va,
- const GValue *vb)
-{
- gulong a = g_value_get_ulong (va);
- gulong b = g_value_get_ulong (vb);
- if (a > b) return 1;
- else if (a < b) return -1;
- return 0;
-}
-
-static gint
-compare_string_value (const GValue *va,
- const GValue *vb)
-{
- const gchar *a = g_value_get_string (va);
- const gchar *b = g_value_get_string (vb);
- gchar *case_a;
- gchar *case_b;
- gboolean ret;
-
- if (a == b)
- return 0;
- else if (!a)
- return -1;
- else if (!b)
- return 1;
-
- case_a = g_utf8_casefold (a, -1);
- case_b = g_utf8_casefold (b, -1);
- ret = g_utf8_collate (case_a, case_b);
- g_free (case_a);
- g_free (case_b);
-
- return ret;
-}
-
-static gint
-compare_date_value (const GValue *va,
- const GValue *vb)
-{
- GDate *a = g_value_get_boxed (va);
- GDate *b = g_value_get_boxed (vb);
-
- if (a == b)
- return 0;
- else if (!a)
- return -1;
- else if (!b)
- return 1;
- else
- return g_date_compare (a, b);
-}
-
-static CompareValueFunc
-lookup_compare_func (GType type)
-{
- switch (type) {
- case G_TYPE_INT:
- return compare_int_value;
- case G_TYPE_UINT:
- return compare_uint_value;
- case G_TYPE_LONG:
- return compare_long_value;
- case G_TYPE_ULONG:
- return compare_ulong_value;
- case G_TYPE_STRING:
- return compare_string_value;
- }
-
- if (type == G_TYPE_DATE)
- return compare_date_value;
-
- return NULL;
-}
-
-static gint
-order_sequence_by_closure (gconstpointer a,
- gconstpointer b,
- gpointer user_data)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (user_data);
- GcrCollectionSortClosure *closure = self->pv->order_argument;
- const GcrCollectionRow *row_a = a;
- const GcrCollectionRow *row_b = b;
- GtkTreeIter iter_a;
- GtkTreeIter iter_b;
-
- g_assert (closure);
- g_assert (closure->sort_func);
-
- if (!gcr_collection_model_iter_for_object (self, row_a->object, &iter_a))
- g_return_val_if_reached (0);
- if (!gcr_collection_model_iter_for_object (self, row_b->object, &iter_b))
- g_return_val_if_reached (0);
-
- return (closure->sort_func) (GTK_TREE_MODEL (self),
- &iter_a, &iter_b, closure->user_data);
-}
-
-static gint
-order_sequence_by_closure_reverse (gconstpointer a,
- gconstpointer b,
- gpointer user_data)
-{
- return 0 - order_sequence_by_closure (a, b, user_data);
-}
-
-static gint
-order_sequence_as_unsorted (gconstpointer a,
- gconstpointer b,
- gpointer user_data)
-{
- const GcrCollectionRow *row_a = a;
- const GcrCollectionRow *row_b = b;
- return GPOINTER_TO_INT (row_a->object) - GPOINTER_TO_INT (row_b->object);
-}
-
-static gint
-order_sequence_as_unsorted_reverse (gconstpointer a,
- gconstpointer b,
- gpointer user_data)
-{
- const GcrCollectionRow *row_a = a;
- const GcrCollectionRow *row_b = b;
- return GPOINTER_TO_INT (row_b->object) - GPOINTER_TO_INT (row_a->object);
-}
-
-static void
-lookup_object_property (GObject *object,
- const gchar *property_name,
- GValue *value)
-{
- if (g_object_class_find_property (G_OBJECT_GET_CLASS (object), property_name))
- g_object_get_property (object, property_name, value);
-
- /* Other types have sane defaults */
- else if (G_VALUE_TYPE (value) == G_TYPE_STRING)
- g_value_set_string (value, "");
-}
-
-static gint
-order_sequence_by_property (gconstpointer a,
- gconstpointer b,
- gpointer user_data)
-{
- const GcrCollectionRow *row_a = a;
- const GcrCollectionRow *row_b = b;
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (user_data);
- const GcrColumn *column = self->pv->order_argument;
- GValue value_a = { 0, };
- GValue value_b = { 0, };
- CompareValueFunc compare;
- gint ret;
-
- g_assert (column);
-
- /* Sort according to property values */
- column = &self->pv->columns[self->pv->sort_column_id];
- g_value_init (&value_a, column->property_type);
- lookup_object_property (row_a->object, column->property_name, &value_a);
- g_value_init (&value_b, column->property_type);
- lookup_object_property (row_b->object, column->property_name, &value_b);
-
- compare = lookup_compare_func (column->property_type);
- g_assert (compare != NULL);
-
- ret = (compare) (&value_a, &value_b);
-
- g_value_unset (&value_a);
- g_value_unset (&value_b);
-
- return ret;
-}
-
-static gint
-order_sequence_by_property_reverse (gconstpointer a,
- gconstpointer b,
- gpointer user_data)
-{
- return 0 - order_sequence_by_property (a, b, user_data);
-}
-
-static GHashTable*
-selected_hash_table_new (void)
-{
- return g_hash_table_new (g_direct_hash, g_direct_equal);
-}
-
-static gboolean
-sequence_iter_to_tree (GcrCollectionModel *self,
- GSequenceIter *seq,
- GtkTreeIter *iter)
-{
- GcrCollectionRow *row;
-
- g_return_val_if_fail (seq != NULL, FALSE);
-
- if (g_sequence_iter_is_end (seq))
- return FALSE;
-
- row = g_sequence_get (seq);
- g_return_val_if_fail (row != NULL && G_IS_OBJECT (row->object), FALSE);
-
- memset (iter, 0, sizeof (*iter));
- iter->stamp = COLLECTION_MODEL_STAMP;
- iter->user_data = row->object;
- iter->user_data2 = seq;
- return TRUE;
-}
-
-static GSequenceIter *
-sequence_iter_for_tree (GcrCollectionModel *self,
- GtkTreeIter *iter)
-{
- g_return_val_if_fail (iter != NULL, NULL);
- g_return_val_if_fail (iter->stamp == COLLECTION_MODEL_STAMP, NULL);
- return iter->user_data2;
-}
-
-static GtkTreePath *
-sequence_iter_to_path (GcrCollectionModel *self,
- GSequenceIter *seq)
-{
- GcrCollectionRow *row;
- GtkTreePath *path;
-
- path = gtk_tree_path_new ();
- while (seq) {
- gtk_tree_path_prepend_index (path, g_sequence_iter_get_position (seq));
- row = g_sequence_get (seq);
- seq = row->parent;
- }
- return path;
-}
-
-static GSequence *
-child_sequence_for_tree (GcrCollectionModel *self,
- GtkTreeIter *iter)
-{
- GcrCollectionRow *row;
- GSequenceIter *seq;
-
- if (iter == NULL) {
- return self->pv->root_sequence;
- } else {
- seq = sequence_iter_for_tree (self, iter);
- g_return_val_if_fail (seq != NULL, NULL);
- row = g_sequence_get (seq);
- return row->children;
- }
-}
-
-static void
-on_object_notify (GObject *object, GParamSpec *spec, GcrCollectionModel *self)
-{
- GtkTreeIter iter;
- GtkTreePath *path;
- gboolean found = FALSE;
- guint i;
-
- g_return_if_fail (spec->name);
-
- for (i = 0; i < self->pv->n_columns - 1; ++i) {
- g_assert (self->pv->columns[i].property_name);
- if (g_str_equal (self->pv->columns[i].property_name, spec->name)) {
- found = TRUE;
- break;
- }
- }
-
- /* Tell the tree view that this row changed */
- if (found) {
- if (!gcr_collection_model_iter_for_object (self, object, &iter))
- g_return_if_reached ();
- path = gtk_tree_model_get_path (GTK_TREE_MODEL (self), &iter);
- g_return_if_fail (path);
- gtk_tree_model_row_changed (GTK_TREE_MODEL (self), path, &iter);
- gtk_tree_path_free (path);
- }
-}
-
-static void
-on_object_gone (gpointer unused, GObject *was_object)
-{
- g_warning ("object contained in GcrCollection and included in GcrCollectionModel "
- "was destroyed before it was removed from the collection");
-}
-
-static void on_collection_added (GcrCollection *collection,
- GObject *object,
- gpointer user_data);
-
-static void on_collection_removed (GcrCollection *collection,
- GObject *object,
- gpointer user_data);
-
-static void add_object_to_sequence (GcrCollectionModel *self,
- GSequence *sequence,
- GSequenceIter *parent,
- GObject *object,
- gboolean emit);
-
-static void remove_object_from_sequence (GcrCollectionModel *self,
- GSequence *sequence,
- GSequenceIter *seq,
- GObject *object,
- gboolean emit);
-
-static void
-add_children_to_sequence (GcrCollectionModel *self,
- GSequence *sequence,
- GSequenceIter *parent,
- GcrCollection *collection,
- gboolean emit)
-{
- GList *children, *l;
-
- children = gcr_collection_get_objects (collection);
- for (l = children; l; l = g_list_next (l))
- add_object_to_sequence (self, sequence, parent, l->data, emit);
- g_list_free (children);
-
- /* Now listen in for any changes */
- g_signal_connect_after (collection, "added", G_CALLBACK (on_collection_added), self);
- g_signal_connect_after (collection, "removed", G_CALLBACK (on_collection_removed), self);
-}
-
-static void
-add_object_to_sequence (GcrCollectionModel *self,
- GSequence *sequence,
- GSequenceIter *parent,
- GObject *object,
- gboolean emit)
-{
- GcrCollectionRow *row;
- GSequenceIter *seq;
- GtkTreeIter iter;
- GtkTreePath *path;
-
- g_assert (GCR_IS_COLLECTION_MODEL (self));
- g_assert (G_IS_OBJECT (object));
- g_assert (self->pv->order_current);
-
- if (g_hash_table_lookup (self->pv->object_to_seq, object)) {
- g_warning ("object was already added to the GcrCollectionModel. Perhaps "
- "a loop exists in a tree structure?");
- return;
- }
-
- row = g_slice_new0 (GcrCollectionRow);
- row->object = object;
- row->parent = parent;
- row->children = NULL;
-
- seq = g_sequence_insert_sorted (sequence, row, self->pv->order_current, self);
- g_hash_table_insert (self->pv->object_to_seq, object, seq);
- g_object_weak_ref (G_OBJECT (object), (GWeakNotify)on_object_gone, self);
- g_signal_connect (object, "notify", G_CALLBACK (on_object_notify), self);
-
- if (emit) {
- if (!sequence_iter_to_tree (self, seq, &iter))
- g_assert_not_reached ();
- path = sequence_iter_to_path (self, seq);
- g_assert (path != NULL);
- gtk_tree_model_row_inserted (GTK_TREE_MODEL (self), path, &iter);
- gtk_tree_path_free (path);
- }
-
- if (GCR_IS_COLLECTION (object)) {
- row->children = g_sequence_new (NULL);
- add_children_to_sequence (self, row->children, seq,
- GCR_COLLECTION (object), emit);
- }
-}
-
-static void
-on_collection_added (GcrCollection *collection,
- GObject *object,
- gpointer user_data)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (user_data);
- GSequence *sequence;
- GSequenceIter *parent;
- GcrCollectionRow *row;
-
- if (collection == self->pv->collection) {
- sequence = self->pv->root_sequence;
- parent = NULL;
- } else {
- parent = g_hash_table_lookup (self->pv->object_to_seq, G_OBJECT (collection));
- row = g_sequence_get (parent);
- g_assert (row->children);
- sequence = row->children;
- }
-
- add_object_to_sequence (self, sequence, parent, object, TRUE);
-}
-
-static void
-remove_children_from_sequence (GcrCollectionModel *self,
- GSequence *sequence,
- GcrCollection *collection,
- gboolean emit)
-{
- GSequenceIter *seq, *next;
- GcrCollectionRow *row;
-
- g_signal_handlers_disconnect_by_func (collection, on_collection_added, self);
- g_signal_handlers_disconnect_by_func (collection, on_collection_removed, self);
-
- for (seq = g_sequence_get_begin_iter (sequence);
- !g_sequence_iter_is_end (seq); seq = next) {
- next = g_sequence_iter_next (seq);
- row = g_sequence_get (seq);
- remove_object_from_sequence (self, sequence, seq, row->object, emit);
- }
-}
-
-static void
-remove_object_from_sequence (GcrCollectionModel *self,
- GSequence *sequence,
- GSequenceIter *seq,
- GObject *object,
- gboolean emit)
-{
- GcrCollectionRow *row;
- GtkTreePath *path = NULL;
-
- if (emit) {
- path = sequence_iter_to_path (self, seq);
- g_assert (path != NULL);
- }
-
- row = g_sequence_get (seq);
- g_assert (row->object == object);
-
- g_object_weak_unref (object, on_object_gone, self);
- g_signal_handlers_disconnect_by_func (object, on_object_notify, self);
-
- if (row->children) {
- g_assert (GCR_IS_COLLECTION (object));
- remove_children_from_sequence (self, row->children, GCR_COLLECTION (object), emit);
- g_assert (g_sequence_get_length (row->children) == 0);
- g_sequence_free (row->children);
- row->children = NULL;
- }
-
- if (self->pv->selected)
- g_hash_table_remove (self->pv->selected, object);
- if (!g_hash_table_remove (self->pv->object_to_seq, object))
- g_assert_not_reached ();
-
- g_sequence_remove (seq);
- g_slice_free (GcrCollectionRow, row);
-
- /* Fire signal for this removed row */
- if (path != NULL) {
- gtk_tree_model_row_deleted (GTK_TREE_MODEL (self), path);
- gtk_tree_path_free (path);
- }
-
-}
-
-static void
-on_collection_removed (GcrCollection *collection,
- GObject *object,
- gpointer user_data)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (user_data);
- GSequenceIter *seq;
- GSequence *sequence;
-
- seq = g_hash_table_lookup (self->pv->object_to_seq, object);
- g_return_if_fail (seq != NULL);
-
- sequence = g_sequence_iter_get_sequence (seq);
- g_assert (sequence != NULL);
-
- remove_object_from_sequence (self, sequence, seq, object, TRUE);
-}
-
-static void
-free_owned_columns (gpointer data)
-{
- GcrColumn *columns;
- g_assert (data);
-
- /* Only the property column is in use */
- for (columns = data; columns->property_name; ++columns)
- g_free ((gchar*)columns->property_name);
- g_free (data);
-}
-
-static GtkTreeModelFlags
-gcr_collection_model_real_get_flags (GtkTreeModel *model)
-{
- return GTK_TREE_MODEL_ITERS_PERSIST;
-}
-
-static gint
-gcr_collection_model_real_get_n_columns (GtkTreeModel *model)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (model);
- return self->pv->n_columns;
-}
-
-static GType
-gcr_collection_model_real_get_column_type (GtkTreeModel *model,
- gint column_id)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (model);
- g_return_val_if_fail (column_id >= 0 && column_id <= self->pv->n_columns, 0);
-
- /* The last is the selected column */
- if (column_id == self->pv->n_columns)
- return G_TYPE_BOOLEAN;
-
- return self->pv->columns[column_id].column_type;
-}
-
-static gboolean
-gcr_collection_model_real_get_iter (GtkTreeModel *model,
- GtkTreeIter *iter,
- GtkTreePath *path)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (model);
- const gint *indices;
- GSequence *sequence;
- GSequenceIter *seq;
- GcrCollectionRow *row;
- gint count;
- gint i;
-
- sequence = self->pv->root_sequence;
- seq = NULL;
-
- indices = gtk_tree_path_get_indices_with_depth (path, &count);
- if (count == 0)
- return FALSE;
-
- for (i = 0; i < count; i++) {
- if (!sequence)
- return FALSE;
- seq = g_sequence_get_iter_at_pos (sequence, indices[i]);
- if (g_sequence_iter_is_end (seq))
- return FALSE;
- row = g_sequence_get (seq);
- sequence = row->children;
- }
-
- return sequence_iter_to_tree (self, seq, iter);
-}
-
-static GtkTreePath*
-gcr_collection_model_real_get_path (GtkTreeModel *model,
- GtkTreeIter *iter)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (model);
- GSequenceIter *seq;
-
- if (iter == NULL)
- return gtk_tree_path_new ();
-
- seq = sequence_iter_for_tree (self, iter);
- g_return_val_if_fail (seq != NULL, NULL);
- return sequence_iter_to_path (self, seq);
-}
-
-static void
-gcr_collection_model_real_get_value (GtkTreeModel *model,
- GtkTreeIter *iter,
- gint column_id,
- GValue *value)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (model);
- GObject *object;
- GValue original;
- const GcrColumn *column;
- GParamSpec *spec;
-
- object = gcr_collection_model_object_for_iter (self, iter);
- g_return_if_fail (G_IS_OBJECT (object));
- g_return_if_fail (column_id >= 0 && column_id < self->pv->n_columns);
-
- /* The selected column? Last one */
- if (column_id == self->pv->n_columns - 1) {
- g_value_init (value, G_TYPE_BOOLEAN);
- g_value_set_boolean (value, gcr_collection_model_is_selected (self, iter));
- return;
- }
-
- /* Figure out which property */
- column = &self->pv->columns[column_id];
- g_assert (column->property_name);
- g_value_init (value, column->column_type);
-
- /* Lookup the property on the object */
- spec = g_object_class_find_property (G_OBJECT_GET_CLASS (object), column->property_name);
- if (spec != NULL) {
- /* A transformer is specified, or mismatched types */
- if (column->transformer || column->column_type != column->property_type) {
- memset (&original, 0, sizeof (original));
- g_value_init (&original, column->property_type);
- g_object_get_property (object, column->property_name, &original);
-
- if (column->transformer) {
- (column->transformer) (&original, value);
- } else {
- g_warning ("%s property of %s class was of type %s instead of type %s"
- " and cannot be converted due to lack of transformer",
- column->property_name, G_OBJECT_TYPE_NAME (object),
- g_type_name (column->property_type),
- g_type_name (column->column_type));
- spec = NULL;
- }
-
- /* Simple, no transformation necessary */
- } else {
- g_object_get_property (object, column->property_name, value);
- }
- }
-
- if (spec == NULL) {
-
- /* All the number types have sane defaults */
- if (column->column_type == G_TYPE_STRING)
- g_value_set_string (value, "");
- }
-}
-
-static gboolean
-gcr_collection_model_real_iter_next (GtkTreeModel *model,
- GtkTreeIter *iter)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (model);
- GSequenceIter *seq = sequence_iter_for_tree (self, iter);
- g_return_val_if_fail (seq != NULL, FALSE);
- return sequence_iter_to_tree (self, g_sequence_iter_next (seq), iter);
-}
-
-static gboolean
-gcr_collection_model_real_iter_children (GtkTreeModel *model,
- GtkTreeIter *iter,
- GtkTreeIter *parent)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (model);
- GSequence *sequence = child_sequence_for_tree (self, parent);
- return sequence && sequence_iter_to_tree (self, g_sequence_get_begin_iter (sequence), iter);
-}
-
-static gboolean
-gcr_collection_model_real_iter_has_child (GtkTreeModel *model,
- GtkTreeIter *iter)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (model);
- GSequence *sequence = child_sequence_for_tree (self, iter);
- return sequence && !g_sequence_iter_is_end (g_sequence_get_begin_iter (sequence));
-}
-
-static gint
-gcr_collection_model_real_iter_n_children (GtkTreeModel *model,
- GtkTreeIter *iter)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (model);
- GSequence *sequence = child_sequence_for_tree (self, iter);
- return sequence ? g_sequence_get_length (sequence) : 0;
-}
-
-static gboolean
-gcr_collection_model_real_iter_nth_child (GtkTreeModel *model,
- GtkTreeIter *iter,
- GtkTreeIter *parent,
- gint n)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (model);
- GSequence *sequence;
- GSequenceIter *seq;
-
- sequence = child_sequence_for_tree (self, parent);
- if (sequence == NULL)
- return FALSE;
- seq = g_sequence_get_iter_at_pos (sequence, n);
- return sequence_iter_to_tree (self, seq, iter);
-}
-
-static gboolean
-gcr_collection_model_real_iter_parent (GtkTreeModel *model,
- GtkTreeIter *iter,
- GtkTreeIter *child)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (model);
- GSequenceIter *seq;
- GcrCollectionRow *row;
-
- seq = sequence_iter_for_tree (self, child);
- g_return_val_if_fail (seq != NULL, FALSE);
- row = g_sequence_get (seq);
- if (row->parent == NULL)
- return FALSE;
- return sequence_iter_to_tree (self, row->parent, iter);
-}
-
-static void
-gcr_collection_model_real_ref_node (GtkTreeModel *model,
- GtkTreeIter *iter)
-{
- /* Nothing to do */
-}
-
-static void
-gcr_collection_model_real_unref_node (GtkTreeModel *model,
- GtkTreeIter *iter)
-{
- /* Nothing to do */
-}
-
-static void
-gcr_collection_model_tree_model_init (GtkTreeModelIface *iface)
-{
- iface->get_flags = gcr_collection_model_real_get_flags;
- iface->get_n_columns = gcr_collection_model_real_get_n_columns;
- iface->get_column_type = gcr_collection_model_real_get_column_type;
- iface->get_iter = gcr_collection_model_real_get_iter;
- iface->get_path = gcr_collection_model_real_get_path;
- iface->get_value = gcr_collection_model_real_get_value;
- iface->iter_next = gcr_collection_model_real_iter_next;
- iface->iter_children = gcr_collection_model_real_iter_children;
- iface->iter_has_child = gcr_collection_model_real_iter_has_child;
- iface->iter_n_children = gcr_collection_model_real_iter_n_children;
- iface->iter_nth_child = gcr_collection_model_real_iter_nth_child;
- iface->iter_parent = gcr_collection_model_real_iter_parent;
- iface->ref_node = gcr_collection_model_real_ref_node;
- iface->unref_node = gcr_collection_model_real_unref_node;
-}
-
-static void
-collection_resort_sequence (GcrCollectionModel *self,
- GSequenceIter *parent,
- GSequence *sequence)
-{
- GPtrArray *previous;
- GSequenceIter *seq, *next;
- gint *new_order;
- GtkTreePath *path;
- GtkTreeIter iter;
- GcrCollectionRow *row;
- gint index;
- gint i;
-
- /* Make note of how things stand, and at same time resort all kids */
- previous = g_ptr_array_new ();
- for (seq = g_sequence_get_begin_iter (sequence);
- !g_sequence_iter_is_end (seq); seq = next) {
- next = g_sequence_iter_next (seq);
- row = g_sequence_get (seq);
- if (row->children)
- collection_resort_sequence (self, seq, row->children);
- g_ptr_array_add (previous, row->object);
- }
-
- if (previous->len == 0) {
- g_ptr_array_free (previous, TRUE);
- return;
- }
-
- /* Actually perform the sort */
- g_sequence_sort (sequence, self->pv->order_current, self);
-
- /* Now go through and map out how things changed */
- new_order = g_new0 (gint, previous->len);
- for (i = 0; i < previous->len; i++) {
- seq = g_hash_table_lookup (self->pv->object_to_seq, previous->pdata[i]);
- g_assert (seq != NULL);
- index = g_sequence_iter_get_position (seq);
- g_assert (index >= 0 && index < previous->len);
- new_order[index] = i;
- }
-
- g_ptr_array_free (previous, TRUE);
-
- path = sequence_iter_to_path (self, parent);
- if (parent == NULL) {
- gtk_tree_model_rows_reordered (GTK_TREE_MODEL (self), path, NULL, new_order);
- } else {
- if (!sequence_iter_to_tree (self, parent, &iter))
- g_assert_not_reached ();
- gtk_tree_model_rows_reordered (GTK_TREE_MODEL (self), path, &iter, new_order);
- }
- gtk_tree_path_free (path);
- g_free (new_order);
-}
-
-static gboolean
-gcr_collection_model_get_sort_column_id (GtkTreeSortable *sortable,
- gint *sort_column_id,
- GtkSortType *order)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (sortable);
-
- if (order)
- *order = self->pv->sort_order_type;
- if (sort_column_id)
- *sort_column_id = self->pv->sort_column_id;
- return (self->pv->sort_column_id != GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID &&
- self->pv->sort_column_id != GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID);
-}
-
-static void
-gcr_collection_model_set_sort_column_id (GtkTreeSortable *sortable,
- gint sort_column_id,
- GtkSortType order)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (sortable);
- GCompareDataFunc func;
- gpointer argument;
- const GcrColumn *column;
- gboolean reverse;
-
- reverse = (order == GTK_SORT_DESCENDING);
-
- if (sort_column_id == GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID) {
- func = reverse ? order_sequence_as_unsorted_reverse : order_sequence_as_unsorted;
- argument = NULL;
-
- } else if (sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID) {
- func = reverse ? order_sequence_by_closure_reverse : order_sequence_by_closure;
- argument = &self->pv->default_sort_closure;
-
- } else if (sort_column_id >= 0 && sort_column_id < self->pv->n_columns) {
- if (self->pv->column_sort_closures[sort_column_id].sort_func) {
- func = reverse ? order_sequence_by_closure_reverse : order_sequence_by_closure;
- argument = &self->pv->column_sort_closures[sort_column_id];
- } else {
- column = &self->pv->columns[sort_column_id];
- if (!(column->flags & GCR_COLUMN_SORTABLE))
- return;
- if (!lookup_compare_func (column->property_type)) {
- g_warning ("no sort implementation defined for type '%s' on column '%s'",
- g_type_name (column->property_type), column->property_name);
- return;
- }
-
- func = reverse ? order_sequence_by_property_reverse : order_sequence_by_property;
- argument = (gpointer)column;
- }
- } else {
- g_warning ("invalid sort_column_id passed to gtk_tree_sortable_set_sort_column_id(): %d",
- sort_column_id);
- return;
- }
-
- if (sort_column_id != self->pv->sort_column_id ||
- order != self->pv->sort_order_type) {
- self->pv->sort_column_id = sort_column_id;
- self->pv->sort_order_type = order;
- gtk_tree_sortable_sort_column_changed (sortable);
- }
-
- if (func != self->pv->order_current ||
- argument != self->pv->order_argument) {
- self->pv->order_current = func;
- self->pv->order_argument = (gpointer)argument;
- collection_resort_sequence (self, NULL, self->pv->root_sequence);
- }
-}
-
-static void
-clear_sort_closure (GcrCollectionSortClosure *closure)
-{
- if (closure->destroy_func)
- (closure->destroy_func) (closure->user_data);
- closure->sort_func = NULL;
- closure->destroy_func = NULL;
- closure->user_data = NULL;
-}
-
-static void
-set_sort_closure (GcrCollectionSortClosure *closure,
- GtkTreeIterCompareFunc func,
- gpointer data,
- GDestroyNotify destroy)
-{
- clear_sort_closure (closure);
- closure->sort_func = func;
- closure->user_data = data;
- closure->destroy_func = destroy;
-}
-
-static void
-gcr_collection_model_set_sort_func (GtkTreeSortable *sortable,
- gint sort_column_id,
- GtkTreeIterCompareFunc func,
- gpointer data,
- GDestroyNotify destroy)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (sortable);
-
- g_return_if_fail (sort_column_id >= 0 && sort_column_id < self->pv->n_columns);
-
- set_sort_closure (&self->pv->column_sort_closures[sort_column_id],
- func, data, destroy);
-
- /* Resorts if necessary */
- if (self->pv->sort_column_id == sort_column_id) {
- gcr_collection_model_set_sort_column_id (sortable,
- self->pv->sort_column_id,
- self->pv->sort_order_type);
- }
-}
-
-static void
-gcr_collection_model_set_default_sort_func (GtkTreeSortable *sortable,
- GtkTreeIterCompareFunc func,
- gpointer data, GDestroyNotify destroy)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (sortable);
-
- set_sort_closure (&self->pv->default_sort_closure,
- func, data, destroy);
-
- /* Resorts if necessary */
- if (self->pv->sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID) {
- gcr_collection_model_set_sort_column_id (sortable,
- self->pv->sort_column_id,
- self->pv->sort_order_type);
- }
-}
-
-static gboolean
-gcr_collection_model_has_default_sort_func (GtkTreeSortable *sortable)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (sortable);
-
- return (self->pv->default_sort_closure.sort_func != NULL);
-}
-
-static void
-gcr_collection_model_tree_sortable_init (GtkTreeSortableIface *iface)
-{
- iface->get_sort_column_id = gcr_collection_model_get_sort_column_id;
- iface->set_sort_column_id = gcr_collection_model_set_sort_column_id;
- iface->set_sort_func = gcr_collection_model_set_sort_func;
- iface->set_default_sort_func = gcr_collection_model_set_default_sort_func;
- iface->has_default_sort_func = gcr_collection_model_has_default_sort_func;
-}
-
-static void
-gcr_collection_model_init (GcrCollectionModel *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_COLLECTION_MODEL, GcrCollectionModelPrivate);
-
- self->pv->root_sequence = g_sequence_new (NULL);
- self->pv->object_to_seq = g_hash_table_new (g_direct_hash, g_direct_equal);
- self->pv->sort_column_id = GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID;
- self->pv->sort_order_type = GTK_SORT_ASCENDING;
- self->pv->order_current = order_sequence_as_unsorted;
-}
-
-static void
-gcr_collection_model_set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (object);
- GcrColumn *columns;
-
- switch (prop_id) {
- case PROP_COLLECTION:
- g_return_if_fail (self->pv->collection == NULL);
- self->pv->collection = g_value_dup_object (value);
-
- /* During construction, so we don't emit anything */
- if (self->pv->collection) {
- add_children_to_sequence (self, self->pv->root_sequence,
- NULL, self->pv->collection, FALSE);
- }
- break;
-
- case PROP_COLUMNS:
- columns = g_value_get_pointer (value);
- if (columns)
- gcr_collection_model_set_columns (self, columns);
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_collection_model_get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (object);
-
- switch (prop_id) {
- case PROP_COLLECTION:
- g_value_set_object (value, self->pv->collection);
- break;
-
- case PROP_COLUMNS:
- g_value_set_pointer (value, (gpointer)self->pv->columns);
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_collection_model_dispose (GObject *object)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (object);
-
- /* Disconnect from all rows */
- if (self->pv->collection) {
- remove_children_from_sequence (self, self->pv->root_sequence,
- self->pv->collection, FALSE);
- g_object_unref (self->pv->collection);
- self->pv->collection = NULL;
- }
-
- G_OBJECT_CLASS (gcr_collection_model_parent_class)->dispose (object);
-}
-
-static void
-gcr_collection_model_finalize (GObject *object)
-{
- GcrCollectionModel *self = GCR_COLLECTION_MODEL (object);
- guint i;
-
- g_assert (!self->pv->collection);
-
- g_assert (g_sequence_get_length (self->pv->root_sequence) == 0);
- g_sequence_free (self->pv->root_sequence);
- g_assert (g_hash_table_size (self->pv->object_to_seq) == 0);
- g_hash_table_destroy (self->pv->object_to_seq);
-
- if (self->pv->selected) {
- g_assert (g_hash_table_size (self->pv->selected) == 0);
- g_hash_table_destroy (self->pv->selected);
- self->pv->selected = NULL;
- }
-
- self->pv->columns = NULL;
- for (i = 0; i < self->pv->n_columns; i++)
- clear_sort_closure (&self->pv->column_sort_closures[i]);
- g_free (self->pv->column_sort_closures);
- clear_sort_closure (&self->pv->default_sort_closure);
-
- G_OBJECT_CLASS (gcr_collection_model_parent_class)->finalize (object);
-}
-
-static void
-gcr_collection_model_class_init (GcrCollectionModelClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- gcr_collection_model_parent_class = g_type_class_peek_parent (klass);
-
- gobject_class->dispose = gcr_collection_model_dispose;
- gobject_class->finalize = gcr_collection_model_finalize;
- gobject_class->set_property = gcr_collection_model_set_property;
- gobject_class->get_property = gcr_collection_model_get_property;
-
- g_object_class_install_property (gobject_class, PROP_COLLECTION,
- g_param_spec_object ("collection", "Object Collection", "Collection to get objects from",
- GCR_TYPE_COLLECTION, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- g_object_class_install_property (gobject_class, PROP_COLUMNS,
- g_param_spec_pointer ("columns", "Columns", "Columns for the model",
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- g_type_class_add_private (klass, sizeof (GcrCollectionModelPrivate));
-}
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-/**
- * gcr_collection_model_new: (skip)
- * @collection: The collection to represent
- * @...: The column names and types.
- *
- * Create a new #GcrCollectionModel. The variable argument list should contain
- * pairs of property names, and #GType values. The variable argument list should
- * be terminated with %NULL.
- *
- * Returns: (transfer full): a newly allocated model, which should be released
- * with g_object_unref().
- */
-GcrCollectionModel*
-gcr_collection_model_new (GcrCollection *collection, ...)
-{
- GcrColumn column;
- GcrCollectionModel *self;
- const gchar *arg;
- GArray *array;
- va_list va;
-
- /* With a null terminator */
- array = g_array_new (TRUE, TRUE, sizeof (GcrColumn));
-
- va_start (va, collection);
- while ((arg = va_arg (va, const gchar*)) != NULL) {
- memset (&column, 0, sizeof (column));
- column.property_name = g_strdup (arg);
- column.property_type = va_arg (va, GType);
- column.column_type = column.property_type;
- g_array_append_val (array, column);
- }
- va_end (va);
-
- self = gcr_collection_model_new_full (collection, (GcrColumn*)array->data);
- g_object_set_data_full (G_OBJECT (self), "gcr_collection_model_new",
- g_array_free (array, FALSE), free_owned_columns);
- return self;
-}
-
-/**
- * gcr_collection_model_new_full: (skip)
- * @collection: The collection to represent
- * @columns: The columns the model should contain
- *
- * Create a new #GcrCollectionModel.
- *
- * Returns: (transfer full): a newly allocated model, which should be released
- * with g_object_unref()
- */
-GcrCollectionModel*
-gcr_collection_model_new_full (GcrCollection *collection, const GcrColumn *columns)
-{
- GcrCollectionModel *self = g_object_new (GCR_TYPE_COLLECTION_MODEL, "collection", collection, NULL);
- gcr_collection_model_set_columns (self, columns);
- return self;
-}
-
-/**
- * gcr_collection_model_set_columns: (skip)
- * @self: The model
- * @columns: The columns the model should contain
- *
- * Set the columns that the model should contain. @columns is an array of
- * #GcrColumn structures, with the last one containing %NULL for all values.
- *
- * This function can only be called once, and only if the model was not created
- * without a set of columns. This function cannot be called after the model
- * has been added to a view.
- *
- * The columns are accessed as static data. They should continue to remain
- * in memory for longer than the GcrCollectionModel object.
- *
- * Returns: The number of columns
- */
-guint
-gcr_collection_model_set_columns (GcrCollectionModel *self,
- const GcrColumn *columns)
-{
- const GcrColumn *col;
- guint n_columns;
-
- g_return_val_if_fail (GCR_IS_COLLECTION_MODEL (self), 0);
- g_return_val_if_fail (columns, 0);
- g_return_val_if_fail (self->pv->n_columns == 0, 0);
-
- /* Count the number of columns, extra column for selected */
- for (col = columns, n_columns = 1; col->property_name; ++col)
- ++n_columns;
-
- /* We expect the columns to stay around */
- self->pv->columns = columns;
- self->pv->n_columns = n_columns;
- self->pv->column_sort_closures = g_new0 (GcrCollectionSortClosure, self->pv->n_columns);
-
- return n_columns - 1;
-}
-
-/**
- * gcr_collection_model_get_collection:
- * @self: a collection model
- *
- * Get the collection which this model represents
- *
- * Returns: (transfer none): the collection, owned by the model
- */
-GcrCollection *
-gcr_collection_model_get_collection (GcrCollectionModel *self)
-{
- g_return_val_if_fail (GCR_IS_COLLECTION_MODEL (self), NULL);
- return self->pv->collection;
-}
-
-/**
- * gcr_collection_model_object_for_iter:
- * @self: The model
- * @iter: The row
- *
- * Get the object that is represented by the given row in the model.
- *
- * Returns: (transfer none): The object, owned by the model.
- */
-GObject *
-gcr_collection_model_object_for_iter (GcrCollectionModel *self, const GtkTreeIter *iter)
-{
- g_return_val_if_fail (GCR_IS_COLLECTION_MODEL (self), NULL);
- g_return_val_if_fail (iter != NULL, NULL);
- g_return_val_if_fail (iter->stamp == COLLECTION_MODEL_STAMP, NULL);
- g_return_val_if_fail (G_IS_OBJECT (iter->user_data), NULL);
-
- return G_OBJECT (iter->user_data);
-}
-
-/**
- * gcr_collection_model_iter_for_object:
- * @self: The model
- * @object: The object
- * @iter: The row for the object
- *
- * Set @iter to the row for the given object. If the object is not in this
- * model, then %FALSE will be returned.
- *
- * Returns: %TRUE if the object was present.
- */
-gboolean
-gcr_collection_model_iter_for_object (GcrCollectionModel *self, GObject *object,
- GtkTreeIter *iter)
-{
- GSequenceIter *seq;
-
- g_return_val_if_fail (GCR_IS_COLLECTION_MODEL (self), FALSE);
- g_return_val_if_fail (G_IS_OBJECT (object), FALSE);
- g_return_val_if_fail (iter != NULL, FALSE);
-
- seq = g_hash_table_lookup (self->pv->object_to_seq, object);
- if (seq == NULL)
- return FALSE;
-
- return sequence_iter_to_tree (self, seq, iter);
-}
-
-/**
- * gcr_collection_model_column_for_selected:
- * @self: The model
- *
- * Get the column identifier for the column that contains the values
- * of the selected state.
- *
- * Returns: The column identifier.
- */
-gint
-gcr_collection_model_column_for_selected (GcrCollectionModel *self)
-{
- g_return_val_if_fail (GCR_IS_COLLECTION_MODEL (self), 0);
- g_assert (self->pv->n_columns > 0);
- return self->pv->n_columns - 1;
-}
-
-/**
- * gcr_collection_model_toggle_selected:
- * @self: The model
- * @iter: The row
- *
- * Toggle the selected state of a given row.
- */
-void
-gcr_collection_model_toggle_selected (GcrCollectionModel *self, GtkTreeIter *iter)
-{
- GObject *object;
-
- g_return_if_fail (GCR_IS_COLLECTION_MODEL (self));
-
- object = gcr_collection_model_object_for_iter (self, iter);
- g_return_if_fail (G_IS_OBJECT (object));
-
- if (!self->pv->selected)
- self->pv->selected = selected_hash_table_new ();
-
- if (g_hash_table_lookup (self->pv->selected, object))
- g_hash_table_remove (self->pv->selected, object);
- else
- g_hash_table_insert (self->pv->selected, object, object);
-}
-
-/**
- * gcr_collection_model_change_selected:
- * @self: The model
- * @iter: The row
- * @selected: Whether the row should be selected or not.
- *
- * Set whether a given row is toggled selected or not.
- */
-void
-gcr_collection_model_change_selected (GcrCollectionModel *self, GtkTreeIter *iter, gboolean selected)
-{
- GtkTreePath *path;
- GObject *object;
-
- g_return_if_fail (GCR_IS_COLLECTION_MODEL (self));
-
- object = gcr_collection_model_object_for_iter (self, iter);
- g_return_if_fail (G_IS_OBJECT (object));
-
- if (!self->pv->selected)
- self->pv->selected = g_hash_table_new (g_direct_hash, g_direct_equal);
-
- if (selected)
- g_hash_table_insert (self->pv->selected, object, object);
- else
- g_hash_table_remove (self->pv->selected, object);
-
- /* Tell the view that this row changed */
- path = gtk_tree_model_get_path (GTK_TREE_MODEL (self), iter);
- g_return_if_fail (path);
- gtk_tree_model_row_changed (GTK_TREE_MODEL (self), path, iter);
- gtk_tree_path_free (path);
-}
-
-/**
- * gcr_collection_model_is_selected:
- * @self: The model
- * @iter: The row
- *
- * Check whether a given row has been toggled as selected.
- *
- * Returns: Whether the row has been selected.
- */
-gboolean
-gcr_collection_model_is_selected (GcrCollectionModel *self, GtkTreeIter *iter)
-{
- GObject *object;
-
- g_return_val_if_fail (GCR_IS_COLLECTION_MODEL (self), FALSE);
-
- object = gcr_collection_model_object_for_iter (self, iter);
- g_return_val_if_fail (G_IS_OBJECT (object), FALSE);
-
- if (!self->pv->selected)
- return FALSE;
-
- return g_hash_table_lookup (self->pv->selected, object) ? TRUE : FALSE;
-}
-
-/**
- * gcr_collection_model_get_selected_objects:
- * @self: the collection model
- *
- * Get a list of checked/selected objects.
- *
- * Returns: (transfer container) (element-type GLib.Object): a list of selected
- * objects, which should be freed with g_list_free()
- */
-GList *
-gcr_collection_model_get_selected_objects (GcrCollectionModel *self)
-{
- GHashTableIter iter;
- GList *result = NULL;
- gpointer key;
-
- g_return_val_if_fail (GCR_IS_COLLECTION_MODEL (self), NULL);
-
- if (!self->pv->selected)
- return NULL;
-
- g_hash_table_iter_init (&iter, self->pv->selected);
- while (g_hash_table_iter_next (&iter, &key, NULL))
- result = g_list_prepend (result, key);
- return result;
-}
-
-/**
- * gcr_collection_model_set_selected_objects:
- * @self: the collection model
- * @selected: (element-type GLib.Object): a list of objects to select
- *
- * Set the checked/selected objects.
- */
-void
-gcr_collection_model_set_selected_objects (GcrCollectionModel *self,
- GList *selected)
-{
- GHashTable *newly_selected;
- GList *old_selection;
- GtkTreeIter iter;
- GList *l;
-
- old_selection = gcr_collection_model_get_selected_objects (self);
- newly_selected = selected_hash_table_new ();
-
- /* Select all the objects in selected which aren't already selected */
- for (l = selected; l; l = g_list_next (l)) {
- if (!self->pv->selected || !g_hash_table_lookup (self->pv->selected, l->data)) {
- if (!gcr_collection_model_iter_for_object (self, l->data, &iter))
- g_return_if_reached ();
- gcr_collection_model_change_selected (self, &iter, TRUE);
- }
-
- /* Note that we've seen this one */
- g_hash_table_insert (newly_selected, l->data, l->data);
- }
-
- /* Unselect all the objects which aren't supposed to be selected */
- for (l = old_selection; l; l = g_list_next (l)) {
- if (!g_hash_table_lookup (newly_selected, l->data)) {
- if (!gcr_collection_model_iter_for_object (self, l->data, &iter))
- g_return_if_reached ();
- gcr_collection_model_change_selected (self, &iter, FALSE);
- }
- }
-
- g_list_free (old_selection);
- g_hash_table_destroy (newly_selected);
-}
diff --git a/gcr/gcr-collection-model.h b/gcr/gcr-collection-model.h
deleted file mode 100644
index fcd98e1b..00000000
--- a/gcr/gcr-collection-model.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the
- * Free Software Foundation, Inc.,
- * 59 Temple Place, Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GCR_COLLECTION_MODEL_H__
-#define __GCR_COLLECTION_MODEL_H__
-
-#include <gtk/gtk.h>
-
-#include "gcr-collection.h"
-#include "gcr-column.h"
-
-#define GCR_TYPE_COLLECTION_MODEL (gcr_collection_model_get_type ())
-#define GCR_COLLECTION_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_COLLECTION_MODEL, GcrCollectionModel))
-#define GCR_COLLECTION_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_COLLECTION_MODEL, GcrCollectionModelClass))
-#define GCR_IS_COLLECTION_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_COLLECTION_MODEL))
-#define GCR_IS_COLLECTION_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_COLLECTION_MODEL))
-#define GCR_COLLECTION_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_COLLECTION_MODEL, GcrCollectionModelClass))
-
-typedef struct _GcrCollectionModel GcrCollectionModel;
-typedef struct _GcrCollectionModelClass GcrCollectionModelClass;
-typedef struct _GcrCollectionModelPrivate GcrCollectionModelPrivate;
-
-struct _GcrCollectionModel {
- GObject parent;
-
- /*< private >*/
- GcrCollectionModelPrivate *pv;
-};
-
-struct _GcrCollectionModelClass {
- GObjectClass parent_class;
-};
-
-GType gcr_collection_model_get_type (void);
-
-GcrCollectionModel* gcr_collection_model_new (GcrCollection *collection,
- ...) G_GNUC_NULL_TERMINATED;
-
-GcrCollectionModel* gcr_collection_model_new_full (GcrCollection *collection,
- const GcrColumn *columns);
-
-guint gcr_collection_model_set_columns (GcrCollectionModel *self,
- const GcrColumn *columns);
-
-GcrCollection * gcr_collection_model_get_collection (GcrCollectionModel *self);
-
-GObject* gcr_collection_model_object_for_iter (GcrCollectionModel *self,
- const GtkTreeIter *iter);
-
-gboolean gcr_collection_model_iter_for_object (GcrCollectionModel *self,
- GObject *object,
- GtkTreeIter *iter);
-
-gint gcr_collection_model_column_for_selected (GcrCollectionModel *self);
-
-void gcr_collection_model_toggle_selected (GcrCollectionModel *self,
- GtkTreeIter *iter);
-
-void gcr_collection_model_change_selected (GcrCollectionModel *self,
- GtkTreeIter *iter,
- gboolean selected);
-
-gboolean gcr_collection_model_is_selected (GcrCollectionModel *self,
- GtkTreeIter *iter);
-
-GList* gcr_collection_model_get_selected_objects (GcrCollectionModel *self);
-
-void gcr_collection_model_set_selected_objects (GcrCollectionModel *self,
- GList *selected);
-
-#endif /* __GCR_COLLECTION_MODEL_H__ */
diff --git a/gcr/gcr-collection.c b/gcr/gcr-collection.c
deleted file mode 100644
index 08bbedbb..00000000
--- a/gcr/gcr-collection.c
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-collection.h"
-
-/**
- * SECTION:gcr-collection
- * @title: GcrCollection
- * @short_description: A collection of objects.
- *
- * A #GcrCollection is used to group a set of objects. This is an abstract
- * interface which can be used to determine which objects show up in a selector
- * or other user interface element.
- *
- * Use gcr_simple_collection_new() to create a concrete implementation of this
- * interface which you can add objects to.
- */
-
-/**
- * GcrCollection:
- *
- * A #GcrCollection is used to group a set of objects.
- */
-
-enum {
- ADDED,
- REMOVED,
- LAST_SIGNAL,
-};
-
-static guint signals[LAST_SIGNAL] = { 0 };
-
-
-typedef GcrCollectionIface GcrCollectionInterface;
-
-G_DEFINE_INTERFACE (GcrCollection, gcr_collection, G_TYPE_OBJECT);
-
-static void
-gcr_collection_default_init (GcrCollectionIface *iface)
-{
- static volatile gsize initialized = 0;
-
- if (g_once_init_enter (&initialized)) {
-
- /**
- * GcrCollection::added:
- * @self: the collection
- * @object: (type GLib.Object): object that was added
- *
- * This signal is emitted when an object is added to the collection.
- */
- signals[ADDED] = g_signal_new ("added", GCR_TYPE_COLLECTION,
- G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GcrCollectionIface, added),
- NULL, NULL, g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE, 1, G_TYPE_OBJECT);
-
- /**
- * GcrCollection::removed:
- * @self: the collection
- * @object: (type GLib.Object): object that was removed
- *
- * This signal is emitted when an object is removed from the collection.
- */
- signals[REMOVED] = g_signal_new ("removed", GCR_TYPE_COLLECTION,
- G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GcrCollectionIface, removed),
- NULL, NULL, g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE, 1, G_TYPE_OBJECT);
-
- g_once_init_leave (&initialized, 1);
- }
-}
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-
-/**
- * gcr_collection_get_length:
- * @self: The collection
- *
- * Get the number of objects in this collection.
- *
- * Returns: The number of objects.
- */
-guint
-gcr_collection_get_length (GcrCollection *self)
-{
- g_return_val_if_fail (GCR_IS_COLLECTION (self), 0);
- g_return_val_if_fail (GCR_COLLECTION_GET_INTERFACE (self)->get_length, 0);
- return GCR_COLLECTION_GET_INTERFACE (self)->get_length (self);
-}
-
-/**
- * gcr_collection_get_objects:
- * @self: The collection
- *
- * Get a list of the objects in this collection.
- *
- * Returns: (transfer container) (element-type GLib.Object): a list of the objects
- * in this collection, which should be freed with g_list_free()
- */
-GList*
-gcr_collection_get_objects (GcrCollection *self)
-{
- g_return_val_if_fail (GCR_IS_COLLECTION (self), 0);
- g_return_val_if_fail (GCR_COLLECTION_GET_INTERFACE (self)->get_objects, 0);
- return GCR_COLLECTION_GET_INTERFACE (self)->get_objects (self);
-}
-
-/**
- * gcr_collection_contains:
- * @self: the collection
- * @object: object to check
- *
- * Check whether the collection contains an object or not.
- *
- * Returns: whether the collection contains this object
- */
-gboolean
-gcr_collection_contains (GcrCollection *self,
- GObject *object)
-{
- g_return_val_if_fail (GCR_IS_COLLECTION (self), FALSE);
- g_return_val_if_fail (G_IS_OBJECT (object), FALSE);
- g_return_val_if_fail (GCR_COLLECTION_GET_INTERFACE (self)->contains, FALSE);
- return GCR_COLLECTION_GET_INTERFACE (self)->contains (self, object);
-}
-
-/**
- * gcr_collection_emit_added:
- * @self: The collection
- * @object: The object that was added
- *
- * Emit the GcrCollection::added signal for the given object. This function
- * is used by implementors of this interface.
- */
-void
-gcr_collection_emit_added (GcrCollection *self, GObject *object)
-{
- g_return_if_fail (GCR_IS_COLLECTION (self));
- g_signal_emit (self, signals[ADDED], 0, object);
-}
-
-/**
- * gcr_collection_emit_removed:
- * @self: The collection
- * @object: The object that was removed
- *
- * Emit the GcrCollection::removed signal for the given object. This function
- * is used by implementors of this interface.
- */
-void
-gcr_collection_emit_removed (GcrCollection *self, GObject *object)
-{
- g_return_if_fail (GCR_IS_COLLECTION (self));
- g_signal_emit (self, signals[REMOVED], 0, object);
-}
diff --git a/gcr/gcr-collection.h b/gcr/gcr-collection.h
deleted file mode 100644
index 2616394c..00000000
--- a/gcr/gcr-collection.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#ifndef __GCR_COLLECTION_H__
-#define __GCR_COLLECTION_H__
-
-#include "gcr-types.h"
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_COLLECTION (gcr_collection_get_type())
-#define GCR_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_COLLECTION, GcrCollection))
-#define GCR_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_COLLECTION))
-#define GCR_COLLECTION_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GCR_TYPE_COLLECTION, GcrCollectionIface))
-
-typedef struct _GcrCollection GcrCollection;
-typedef struct _GcrCollectionIface GcrCollectionIface;
-
-struct _GcrCollectionIface {
- GTypeInterface parent;
-
- /* signals */
- void (*added) (GcrCollection *self, GObject *object);
-
- void (*removed) (GcrCollection *self, GObject *object);
-
- /* virtual */
- guint (*get_length) (GcrCollection *self);
-
- GList* (*get_objects) (GcrCollection *self);
-
- gboolean (*contains) (GcrCollection *self,
- GObject *object);
-
- /*< private >*/
- gpointer dummy1;
- gpointer dummy2;
- gpointer dummy3;
- gpointer dummy5;
- gpointer dummy6;
- gpointer dummy7;
- gpointer dummy8;
-};
-
-GType gcr_collection_get_type (void);
-
-guint gcr_collection_get_length (GcrCollection *self);
-
-GList* gcr_collection_get_objects (GcrCollection *self);
-
-gboolean gcr_collection_contains (GcrCollection *self,
- GObject *object);
-
-void gcr_collection_emit_added (GcrCollection *self,
- GObject *object);
-
-void gcr_collection_emit_removed (GcrCollection *self,
- GObject *object);
-
-G_END_DECLS
-
-#endif /* __GCR_COLLECTION_H__ */
diff --git a/gcr/gcr-column.c b/gcr/gcr-column.c
deleted file mode 100644
index 254f55ce..00000000
--- a/gcr/gcr-column.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-column.h"
-
-/**
- * SECTION:gcr-column
- * @title: GcrColumn
- * @short_description: Column information for selector or model.
- *
- * A #GcrColumn is used with #GcrTreeSelector or #GcrCollectionModel to define
- * the columns to display.
- */
-
-/**
- * GcrColumnFlags:
- * @GCR_COLUMN_NONE: No column flags
- * @GCR_COLUMN_HIDDEN: Don't display this column.
- * @GCR_COLUMN_SORTABLE: This column is sortable.
- *
- * Flags to be used with #GcrColumn
- */
-
-/**
- * GcrColumn:
- * @property_name: The name of the property this column will display
- * @property_type: The type of the property
- * @column_type: The eventual type of the column
- * @label: The display label for the column
- * @flags: Flags from #GcrColumnFlags
- * @transformer: A transformer function used to convert the value from
- * the property type to the column type. Can be %NULL if the types
- * are the same.
- * @user_data: User data associated with the column
- *
- * Represents a column to display in a #GcrCollectionModel or #GcrTreeSelector.
- *
- * The label should be set as a translatable string with a context of
- * <code>"column"</code>. This should be done with with this macro:
- *
- * <informalexample><programlisting>
- * NC_("column", "My Column Name")
- * </programlisting></informalexample>
- */
diff --git a/gcr/gcr-column.h b/gcr/gcr-column.h
deleted file mode 100644
index 65ee6a60..00000000
--- a/gcr/gcr-column.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#ifndef __GCR_COLUMN_H__
-#define __GCR_COLUMN_H__
-
-#include "gcr-types.h"
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-typedef enum {
- GCR_COLUMN_NONE = 0,
- GCR_COLUMN_HIDDEN = 1 << 1,
- GCR_COLUMN_SORTABLE = 1 << 2,
-} GcrColumnFlags;
-
-typedef struct _GcrColumn {
- const gchar *property_name; /* The property to retrieve */
- GType property_type; /* The property type */
- GType column_type; /* The resulting property type for this column */
-
- const gchar *label; /* The label for this column, or NULL */
- GcrColumnFlags flags; /* Column flags */
-
- GValueTransform transformer; /* The way to transform to this type or NULL */
-
- gpointer user_data;
-
- /*< private >*/
- gpointer reserved;
-} GcrColumn;
-
-G_END_DECLS
-
-#endif /* __GCR_COLUMN_H__ */
diff --git a/gcr/gcr-combo-selector.c b/gcr/gcr-combo-selector.c
deleted file mode 100644
index 56e06fe9..00000000
--- a/gcr/gcr-combo-selector.c
+++ /dev/null
@@ -1,269 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-collection-model.h"
-#include "gcr-internal.h"
-#include "gcr-combo-selector.h"
-
-#include <glib/gi18n-lib.h>
-
-#include <string.h>
-
-/**
- * SECTION:gcr-combo-selector
- * @title: GcrComboSelector
- * @short_description: A selector widget to select a single certificate or key.
- *
- * The #GcrComboSelector can be used to select a certificate or key. It allows
- * the user to select one object from the selector at a time.
- */
-
-/**
- * GcrComboSelector:
- *
- * A combo selector widget.
- */
-
-/**
- * GcrComboSelectorClass:
- *
- * The class for #GcrComboSelector.
- */
-
-enum {
- PROP_0,
- PROP_COLLECTION
-};
-
-struct _GcrComboSelectorPrivate {
- GcrCollection *collection;
- GcrCollectionModel *model;
-};
-
-G_DEFINE_TYPE (GcrComboSelector, gcr_combo_selector, GTK_TYPE_COMBO_BOX);
-
-/* -----------------------------------------------------------------------------
- * INTERNAL
- */
-
-/* -----------------------------------------------------------------------------
- * OBJECT
- */
-
-static GObject*
-gcr_combo_selector_constructor (GType type, guint n_props, GObjectConstructParam *props)
-{
- GcrComboSelector *self = GCR_COMBO_SELECTOR (G_OBJECT_CLASS (gcr_combo_selector_parent_class)->constructor(type, n_props, props));
- GtkCellRenderer *cell;
-
- g_return_val_if_fail (self, NULL);
-
- self->pv->model = gcr_collection_model_new (self->pv->collection,
- "icon", G_TYPE_ICON,
- "markup", G_TYPE_STRING,
- NULL);
-
- gtk_combo_box_set_model (GTK_COMBO_BOX (self), GTK_TREE_MODEL (self->pv->model));
-
- /* The icon */
- cell = gtk_cell_renderer_pixbuf_new ();
- g_object_set (cell, "stock-size", GTK_ICON_SIZE_DND, NULL);
- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (self), cell, FALSE);
- gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (self), cell, "gicon", 0);
-
- /* The markup */
- cell = gtk_cell_renderer_text_new ();
- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (self), cell, TRUE);
- gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (self), cell, "markup", 1);
-
- return G_OBJECT (self);
-}
-
-static void
-gcr_combo_selector_init (GcrComboSelector *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_COMBO_SELECTOR, GcrComboSelectorPrivate);
-}
-
-static void
-gcr_combo_selector_dispose (GObject *obj)
-{
- GcrComboSelector *self = GCR_COMBO_SELECTOR (obj);
-
- if (self->pv->model)
- g_object_unref (self->pv->model);
- self->pv->model = NULL;
-
- if (self->pv->collection)
- g_object_unref (self->pv->collection);
- self->pv->collection = NULL;
-
- G_OBJECT_CLASS (gcr_combo_selector_parent_class)->dispose (obj);
-}
-
-static void
-gcr_combo_selector_finalize (GObject *obj)
-{
- GcrComboSelector *self = GCR_COMBO_SELECTOR (obj);
-
- g_assert (!self->pv->collection);
- g_assert (!self->pv->model);
-
- G_OBJECT_CLASS (gcr_combo_selector_parent_class)->finalize (obj);
-}
-
-static void
-gcr_combo_selector_set_property (GObject *obj, guint prop_id, const GValue *value,
- GParamSpec *pspec)
-{
- GcrComboSelector *self = GCR_COMBO_SELECTOR (obj);
-
- switch (prop_id) {
- case PROP_COLLECTION:
- g_return_if_fail (!self->pv->collection);
- self->pv->collection = g_value_dup_object (value);
- g_return_if_fail (self->pv->collection);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_combo_selector_get_property (GObject *obj, guint prop_id, GValue *value,
- GParamSpec *pspec)
-{
- GcrComboSelector *self = GCR_COMBO_SELECTOR (obj);
-
- switch (prop_id) {
- case PROP_COLLECTION:
- g_value_set_object (value, gcr_combo_selector_get_collection (self));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_combo_selector_class_init (GcrComboSelectorClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- gobject_class->constructor = gcr_combo_selector_constructor;
- gobject_class->dispose = gcr_combo_selector_dispose;
- gobject_class->finalize = gcr_combo_selector_finalize;
- gobject_class->set_property = gcr_combo_selector_set_property;
- gobject_class->get_property = gcr_combo_selector_get_property;
-
- g_type_class_add_private (gobject_class, sizeof (GcrComboSelectorPrivate));
-
- /**
- * GcrComboSelector:collection:
- *
- * The collection which contains the objects to display in the selector.
- */
- g_object_class_install_property (gobject_class, PROP_COLLECTION,
- g_param_spec_object ("collection", "Collection", "Collection to select from",
- GCR_TYPE_COLLECTION, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-}
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-/**
- * gcr_combo_selector_new:
- * @collection: The collection that contains the objects to display
- *
- * Create a new #GcrTreeSelector.
- *
- * Returns: A newly allocated selector, which should be released with
- * g_object_unref().
- */
-GcrComboSelector*
-gcr_combo_selector_new (GcrCollection *collection)
-{
- return g_object_new (GCR_TYPE_COMBO_SELECTOR,
- "collection", collection,
- NULL);
-}
-
-/**
- * gcr_combo_selector_get_collection:
- * @self: The selector
- *
- * Get the collection that this selector is displaying objects from.
- *
- * Returns: (transfer none): The collection, owned by the selector.
- */
-GcrCollection *
-gcr_combo_selector_get_collection (GcrComboSelector *self)
-{
- g_return_val_if_fail (GCR_IS_COMBO_SELECTOR (self), NULL);
- return self->pv->collection;
-}
-
-/**
- * gcr_combo_selector_get_selected:
- * @self: The selector
- *
- * Get the selected object in the selector, or %NULL if nothing selected.
- *
- * Returns: (transfer none): the selected object, owned by the selector, or %NULL
- */
-GObject *
-gcr_combo_selector_get_selected (GcrComboSelector *self)
-{
- GtkTreeIter iter;
-
- g_return_val_if_fail (GCR_IS_COMBO_SELECTOR (self), NULL);
- gtk_combo_box_get_active_iter (GTK_COMBO_BOX (self), &iter);
-
- return gcr_collection_model_object_for_iter (self->pv->model, &iter);
-}
-
-/**
- * gcr_combo_selector_set_selected:
- * @self: The selector
- * @selected: (allow-none): the object to select or %NULL
- *
- * Set the currently selected object in the selector, or clear the selection
- * if selected is set to %NULL.
- */
-void
-gcr_combo_selector_set_selected (GcrComboSelector *self, GObject *selected)
-{
- GtkTreeIter iter;
-
- g_return_if_fail (GCR_IS_COMBO_SELECTOR (self));
-
- if (selected) {
- if (!gcr_collection_model_iter_for_object (self->pv->model, selected, &iter))
- g_return_if_reached ();
- gtk_combo_box_set_active_iter (GTK_COMBO_BOX (self), &iter);
- } else {
- gtk_combo_box_set_active_iter (GTK_COMBO_BOX (self), NULL);
- }
-}
diff --git a/gcr/gcr-combo-selector.h b/gcr/gcr-combo-selector.h
deleted file mode 100644
index 2e519a08..00000000
--- a/gcr/gcr-combo-selector.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#ifndef __GCR_COMBO_SELECTOR_H__
-#define __GCR_COMBO_SELECTOR_H__
-
-#include "gcr-types.h"
-
-#include <gtk/gtk.h>
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_COMBO_SELECTOR (gcr_combo_selector_get_type ())
-#define GCR_COMBO_SELECTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_COMBO_SELECTOR, GcrComboSelector))
-#define GCR_COMBO_SELECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_COMBO_SELECTOR, GcrComboSelectorClass))
-#define GCR_IS_COMBO_SELECTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_COMBO_SELECTOR))
-#define GCR_IS_COMBO_SELECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_COMBO_SELECTOR))
-#define GCR_COMBO_SELECTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_COMBO_SELECTOR, GcrComboSelectorClass))
-
-typedef struct _GcrComboSelector GcrComboSelector;
-typedef struct _GcrComboSelectorClass GcrComboSelectorClass;
-typedef struct _GcrComboSelectorPrivate GcrComboSelectorPrivate;
-
-struct _GcrComboSelector {
- GtkComboBox parent;
-
- /*< private >*/
- GcrComboSelectorPrivate *pv;
-};
-
-struct _GcrComboSelectorClass {
- /*< private >*/
- GtkComboBoxClass parent_class;
-};
-
-GType gcr_combo_selector_get_type (void);
-
-GcrComboSelector* gcr_combo_selector_new (GcrCollection *collection);
-
-GcrCollection* gcr_combo_selector_get_collection (GcrComboSelector *self);
-
-GObject* gcr_combo_selector_get_selected (GcrComboSelector *self);
-
-void gcr_combo_selector_set_selected (GcrComboSelector *self,
- GObject *selected);
-
-G_END_DECLS
-
-#endif /* __GCR_COMBO_SELECTOR_H__ */
diff --git a/gcr/gcr-comparable.c b/gcr/gcr-comparable.c
deleted file mode 100644
index fddbdd1f..00000000
--- a/gcr/gcr-comparable.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-comparable.h"
-
-#include <string.h>
-
-/**
- * SECTION:gcr-comparable
- * @title: GcrComparable
- * @short_description: Interface for comparing objects
- *
- * The #GcrComparable interface is implemented by objects when they should be
- * comparable against one another.
- */
-
-/**
- * GcrComparable:
- *
- * The #GcrComparable interface is implemented by comparable objects.
- */
-
-/**
- * GcrComparableIface:
- *
- * The interface to implement for #GcrComparable
- */
-
-/* ---------------------------------------------------------------------------------
- * INTERFACE
- */
-
-static void
-gcr_comparable_base_init (gpointer g_class)
-{
- static volatile gsize initialized = 0;
-
- if (g_once_init_enter (&initialized)) {
- /* Add properties and signals to the interface */
- g_once_init_leave (&initialized, 1);
- }
-}
-
-GType
-gcr_comparable_get_type (void)
-{
- static GType type = 0;
- if (!type) {
- static const GTypeInfo info = {
- sizeof (GcrComparableIface),
- gcr_comparable_base_init, /* base init */
- NULL, /* base finalize */
- NULL, /* class_init */
- NULL, /* class finalize */
- NULL, /* class data */
- 0,
- 0, /* n_preallocs */
- NULL, /* instance init */
- };
- type = g_type_register_static (G_TYPE_INTERFACE, "GcrComparableIface", &info, 0);
- g_type_interface_add_prerequisite (type, G_TYPE_OBJECT);
- }
-
- return type;
-}
-
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-/**
- * gcr_comparable_compare:
- * @self: The comparable object
- * @other: Another comparable object
- *
- * Compare whether two objects represent the same thing. The return value can
- * also be used to sort the objects.
- *
- * Returns: Zero if the two objects represent the same thing, non-zero if not.
- */
-gint
-gcr_comparable_compare (GcrComparable *self, GcrComparable *other)
-{
- g_return_val_if_fail (GCR_IS_COMPARABLE (self), -1);
- g_return_val_if_fail (GCR_COMPARABLE_GET_INTERFACE (self)->compare, -1);
- g_return_val_if_fail (G_IS_OBJECT (self), -1);
- return GCR_COMPARABLE_GET_INTERFACE (self)->compare (self, other);
-}
-
-/**
- * gcr_comparable_memcmp: (skip)
- * @mem1: First block of memory
- * @size1: Length of first block
- * @mem2: Second lock of memory
- * @size2: Length of second block
- *
- * Compare two blocks of memory. The return value can be used to sort
- * the blocks of memory.
- *
- * Returns: Zero if the blocks are identical, non-zero if not.
- */
-gint
-gcr_comparable_memcmp (gconstpointer mem1, gsize size1,
- gconstpointer mem2, gsize size2)
-{
- gint result;
-
- if (mem1 == mem2 && size1 == size2)
- return 0;
-
- if (!mem1)
- return 1;
- if (!mem2)
- return -1;
-
- result = memcmp (mem1, mem2, MIN (size1, size2));
- if (result != 0)
- return result;
-
- if (size1 == size2)
- return 0;
- if (size1 < size2)
- return -1;
- return 1;
-}
diff --git a/gcr/gcr-comparable.h b/gcr/gcr-comparable.h
deleted file mode 100644
index 39f1d8ad..00000000
--- a/gcr/gcr-comparable.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#ifndef __GCR_COMPARABLE_H__
-#define __GCR_COMPARABLE_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_COMPARABLE (gcr_comparable_get_type())
-#define GCR_COMPARABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_COMPARABLE, GcrComparable))
-#define GCR_IS_COMPARABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_COMPARABLE))
-#define GCR_COMPARABLE_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GCR_TYPE_COMPARABLE, GcrComparableIface))
-
-typedef struct _GcrComparable GcrComparable;
-typedef struct _GcrComparableIface GcrComparableIface;
-
-struct _GcrComparableIface {
- GTypeInterface parent;
- gint (*compare) (GcrComparable *self, GcrComparable *other);
-};
-
-GType gcr_comparable_get_type (void);
-
-gint gcr_comparable_compare (GcrComparable *self,
- GcrComparable *other);
-
-gint gcr_comparable_memcmp (gconstpointer mem1,
- gsize size1,
- gconstpointer mem2,
- gsize size2);
-
-G_END_DECLS
-
-#endif /* __GCR_COMPARABLE_H__ */
diff --git a/gcr/gcr-crypto-types.xml b/gcr/gcr-crypto-types.xml
deleted file mode 100644
index b911ccd9..00000000
--- a/gcr/gcr-crypto-types.xml
+++ /dev/null
@@ -1,151 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
-
- <!-- Non standard: Common practice -->
- <mime-type type="application/x-pem-file">
- <comment>Openssl PEM format</comment>
- <acronym>PEM</acronym>
- <sub-class-of type="text/plain"/>
- <glob weight="50" pattern="*.pem"/>
- </mime-type>
-
- <!-- Defined in: http://www.ietf.org/rfc/rfc2585.txt -->
- <mime-type type="application/pkix-cert">
- <comment>X.509 Certificate</comment>
- <glob weight="75" pattern="*.cer"/>
-
- <!-- Non standard: Common practice -->
- <glob weight="55" pattern="*.crt"/>
- <glob weight="55" pattern="*.cert"/>
-
- <!-- Non standard: Common practice -->
- <alias type="application/x-x509-ca-cert"/>
- <alias type="application/x-x509-user-cert"/>
- </mime-type>
-
- <!-- Non standard: OpenSSL PEM format -->
- <mime-type type="application/pkix-cert+pem">
- <comment>X.509 Certificate in PEM format</comment>
- <sub-class-of type="application/x-pem-file"/>
- <magic priority="75">
- <match type="string" value="-----BEGIN CERTIFICATE-----" offset="0"/>
- </magic>
- </mime-type>
-
- <!-- Defined in: http://www.ietf.org/rfc/rfc2585.txt -->
- <mime-type type="application/pkix-crl">
- <comment>Certificate Revocation List</comment>
- <acronym>CRL</acronym>
- <expanded-acronym>Certificate Revocation List</expanded-acronym>
- <glob weight="75" pattern="*.crl"/>
- </mime-type>
-
- <!-- Non standard: OpenSSL PEM format -->
- <mime-type type="application/pkix-crl+pem">
- <comment>Certificate Revocation List in PEM format</comment>
- <sub-class-of type="application/x-pem-file"/>
- <magic priority="75">
- <match type="string" value="-----BEGIN X509 CRL-----" offset="0"/>
- </magic>
- </mime-type>
-
- <!-- Non standard: Common practice -->
- <mime-type type="application/x-pkcs12">
- <comment>PKCS#12 Personal Key and Certificates</comment>
- <acronym>PKCS#12</acronym>
- <glob weight="75" pattern="*.p12"/>
-
- <!-- Non standard: Microsoft practice -->
- <glob weight="55" pattern="*.pfx"/>
-
- <!-- Non standard: Rare practice, unclear this actually got into a spec -->
- <alias type="application/pkcs12"/>
- </mime-type>
-
- <!-- Non standard: OpenSSL PEM format -->
- <mime-type type="application/pkcs12+pem">
- <comment>PKCS#12 Personal Key and Certificates in PEM format</comment>
- <sub-class-of type="application/x-pem-file"/>
- <magic priority="75">
- <match type="string" value="-----BEGIN PKCS12-----" offset="0"/>
- </magic>
- </mime-type>
-
- <!-- Defined in: http://www.ietf.org/rfc/rfc5958.txt -->
- <mime-type type="application/pkcs8">
- <comment>PKCS#8 Personal Key</comment>
- <acronym>PKCS#8</acronym>
- <glob weight="75" pattern="*.p8"/>
-
- <!-- Non standard: Gnome keyring practice -->
- <glob weight="55" pattern="*.pkcs8"/>
- </mime-type>
-
- <!-- Non standard: OpenSSL PEM format -->
- <mime-type type="application/pkcs8+pem">
- <comment>PKCS#8 Personal Key in PEM format</comment>
- <sub-class-of type="application/x-pem-file"/>
- <magic priority="75">
- <match type="string" value="-----BEGIN PRIVATE KEY-----" offset="0"/>
- <match type="string" value="-----BEGIN ENCRYPTED PRIVATE KEY-----" offset="0"/>
- </magic>
- </mime-type>
-
- <!-- Defined in: http://www.ietf.org/rfc/rfc2311.txt -->
- <mime-type type="application/pkcs7-mime">
- <comment>PKCS#7 Message and Certificates</comment>
- <acronym>PKCS#7</acronym>
- <glob pattern="*.p7c"/>
- <glob pattern="*.p7m"/>
-
- <!-- Not standard: Microsoft practice -->
- <glob pattern="*.spc"/>
- <glob pattern="*.p7b"/>
-
- <!-- Non standard: Microsoft practice -->
- <alias type="application/x-pkcs7-certificates"/>
- </mime-type>
-
- <!-- Non standard: OpenSSL PEM format -->
- <mime-type type="application/pkcs7-mime+pem">
- <comment>PKCS#7 Message and Certificates in PEM format</comment>
- <sub-class-of type="application/x-pem-file"/>
- <magic priority="75">
- <match type="string" value="-----BEGIN PKCS7-----" offset="0"/>
- </magic>
- </mime-type>
-
- <!-- Defined in http://www.ietf.org/rfc/rfc2311.txt -->
- <mime-type type="application/pkcs7-signature">
- <comment>PKCS#7 Signature</comment>
- <acronym>PKCS#7</acronym>
- <glob pattern="*.p7s"/>
- </mime-type>
-
- <!-- Defined in http://www.ietf.org/rfc/rfc2311.txt -->
- <mime-type type="application/pkcs10">
- <comment>PKCS#10 Certificate Request</comment>
- <acronym>PKCS#10</acronym>
- <glob pattern="*.p10"/>
- </mime-type>
-
- <!-- Non standard: OpenSSL PEM format -->
- <mime-type type="application/pkcs10+pem">
- <comment>PKCS#10 Certificate Request in PEM format</comment>
- <sub-class-of type="application/x-pem-file"/>
- <magic priority="75">
- <match type="string" value="-----BEGIN CERTIFICATE REQUEST-----" offset="0"/>
- <match type="string" value="-----BEGIN NEW CERTIFICATE REQUEST-----" offset="0"/>
- </magic>
- </mime-type>
-
- <!-- Non standard: OpenSSL PEM format -->
- <mime-type type="application/x-pem-key">
- <comment>Private Key in PEM format</comment>
- <sub-class-of type="application/x-pem-file"/>
- <magic priority="75">
- <match type="string" value="-----BEGIN RSA PRIVATE KEY-----" offset="0"/>
- <match type="string" value="-----BEGIN DSA PRIVATE KEY-----" offset="0"/>
- </magic>
- </mime-type>
-</mime-info>
diff --git a/gcr/gcr-debug.c b/gcr/gcr-debug.c
deleted file mode 100644
index fea8fee8..00000000
--- a/gcr/gcr-debug.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */
-/*
- * Copyright (C) 2007 Collabora Ltd.
- * Copyright (C) 2007 Nokia Corporation
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "config.h"
-
-#include "gcr-debug.h"
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stdarg.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-#include <glib.h>
-#include <glib/gstdio.h>
-
-#ifdef WITH_DEBUG
-
-static GcrDebugFlags current_flags = 0;
-
-static GDebugKey keys[] = {
- { "library", GCR_DEBUG_LIBRARY },
- { "certificate-chain", GCR_DEBUG_CERTIFICATE_CHAIN },
- { "parse", GCR_DEBUG_PARSE },
- { "gnupg", GCR_DEBUG_GNUPG },
- { "trust", GCR_DEBUG_TRUST },
- { "import", GCR_DEBUG_IMPORT },
- { 0, }
-};
-
-static void
-debug_set_flags (GcrDebugFlags new_flags)
-{
- current_flags |= new_flags;
-}
-
-void
-_gcr_debug_set_flags (const gchar *flags_string)
-{
- guint nkeys;
-
- for (nkeys = 0; keys[nkeys].value; nkeys++);
-
- if (flags_string)
- debug_set_flags (g_parse_debug_string (flags_string, keys, nkeys));
-}
-
-gboolean
-_gcr_debug_flag_is_set (GcrDebugFlags flag)
-{
- return (flag & current_flags) != 0;
-}
-
-void
-_gcr_debug_message (GcrDebugFlags flag, const gchar *format, ...)
-{
- static gsize initialized_flags = 0;
- gchar *message;
- va_list args;
-
- if (g_once_init_enter (&initialized_flags)) {
- _gcr_debug_set_flags (g_getenv ("GCR_DEBUG"));
- g_once_init_leave (&initialized_flags, 1);
- }
-
- va_start (args, format);
- message = g_strdup_vprintf (format, args);
- va_end (args);
-
- if (flag & current_flags)
- g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s", message);
-
- g_free (message);
-}
-
-#else /* !WITH_DEBUG */
-
-gboolean
-_gcr_debug_flag_is_set (GcrDebugFlags flag)
-{
- return FALSE;
-}
-
-void
-_gcr_debug_message (GcrDebugFlags flag, const gchar *format, ...)
-{
-}
-
-void
-_gcr_debug_set_flags (const gchar *flags_string)
-{
-}
-
-#endif /* !WITH_DEBUG */
diff --git a/gcr/gcr-debug.h b/gcr/gcr-debug.h
deleted file mode 100644
index 20bc35f4..00000000
--- a/gcr/gcr-debug.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2007 Nokia Corporation
- * Copyright (C) 2007-2011 Collabora Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef GCR_DEBUG_H
-#define GCR_DEBUG_H
-
-#include "config.h"
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-/* Please keep this enum in sync with #keys in gcr-debug.c */
-typedef enum {
- GCR_DEBUG_LIBRARY = 1 << 1,
- GCR_DEBUG_CERTIFICATE_CHAIN = 1 << 2,
- GCR_DEBUG_PARSE = 1 << 3,
- GCR_DEBUG_GNUPG = 1 << 4,
- GCR_DEBUG_TRUST = 1 << 5,
- GCR_DEBUG_IMPORT = 1 << 6,
-} GcrDebugFlags;
-
-gboolean _gcr_debug_flag_is_set (GcrDebugFlags flag);
-
-void _gcr_debug_set_flags (const gchar *flags_string);
-
-void _gcr_debug_message (GcrDebugFlags flag,
- const gchar *format,
- ...) G_GNUC_PRINTF (2, 3);
-
-G_END_DECLS
-
-#endif /* GCR_DEBUG_H */
-
-/* -----------------------------------------------------------------------------
- * Below this point is outside the GCR_DEBUG_H guard - so it can take effect
- * more than once. So you can do:
- *
- * #define DEBUG_FLAG GCR_DEBUG_ONE_THING
- * #include "gcr-debug.h"
- * ...
- * DEBUG ("if we're debugging one thing");
- * ...
- * #undef DEBUG_FLAG
- * #define DEBUG_FLAG GCR_DEBUG_OTHER_THING
- * #include "gcr-debug.h"
- * ...
- * DEBUG ("if we're debugging the other thing");
- * ...
- */
-
-#ifdef DEBUG_FLAG
-#ifdef WITH_DEBUG
-
-#undef _gcr_debug
-#define _gcr_debug(format, ...) \
- _gcr_debug_message (DEBUG_FLAG, "%s: " format, G_STRFUNC, ##__VA_ARGS__)
-
-#undef _gcr_debugging
-#define _gcr_debugging \
- _gcr_debug_flag_is_set (DEBUG_FLAG)
-
-#else /* !defined (WITH_DEBUG) */
-
-#undef _gcr_debug
-#define _gcr_debug(format, ...) \
- do {} while (0)
-
-#undef _gcr_debugging
-#define _gcr_debugging 0
-
-#endif /* !defined (WITH_DEBUG) */
-
-#endif /* defined (DEBUG_FLAG) */
diff --git a/gcr/gcr-deprecated-base.h b/gcr/gcr-deprecated-base.h
deleted file mode 100644
index 6ecfd904..00000000
--- a/gcr/gcr-deprecated-base.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef GCR_BASE_DEPRECATED_H_
-#define GCR_BASE_DEPRECATED_H_
-#ifndef GCR_DISABLE_DEPRECATED
-#ifndef __GI_SCANNER__
-
-#include <glib.h>
-
-#include "gcr-importer.h"
-#include "gcr-parser.h"
-#include "gcr-simple-collection.h"
-
-G_BEGIN_DECLS
-
-#define GCR_ERROR (gcr_error_get_domain ())
-
-GQuark gcr_error_get_domain (void) G_GNUC_CONST;
-
-gboolean gcr_simple_collection_contains (GcrSimpleCollection *self,
- GObject *object);
-
-GcrParser * gcr_importer_get_parser (GcrImporter *self);
-
-void gcr_importer_set_parser (GcrImporter *self,
- GcrParser *parser);
-
-GckSlot * gcr_importer_get_slot (GcrImporter *self);
-
-void gcr_importer_set_slot (GcrImporter *self,
- GckSlot *slot);
-
-typedef enum {
- GCR_IMPORTER_PROMPT_NEEDED,
- GCR_IMPORTER_PROMPT_ALWAYS,
- GCR_IMPORTER_PROMPT_NEVER
-} GcrImporterPromptBehavior;
-
-GcrImporterPromptBehavior gcr_importer_get_prompt_behavior (GcrImporter *self);
-
-void gcr_importer_set_prompt_behavior (GcrImporter *self,
- GcrImporterPromptBehavior behavior);
-
-G_END_DECLS
-
-#endif /* __GI_SCANNER__ */
-#endif /* GCR_DISABLE_DEPRECATED */
-#endif /* GCRTYPES_H_ */
diff --git a/gcr/gcr-deprecated.h b/gcr/gcr-deprecated.h
deleted file mode 100644
index 3447c845..00000000
--- a/gcr/gcr-deprecated.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef GCR_DEPRECATED_H_
-#define GCR_DEPRECATED_H_
-#ifndef GCR_DISABLE_DEPRECATED
-#ifndef __GI_SCANNER__
-
-#include <glib.h>
-
-#include "gcr-certificate-basics-widget.h"
-#include "gcr-certificate-details-widget.h"
-#include "gcr-viewer.h"
-
-G_BEGIN_DECLS
-
-void gcr_renderer_render (GcrRenderer *self,
- GcrViewer *viewer);
-
-G_END_DECLS
-
-#endif /* __GI_SCANNER__ */
-#endif /* GCR_DISABLE_DEPRECATED */
-#endif /* GCRTYPES_H_ */
diff --git a/gcr/gcr-dialog-util.c b/gcr/gcr-dialog-util.c
deleted file mode 100644
index c142c351..00000000
--- a/gcr/gcr-dialog-util.c
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-dialog-util.h"
-
-#include <string.h>
-
-typedef struct {
- GtkDialog *dialog;
- gint response_id;
- gboolean was_modal;
- gboolean destroyed;
- gulong response_sig;
- gulong unmap_sig;
- gulong delete_sig;
- gulong destroy_sig;
-} DialogRunClosure;
-
-static void
-dialog_run_closure_free (gpointer data)
-{
- DialogRunClosure *closure = data;
- g_object_unref (closure->dialog);
- g_assert (closure->response_sig == 0);
- g_assert (closure->unmap_sig == 0);
- g_assert (closure->delete_sig == 0);
- g_assert (closure->destroy_sig == 0);
- g_free (closure);
-}
-
-static void
-complete_async_result (GSimpleAsyncResult *res)
-{
- DialogRunClosure *closure = g_simple_async_result_get_op_res_gpointer (res);
-
- g_object_ref (res);
-
- if (!closure->destroyed) {
- if (!closure->was_modal)
- gtk_window_set_modal (GTK_WINDOW (closure->dialog), FALSE);
-
- g_signal_handler_disconnect (closure->dialog, closure->response_sig);
- closure->response_sig = 0;
- g_signal_handler_disconnect (closure->dialog, closure->unmap_sig);
- closure->unmap_sig = 0;
- g_signal_handler_disconnect (closure->dialog, closure->delete_sig);
- closure->delete_sig = 0;
- g_signal_handler_disconnect (closure->dialog, closure->destroy_sig);
- closure->destroy_sig = 0;
- }
-
- g_simple_async_result_complete (res);
- g_object_unref (res);
-}
-
-static void
-on_dialog_unmap (GtkDialog *dialog,
- gpointer user_data)
-{
- GSimpleAsyncResult *res = G_SIMPLE_ASYNC_RESULT (user_data);
-
- complete_async_result (res);
-}
-
-static void
-on_dialog_response (GtkDialog *dialog,
- gint response_id,
- gpointer user_data)
-{
- GSimpleAsyncResult *res = G_SIMPLE_ASYNC_RESULT (user_data);
- DialogRunClosure *closure = g_simple_async_result_get_op_res_gpointer (res);
-
- closure->response_id = response_id;
- complete_async_result (res);
-}
-
-static gint
-on_dialog_delete (GtkDialog *dialog,
- GdkEventAny *event,
- gpointer user_data)
-{
- GSimpleAsyncResult *res = G_SIMPLE_ASYNC_RESULT (user_data);
- complete_async_result (res);
- return TRUE; /* Do not destroy */
-}
-
-static void
-on_dialog_destroy (GtkDialog *dialog,
- gpointer user_data)
-{
- GSimpleAsyncResult *res = G_SIMPLE_ASYNC_RESULT (user_data);
- DialogRunClosure *closure = g_simple_async_result_get_op_res_gpointer (res);
-
- /* complete will be called by run_unmap_handler */
- closure->destroyed = TRUE;
-}
-
-void
-_gcr_dialog_util_run_async (GtkDialog *dialog,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- GSimpleAsyncResult *res;
- DialogRunClosure *closure;
-
- g_return_if_fail (GTK_IS_DIALOG (dialog));
- g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
-
- res = g_simple_async_result_new (G_OBJECT (dialog), callback, user_data,
- _gcr_dialog_util_run_async);
- closure = g_new0 (DialogRunClosure, 1);
-
- closure->dialog = g_object_ref (dialog);
- closure->response_id = GTK_RESPONSE_NONE;
- closure->was_modal = gtk_window_get_modal (GTK_WINDOW (dialog));
- if (!closure->was_modal)
- gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
-
- if (!gtk_widget_get_visible (GTK_WIDGET (dialog)))
- gtk_widget_show (GTK_WIDGET (dialog));
-
- g_simple_async_result_set_op_res_gpointer (res, closure, dialog_run_closure_free);
-
- closure->response_sig = g_signal_connect_data (dialog, "response",
- G_CALLBACK (on_dialog_response),
- g_object_ref (res),
- (GClosureNotify)g_object_unref, 0);
-
- closure->unmap_sig = g_signal_connect_data (dialog, "unmap",
- G_CALLBACK (on_dialog_unmap),
- g_object_ref (res),
- (GClosureNotify)g_object_unref, 0);
-
- closure->delete_sig = g_signal_connect_data (dialog, "delete-event",
- G_CALLBACK (on_dialog_delete),
- g_object_ref (res),
- (GClosureNotify)g_object_unref, 0);
-
- closure->destroy_sig = g_signal_connect_data (dialog, "destroy",
- G_CALLBACK (on_dialog_destroy),
- g_object_ref (res),
- (GClosureNotify)g_object_unref, 0);
-
- g_object_unref (res);
-}
-
-
-gint
-_gcr_dialog_util_run_finish (GtkDialog *dialog,
- GAsyncResult *result)
-{
- DialogRunClosure *closure;
-
- g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (dialog),
- _gcr_dialog_util_run_async), GTK_RESPONSE_NONE);
-
- closure = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (result));
- return closure->response_id;
-}
diff --git a/gcr/gcr-dialog-util.h b/gcr/gcr-dialog-util.h
deleted file mode 100644
index 4be48fd6..00000000
--- a/gcr/gcr-dialog-util.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#ifndef GCR_DIALOG_UTIL_H
-#define GCR_DIALOG_UTIL_H
-
-#include <gtk/gtk.h>
-#include <gio/gio.h>
-
-G_BEGIN_DECLS
-
-void _gcr_dialog_util_run_async (GtkDialog *dialog,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gint _gcr_dialog_util_run_finish (GtkDialog *dialog,
- GAsyncResult *result);
-
-G_END_DECLS
-
-#endif /* __GCR_TOKEN_MANAGER_H__ */
diff --git a/gcr/gcr-display-scrolled.c b/gcr/gcr-display-scrolled.c
deleted file mode 100644
index 49d2dd98..00000000
--- a/gcr/gcr-display-scrolled.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-
-#include "config.h"
-
-#include "gcr-display-scrolled.h"
-#include "gcr-viewer.h"
-
-static void _gcr_display_scrolled_viewer_iface (GcrViewerIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (GcrDisplayScrolled, _gcr_display_scrolled, GTK_TYPE_SCROLLED_WINDOW,
- G_IMPLEMENT_INTERFACE (GCR_TYPE_VIEWER, _gcr_display_scrolled_viewer_iface));
-
-struct _GcrDisplayScrolledPrivate {
- GcrViewer *internal;
-};
-
-/* -----------------------------------------------------------------------------
- * INTERNAL
- */
-
-/* -----------------------------------------------------------------------------
- * OBJECT
- */
-
-static void
-_gcr_display_scrolled_init (GcrDisplayScrolled *self)
-{
- self->pv = (G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_DISPLAY_SCROLLED, GcrDisplayScrolledPrivate));
- self->pv->internal = gcr_viewer_new ();
-}
-
-static void
-_gcr_display_scrolled_constructed (GObject *object)
-{
- GcrDisplayScrolled *self = GCR_DISPLAY_SCROLLED (object);
-
- gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (self), GTK_SHADOW_ETCHED_IN);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (self), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
- gtk_container_add (GTK_CONTAINER (self), GTK_WIDGET (self->pv->internal));
- gtk_widget_show (GTK_WIDGET (self->pv->internal));
-}
-
-static void
-_gcr_display_scrolled_get_preferred_height (GtkWidget *widget, gint *minimal_height,
- gint *natural_height)
-{
- GcrDisplayScrolled *self = GCR_DISPLAY_SCROLLED (widget);
- gint minimal, natural;
-
- GTK_WIDGET_CLASS (_gcr_display_scrolled_parent_class)->get_preferred_height (widget,
- minimal_height,
- natural_height);
-
- minimal = 0;
- natural = 0;
-
- gtk_widget_get_preferred_height (GTK_WIDGET (self->pv->internal),
- &minimal, &natural);
-
- /* This is messy, we add a extra for the etching height */
- *minimal_height = MAX (minimal + 3, *minimal_height);
- *natural_height = MAX (natural + 3, *natural_height);
-}
-
-static void
-_gcr_display_scrolled_get_preferred_width (GtkWidget *widget, gint *minimal_width,
- gint *natural_width)
-{
- GcrDisplayScrolled *self = GCR_DISPLAY_SCROLLED (widget);
- gint minimal, natural;
-
- GTK_WIDGET_CLASS (_gcr_display_scrolled_parent_class)->get_preferred_width (widget,
- minimal_width,
- natural_width);
-
- minimal = 0;
- natural = 0;
-
- gtk_widget_get_preferred_width (GTK_WIDGET (self->pv->internal),
- &minimal, &natural);
-
- /* This is messy, we add a extra for the scrollbar width, etching */
- *minimal_width = MAX (minimal + 32, *minimal_width);
- *natural_width = MAX (natural + 32, *natural_width);
-}
-
-static void
-_gcr_display_scrolled_class_init (GcrDisplayScrolledClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
-
- widget_class->get_preferred_height = _gcr_display_scrolled_get_preferred_height;
- widget_class->get_preferred_width = _gcr_display_scrolled_get_preferred_width;
-
- object_class->constructed = _gcr_display_scrolled_constructed;
-
- g_type_class_add_private (klass, sizeof (GcrDisplayScrolledPrivate));
-}
-
-static void
-_gcr_display_scrolled_real_add_renderer (GcrViewer *viewer, GcrRenderer *renderer)
-{
- GcrDisplayScrolled *self = GCR_DISPLAY_SCROLLED (viewer);
- gcr_viewer_add_renderer (self->pv->internal, renderer);
-}
-
-static void
-_gcr_display_scrolled_real_insert_renderer (GcrViewer *viewer,
- GcrRenderer *renderer,
- GcrRenderer *before)
-{
- GcrDisplayScrolled *self = GCR_DISPLAY_SCROLLED (viewer);
- gcr_viewer_insert_renderer (self->pv->internal, renderer, before);
-}
-
-static void
-_gcr_display_scrolled_real_remove_renderer (GcrViewer *viewer, GcrRenderer *renderer)
-{
- GcrDisplayScrolled *self = GCR_DISPLAY_SCROLLED (viewer);
- gcr_viewer_remove_renderer (self->pv->internal, renderer);
-}
-
-static guint
-_gcr_display_scrolled_real_count_renderers (GcrViewer *viewer)
-{
- GcrDisplayScrolled *self = GCR_DISPLAY_SCROLLED (viewer);
- return gcr_viewer_count_renderers (self->pv->internal);
-}
-
-static GcrRenderer*
-_gcr_display_scrolled_real_get_renderer (GcrViewer *viewer, guint index_)
-{
- GcrDisplayScrolled *self = GCR_DISPLAY_SCROLLED (viewer);
- return gcr_viewer_get_renderer (self->pv->internal, index_);
-}
-
-static void
-_gcr_display_scrolled_viewer_iface (GcrViewerIface *iface)
-{
- iface->add_renderer = _gcr_display_scrolled_real_add_renderer;
- iface->insert_renderer = _gcr_display_scrolled_real_insert_renderer;
- iface->remove_renderer = _gcr_display_scrolled_real_remove_renderer;
- iface->count_renderers = _gcr_display_scrolled_real_count_renderers;
- iface->get_renderer = _gcr_display_scrolled_real_get_renderer;
-}
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-GcrDisplayScrolled*
-_gcr_display_scrolled_new (void)
-{
- return g_object_new (GCR_TYPE_DISPLAY_SCROLLED, NULL);
-}
diff --git a/gcr/gcr-display-scrolled.h b/gcr/gcr-display-scrolled.h
deleted file mode 100644
index 8c4a4ae8..00000000
--- a/gcr/gcr-display-scrolled.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#ifndef __GCR_DISPLAY_SCROLLED_H__
-#define __GCR_DISPLAY_SCROLLED_H__
-
-#include <glib-object.h>
-#include <gtk/gtk.h>
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_DISPLAY_SCROLLED (_gcr_display_scrolled_get_type ())
-#define GCR_DISPLAY_SCROLLED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_DISPLAY_SCROLLED, GcrDisplayScrolled))
-#define GCR_DISPLAY_SCROLLED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_DISPLAY_SCROLLED, GcrDisplayScrolledClass))
-#define GCR_IS_DISPLAY_SCROLLED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_DISPLAY_SCROLLED))
-#define GCR_IS_DISPLAY_SCROLLED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_DISPLAY_SCROLLED))
-#define GCR_DISPLAY_SCROLLED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_DISPLAY_SCROLLED, GcrDisplayScrolledClass))
-
-typedef struct _GcrDisplayScrolled GcrDisplayScrolled;
-typedef struct _GcrDisplayScrolledClass GcrDisplayScrolledClass;
-typedef struct _GcrDisplayScrolledPrivate GcrDisplayScrolledPrivate;
-
-struct _GcrDisplayScrolled {
- /*< private >*/
- GtkScrolledWindow parent;
- GcrDisplayScrolledPrivate *pv;
-};
-
-struct _GcrDisplayScrolledClass {
- GtkScrolledWindowClass parent_class;
-};
-
-GType _gcr_display_scrolled_get_type (void);
-
-GcrDisplayScrolled* _gcr_display_scrolled_new (void);
-
-G_END_DECLS
-
-#endif /* __GCR_DISPLAY_SCROLLED_H__ */
diff --git a/gcr/gcr-display-view.c b/gcr/gcr-display-view.c
deleted file mode 100644
index 8010a689..00000000
--- a/gcr/gcr-display-view.c
+++ /dev/null
@@ -1,1243 +0,0 @@
-/*
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-display-view.h"
-#include "gcr-renderer.h"
-#include "gcr-viewer.h"
-
-#include "egg/egg-oid.h"
-#include "egg/egg-hex.h"
-
-#include <gdk/gdk.h>
-#include <glib/gi18n-lib.h>
-
-static void _gcr_display_view_viewer_iface (GcrViewerIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (GcrDisplayView, _gcr_display_view, GTK_TYPE_TEXT_VIEW,
- G_IMPLEMENT_INTERFACE (GCR_TYPE_VIEWER, _gcr_display_view_viewer_iface));
-
-#define ZWSP "\342\200\213"
-#define NORMAL_MARGIN 10
-#define FIELD_MARGIN 17
-#define COLUMN_MARGIN 6
-#define ICON_MARGIN 8
-#define MESSAGE_PADDING 8
-
-typedef struct _GcrDisplayItem {
- GcrDisplayView *display_view;
- GcrRenderer *renderer;
- gboolean expanded;
- gboolean details;
- GtkTextMark *beginning;
- GtkTextMark *ending;
- GtkWidget *details_widget;
- GtkTextChildAnchor *area_anchor;
- GtkTextTag *extra_tag;
- gint field_width;
- GdkPixbuf *pixbuf;
- GtkTextTag *field_tag;
- GtkTextTag *details_tag;
- gulong data_changed_id;
-} GcrDisplayItem;
-
-struct _GcrDisplayViewPrivate {
- GtkTextBuffer *buffer;
- GPtrArray *renderers;
- GHashTable *items;
- GtkTextTag *title_tag;
- GtkTextTag *content_tag;
- GtkTextTag *heading_tag;
- GtkTextTag *message_tag;
- GtkTextTag *monospace_tag;
- GtkTextTag *area_tag;
- GcrDisplayItem *current_item;
- gint text_height;
- GdkCursor *cursor;
-
- gboolean have_measurements;
- gint minimal_width;
- gint natural_width;
- gint minimal_height;
- gint natural_height;
-};
-
-/* -----------------------------------------------------------------------------
- * INTERNAL
- */
-
-static void
-ensure_measurements (GcrDisplayView *self)
-{
- PangoLayout *layout;
- PangoRectangle extents;
- gint icon_width;
- gint icon_height;
- GHashTableIter iter;
- GcrDisplayItem *item;
- gpointer value;
- gboolean expanded;
-
- if (self->pv->have_measurements)
- return;
-
- /* See if anything is expanded? */
- expanded = FALSE;
- g_hash_table_iter_init (&iter, self->pv->items);
- while (g_hash_table_iter_next (&iter, NULL, &value)) {
- item = value;
- if (item->expanded) {
- expanded = TRUE;
- break;
- }
- }
-
- /*
- * We use a string in our widget font as the basis for our measurements.
- * These are just estimates of what we need, and what looks goodish.
- * There's room here for improvement. If this is causes problems for
- * you or bothers you, scratch that itch:
- */
-
- layout = gtk_widget_create_pango_layout (GTK_WIDGET (self), "0123456789");
- pango_layout_get_extents (layout, NULL, &extents);
- pango_extents_to_pixels (&extents, NULL);
- g_object_unref (layout);
-
- if (!gtk_icon_size_lookup (GTK_ICON_SIZE_DIALOG, &icon_width, &icon_height)) {
- icon_width = 48;
- icon_height = 48;
- }
-
- if (expanded) {
- /* If expanded, display more 10 lines at least */
- self->pv->minimal_height = extents.height * 14;
- self->pv->natural_height = extents.height * 25;
- } else {
- /* If not expanded we can get by with 9 lines */
- self->pv->minimal_height = extents.height * 8;
- self->pv->natural_height = extents.height * 9;
- }
-
- self->pv->minimal_width = icon_width + (extents.width * 5);
- self->pv->natural_width = icon_width + (extents.width * 8);
- self->pv->have_measurements = TRUE;
-}
-
-static void
-ensure_text_height (GcrDisplayView *self)
-{
- PangoRectangle extents;
- PangoLayout *layout;
-
- if (self->pv->text_height > 0)
- return;
-
- layout = gtk_widget_create_pango_layout (GTK_WIDGET (self), "Wp");
- pango_layout_get_extents (layout, NULL, &extents);
- pango_extents_to_pixels (&extents, NULL);
- g_object_unref (layout);
-
- self->pv->text_height = extents.height;
-}
-
-static void
-recalculate_and_resize (GcrDisplayView *self)
-{
- self->pv->have_measurements = FALSE;
- gtk_widget_queue_resize (GTK_WIDGET (self));
-}
-
-static GtkTextTagTable*
-create_tag_table (GcrDisplayView *self)
-{
- GtkTextTagTable *tags;
- gint width, height;
-
- g_assert (GCR_IS_DISPLAY_VIEW (self));
-
- tags = gtk_text_tag_table_new ();
-
- if (!gtk_icon_size_lookup (GTK_ICON_SIZE_DIALOG, &width, &height))
- width = 48;
-
- self->pv->title_tag = g_object_new (GTK_TYPE_TEXT_TAG,
- "name", "title",
- "scale", PANGO_SCALE_LARGE,
- "right-margin", (ICON_MARGIN * 2) + width,
- "pixels-below-lines", 6,
- "weight", PANGO_WEIGHT_BOLD,
- NULL);
- gtk_text_tag_table_add (tags, self->pv->title_tag);
-
- self->pv->content_tag = g_object_new (GTK_TYPE_TEXT_TAG,
- "name", "content",
- "right-margin", (ICON_MARGIN * 2) + width,
- "left-margin", FIELD_MARGIN,
- "pixels-below-lines", 3,
- "wrap-mode", GTK_WRAP_WORD,
- NULL);
- gtk_text_tag_table_add (tags, self->pv->content_tag);
-
- self->pv->message_tag = g_object_new (GTK_TYPE_TEXT_TAG,
- "name", "message",
- "right-margin", (ICON_MARGIN * 2) + width,
- "rise", 3 * PANGO_SCALE,
- "pixels-below-lines", 3,
- "wrap-mode", GTK_WRAP_WORD,
- NULL);
- gtk_text_tag_table_add (tags, self->pv->message_tag);
-
- self->pv->heading_tag = g_object_new (GTK_TYPE_TEXT_TAG,
- "name", "heading",
- "pixels-above-lines", 9,
- "pixels-below-lines", 3,
- "weight", PANGO_WEIGHT_BOLD,
- NULL);
- gtk_text_tag_table_add (tags, self->pv->heading_tag);
-
- self->pv->monospace_tag = g_object_new (GTK_TYPE_TEXT_TAG,
- "name", "monospace",
- "family", "monospace",
- NULL);
- gtk_text_tag_table_add (tags, self->pv->monospace_tag);
-
- self->pv->area_tag = g_object_new (GTK_TYPE_TEXT_TAG,
- "name", "area",
- "justification", GTK_JUSTIFY_CENTER,
- NULL);
- gtk_text_tag_table_add (tags, self->pv->area_tag);
-
- return tags;
-}
-
-static void
-on_expander_realize (GtkWidget *widget, gpointer user_data)
-{
- GdkCursor *cursor = gdk_cursor_new (GDK_ARROW);
- gdk_window_set_cursor (gtk_widget_get_window (widget), cursor);
- g_object_unref (cursor);
-}
-
-static void
-on_expander_expanded (GObject *object, GParamSpec *param_spec, gpointer user_data)
-{
- GtkExpander *expander = GTK_EXPANDER (object);
- GcrDisplayItem *item = user_data;
- item->expanded = gtk_expander_get_expanded (expander);
- gcr_renderer_render_view (item->renderer, GCR_VIEWER (item->display_view));
- recalculate_and_resize (item->display_view);
-}
-
-static void
-style_display_item (GtkWidget *widget, GcrDisplayItem *item)
-{
- GtkStyleContext *style;
- GdkRGBA color;
-
- style = gtk_widget_get_style_context (GTK_WIDGET (widget));
- gtk_style_context_save (style);
-
- gtk_style_context_add_class (style, GTK_STYLE_CLASS_VIEW);
- gtk_style_context_get_background_color (style, GTK_STATE_FLAG_NORMAL, &color);
-
- gtk_style_context_restore (style);
-
- color.red = 255;
- color.green = 0;
- color.blue = 0;
- gtk_widget_override_background_color (item->details_widget, GTK_STATE_FLAG_NORMAL, &color);
-}
-
-static GcrDisplayItem*
-create_display_item (GcrDisplayView *self, GcrRenderer *renderer)
-{
- GcrDisplayItem *item;
- GtkTextTagTable *tags;
- GtkTextIter iter;
- GtkWidget *widget;
- GtkWidget *label;
- GtkWidget *alignment;
- gchar *text;
-
- item = g_new0 (GcrDisplayItem, 1);
- item->display_view = self;
- item->renderer = renderer;
-
- tags = gtk_text_buffer_get_tag_table (self->pv->buffer);
-
- g_assert (!item->field_tag);
- item->field_width = 0;
- item->field_tag = g_object_new (GTK_TYPE_TEXT_TAG,
- "left-margin", item->field_width + FIELD_MARGIN,
- "indent", item->field_width,
- "pixels-below-lines", 3,
- "wrap-mode", GTK_WRAP_WORD_CHAR,
- NULL);
- gtk_text_tag_table_add (tags, item->field_tag);
-
- g_assert (!item->details_tag);
- item->details_tag = g_object_new (GTK_TYPE_TEXT_TAG, NULL);
- gtk_text_tag_table_add (tags, item->details_tag);
-
- /*
- * Add two lines space that delimit this from later items. The
- * item will live between the two zero width spaces.
- */
- gtk_text_buffer_get_end_iter (self->pv->buffer, &iter);
- gtk_text_buffer_insert (self->pv->buffer, &iter, "\n\n", -1);
- if (!gtk_text_iter_backward_char (&iter))
- g_assert_not_reached ();
-
- /* The mark that determines the beginning of this item, with left gravity. */
- item->beginning = gtk_text_buffer_create_mark (self->pv->buffer, NULL, &iter, TRUE);
- g_object_ref (item->beginning);
-
- /* The mark that determines the end of this item, with right gravity. */
- item->ending = gtk_text_buffer_create_mark (self->pv->buffer, NULL, &iter, FALSE);
- g_object_ref (item->ending);
-
- widget = gtk_expander_new_with_mnemonic ("");
- label = gtk_expander_get_label_widget (GTK_EXPANDER (widget));
- text = g_strdup_printf ("<b>%s</b>", _("_Details"));
- gtk_label_set_markup_with_mnemonic (GTK_LABEL (label), text);
- g_signal_connect (widget, "notify::expanded", G_CALLBACK (on_expander_expanded), item);
- g_signal_connect (widget, "realize", G_CALLBACK (on_expander_realize), NULL);
- item->expanded = gtk_expander_get_expanded (GTK_EXPANDER (widget));
- g_free (text);
-
- alignment = gtk_alignment_new (0.5, 0.5, 0.5, 0.5);
- gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 6, 9, 0, 0);
- gtk_container_add (GTK_CONTAINER (alignment), widget);
- gtk_widget_show_all (alignment);
-
- item->details_widget = gtk_event_box_new ();
- gtk_event_box_set_visible_window (GTK_EVENT_BOX (item->details_widget), FALSE);
- gtk_container_add (GTK_CONTAINER (item->details_widget), alignment);
- g_signal_connect (item->details_widget, "realize", G_CALLBACK (on_expander_realize), NULL);
- g_object_ref (item->details_widget);
-
- if (gtk_widget_get_realized (GTK_WIDGET (self)))
- style_display_item (GTK_WIDGET (self), item);
-
- return item;
-}
-
-static void
-destroy_display_item (gpointer data)
-{
- GcrDisplayItem *item = data;
- GtkTextIter iter, end;
- GtkTextTagTable *tags;
- GcrDisplayView *self;
-
- g_assert (item);
-
- g_assert (GCR_IS_DISPLAY_VIEW (item->display_view));
- self = item->display_view;
-
- tags = gtk_text_buffer_get_tag_table (self->pv->buffer);
- gtk_text_tag_table_remove (tags, item->field_tag);
- gtk_text_tag_table_remove (tags, item->details_tag);
-
- g_object_unref (item->field_tag);
- g_object_unref (item->details_tag);
-
- if (item->pixbuf)
- g_object_unref (item->pixbuf);
- item->pixbuf = NULL;
-
- g_assert (item->details_widget);
- g_object_unref (item->details_widget);
- item->details_widget = NULL;
-
- g_clear_object (&item->area_anchor);
-
- g_return_if_fail (!gtk_text_mark_get_deleted (item->beginning));
- g_return_if_fail (!gtk_text_mark_get_deleted (item->ending));
-
- /* Setup iters to encompass our delemiter characters see create_display_item() */
- gtk_text_buffer_get_iter_at_mark (self->pv->buffer, &iter, item->beginning);
- gtk_text_iter_backward_char (&iter);
- gtk_text_buffer_get_iter_at_mark (self->pv->buffer, &end, item->ending);
- gtk_text_iter_forward_char (&end);
- gtk_text_buffer_delete (self->pv->buffer, &iter, &end);
-
- gtk_text_buffer_delete_mark (self->pv->buffer, item->beginning);
- gtk_text_buffer_delete_mark (self->pv->buffer, item->ending);
-
- g_object_unref (item->beginning);
- g_object_unref (item->ending);
-
- g_free (item);
-}
-
-static GcrDisplayItem*
-lookup_display_item (GcrDisplayView *self, GcrRenderer *renderer)
-{
- GcrDisplayItem *item = g_hash_table_lookup (self->pv->items, renderer);
- g_return_val_if_fail (item, NULL);
- g_assert (item->display_view == self);
- return item;
-}
-
-static GcrDisplayItem*
-find_item_at_iter (GcrDisplayView *self, GtkTextIter *iter)
-{
- GHashTableIter hi;
- GcrDisplayItem *item;
- gpointer value;
- GtkTextIter start, end;
-
- g_hash_table_iter_init (&hi, self->pv->items);
- while (g_hash_table_iter_next (&hi, NULL, &value)) {
- item = value;
-
- gtk_text_buffer_get_iter_at_mark (self->pv->buffer, &start, item->beginning);
- gtk_text_buffer_get_iter_at_mark (self->pv->buffer, &end, item->ending);
-
- if (gtk_text_iter_compare (iter, &start) >= 0 &&
- gtk_text_iter_compare (iter, &end) < 0)
- return item;
- }
-
- return NULL;
-}
-
-static void
-on_renderer_data_changed (GcrRenderer *renderer,
- gpointer user_data)
-{
- GcrDisplayView *self = GCR_DISPLAY_VIEW (user_data);
-
- /* Item may be removed, but not yet destroyed */
- if (!g_hash_table_lookup (self->pv->items, renderer))
- return;
-
- /* Just ask the renderer to render itself on us */
- gcr_renderer_render_view (renderer, GCR_VIEWER (self));
-}
-
-static void
-paint_item_icon (GcrDisplayView *self,
- GcrDisplayItem *item,
- GdkRectangle *visible,
- cairo_t *cr)
-{
- GtkTextIter iter;
- GdkRectangle location;
- GtkTextView *view;
-
- if (item->pixbuf == NULL)
- return;
-
- view = GTK_TEXT_VIEW (self);
- gtk_text_buffer_get_iter_at_mark (self->pv->buffer, &iter, item->beginning);
- gtk_text_view_get_iter_location (view, &iter, &location);
-
- location.height = gdk_pixbuf_get_height (item->pixbuf);
- location.width = gdk_pixbuf_get_width (item->pixbuf);
- location.x = visible->width - location.width - ICON_MARGIN;
-
- if (!gdk_rectangle_intersect (visible, &location, NULL))
- return;
-
- gtk_text_view_buffer_to_window_coords (view, GTK_TEXT_WINDOW_TEXT,
- location.x, location.y,
- &location.x, &location.y);
-
- cairo_save (cr);
- gdk_cairo_set_source_pixbuf (cr, item->pixbuf, location.x, location.y);
- cairo_rectangle (cr, location.x, location.y, location.width, location.height);
- cairo_fill (cr);
- cairo_restore (cr);
-}
-
-static void
-paint_item_border (GcrDisplayView *self,
- GcrDisplayItem *item,
- GtkStyleContext *context,
- GdkRectangle *visible,
- gint index,
- cairo_t *cr)
-{
- GdkRGBA color;
- GtkTextView *view;
- GtkTextIter iter, end;
- GdkRectangle location;
-
- if (index == 0)
- return;
-
- view = GTK_TEXT_VIEW (self);
- gtk_text_buffer_get_iter_at_mark (self->pv->buffer, &iter, item->beginning);
- gtk_text_buffer_get_iter_at_mark (self->pv->buffer, &end, item->ending);
-
- /* Don't paint for non-visible items */
- if (gtk_text_iter_compare (&iter, &end) == 0)
- return;
-
- ensure_text_height (self);
-
- gtk_style_context_get_background_color (context,
- GTK_STATE_FLAG_SELECTED | GTK_STATE_FLAG_FOCUSED,
- &color);
-
- gtk_text_view_get_iter_location (view, &iter, &location);
-
- location.height = 2;
- location.width = visible->width - (NORMAL_MARGIN * 2);
- location.x = NORMAL_MARGIN;
- location.y -= self->pv->text_height / 2;
-
- if (!gdk_rectangle_intersect (visible, &location, NULL))
- return;
-
- gtk_text_view_buffer_to_window_coords (view, GTK_TEXT_WINDOW_TEXT,
- location.x, location.y,
- &location.x, &location.y);
-
- cairo_save (cr);
- cairo_set_source_rgb (cr, color.red, color.green, color.blue);
- cairo_set_line_width (cr, 0.5);
- cairo_move_to (cr, location.x, location.y);
- cairo_line_to (cr, location.x + location.width, location.y);
- cairo_stroke (cr);
- cairo_restore (cr);
-}
-
-static void
-paint_extras (GcrDisplayView *self, cairo_t *cr)
-{
- GdkRectangle visible;
- GcrDisplayItem *item;
- GtkStyleContext *context;
- guint i;
-
- gtk_text_view_get_visible_rect (GTK_TEXT_VIEW (self), &visible);
- context = gtk_widget_get_style_context (GTK_WIDGET (self));
-
- for (i = 0; i < self->pv->renderers->len; i++) {
- item = g_hash_table_lookup (self->pv->items, self->pv->renderers->pdata[i]);
- g_assert (item != NULL);
- paint_item_icon (self, item, &visible, cr);
- paint_item_border (self, item, context, &visible, i, cr);
- }
-}
-
-/* -----------------------------------------------------------------------------
- * OBJECT
- */
-
-static GObject*
-_gcr_display_view_constructor (GType type, guint n_props, GObjectConstructParam *props)
-{
- GObject *obj = G_OBJECT_CLASS (_gcr_display_view_parent_class)->constructor (type, n_props, props);
- GcrDisplayView *self = NULL;
- GtkTextView *view = NULL;
- GtkTextTagTable *tags;
-
- g_return_val_if_fail (obj, NULL);
-
- self = GCR_DISPLAY_VIEW (obj);
- view = GTK_TEXT_VIEW (obj);
-
- tags = create_tag_table (self);
- self->pv->buffer = gtk_text_buffer_new (tags);
- g_object_unref (tags);
-
- gtk_text_view_set_buffer (view, self->pv->buffer);
- gtk_text_view_set_editable (view, FALSE);
- gtk_text_view_set_left_margin (view, NORMAL_MARGIN);
- gtk_text_view_set_right_margin (view, NORMAL_MARGIN);
- gtk_text_view_set_cursor_visible (view, FALSE);
-
- return obj;
-}
-
-static void
-_gcr_display_view_init (GcrDisplayView *self)
-{
- self->pv = (G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_DISPLAY_VIEW, GcrDisplayViewPrivate));
- self->pv->items = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, destroy_display_item);
- self->pv->renderers = g_ptr_array_new_with_free_func (g_object_unref);
-}
-
-static void
-_gcr_display_view_dispose (GObject *obj)
-{
- GcrDisplayView *self = GCR_DISPLAY_VIEW (obj);
- GcrRenderer *renderer;
- GcrDisplayItem *item;
-
- while (self->pv->renderers->len) {
- renderer = g_ptr_array_index (self->pv->renderers, 0);
- item = g_hash_table_lookup (self->pv->items, renderer);
- g_return_if_fail (item);
- g_signal_handler_disconnect (renderer, item->data_changed_id);
- if (!g_hash_table_remove (self->pv->items, renderer))
- g_return_if_reached ();
- g_ptr_array_remove_index_fast (self->pv->renderers, 0);
- }
-
- if (self->pv->buffer)
- g_object_unref (self->pv->buffer);
- self->pv->buffer = NULL;
-
- g_assert (g_hash_table_size (self->pv->items) == 0);
-
- G_OBJECT_CLASS (_gcr_display_view_parent_class)->dispose (obj);
-}
-
-static void
-_gcr_display_view_finalize (GObject *obj)
-{
- GcrDisplayView *self = GCR_DISPLAY_VIEW (obj);
-
- if (self->pv->buffer)
- g_object_unref (self->pv->buffer);
- self->pv->buffer = NULL;
-
- g_assert (g_hash_table_size (self->pv->items) == 0);
- g_hash_table_destroy (self->pv->items);
- self->pv->items = NULL;
-
- g_assert (self->pv->renderers);
- g_assert (self->pv->renderers->len == 0);
- g_ptr_array_free (self->pv->renderers, TRUE);
- self->pv->renderers = NULL;
-
- g_assert (self->pv->content_tag);
- g_object_unref (self->pv->content_tag);
- self->pv->content_tag = NULL;
-
- g_assert (self->pv->heading_tag);
- g_object_unref (self->pv->heading_tag);
- self->pv->heading_tag = NULL;
-
- g_assert (self->pv->monospace_tag);
- g_object_unref (self->pv->monospace_tag);
- self->pv->monospace_tag = NULL;
-
- g_assert (self->pv->title_tag);
- g_object_unref (self->pv->title_tag);
- self->pv->title_tag = NULL;
-
- g_clear_object (&self->pv->cursor);
-
- G_OBJECT_CLASS (_gcr_display_view_parent_class)->finalize (obj);
-}
-
-static void
-_gcr_display_view_realize (GtkWidget *widget)
-{
- GcrDisplayView *self = GCR_DISPLAY_VIEW (widget);
- GHashTableIter iter;
- GdkDisplay *display;
- gpointer value;
-
- if (GTK_WIDGET_CLASS (_gcr_display_view_parent_class)->realize)
- GTK_WIDGET_CLASS (_gcr_display_view_parent_class)->realize (widget);
-
- /* Set style on all the items */
- g_hash_table_iter_init (&iter, self->pv->items);
- while (g_hash_table_iter_next (&iter, NULL, &value))
- style_display_item (widget, value);
-
- if (!self->pv->cursor) {
- display = gtk_widget_get_display (GTK_WIDGET (self));
- self->pv->cursor = gdk_cursor_new_for_display (display, GDK_ARROW);
- }
-
- gdk_window_set_cursor (gtk_text_view_get_window (GTK_TEXT_VIEW (self), GTK_TEXT_WINDOW_WIDGET),
- self->pv->cursor);
-}
-
-static gboolean
-_gcr_display_view_button_press_event (GtkWidget *widget, GdkEventButton *event)
-{
- GtkTextView *text_view = GTK_TEXT_VIEW (widget);
- GcrDisplayView *self = GCR_DISPLAY_VIEW (widget);
- GcrDisplayItem *item;
- gboolean handled = FALSE;
- GtkTextIter iter;
- gint x, y;
-
- if (GTK_WIDGET_CLASS (_gcr_display_view_parent_class)->button_press_event)
- handled = GTK_WIDGET_CLASS (_gcr_display_view_parent_class)->button_press_event (
- widget, event);
-
- if (event->window == gtk_text_view_get_window (text_view, GTK_TEXT_WINDOW_TEXT)) {
- gtk_text_view_window_to_buffer_coords (text_view, GTK_TEXT_WINDOW_TEXT,
- event->x, event->y, &x, &y);
- gtk_text_view_get_iter_at_location (text_view, &iter, x, y);
-
- item = find_item_at_iter (self, &iter);
- self->pv->current_item = item;
- }
-
- return handled;
-}
-
-static gboolean
-_gcr_display_view_draw (GtkWidget *widget, cairo_t *cr)
-{
- GdkWindow *window;
- gboolean handled = TRUE;
-
- /* Have GtkTextView draw the text first. */
- if (GTK_WIDGET_CLASS (_gcr_display_view_parent_class)->draw)
- handled = GTK_WIDGET_CLASS (_gcr_display_view_parent_class)->draw (widget, cr);
-
- window = gtk_text_view_get_window (GTK_TEXT_VIEW (widget), GTK_TEXT_WINDOW_TEXT);
- if (gtk_cairo_should_draw_window (cr, window))
- paint_extras (GCR_DISPLAY_VIEW (widget), cr);
-
- return handled;
-}
-
-static void
-_gcr_display_get_preferred_height (GtkWidget *widget, gint *minimal_height,
- gint *natural_height)
-{
- GcrDisplayView *self = GCR_DISPLAY_VIEW (widget);
- ensure_measurements (self);
- *minimal_height = self->pv->minimal_height;
- *natural_height = self->pv->natural_height;
-}
-
-static void
-_gcr_display_get_preferred_width (GtkWidget *widget, gint *minimal_width,
- gint *natural_width)
-{
- GcrDisplayView *self = GCR_DISPLAY_VIEW (widget);
- ensure_measurements (self);
- *minimal_width = self->pv->minimal_width;
- *natural_width = self->pv->natural_width;
-}
-
-static void
-_gcr_display_view_populate_popup (GtkTextView *text_view, GtkMenu *menu)
-{
- GcrDisplayView *self = GCR_DISPLAY_VIEW (text_view);
-
- if (GTK_TEXT_VIEW_CLASS (_gcr_display_view_parent_class)->populate_popup)
- GTK_TEXT_VIEW_CLASS (_gcr_display_view_parent_class)->populate_popup (text_view, menu);
-
- /* Ask the current renderer to add menu items */
- if (self->pv->current_item)
- gcr_renderer_popuplate_popup (self->pv->current_item->renderer,
- GCR_VIEWER (self), menu);
-}
-
-static void
-_gcr_display_view_class_init (GcrDisplayViewClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
- GtkTextViewClass *text_view_class = GTK_TEXT_VIEW_CLASS (klass);
-
- _gcr_display_view_parent_class = g_type_class_peek_parent (klass);
- g_type_class_add_private (klass, sizeof (GcrDisplayViewPrivate));
-
- gobject_class->constructor = _gcr_display_view_constructor;
- gobject_class->dispose = _gcr_display_view_dispose;
- gobject_class->finalize = _gcr_display_view_finalize;
-
- widget_class->realize = _gcr_display_view_realize;
- widget_class->button_press_event = _gcr_display_view_button_press_event;
- widget_class->get_preferred_height = _gcr_display_get_preferred_height;
- widget_class->get_preferred_width = _gcr_display_get_preferred_width;
- widget_class->draw = _gcr_display_view_draw;
-
- text_view_class->populate_popup = _gcr_display_view_populate_popup;
-}
-
-static void
-_gcr_display_view_real_insert_renderer (GcrViewer *viewer,
- GcrRenderer *renderer,
- GcrRenderer *before)
-{
- GcrDisplayView *self = GCR_DISPLAY_VIEW (viewer);
- GcrDisplayItem *item;
- guint i;
-
- if (before != NULL)
- g_return_if_fail (g_hash_table_lookup (self->pv->items, before) != NULL);
-
- item = create_display_item (self, renderer);
- g_object_ref (renderer);
-
- /* Insert it at the right place */
- if (before != NULL) {
- g_ptr_array_add (self->pv->renderers, NULL);
- for (i = self->pv->renderers->len; i > 0; i--) {
- self->pv->renderers->pdata[i] = self->pv->renderers->pdata[i - 1];
- if (self->pv->renderers->pdata[i] == before) {
- self->pv->renderers->pdata[i - 1] = renderer;
- break;
- }
- }
-
- /* Must have been found */
- g_assert (i > 0);
-
- /* No before, just add to end */
- } else {
- g_ptr_array_add (self->pv->renderers, renderer);
- }
-
- g_hash_table_insert (self->pv->items, renderer, item);
-
- gcr_renderer_render_view (renderer, viewer);
- item->data_changed_id = g_signal_connect (renderer, "data-changed",
- G_CALLBACK (on_renderer_data_changed), self);
-}
-
-static void
-_gcr_display_view_real_add_renderer (GcrViewer *viewer, GcrRenderer *renderer)
-{
- _gcr_display_view_real_insert_renderer (viewer, renderer, NULL);
-}
-
-static void
-_gcr_display_view_real_remove_renderer (GcrViewer *viewer, GcrRenderer *renderer)
-{
- GcrDisplayView *self = GCR_DISPLAY_VIEW (viewer);
- GcrDisplayItem *item;
-
- item = lookup_display_item (self, renderer);
- g_return_if_fail (item);
-
- /* Unhook the callback */
- g_signal_handler_disconnect (renderer, item->data_changed_id);
-
- /* Destroys the display item */
- g_assert (item->display_view == self);
- g_hash_table_remove (self->pv->items, renderer);
-
- /* Unrefs the renderer */
- if (!g_ptr_array_remove (self->pv->renderers, renderer))
- g_return_if_reached ();
-}
-
-static guint
-_gcr_display_view_real_count_renderers (GcrViewer *viewer)
-{
- GcrDisplayView *self = GCR_DISPLAY_VIEW (viewer);
- return self->pv->renderers->len;
-}
-
-static GcrRenderer*
-_gcr_display_view_real_get_renderer (GcrViewer *viewer, guint index_)
-{
- GcrDisplayView *self = GCR_DISPLAY_VIEW (viewer);
- g_return_val_if_fail (index_ < self->pv->renderers->len, NULL);
- return g_ptr_array_index (self->pv->renderers, index_);
-}
-
-static void
-_gcr_display_view_viewer_iface (GcrViewerIface *iface)
-{
- iface->add_renderer = (gpointer)_gcr_display_view_real_add_renderer;
- iface->insert_renderer = (gpointer)_gcr_display_view_real_insert_renderer;
- iface->remove_renderer = (gpointer)_gcr_display_view_real_remove_renderer;
- iface->count_renderers = (gpointer)_gcr_display_view_real_count_renderers;
- iface->get_renderer = (gpointer)_gcr_display_view_real_get_renderer;
-}
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-GcrDisplayView*
-_gcr_display_view_new (void)
-{
- return g_object_new (GCR_TYPE_DISPLAY_VIEW, NULL);
-}
-
-void
-_gcr_display_view_begin (GcrDisplayView *self,
- GcrRenderer *renderer)
-{
- GtkTextIter start, iter;
- GcrDisplayItem *item;
- GList *widgets, *l;
-
- g_return_if_fail (GCR_IS_DISPLAY_VIEW (self));
- item = lookup_display_item (self, renderer);
- g_return_if_fail (item);
-
- /* Remove the details widget so it doesn't get destroyed */
- if (gtk_widget_get_parent (item->details_widget))
- gtk_container_remove (GTK_CONTAINER (self), item->details_widget);
-
- /* Remove area widgets so they don't get destroyed unnecessarily */
- if (item->area_anchor) {
- g_assert (!gtk_text_child_anchor_get_deleted (item->area_anchor));
- widgets = gtk_text_child_anchor_get_widgets (item->area_anchor);
- for (l = widgets; l != NULL; l = g_list_next (l))
- gtk_container_remove (GTK_CONTAINER (self), l->data);
- g_list_free (widgets);
- g_object_unref (item->area_anchor);
- item->area_anchor = NULL;
- }
-
- gtk_text_buffer_get_iter_at_mark (self->pv->buffer, &start, item->beginning);
- gtk_text_buffer_get_iter_at_mark (self->pv->buffer, &iter, item->ending);
- gtk_text_buffer_delete (self->pv->buffer, &start, &iter);
-
- item->extra_tag = NULL;
- item->field_width = 0;
- item->details = FALSE;
-}
-
-void
-_gcr_display_view_end (GcrDisplayView *self,
- GcrRenderer *renderer)
-{
- GcrDisplayItem *item;
-
- g_return_if_fail (GCR_IS_DISPLAY_VIEW (self));
- item = lookup_display_item (self, renderer);
- g_return_if_fail (item);
-}
-
-void
-_gcr_display_view_start_details (GcrDisplayView *self, GcrRenderer *renderer)
-{
- GtkTextChildAnchor *anchor;
- GcrDisplayItem *item;
- GtkTextIter iter;
-
- g_return_if_fail (GCR_IS_DISPLAY_VIEW (self));
- item = lookup_display_item (self, renderer);
- g_return_if_fail (item);
-
- if (item->details) {
- g_warning ("A GcrRenderer implementation has called %s twice in one render",
- G_STRFUNC);
- return;
- }
-
- item->extra_tag = item->details_tag;
- item->details = TRUE;
-
- gtk_text_buffer_get_iter_at_mark (self->pv->buffer, &iter, item->ending);
- anchor = gtk_text_buffer_create_child_anchor (self->pv->buffer, &iter);
- gtk_text_view_add_child_at_anchor (GTK_TEXT_VIEW (self), item->details_widget, anchor);
- gtk_widget_show_all (item->details_widget);
- gtk_text_buffer_insert (self->pv->buffer, &iter, "\n", 1);
-}
-
-void
-_gcr_display_view_append_content (GcrDisplayView *self, GcrRenderer *renderer,
- const gchar *content, const gchar *details)
-{
- GcrDisplayItem *item;
- GtkTextIter iter;
- gchar *memory = NULL;
-
- g_return_if_fail (GCR_IS_DISPLAY_VIEW (self));
- g_return_if_fail (content);
-
- item = lookup_display_item (self, renderer);
- g_return_if_fail (item);
-
- if (item->details && !item->expanded)
- return;
-
- if (details)
- content = memory = g_strdup_printf ("%s: %s", content, details);
-
- gtk_text_buffer_get_iter_at_mark (self->pv->buffer, &iter, item->ending);
- gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, content, -1,
- self->pv->content_tag, item->extra_tag, NULL);
- gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, "\n", 1,
- item->extra_tag, NULL);
-
- g_free (memory);
-}
-
-void
-_gcr_display_view_append_value (GcrDisplayView *self, GcrRenderer *renderer, const gchar *field,
- const gchar *value, gboolean monospace)
-{
- GcrDisplayItem *item;
- PangoRectangle extents;
- PangoTabArray *tabs;
- PangoLayout *layout;
- GtkTextIter iter;
- gchar *text;
-
- g_return_if_fail (GCR_IS_DISPLAY_VIEW (self));
- g_return_if_fail (field);
-
- item = lookup_display_item (self, renderer);
- g_return_if_fail (item);
-
- if (item->details && !item->expanded)
- return;
-
- text = g_strdup_printf ("%s:", field);
- if (value == NULL)
- value = "";
-
- /* Measure the width of the field */
- layout = gtk_widget_create_pango_layout (GTK_WIDGET (self), text);
- pango_layout_get_extents (layout, NULL, &extents);
- pango_extents_to_pixels (&extents, NULL);
- g_object_unref (layout);
-
- /* An estimate of the text height */
- self->pv->text_height = extents.height;
-
- /* Make the tab wide enough to accomodate */
- if (extents.width > item->field_width) {
- item->field_width = extents.width + COLUMN_MARGIN;
- tabs = pango_tab_array_new (1, TRUE);
- pango_tab_array_set_tab (tabs, 0, PANGO_TAB_LEFT, item->field_width);
- g_object_set (item->field_tag,
- "left-margin", FIELD_MARGIN,
- "indent", 0 - item->field_width,
- "tabs", tabs,
- NULL);
- pango_tab_array_free (tabs);
- }
-
- gtk_text_buffer_get_iter_at_mark (self->pv->buffer, &iter, item->ending);
- gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, text, -1,
- item->field_tag, item->extra_tag, NULL);
- gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, "\t", 1,
- item->extra_tag, NULL);
- gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, value, -1, item->field_tag,
- monospace ? self->pv->monospace_tag : item->extra_tag,
- monospace ? item->extra_tag : NULL, NULL);
- gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, "\n", 1,
- item->extra_tag, NULL);
-
- g_free (text);
-}
-
-void
-_gcr_display_view_append_hex (GcrDisplayView *self, GcrRenderer *renderer,
- const gchar *field, gconstpointer value, gsize n_value)
-{
- gchar *display;
-
- display = egg_hex_encode_full (value, n_value, TRUE, ' ', 1);
- _gcr_display_view_append_value (self, renderer, field, display, TRUE);
- g_free (display);
-}
-
-void
-_gcr_display_view_append_title (GcrDisplayView *self, GcrRenderer *renderer, const gchar *title)
-{
- GcrDisplayItem *item;
- GtkTextIter iter;
-
- g_return_if_fail (GCR_IS_DISPLAY_VIEW (self));
- g_return_if_fail (title);
-
- item = lookup_display_item (self, renderer);
- g_return_if_fail (item);
-
- if (item->details && !item->expanded)
- return;
-
- gtk_text_buffer_get_iter_at_mark (self->pv->buffer, &iter, item->ending);
- gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, title, -1,
- self->pv->title_tag, item->extra_tag, NULL);
- gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, "\n", 1,
- item->extra_tag, NULL);
-}
-
-void
-_gcr_display_view_append_heading (GcrDisplayView *self, GcrRenderer *renderer, const gchar *heading)
-{
- GcrDisplayItem *item;
- GtkTextIter iter;
-
- g_return_if_fail (GCR_IS_DISPLAY_VIEW (self));
- g_return_if_fail (heading);
-
- item = lookup_display_item (self, renderer);
- g_return_if_fail (item);
-
- if (item->details && !item->expanded)
- return;
-
- gtk_text_buffer_get_iter_at_mark (self->pv->buffer, &iter, item->ending);
- gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, heading, -1,
- self->pv->heading_tag, item->extra_tag, NULL);
- gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, "\n", 1,
- item->extra_tag, NULL);
-}
-
-void
-_gcr_display_view_append_fingerprint (GcrDisplayView *self, GcrRenderer *renderer, const guchar *data,
- gsize n_data, const gchar *name, GChecksumType type)
-{
- GChecksum *checksum;
- guint8 *buffer;
- gsize n_buffer;
-
- g_return_if_fail (GCR_IS_DISPLAY_VIEW (self));
-
- checksum = g_checksum_new (type);
- g_return_if_fail (checksum);
- g_checksum_update (checksum, data, n_data);
-
- n_buffer = g_checksum_type_get_length (type);
- g_return_if_fail (n_buffer);
- buffer = g_malloc0 (n_buffer);
-
- g_checksum_get_digest (checksum, buffer, &n_buffer);
- g_checksum_free (checksum);
-
- _gcr_display_view_append_hex (self, renderer, name, buffer, n_buffer);
-
- g_free (buffer);
-}
-
-void
-_gcr_display_view_append_message (GcrDisplayView *self,
- GcrRenderer *renderer,
- GtkMessageType message_type,
- const gchar *message)
-{
- const gchar *stock_id = NULL;
- GtkWidget *image = NULL;
- GcrDisplayItem *item;
- GtkTextChildAnchor *anchor;
- GtkTextIter iter;
-
- g_return_if_fail (GCR_IS_DISPLAY_VIEW (self));
- g_return_if_fail (GCR_IS_RENDERER (renderer));
-
- item = lookup_display_item (self, renderer);
- g_return_if_fail (item);
-
- switch (message_type) {
- case GTK_MESSAGE_INFO:
- stock_id = GTK_STOCK_DIALOG_INFO;
- break;
-
- case GTK_MESSAGE_QUESTION:
- stock_id = GTK_STOCK_DIALOG_QUESTION;
- break;
-
- case GTK_MESSAGE_WARNING:
- stock_id = GTK_STOCK_DIALOG_WARNING;
- break;
-
- case GTK_MESSAGE_ERROR:
- stock_id = GTK_STOCK_DIALOG_ERROR;
- break;
-
- case GTK_MESSAGE_OTHER:
- break;
-
- default:
- g_warning ("unknown GtkMessageType: %u", message_type);
- break;
- }
-
- gtk_text_buffer_get_iter_at_mark (self->pv->buffer, &iter, item->ending);
-
- if (stock_id != NULL) {
- image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU);
- gtk_misc_set_padding (GTK_MISC (image), MESSAGE_PADDING, 0);
- gtk_widget_show (image);
-
- anchor = gtk_text_buffer_create_child_anchor (self->pv->buffer, &iter);
- gtk_text_view_add_child_at_anchor (GTK_TEXT_VIEW (self), image, anchor);
- }
-
- gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, message, -1,
- self->pv->message_tag, item->extra_tag, NULL);
- gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, "\n", 1,
- item->extra_tag, NULL);
-}
-
-void
-_gcr_display_view_set_icon (GcrDisplayView *self, GcrRenderer *renderer, GIcon *icon)
-{
- GcrDisplayItem *item;
- GdkScreen *screen;
- GtkIconTheme *icon_theme;
- GtkSettings *settings;
- gint width, height;
- GtkIconInfo *info;
-
- g_return_if_fail (GCR_IS_DISPLAY_VIEW (self));
- item = lookup_display_item (self, renderer);
- g_return_if_fail (item);
-
- if (item->pixbuf)
- g_object_unref (item->pixbuf);
- item->pixbuf = NULL;
-
- if (!icon)
- return;
-
- screen = gtk_widget_get_screen (GTK_WIDGET (self));
- icon_theme = gtk_icon_theme_get_for_screen (screen);
- settings = gtk_settings_get_for_screen (screen);
-
- if (!gtk_icon_size_lookup_for_settings (settings, GTK_ICON_SIZE_DIALOG, &width, &height))
- g_return_if_reached ();
-
- info = gtk_icon_theme_lookup_by_gicon (icon_theme, icon, MIN (width, height),
- GTK_ICON_LOOKUP_USE_BUILTIN);
-
- if (info) {
- GtkStyleContext *style = gtk_widget_get_style_context (GTK_WIDGET (self));
- item->pixbuf = gtk_icon_info_load_symbolic_for_context (info, style, FALSE, NULL);
- gtk_icon_info_free (info);
- }
-}
-
-void
-_gcr_display_view_add_widget_area (GcrDisplayView *self,
- GcrRenderer *renderer,
- GtkWidget *area)
-{
- GtkTextIter iter, start;
- GcrDisplayItem *item;
-
- g_return_if_fail (GCR_IS_DISPLAY_VIEW (self));
- g_return_if_fail (GTK_IS_WIDGET (area));
-
- item = lookup_display_item (self, renderer);
- g_return_if_fail (item != NULL);
- g_return_if_fail (item->area_anchor == NULL);
-
- gtk_text_buffer_get_iter_at_mark (self->pv->buffer, &start, item->ending);
- iter = start;
-
- gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, "\n" ZWSP, -1, self->pv->area_tag, NULL);
- gtk_text_buffer_get_iter_at_mark (self->pv->buffer, &iter, item->ending);
-
- item->area_anchor = gtk_text_buffer_create_child_anchor (self->pv->buffer, &iter);
- g_object_ref (item->area_anchor);
- gtk_text_view_add_child_at_anchor (GTK_TEXT_VIEW (self), area, item->area_anchor);
- gtk_text_buffer_insert_with_tags (self->pv->buffer, &iter, ZWSP "\n", -1, self->pv->area_tag, NULL);
-}
diff --git a/gcr/gcr-display-view.h b/gcr/gcr-display-view.h
deleted file mode 100644
index 0882624f..00000000
--- a/gcr/gcr-display-view.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#ifndef __GCR_DISPLAY_VIEW_H__
-#define __GCR_DISPLAY_VIEW_H__
-
-#include <glib-object.h>
-#include <gtk/gtk.h>
-
-#include "gcr-certificate.h"
-#include "gcr-types.h"
-#include "gcr-viewer.h"
-
-G_BEGIN_DECLS
-
-#define GCR_DISPLAY_VIEW_LINE_BREAK 0x2028
-
-#define GCR_TYPE_DISPLAY_VIEW (_gcr_display_view_get_type ())
-#define GCR_DISPLAY_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_DISPLAY_VIEW, GcrDisplayView))
-#define GCR_DISPLAY_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_DISPLAY_VIEW, GcrDisplayViewClass))
-#define GCR_IS_DISPLAY_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_DISPLAY_VIEW))
-#define GCR_IS_DISPLAY_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_DISPLAY_VIEW))
-#define GCR_DISPLAY_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_DISPLAY_VIEW, GcrDisplayViewClass))
-
-typedef struct _GcrDisplayView GcrDisplayView;
-typedef struct _GcrDisplayViewClass GcrDisplayViewClass;
-typedef struct _GcrDisplayViewPrivate GcrDisplayViewPrivate;
-
-struct _GcrDisplayView {
- /*< private >*/
- GtkTextView parent;
- GcrDisplayViewPrivate *pv;
-};
-
-struct _GcrDisplayViewClass {
- GtkTextViewClass parent_class;
-};
-
-GType _gcr_display_view_get_type (void);
-
-GcrDisplayView* _gcr_display_view_new (void);
-
-void _gcr_display_view_begin (GcrDisplayView *self,
- GcrRenderer *renderer);
-
-void _gcr_display_view_end (GcrDisplayView *self,
- GcrRenderer *renderer);
-
-void _gcr_display_view_append_value (GcrDisplayView *self,
- GcrRenderer *renderer,
- const gchar *field,
- const gchar *value,
- gboolean monospace);
-
-void _gcr_display_view_append_hex (GcrDisplayView *self,
- GcrRenderer *renderer,
- const gchar *field,
- gconstpointer value,
- gsize n_value);
-
-void _gcr_display_view_append_title (GcrDisplayView *self,
- GcrRenderer *renderer,
- const gchar *title);
-
-void _gcr_display_view_append_content (GcrDisplayView *self,
- GcrRenderer *renderer,
- const gchar *content,
- const gchar *details);
-
-void _gcr_display_view_start_details (GcrDisplayView *self,
- GcrRenderer *renderer);
-
-void _gcr_display_view_append_heading (GcrDisplayView *self,
- GcrRenderer *renderer,
- const gchar *heading);
-
-void _gcr_display_view_append_fingerprint (GcrDisplayView *self,
- GcrRenderer *renderer,
- const guchar *data,
- gsize n_data,
- const gchar *name,
- GChecksumType type);
-
-void _gcr_display_view_append_message (GcrDisplayView *self,
- GcrRenderer *renderer,
- GtkMessageType message_type,
- const gchar *message);
-
-void _gcr_display_view_set_icon (GcrDisplayView *self,
- GcrRenderer *renderer,
- GIcon *icon);
-
-void _gcr_display_view_add_widget_area (GcrDisplayView *self,
- GcrRenderer *render,
- GtkWidget *area);
-
-G_END_DECLS
-
-#endif /* __GCR_DISPLAY_VIEW_H__ */
diff --git a/gcr/gcr-enum-types.c.template b/gcr/gcr-enum-types.c.template
deleted file mode 100644
index d6095351..00000000
--- a/gcr/gcr-enum-types.c.template
+++ /dev/null
@@ -1,43 +0,0 @@
-/*** BEGIN file-header ***/
-
-#include <glib-object.h>
-
-#ifndef GCR_COMPILATION
-#define GCR_COMPILATION
-#endif
-
-/*** END file-header ***/
-
-/*** BEGIN file-production ***/
-#include "@filename@"
-/* enumerations from "@filename@" */
-/*** END file-production ***/
-
-/*** BEGIN value-header ***/
-GType @enum_name@_get_type (void) G_GNUC_CONST;
-
-GType
-@enum_name@_get_type (void)
-{
- static GType etype = 0;
- if (G_UNLIKELY(etype == 0)) {
- static const G@Type@Value values[] = {
-/*** END value-header ***/
-
-/*** BEGIN value-production ***/
- { @VALUENAME@, "@VALUENAME@", "@valuenick@" },
-/*** END value-production ***/
-
-/*** BEGIN value-tail ***/
- { 0, NULL, NULL }
- };
- etype = g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
- }
- return etype;
-}
-
-/*** END value-tail ***/
-
-/*** BEGIN file-tail ***/
- /**/
-/*** END file-tail ***/
diff --git a/gcr/gcr-enum-types.h.template b/gcr/gcr-enum-types.h.template
deleted file mode 100644
index 91d5a606..00000000
--- a/gcr/gcr-enum-types.h.template
+++ /dev/null
@@ -1,28 +0,0 @@
-/*** BEGIN file-header ***/
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> can be included directly."
-#endif
-
-#ifndef __GCR_ENUM_TYPES_H__
-#define __GCR_ENUM_TYPES_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-/*** END file-header ***/
-
-/*** BEGIN file-production ***/
-
-/* enumerations from "@filename@" */
-/*** END file-production ***/
-
-/*** BEGIN value-header ***/
-GType @enum_name@_get_type (void) G_GNUC_CONST;
-#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ())
-/*** END value-header ***/
-
-/*** BEGIN file-tail ***/
-G_END_DECLS
-
-#endif /* __GCR_ENUM_TYPES_H__ */
-/*** END file-tail ***/
diff --git a/gcr/gcr-failure-renderer.c b/gcr/gcr-failure-renderer.c
deleted file mode 100644
index 4cf84bd7..00000000
--- a/gcr/gcr-failure-renderer.c
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-display-view.h"
-#include "gcr-icons.h"
-#include "gcr-parser.h"
-#include "gcr-failure-renderer.h"
-
-#include "egg/egg-entry-buffer.h"
-
-#include <gdk/gdk.h>
-#include <glib/gi18n-lib.h>
-
-enum {
- PROP_0,
- PROP_LABEL,
- PROP_ATTRIBUTES
-};
-
-struct _GcrFailureRendererPrivate {
- gchar *label;
- GError *error;
-};
-
-static void gcr_renderer_iface_init (GcrRendererIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (GcrFailureRenderer, gcr_failure_renderer, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (GCR_TYPE_RENDERER, gcr_renderer_iface_init);
-);
-
-static void
-gcr_failure_renderer_init (GcrFailureRenderer *self)
-{
- self->pv = (G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_FAILURE_RENDERER,
- GcrFailureRendererPrivate));
-}
-
-static void
-gcr_failure_renderer_finalize (GObject *obj)
-{
- GcrFailureRenderer *self = GCR_FAILURE_RENDERER (obj);
-
- g_error_free (self->pv->error);
- g_free (self->pv->label);
-
- G_OBJECT_CLASS (gcr_failure_renderer_parent_class)->finalize (obj);
-}
-
-static void
-gcr_failure_renderer_set_property (GObject *obj,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GcrFailureRenderer *self = GCR_FAILURE_RENDERER (obj);
-
- switch (prop_id) {
- case PROP_LABEL:
- g_free (self->pv->label);
- self->pv->label = g_value_dup_string (value);
- g_object_notify (obj, "label");
- gcr_renderer_emit_data_changed (GCR_RENDERER (self));
- break;
- case PROP_ATTRIBUTES:
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_failure_renderer_get_property (GObject *obj,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GcrFailureRenderer *self = GCR_FAILURE_RENDERER (obj);
-
- switch (prop_id) {
- case PROP_LABEL:
- g_value_take_string (value, self->pv->label);
- break;
- case PROP_ATTRIBUTES:
- g_value_set_boxed (value, NULL);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_failure_renderer_class_init (GcrFailureRendererClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- g_type_class_add_private (klass, sizeof (GcrFailureRendererPrivate));
-
- gobject_class->finalize = gcr_failure_renderer_finalize;
- gobject_class->set_property = gcr_failure_renderer_set_property;
- gobject_class->get_property = gcr_failure_renderer_get_property;
-
- g_object_class_install_property (gobject_class, PROP_LABEL,
- g_param_spec_string ("label", "Label", "Failure Label",
- "", G_PARAM_READWRITE));
-
- g_object_class_install_property (gobject_class, PROP_ATTRIBUTES,
- g_param_spec_boxed ("attributes", "Attributes", "Renderer attributes",
- GCK_TYPE_ATTRIBUTES, G_PARAM_READWRITE));
-}
-
-static void
-gcr_failure_renderer_render (GcrRenderer *renderer,
- GcrViewer *viewer)
-{
- GcrFailureRenderer *self = GCR_FAILURE_RENDERER (renderer);
- GcrDisplayView *view;
- gchar *display;
- GIcon *icon;
-
- if (GCR_IS_DISPLAY_VIEW (viewer)) {
- view = GCR_DISPLAY_VIEW (viewer);
-
- } else {
- g_warning ("GcrFailureRenderer only works with internal specific "
- "GcrViewer returned by gcr_viewer_new().");
- return;
- }
-
- _gcr_display_view_begin (view, renderer);
-
- if (g_error_matches (self->pv->error, GCR_DATA_ERROR, GCR_ERROR_UNRECOGNIZED))
- icon = g_themed_icon_new ("dialog-warning");
- else
- icon = g_themed_icon_new ("dialog-error");
- _gcr_display_view_set_icon (view, renderer, icon);
- g_object_unref (icon);
-
- _gcr_display_view_append_title (view, renderer, self->pv->label);
-
- if (self->pv->label)
- display = g_strdup_printf (_("Could not display '%s'"), self->pv->label);
- else
- display = g_strdup (_("Could not display file"));
- _gcr_display_view_append_content (view, renderer, display, NULL);
- g_free (display);
-
- if (self->pv->error->message)
- _gcr_display_view_append_value (view, renderer, _("Reason"),
- self->pv->error->message, FALSE);
-
- _gcr_display_view_end (view, renderer);
-}
-
-static void
-gcr_renderer_iface_init (GcrRendererIface *iface)
-{
- iface->render_view = gcr_failure_renderer_render;
-}
-
-/**
- * gcr_failure_renderer_new:
- * @label: (allow-none): the label for the failure
- * @error: the error to display
- *
- * Create a new renderer for an error.
- *
- * Returns: (transfer full) (type Gcr.FailureRenderer): the new renderer
- */
-GcrRenderer *
-gcr_failure_renderer_new (const gchar *label,
- GError *error)
-{
- GcrFailureRenderer *renderer;
-
- renderer = g_object_new (GCR_TYPE_FAILURE_RENDERER,
- "label", label,
- NULL);
-
- renderer->pv->error = g_error_copy (error);
- return GCR_RENDERER (renderer);
-}
-
-/**
- * gcr_failure_renderer_new_unsupported:
- * @label: the label for the failure
- *
- * Create a new renderer for unsupported data.
- *
- * Returns: (transfer full): the new renderer
- */
-GcrRenderer *
-gcr_failure_renderer_new_unsupported (const gchar *label)
-{
- GcrRenderer *renderer;
- GError *error;
-
- error = g_error_new (GCR_DATA_ERROR, GCR_ERROR_UNRECOGNIZED,
- _("Cannot display a file of this type."));
-
- renderer = gcr_failure_renderer_new (label, error);
-
- g_error_free (error);
- return renderer;
-}
diff --git a/gcr/gcr-failure-renderer.h b/gcr/gcr-failure-renderer.h
deleted file mode 100644
index 9b70f36f..00000000
--- a/gcr/gcr-failure-renderer.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef __GCR_FAILURE_RENDERER_H__
-#define __GCR_FAILURE_RENDERER_H__
-
-#include <glib-object.h>
-#include <gtk/gtk.h>
-
-#include "gcr-renderer.h"
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_FAILURE_RENDERER (gcr_failure_renderer_get_type ())
-#define GCR_FAILURE_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_FAILURE_RENDERER, GcrFailureRenderer))
-#define GCR_FAILURE_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_FAILURE_RENDERER, GcrFailureRendererClass))
-#define GCR_IS_FAILURE_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_FAILURE_RENDERER))
-#define GCR_IS_FAILURE_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_FAILURE_RENDERER))
-#define GCR_FAILURE_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_FAILURE_RENDERER, GcrFailureRendererClass))
-
-typedef struct _GcrFailureRenderer GcrFailureRenderer;
-typedef struct _GcrFailureRendererClass GcrFailureRendererClass;
-typedef struct _GcrFailureRendererPrivate GcrFailureRendererPrivate;
-
-struct _GcrFailureRenderer {
- /*< private >*/
- GObject parent;
- GcrFailureRendererPrivate *pv;
-};
-
-struct _GcrFailureRendererClass {
- /*< private >*/
- GObjectClass parent_class;
-};
-
-GType gcr_failure_renderer_get_type (void);
-
-GcrRenderer * gcr_failure_renderer_new (const gchar *label,
- GError *error);
-
-GcrRenderer * gcr_failure_renderer_new_unsupported (const gchar *label);
-
-G_END_DECLS
-
-#endif /* __GCR_FAILURE_RENDERER_H__ */
diff --git a/gcr/gcr-fingerprint.c b/gcr/gcr-fingerprint.c
deleted file mode 100644
index 39d93195..00000000
--- a/gcr/gcr-fingerprint.c
+++ /dev/null
@@ -1,384 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General License for more details.
- *
- * You should have received a copy of the GNU Lesser General
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-fingerprint.h"
-#include "gcr-oids.h"
-
-#include "egg/egg-asn1x.h"
-#include "egg/egg-asn1-defs.h"
-
-#include <glib.h>
-#include <gcrypt.h>
-
-/**
- * SECTION:gcr-fingerprint
- * @title: Key Fingerprints
- * @short_description: Fingerprints for public and private keys
- *
- * These functions generate key fingerprints for public keys, certificates and
- * key data. The fingerprints are created so that they they will be identical
- * for a key and its corresponding certificate.
- *
- * Note that in the case of certificates these are not fingerprints of the
- * actual certificate data, but rather of the public key contained in a
- * certificate.
- *
- * These fingerprints are created using the subjectPublicKeyInfo ASN.1 structure.
- */
-
-/**
- * gcr_fingerprint_from_subject_public_key_info:
- * @key_info: (array length=n_key_info): DER encoded subjectPublicKeyInfo structure
- * @n_key_info: length of DER encoded structure
- * @checksum_type: the type of fingerprint to create
- * @n_fingerprint: the length of fingerprint returned
- *
- * Create a key fingerprint for a DER encoded subjectPublicKeyInfo.
- *
- * Returns: (transfer full) (allow-none) (array length=n_fingerprint): the
- * fingerprint or %NULL if the input was invalid.
- */
-guchar *
-gcr_fingerprint_from_subject_public_key_info (const guchar *key_info,
- gsize n_key_info,
- GChecksumType checksum_type,
- gsize *n_fingerprint)
-{
- GChecksum *check;
- guint8 *fingerprint;
-
- g_return_val_if_fail (key_info, NULL);
- g_return_val_if_fail (n_key_info, NULL);
- g_return_val_if_fail (n_fingerprint, NULL);
-
- check = g_checksum_new (checksum_type);
- g_return_val_if_fail (check, NULL);
-
- g_checksum_update (check, key_info, n_key_info);
-
- *n_fingerprint = g_checksum_type_get_length (checksum_type);
- fingerprint = g_malloc (*n_fingerprint);
- g_checksum_get_digest (check, fingerprint, n_fingerprint);
-
- g_checksum_free (check);
- return fingerprint;
-}
-
-static gboolean
-rsa_subject_public_key_from_attributes (GckAttributes *attrs, GNode *info_asn)
-{
- GckAttribute *modulus;
- GckAttribute *exponent;
- GNode *key_asn;
- GNode *params_asn;
- gpointer key, params;
- gsize n_key, n_params;
-
- _gcr_oids_init ();
-
- modulus = gck_attributes_find (attrs, CKA_MODULUS);
- exponent = gck_attributes_find (attrs, CKA_PUBLIC_EXPONENT);
- if (modulus == NULL || exponent == NULL)
- return FALSE;
-
- key_asn = egg_asn1x_create (pk_asn1_tab, "RSAPublicKey");
- g_return_val_if_fail (key_asn, FALSE);
-
- params_asn = egg_asn1x_create (pk_asn1_tab, "RSAParameters");
- g_return_val_if_fail (params_asn, FALSE);
-
- egg_asn1x_set_integer_as_usg (egg_asn1x_node (key_asn, "modulus", NULL),
- modulus->value, modulus->length, NULL);
-
- egg_asn1x_set_integer_as_usg (egg_asn1x_node (key_asn, "publicExponent", NULL),
- exponent->value, exponent->length, NULL);
-
- key = egg_asn1x_encode (key_asn, g_realloc, &n_key);
- egg_asn1x_destroy (key_asn);
-
- egg_asn1x_set_null (params_asn);
-
- params = egg_asn1x_encode (params_asn, g_realloc, &n_params);
- egg_asn1x_destroy (params_asn);
-
- egg_asn1x_set_bits_as_raw (egg_asn1x_node (info_asn, "subjectPublicKey", NULL),
- key, n_key * 8, g_free);
-
- egg_asn1x_set_oid_as_quark (egg_asn1x_node (info_asn, "algorithm", "algorithm", NULL), GCR_OID_PKIX1_RSA);
- egg_asn1x_set_raw_element (egg_asn1x_node (info_asn, "algorithm", "parameters", NULL),
- params, n_params, g_free);
-
- return TRUE;
-}
-
-static gboolean
-dsa_subject_public_key_from_private (GNode *key_asn, GckAttribute *ap,
- GckAttribute *aq, GckAttribute *ag, GckAttribute *ax)
-{
- gcry_mpi_t mp, mq, mg, mx, my;
- size_t n_buffer;
- gcry_error_t gcry;
- unsigned char *buffer;
-
- gcry = gcry_mpi_scan (&mp, GCRYMPI_FMT_USG, ap->value, ap->length, NULL);
- g_return_val_if_fail (gcry == 0, FALSE);
-
- gcry = gcry_mpi_scan (&mq, GCRYMPI_FMT_USG, aq->value, aq->length, NULL);
- g_return_val_if_fail (gcry == 0, FALSE);
-
- gcry = gcry_mpi_scan (&mg, GCRYMPI_FMT_USG, ag->value, ag->length, NULL);
- g_return_val_if_fail (gcry == 0, FALSE);
-
- gcry = gcry_mpi_scan (&mx, GCRYMPI_FMT_USG, ax->value, ax->length, NULL);
- g_return_val_if_fail (gcry == 0, FALSE);
-
- /* Calculate the public part from the private */
- my = gcry_mpi_snew (gcry_mpi_get_nbits (mx));
- g_return_val_if_fail (my, FALSE);
- gcry_mpi_powm (my, mg, mx, mp);
-
- gcry = gcry_mpi_aprint (GCRYMPI_FMT_STD, &buffer, &n_buffer, my);
- g_return_val_if_fail (gcry == 0, FALSE);
- egg_asn1x_set_integer_as_raw (key_asn, buffer, n_buffer, gcry_free);
-
- gcry_mpi_release (mp);
- gcry_mpi_release (mq);
- gcry_mpi_release (mg);
- gcry_mpi_release (mx);
- gcry_mpi_release (my);
-
- return TRUE;
-}
-
-static gboolean
-dsa_subject_public_key_from_attributes (GckAttributes *attrs,
- gulong klass,
- GNode *info_asn)
-{
- GckAttribute *value, *g, *q, *p;
- GNode *key_asn, *params_asn;
- gpointer key, params;
- gsize n_key, n_params;
-
- _gcr_oids_init ();
-
- p = gck_attributes_find (attrs, CKA_PRIME);
- q = gck_attributes_find (attrs, CKA_SUBPRIME);
- g = gck_attributes_find (attrs, CKA_BASE);
- value = gck_attributes_find (attrs, CKA_VALUE);
-
- if (p == NULL || q == NULL || g == NULL || value == NULL)
- return FALSE;
-
- key_asn = egg_asn1x_create (pk_asn1_tab, "DSAPublicPart");
- g_return_val_if_fail (key_asn, FALSE);
-
- params_asn = egg_asn1x_create (pk_asn1_tab, "DSAParameters");
- g_return_val_if_fail (params_asn, FALSE);
-
- egg_asn1x_set_integer_as_usg (egg_asn1x_node (params_asn, "p", NULL), p->value, p->length, NULL);
- egg_asn1x_set_integer_as_usg (egg_asn1x_node (params_asn, "q", NULL), q->value, q->length, NULL);
- egg_asn1x_set_integer_as_usg (egg_asn1x_node (params_asn, "g", NULL), g->value, g->length, NULL);
-
- /* Are these attributes for a public or private key? */
- if (klass == CKO_PRIVATE_KEY) {
-
- /* We need to calculate the public from the private key */
- if (!dsa_subject_public_key_from_private (key_asn, p, q, g, value))
- g_return_val_if_reached (FALSE);
-
- } else if (klass == CKO_PUBLIC_KEY) {
- egg_asn1x_set_integer_as_usg (key_asn, value->value, value->length, NULL);
-
- } else {
- g_assert_not_reached ();
- }
-
- key = egg_asn1x_encode (key_asn, g_realloc, &n_key);
- egg_asn1x_destroy (key_asn);
-
- params = egg_asn1x_encode (params_asn, g_realloc, &n_params);
- egg_asn1x_destroy (params_asn);
-
- egg_asn1x_set_bits_as_raw (egg_asn1x_node (info_asn, "subjectPublicKey", NULL),
- key, n_key * 8, g_free);
- egg_asn1x_set_raw_element (egg_asn1x_node (info_asn, "algorithm", "parameters", NULL),
- params, n_params, g_free);
-
- egg_asn1x_set_oid_as_quark (egg_asn1x_node (info_asn, "algorithm", "algorithm", NULL), GCR_OID_PKIX1_DSA);
-
- return TRUE;
-}
-
-static gpointer
-fingerprint_from_key_attributes (GckAttributes *attrs,
- gulong klass,
- GChecksumType checksum_type,
- gsize *n_fingerprint)
-{
- gpointer fingerprint = NULL;
- gboolean ret = FALSE;
- GNode *info_asn;
- gpointer info;
- gulong key_type;
- gsize n_info;
-
- if (!gck_attributes_find_ulong (attrs, CKA_KEY_TYPE, &key_type))
- return NULL;
-
- info_asn = egg_asn1x_create (pkix_asn1_tab, "SubjectPublicKeyInfo");
- g_return_val_if_fail (info_asn, NULL);
-
- if (key_type == CKK_RSA)
- ret = rsa_subject_public_key_from_attributes (attrs, info_asn);
-
- else if (key_type == CKK_DSA)
- ret = dsa_subject_public_key_from_attributes (attrs, klass, info_asn);
-
- else
- ret = FALSE;
-
- if (ret) {
- info = egg_asn1x_encode (info_asn, g_realloc, &n_info);
- fingerprint = gcr_fingerprint_from_subject_public_key_info (info, n_info,
- checksum_type,
- n_fingerprint);
- g_free (info);
- }
-
- egg_asn1x_destroy (info_asn);
- return fingerprint;
-}
-
-static guchar *
-fingerprint_from_cert_value (const guchar *der_data,
- gsize n_der_data,
- GChecksumType checksum_type,
- gsize *n_fingerprint)
-{
- guchar *fingerprint;
- GNode *cert_asn;
- gconstpointer info;
- gsize n_info;
-
- cert_asn = egg_asn1x_create_and_decode (pkix_asn1_tab, "Certificate",
- der_data, n_der_data);
- if (cert_asn == NULL)
- return NULL;
-
- info = egg_asn1x_get_raw_element (egg_asn1x_node (cert_asn, "tbsCertificate", "subjectPublicKeyInfo", NULL), &n_info);
- g_return_val_if_fail (info != NULL, NULL);
-
- fingerprint = gcr_fingerprint_from_subject_public_key_info (info, n_info,
- checksum_type,
- n_fingerprint);
-
- egg_asn1x_destroy (cert_asn);
- return fingerprint;
-}
-
-static guchar *
-fingerprint_from_cert_attributes (GckAttributes *attrs,
- GChecksumType checksum_type,
- gsize *n_fingerprint)
-{
- GckAttribute *attr;
-
- attr = gck_attributes_find (attrs, CKA_VALUE);
- if (attr == NULL)
- return NULL;
-
- return fingerprint_from_cert_value (attr->value, attr->length, checksum_type,
- n_fingerprint);
-}
-
-/**
- * gcr_fingerprint_from_attributes:
- * @attrs: attributes for key or certificate
- * @checksum_type: the type of fingerprint to create
- * @n_fingerprint: the length of fingerprint returned
- *
- * Create a key fingerprint for a certificate, public key or private key.
- * Note that this is not a fingerprint of certificate data, which you would
- * use gcr_certificate_get_fingerprint() for.
- *
- * Returns: (transfer full) (allow-none) (array length=n_fingerprint): the
- * fingerprint or %NULL if the input was invalid.
- */
-guchar *
-gcr_fingerprint_from_attributes (GckAttributes *attrs,
- GChecksumType checksum_type,
- gsize *n_fingerprint)
-{
- gulong klass;
-
- g_return_val_if_fail (attrs, FALSE);
- g_return_val_if_fail (n_fingerprint, FALSE);
-
- if (!gck_attributes_find_ulong (attrs, CKA_CLASS, &klass))
- return NULL;
-
- if (klass == CKO_CERTIFICATE)
- return fingerprint_from_cert_attributes (attrs, checksum_type,
- n_fingerprint);
-
- else if (klass == CKO_PUBLIC_KEY || klass == CKO_PRIVATE_KEY)
- return fingerprint_from_key_attributes (attrs, klass,
- checksum_type,
- n_fingerprint);
-
- else
- return NULL;
-}
-
-/**
- * gcr_fingerprint_from_certificate_public_key:
- * @certificate: the certificate
- * @checksum_type: the type of fingerprint to create
- * @n_fingerprint: the length of fingerprint returned
- *
- * Create a key fingerprint for a certificate's public key. Note that this is
- * not a fingerprint of certificate data, which you would use
- * gcr_certificate_get_fingerprint() for.
- *
- * Returns: (transfer full) (allow-none) (array length=n_fingerprint): the
- * fingerprint or %NULL if the input was invalid.
- */
-guchar *
-gcr_fingerprint_from_certificate_public_key (GcrCertificate *certificate,
- GChecksumType checksum_type,
- gsize *n_fingerprint)
-{
- const guchar *der_data;
- gsize n_der_data;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (certificate), NULL);
-
- der_data = gcr_certificate_get_der_data (certificate, &n_der_data);
- g_return_val_if_fail (der_data != NULL, NULL);
-
- return fingerprint_from_cert_value (der_data, n_der_data, checksum_type,
- n_fingerprint);
-}
diff --git a/gcr/gcr-fingerprint.h b/gcr/gcr-fingerprint.h
deleted file mode 100644
index 84cc41f9..00000000
--- a/gcr/gcr-fingerprint.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General License for more details.
- *
- * You should have received a copy of the GNU Lesser General
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef GCR_FINGERPRINT_H
-#define GCR_FINGERPRINT_H
-
-#include <glib.h>
-
-#include "gcr-types.h"
-#include "gcr-certificate.h"
-
-guchar * gcr_fingerprint_from_subject_public_key_info (const guchar *key_info,
- gsize n_key_info,
- GChecksumType checksum_type,
- gsize *n_fingerprint);
-
-guchar * gcr_fingerprint_from_attributes (GckAttributes *attrs,
- GChecksumType checksum_type,
- gsize *n_fingerprint);
-
-guchar * gcr_fingerprint_from_certificate_public_key (GcrCertificate *certificate,
- GChecksumType checksum_type,
- gsize *n_fingerprint);
-
-#endif /* GCR_FINGERPRINT_H_ */
diff --git a/gcr/gcr-gnupg-collection.c b/gcr/gcr-gnupg-collection.c
deleted file mode 100644
index fe730a20..00000000
--- a/gcr/gcr-gnupg-collection.c
+++ /dev/null
@@ -1,754 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-callback-output-stream.h"
-#include "gcr-collection.h"
-#define DEBUG_FLAG GCR_DEBUG_GNUPG
-#include "gcr-debug.h"
-#include "gcr-gnupg-collection.h"
-#include "gcr-gnupg-key.h"
-#include "gcr-gnupg-process.h"
-#include "gcr-gnupg-records.h"
-#include "gcr-gnupg-util.h"
-#include "gcr-internal.h"
-#include "gcr-record.h"
-#include "gcr-util.h"
-
-#include <sys/wait.h>
-#include <string.h>
-
-enum {
- PROP_0,
- PROP_DIRECTORY
-};
-
-struct _GcrGnupgCollectionPrivate {
- GHashTable *items; /* char *keyid -> GcrGnupgKey* */
- gchar *directory;
-};
-
-/* Forward declarations */
-static void _gcr_collection_iface (GcrCollectionIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (GcrGnupgCollection, _gcr_gnupg_collection, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (GCR_TYPE_COLLECTION, _gcr_collection_iface)
-);
-
-
-static void
-_gcr_gnupg_collection_init (GcrGnupgCollection *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_GNUPG_COLLECTION,
- GcrGnupgCollectionPrivate);
-
- self->pv->items = g_hash_table_new_full (g_str_hash, g_str_equal,
- g_free, g_object_unref);
-}
-
-static void
-_gcr_gnupg_collection_set_property (GObject *obj, guint prop_id, const GValue *value,
- GParamSpec *pspec)
-{
- GcrGnupgCollection *self = GCR_GNUPG_COLLECTION (obj);
-
- switch (prop_id) {
- case PROP_DIRECTORY:
- g_return_if_fail (!self->pv->directory);
- self->pv->directory = g_value_dup_string (value);
- if (self->pv->directory && !g_path_is_absolute (self->pv->directory)) {
- g_warning ("gnupg collection directory path should be absolute: %s",
- self->pv->directory);
- }
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-_gcr_gnupg_collection_get_property (GObject *obj, guint prop_id, GValue *value,
- GParamSpec *pspec)
-{
- GcrGnupgCollection *self = GCR_GNUPG_COLLECTION (obj);
-
- switch (prop_id) {
- case PROP_DIRECTORY:
- g_value_set_string (value, self->pv->directory);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-_gcr_gnupg_collection_dispose (GObject *obj)
-{
- GcrGnupgCollection *self = GCR_GNUPG_COLLECTION (obj);
-
- g_hash_table_remove_all (self->pv->items);
-
- G_OBJECT_CLASS (_gcr_gnupg_collection_parent_class)->dispose (obj);
-}
-
-static void
-_gcr_gnupg_collection_finalize (GObject *obj)
-{
- GcrGnupgCollection *self = GCR_GNUPG_COLLECTION (obj);
-
- g_assert (self->pv->items);
- g_assert (g_hash_table_size (self->pv->items) == 0);
- g_hash_table_destroy (self->pv->items);
- self->pv->items = NULL;
-
- g_free (self->pv->directory);
- self->pv->directory = NULL;
-
- G_OBJECT_CLASS (_gcr_gnupg_collection_parent_class)->finalize (obj);
-}
-
-static void
-_gcr_gnupg_collection_class_init (GcrGnupgCollectionClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- gobject_class->get_property = _gcr_gnupg_collection_get_property;
- gobject_class->set_property = _gcr_gnupg_collection_set_property;
- gobject_class->dispose = _gcr_gnupg_collection_dispose;
- gobject_class->finalize = _gcr_gnupg_collection_finalize;
-
- /**
- * GcrGnupgCollection:directory:
- *
- * Directory to load the gnupg keys from, or %NULL for default
- * ~/.gnupg/ directory.
- */
- g_object_class_install_property (gobject_class, PROP_DIRECTORY,
- g_param_spec_string ("directory", "Directory", "Gnupg Directory",
- NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- g_type_class_add_private (gobject_class, sizeof (GcrGnupgCollectionPrivate));
- _gcr_initialize_library ();
-}
-
-static guint
-gcr_gnupg_collection_real_get_length (GcrCollection *coll)
-{
- GcrGnupgCollection *self = GCR_GNUPG_COLLECTION (coll);
- return g_hash_table_size (self->pv->items);
-}
-
-static GList*
-gcr_gnupg_collection_real_get_objects (GcrCollection *coll)
-{
- GcrGnupgCollection *self = GCR_GNUPG_COLLECTION (coll);
- return g_hash_table_get_values (self->pv->items);
-}
-
-static gboolean
-gcr_gnupg_collection_real_contains (GcrCollection *collection,
- GObject *object)
-{
- GcrGnupgCollection *self = GCR_GNUPG_COLLECTION (collection);
- GcrGnupgKey *key;
-
- if (!GCR_IS_GNUPG_KEY (object))
- return FALSE;
- key = g_hash_table_lookup (self->pv->items,
- _gcr_gnupg_key_get_keyid (GCR_GNUPG_KEY (object)));
- if (key != NULL && G_OBJECT (key) == object)
- return TRUE;
- return FALSE;
-}
-
-static void
-_gcr_collection_iface (GcrCollectionIface *iface)
-{
- iface->get_length = gcr_gnupg_collection_real_get_length;
- iface->get_objects = gcr_gnupg_collection_real_get_objects;
- iface->contains = gcr_gnupg_collection_real_contains;
-}
-
-/**
- * _gcr_gnupg_collection_new:
- * @directory: (allow-none): The gnupg home directory.
- *
- * Create a new GcrGnupgCollection.
- *
- * The gnupg home directory is where the keyring files live. If directory is
- * %NULL then the default gnupg home directory is used.
- *
- * Returns: (transfer full) (type Gcr.GnupgCollection): A newly allocated collection.
- */
-GcrCollection*
-_gcr_gnupg_collection_new (const gchar *directory)
-{
- return g_object_new (GCR_TYPE_GNUPG_COLLECTION,
- "directory", directory,
- NULL);
-}
-
-/*
- * We have to run the gnupg process twice to list the public and then the
- * secret keys. These phases are tracked by GcrLoadingPhase. If the first
- * phase completes successfully (using gpg --list-keys) then we move on to
- * the second phase where the secret keys are loaded (using gpg --list-secret-keys)
- *
- * If a key is loaded as a public key by the public phase, it can be updated by
- * the secret phase. A key discovered in the secret phase must have a public
- * counterpart already loaded by the public phase.
- */
-
-typedef enum {
- GCR_LOADING_PHASE_PUBLIC = 1,
- GCR_LOADING_PHASE_SECRET = 2,
-} GcrLoadingPhase;
-
-/*
- * We use @difference to track the keys that were in the collection before
- * the load process, and then remove any not found, at the end of the load
- * process. Strings are directly used from collection->pv->items keys.
- */
-
-typedef struct {
- GcrGnupgCollection *collection; /* reffed pointer back to collection */
- GcrLoadingPhase loading_phase; /* Whether loading public or private */
- GPtrArray *records; /* GcrRecord* not yet made into a key */
- GcrGnupgProcess *process; /* The gnupg process itself */
- GCancellable *cancel; /* Cancellation for process */
- GString *out_data; /* Pending output not yet parsed into colons */
- GHashTable *difference; /* Hashset gchar *keyid -> gchar *keyid */
-
- guint error_sig;
- guint status_sig;
- GOutputStream *output;
- GOutputStream *outattr;
-
- GQueue *attribute_queue; /* Queue of unprocessed GcrRecord* status records */
- GByteArray *attribute_buf; /* Buffer of unprocessed attribute data received */
- GHashTable *attributes; /* Processed attributes waiting for a matching key */
-} GcrGnupgCollectionLoad;
-
-/* Forward declarations */
-static void spawn_gnupg_list_process (GcrGnupgCollectionLoad *load, GSimpleAsyncResult *res);
-
-static void
-_gcr_gnupg_collection_load_free (gpointer data)
-{
- GcrGnupgCollectionLoad *load = data;
- g_assert (load);
-
- g_ptr_array_unref (load->records);
- g_string_free (load->out_data, TRUE);
- g_hash_table_destroy (load->difference);
- g_object_unref (load->collection);
-
- if (load->process) {
- if (load->error_sig)
- g_signal_handler_disconnect (load->process, load->error_sig);
- if (load->status_sig)
- g_signal_handler_disconnect (load->process, load->status_sig);
- g_object_unref (load->process);
- }
-
- g_output_stream_close (load->output, NULL, NULL);
- g_object_unref (load->output);
- g_output_stream_close (load->outattr, NULL, NULL);
- g_object_unref (load->outattr);
-
- if (load->cancel)
- g_object_unref (load->cancel);
-
- if (load->attribute_queue) {
- while (!g_queue_is_empty (load->attribute_queue))
- _gcr_record_free (g_queue_pop_head (load->attribute_queue));
- g_queue_free (load->attribute_queue);
- }
- if (load->attribute_buf)
- g_byte_array_unref (load->attribute_buf);
- if (load->attributes)
- g_hash_table_destroy (load->attributes);
-
- g_slice_free (GcrGnupgCollectionLoad, load);
-}
-
-static void
-process_records_as_public_key (GcrGnupgCollectionLoad *load, GPtrArray *records,
- const gchar *keyid)
-{
- GPtrArray *attr_records = NULL;
- const gchar *fingerprint;
- gchar *orig_fingerprint;
- GcrGnupgKey *key;
- guint i;
-
- /* Add in any attributes we have loaded */
- fingerprint = _gcr_gnupg_records_get_fingerprint (records);
- if (fingerprint && load->attributes)
- attr_records = g_hash_table_lookup (load->attributes, fingerprint);
- if (attr_records) {
- _gcr_debug ("adding %d user id attribute(s) to key/fingerprint: %s/%s",
- (gint)attr_records->len, keyid, fingerprint);
-
- if (!g_hash_table_lookup_extended (load->attributes, fingerprint,
- (gpointer*)&orig_fingerprint, NULL))
- g_assert_not_reached ();
- if (!g_hash_table_steal (load->attributes, fingerprint))
- g_assert_not_reached ();
- g_free (orig_fingerprint);
-
- /* Move all the attribute records over to main records set */
- for (i = 0; i < attr_records->len; i++)
- g_ptr_array_add (records, attr_records->pdata[i]);
-
- /* Shallow free of attr_records array */
- g_free (g_ptr_array_free (attr_records, FALSE));
- }
-
- /* Note that we've seen this keyid */
- g_hash_table_remove (load->difference, keyid);
-
- key = g_hash_table_lookup (load->collection->pv->items, keyid);
-
- /* Already have this key, just update */
- if (key) {
- _gcr_debug ("updating public key: %s", keyid);
- _gcr_gnupg_key_set_public_records (key, records);
-
- /* Add a new key */
- } else {
- key = _gcr_gnupg_key_new (records, NULL);
- _gcr_debug ("creating public key: %s", keyid);
- g_hash_table_insert (load->collection->pv->items, g_strdup (keyid), key);
- gcr_collection_emit_added (GCR_COLLECTION (load->collection), G_OBJECT (key));
- }
-}
-
-static void
-process_records_as_secret_key (GcrGnupgCollectionLoad *load, GPtrArray *records,
- const gchar *keyid)
-{
- GcrGnupgKey *key;
-
- key = g_hash_table_lookup (load->collection->pv->items, keyid);
-
- /* Don't have this key */
- if (key == NULL) {
- g_message ("Secret key seen but no public key for: %s", keyid);
-
- /* Tell the private key that it's a secret one */
- } else {
- _gcr_debug ("adding secret records to key: %s", keyid);
- _gcr_gnupg_key_set_secret_records (key, records);
- }
-}
-
-static void
-process_records_as_key (GcrGnupgCollectionLoad *load)
-{
- GPtrArray *records;
- const gchar *keyid;
- GQuark schema;
-
- g_assert (load->records->len);
-
- records = load->records;
- load->records = g_ptr_array_new_with_free_func (_gcr_record_free);
-
- keyid = _gcr_gnupg_records_get_keyid (records);
- if (keyid) {
- schema = _gcr_record_get_schema (records->pdata[0]);
-
- /* A public key */
- if (schema == GCR_RECORD_SCHEMA_PUB)
- process_records_as_public_key (load, records, keyid);
-
- /* A secret key */
- else if (schema == GCR_RECORD_SCHEMA_SEC)
- process_records_as_secret_key (load, records, keyid);
-
- else
- g_assert_not_reached ();
-
- } else {
- g_warning ("parsed gnupg data had no keyid");
- }
-
- g_ptr_array_unref (records);
-}
-
-static gboolean
-process_outstanding_attribute (GcrGnupgCollectionLoad *load, GcrRecord *record)
-{
- const gchar *fingerprint;
- GPtrArray *records;
- GcrRecord *xa1;
- guint length;
-
- if (!_gcr_record_get_uint (record, GCR_RECORD_ATTRIBUTE_LENGTH, &length))
- g_return_val_if_reached (FALSE);
- fingerprint = _gcr_record_get_raw (record, GCR_RECORD_ATTRIBUTE_KEY_FINGERPRINT);
- g_return_val_if_fail (fingerprint != NULL, FALSE);
-
- /* Do we have enough data for this attribute? */
- if (!load->attribute_buf || load->attribute_buf->len < length) {
- _gcr_debug ("not enough attribute data in buffer: %u", length);
- return FALSE;
- }
-
- if (!load->attributes)
- load->attributes = g_hash_table_new_full (g_str_hash, g_str_equal,
- g_free, (GDestroyNotify)g_ptr_array_unref);
-
- records = g_hash_table_lookup (load->attributes, fingerprint);
- if (!records) {
- records = g_ptr_array_new_with_free_func (_gcr_record_free);
- g_hash_table_insert (load->attributes, g_strdup (fingerprint), records);
- }
-
- _gcr_debug ("new attribute of length %d for key with fingerprint %s",
- length, fingerprint);
-
- xa1 = _gcr_gnupg_build_xa1_record (record, load->attribute_buf->data, length);
- g_ptr_array_add (records, xa1);
-
- /* Did we use up all the attribute data? Get rid of the buffer */
- if (length == load->attribute_buf->len) {
- g_byte_array_unref (load->attribute_buf);
- load->attribute_buf = NULL;
-
- /* Otherwise clear out the used data from buffer */
- } else {
- g_byte_array_remove_range (load->attribute_buf, 0, length);
- }
-
- return TRUE;
-}
-
-static void
-process_outstanding_attributes (GcrGnupgCollectionLoad *load)
-{
- GcrRecord *record;
-
- if (load->attribute_queue == NULL)
- return;
-
- _gcr_debug ("%d outstanding attribute records",
- (gint)g_queue_get_length (load->attribute_queue));
-
- for (;;) {
- record = g_queue_peek_head (load->attribute_queue);
- if (record == NULL)
- break;
- if (!process_outstanding_attribute (load, record))
- break;
- g_queue_pop_head (load->attribute_queue);
- _gcr_record_free (record);
- }
-}
-
-static void
-on_line_parse_output (const gchar *line, gpointer user_data)
-{
- GcrGnupgCollectionLoad *load = user_data;
- GcrRecord *record;
- GQuark schema;
-
- _gcr_debug ("output: %s", line);
-
- record = _gcr_record_parse_colons (line, -1);
- if (!record) {
- g_warning ("invalid gnupg output line: %s", line);
- return;
- }
-
- schema = _gcr_record_get_schema (record);
-
- /*
- * Each time we see a line with 'pub' or 'sec' schema we assume that
- * it's a new key being listed.
- */
- if (schema == GCR_RECORD_SCHEMA_PUB || schema == GCR_RECORD_SCHEMA_SEC) {
- _gcr_debug ("start of new key");
- if (load->records->len)
- process_records_as_key (load);
- g_assert (!load->records->len);
- g_ptr_array_add (load->records, record);
- record = NULL;
-
- /*
- * 'uid' and 'fpr' schema lines get added to the key that came before.
- */
- } else if (schema == GCR_RECORD_SCHEMA_UID ||
- schema == GCR_RECORD_SCHEMA_FPR) {
- if (load->records->len) {
- g_ptr_array_add (load->records, record);
- record = NULL;
- }
- }
-
- if (record != NULL)
- _gcr_record_free (record);
-}
-
-
-static gssize
-on_gnupg_process_output_data (gconstpointer buffer,
- gsize count,
- GCancellable *cancellable,
- gpointer user_data,
- GError **error)
-{
- GSimpleAsyncResult *res = G_SIMPLE_ASYNC_RESULT (user_data);
- GcrGnupgCollectionLoad *load = g_simple_async_result_get_op_res_gpointer (res);
-
- g_string_append_len (load->out_data, buffer, count);
- _gcr_util_parse_lines (load->out_data, FALSE, on_line_parse_output, load);
- return count;
-}
-
-static void
-on_gnupg_process_error_line (GcrGnupgProcess *process, const gchar *line,
- gpointer user_data)
-{
- g_printerr ("%s\n", line);
-}
-
-static void
-on_gnupg_process_status_record (GcrGnupgProcess *process, GcrRecord *record,
- gpointer user_data)
-{
- GSimpleAsyncResult *res = G_SIMPLE_ASYNC_RESULT (user_data);
- GcrGnupgCollectionLoad *load = g_simple_async_result_get_op_res_gpointer (res);
-
- if (GCR_RECORD_SCHEMA_ATTRIBUTE != _gcr_record_get_schema (record))
- return;
-
- if (!load->attribute_queue)
- load->attribute_queue = g_queue_new ();
-
- g_queue_push_tail (load->attribute_queue, _gcr_record_copy (record));
- process_outstanding_attributes (load);
-}
-
-static gssize
-on_gnupg_process_attribute_data (gconstpointer buffer,
- gsize count,
- GCancellable *cancellable,
- gpointer user_data,
- GError **error)
-{
- GSimpleAsyncResult *res = G_SIMPLE_ASYNC_RESULT (user_data);
- GcrGnupgCollectionLoad *load = g_simple_async_result_get_op_res_gpointer (res);
-
- /* If we don't have a buffer, just claim this one */
- if (!load->attribute_buf)
- load->attribute_buf = g_byte_array_new ();
-
- g_byte_array_append (load->attribute_buf, buffer, count);
-
- process_outstanding_attributes (load);
- return count;
-}
-
-static void
-on_gnupg_process_completed (GObject *source, GAsyncResult *result, gpointer user_data)
-{
- GSimpleAsyncResult *res = G_SIMPLE_ASYNC_RESULT (user_data);
- GcrGnupgCollectionLoad *load = g_simple_async_result_get_op_res_gpointer (res);
- GHashTableIter iter;
- GError *error = NULL;
- GObject *object;
- gpointer keyid;
-
- if (!_gcr_gnupg_process_run_finish (GCR_GNUPG_PROCESS (source), result, &error)) {
- g_simple_async_result_set_from_error (res, error);
- g_simple_async_result_complete (res);
- g_object_unref (res);
- g_clear_error (&error);
- return;
- }
-
- /* Process any remaining output */
- _gcr_util_parse_lines (load->out_data, TRUE, on_line_parse_output, load);
-
- /* Process last bit as a key, if any */
- if (load->records->len)
- process_records_as_key (load);
-
- /* If we completed loading public keys, then go and load secret */
- switch (load->loading_phase) {
- case GCR_LOADING_PHASE_PUBLIC:
- _gcr_debug ("public load phase completed");
- load->loading_phase = GCR_LOADING_PHASE_SECRET;
- spawn_gnupg_list_process (load, res);
- g_object_unref (res);
- return;
- case GCR_LOADING_PHASE_SECRET:
- _gcr_debug ("secret load phase completed");
- /* continue below */
- break;
- default:
- g_assert_not_reached ();
- }
-
- /* Remove any keys that we still have in the difference */
- g_hash_table_iter_init (&iter, load->difference);
- while (g_hash_table_iter_next (&iter, &keyid, NULL)) {
- object = g_hash_table_lookup (load->collection->pv->items, keyid);
- if (object != NULL) {
- g_object_ref (object);
- _gcr_debug ("removing key no longer present in keyring: %s", (gchar*)keyid);
- g_hash_table_remove (load->collection->pv->items, keyid);
- gcr_collection_emit_removed (GCR_COLLECTION (load->collection), object);
- g_object_unref (object);
- }
- }
-
- g_simple_async_result_complete (res);
- g_object_unref (res);
-}
-
-static void
-spawn_gnupg_list_process (GcrGnupgCollectionLoad *load, GSimpleAsyncResult *res)
-{
- GcrGnupgProcessFlags flags = 0;
- GPtrArray *argv;
-
- argv = g_ptr_array_new ();
-
- switch (load->loading_phase) {
- case GCR_LOADING_PHASE_PUBLIC:
- _gcr_debug ("starting public load phase");
- g_ptr_array_add (argv, (gpointer)"--list-keys");
- /* Load photos in public phase */
- flags = GCR_GNUPG_PROCESS_WITH_ATTRIBUTES |
- GCR_GNUPG_PROCESS_WITH_STATUS;
- break;
- case GCR_LOADING_PHASE_SECRET:
- _gcr_debug ("starting secret load phase");
- g_ptr_array_add (argv, (gpointer)"--list-secret-keys");
- break;
- default:
- g_assert_not_reached ();
- }
-
- g_ptr_array_add (argv, (gpointer)"--fixed-list-mode");
- g_ptr_array_add (argv, (gpointer)"--with-colons");
- g_ptr_array_add (argv, (gpointer)"--with-fingerprint");
- g_ptr_array_add (argv, NULL);
-
- /* res is unreffed in on_gnupg_process_completed */
- _gcr_gnupg_process_run_async (load->process, (const gchar**)argv->pdata, NULL, flags,
- load->cancel, on_gnupg_process_completed,
- g_object_ref (res));
-
- g_ptr_array_unref (argv);
-}
-
-/**
- * _gcr_gnupg_collection_load_async:
- * @self: The collection
- * @cancellable: Cancellation object or %NULL
- * @callback: Callback to call when result is ready
- * @user_data: Data for callback
- *
- * Start an operation to load or reload the list of gnupg keys in this
- * collection.
- */
-void
-_gcr_gnupg_collection_load_async (GcrGnupgCollection *self, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- GSimpleAsyncResult *res;
- GcrGnupgCollectionLoad *load;
- GHashTableIter iter;
- gpointer keyid;
-
- g_return_if_fail (GCR_IS_GNUPG_COLLECTION (self));
-
- /* TODO: Cancellation not yet implemented */
-
- res = g_simple_async_result_new (G_OBJECT (self), callback, user_data,
- _gcr_gnupg_collection_load_async);
-
- load = g_slice_new0 (GcrGnupgCollectionLoad);
- load->records = g_ptr_array_new_with_free_func (_gcr_record_free);
- load->out_data = g_string_sized_new (1024);
- load->collection = g_object_ref (self);
- load->cancel = cancellable ? g_object_ref (cancellable) : cancellable;
-
- load->output = _gcr_callback_output_stream_new (on_gnupg_process_output_data, res, NULL);
- load->outattr = _gcr_callback_output_stream_new (on_gnupg_process_attribute_data, res, NULL);
-
- load->process = _gcr_gnupg_process_new (self->pv->directory, NULL);
- _gcr_gnupg_process_set_output_stream (load->process, load->output);
- _gcr_gnupg_process_set_attribute_stream (load->process, load->outattr);
- load->error_sig = g_signal_connect (load->process, "error-line", G_CALLBACK (on_gnupg_process_error_line), res);
- load->status_sig = g_signal_connect (load->process, "status-record", G_CALLBACK (on_gnupg_process_status_record), res);
-
- /*
- * Track all the keys we currently have, at end remove those that
- * didn't get listed by the gpg process.
- */
- load->difference = g_hash_table_new (g_str_hash, g_str_equal);
- g_hash_table_iter_init (&iter, self->pv->items);
- while (g_hash_table_iter_next (&iter, &keyid, NULL))
- g_hash_table_insert (load->difference, keyid, keyid);
-
- g_simple_async_result_set_op_res_gpointer (res, load,
- _gcr_gnupg_collection_load_free);
-
- load->loading_phase = GCR_LOADING_PHASE_PUBLIC;
- spawn_gnupg_list_process (load, res);
-
- g_object_unref (res);
-}
-
-/**
- * _gcr_gnupg_collection_load_finish:
- * @self: The collection
- * @result: The result passed to the callback
- * @error: Location to raise an error on failure.
- *
- * Get the result of an operation to load or reload the list of gnupg keys
- * in this collection.
- */
-gboolean
-_gcr_gnupg_collection_load_finish (GcrGnupgCollection *self, GAsyncResult *result,
- GError **error)
-{
- g_return_val_if_fail (GCR_IS_GNUPG_COLLECTION (self), FALSE);
- g_return_val_if_fail (!error || !*error, FALSE);
-
- g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (self),
- _gcr_gnupg_collection_load_async), FALSE);
-
- if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error))
- return FALSE;
-
- return TRUE;
-}
diff --git a/gcr/gcr-gnupg-collection.h b/gcr/gcr-gnupg-collection.h
deleted file mode 100644
index a626cef9..00000000
--- a/gcr/gcr-gnupg-collection.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#ifndef GCR_GNUPG_COLLECTION_H
-#define GCR_GNUPG_COLLECTION_H
-
-#include "gcr-base.h"
-#include "gcr-collection.h"
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_GNUPG_COLLECTION (_gcr_gnupg_collection_get_type ())
-#define GCR_GNUPG_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_GNUPG_COLLECTION, GcrGnupgCollection))
-#define GCR_GNUPG_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_GNUPG_COLLECTION, GcrGnupgCollectionClass))
-#define GCR_IS_GNUPG_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_GNUPG_COLLECTION))
-#define GCR_IS_GNUPG_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_GNUPG_COLLECTION))
-#define GCR_GNUPG_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_GNUPG_COLLECTION, GcrGnupgCollectionClass))
-
-typedef struct _GcrGnupgCollection GcrGnupgCollection;
-typedef struct _GcrGnupgCollectionClass GcrGnupgCollectionClass;
-typedef struct _GcrGnupgCollectionPrivate GcrGnupgCollectionPrivate;
-
-struct _GcrGnupgCollection {
- /*< private >*/
- GObject parent;
- GcrGnupgCollectionPrivate *pv;
-};
-
-struct _GcrGnupgCollectionClass {
- GObjectClass parent_class;
-};
-
-GType _gcr_gnupg_collection_get_type (void);
-
-GcrCollection* _gcr_gnupg_collection_new (const gchar *directory);
-
-void _gcr_gnupg_collection_load_async (GcrGnupgCollection *self,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean _gcr_gnupg_collection_load_finish (GcrGnupgCollection *self,
- GAsyncResult *result,
- GError **error);
-
-G_END_DECLS
-
-#endif /* GCR_GNUPG_COLLECTION_H */
diff --git a/gcr/gcr-gnupg-importer.c b/gcr/gcr-gnupg-importer.c
deleted file mode 100644
index db0fd39d..00000000
--- a/gcr/gcr-gnupg-importer.c
+++ /dev/null
@@ -1,333 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-gnupg-importer.h"
-#include "gcr-gnupg-process.h"
-#include "gcr-internal.h"
-
-#include <glib/gi18n-lib.h>
-
-enum {
- PROP_0,
- PROP_LABEL,
- PROP_ICON,
- PROP_IMPORTED,
- PROP_DIRECTORY,
- PROP_INTERACTION
-};
-
-struct _GcrGnupgImporterPrivate {
- GcrGnupgProcess *process;
- GMemoryInputStream *packets;
- GTlsInteraction *interaction;
- GArray *imported;
-};
-
-static void gcr_gnupg_importer_iface (GcrImporterIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (GcrGnupgImporter, _gcr_gnupg_importer, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (GCR_TYPE_IMPORTER, gcr_gnupg_importer_iface);
-);
-
-static void
-_gcr_gnupg_importer_init (GcrGnupgImporter *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_GNUPG_IMPORTER, GcrGnupgImporterPrivate);
- self->pv->packets = G_MEMORY_INPUT_STREAM (g_memory_input_stream_new ());
- self->pv->imported = g_array_new (TRUE, TRUE, sizeof (gchar *));
-}
-
-static void
-_gcr_gnupg_importer_dispose (GObject *obj)
-{
- GcrGnupgImporter *self = GCR_GNUPG_IMPORTER (obj);
-
- if (self->pv->process)
- g_object_run_dispose (G_OBJECT (self->pv->process));
- g_clear_object (&self->pv->process);
- g_clear_object (&self->pv->packets);
- g_clear_object (&self->pv->interaction);
-
- G_OBJECT_CLASS (_gcr_gnupg_importer_parent_class)->dispose (obj);
-}
-
-static void
-_gcr_gnupg_importer_finalize (GObject *obj)
-{
- GcrGnupgImporter *self = GCR_GNUPG_IMPORTER (obj);
-
- g_array_free (self->pv->imported, TRUE);
-
- G_OBJECT_CLASS (_gcr_gnupg_importer_parent_class)->finalize (obj);
-}
-
-static gchar *
-calculate_label (GcrGnupgImporter *self)
-{
- const gchar *directory;
-
- directory = _gcr_gnupg_process_get_directory (self->pv->process);
- if (directory == NULL)
- return g_strdup (_("GnuPG Keyring"));
- else
- return g_strdup_printf (_("GnuPG Keyring: %s"), directory);
-}
-
-static GIcon *
-calculate_icon (GcrGnupgImporter *self)
-{
- const gchar *directory;
-
- directory = _gcr_gnupg_process_get_directory (self->pv->process);
- if (directory == NULL)
- return g_themed_icon_new ("user-home");
- else
- return g_themed_icon_new ("folder");
-}
-
-static gboolean
-on_process_status_record (GcrGnupgProcess *process,
- GcrRecord *record,
- gpointer user_data)
-{
- GcrGnupgImporter *self = GCR_GNUPG_IMPORTER (user_data);
- const gchar *value;
- gchar *fingerprint;
-
- if (_gcr_record_get_schema (record) != GCR_RECORD_SCHEMA_IMPORT_OK)
- return TRUE;
-
- value = _gcr_record_get_raw (record, GCR_RECORD_IMPORT_FINGERPRINT);
- if (value != NULL && value[0] != 0) {
- fingerprint = g_strdup (value);
- g_array_append_val (self->pv->imported, fingerprint);
- }
-
- return TRUE;
-}
-
-static void
-_gcr_gnupg_importer_set_property (GObject *obj,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GcrGnupgImporter *self = GCR_GNUPG_IMPORTER (obj);
-
- switch (prop_id) {
- case PROP_DIRECTORY:
- self->pv->process = _gcr_gnupg_process_new (g_value_get_string (value),
- NULL);
- _gcr_gnupg_process_set_input_stream (self->pv->process, G_INPUT_STREAM (self->pv->packets));
- g_signal_connect (self->pv->process, "status-record", G_CALLBACK (on_process_status_record), self);
- break;
- case PROP_INTERACTION:
- g_clear_object (&self->pv->interaction);
- self->pv->interaction = g_value_dup_object (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-_gcr_gnupg_importer_get_property (GObject *obj,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GcrGnupgImporter *self = GCR_GNUPG_IMPORTER (obj);
-
- switch (prop_id) {
- case PROP_LABEL:
- g_value_take_string (value, calculate_label (self));
- break;
- case PROP_ICON:
- g_value_take_object (value, calculate_icon (self));
- break;
- case PROP_IMPORTED:
- g_value_set_boxed (value, _gcr_gnupg_importer_get_imported (self));
- break;
- case PROP_DIRECTORY:
- g_value_set_string (value, _gcr_gnupg_process_get_directory (self->pv->process));
- break;
- case PROP_INTERACTION:
- g_value_set_object (value, self->pv->interaction);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-_gcr_gnupg_importer_class_init (GcrGnupgImporterClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- GckAttributes *registered;
-
- gobject_class->dispose = _gcr_gnupg_importer_dispose;
- gobject_class->finalize = _gcr_gnupg_importer_finalize;
- gobject_class->set_property = _gcr_gnupg_importer_set_property;
- gobject_class->get_property = _gcr_gnupg_importer_get_property;
-
- g_type_class_add_private (gobject_class, sizeof (GcrGnupgImporterPrivate));
-
- g_object_class_override_property (gobject_class, PROP_LABEL, "label");
-
- g_object_class_override_property (gobject_class, PROP_ICON, "icon");
-
- g_object_class_override_property (gobject_class, PROP_INTERACTION, "interaction");
-
- g_object_class_install_property (gobject_class, PROP_IMPORTED,
- g_param_spec_boxed ("imported", "Imported", "Fingerprints of imported keys",
- G_TYPE_STRV, G_PARAM_READABLE));
-
- g_object_class_install_property (gobject_class, PROP_DIRECTORY,
- g_param_spec_string ("directory", "Directory", "Directory to import keys to",
- NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- registered = gck_attributes_new ();
- gck_attributes_add_ulong (registered, CKA_CLASS, CKO_GCR_GNUPG_RECORDS);
- gcr_importer_register (GCR_TYPE_GNUPG_IMPORTER, registered);
- gck_attributes_unref (registered);
-
- _gcr_initialize_library ();
-}
-
-static GList *
-_gcr_gnupg_importer_create_for_parsed (GcrParsed *parsed)
-{
- GcrImporter *self;
-
- if (gcr_parsed_get_format (parsed) != GCR_FORMAT_OPENPGP_PACKET)
- return NULL;
-
- self = _gcr_gnupg_importer_new (NULL);
- if (!gcr_importer_queue_for_parsed (self, parsed))
- g_assert_not_reached ();
-
- return g_list_append (NULL, self);
-}
-
-static gboolean
-_gcr_gnupg_importer_queue_for_parsed (GcrImporter *importer,
- GcrParsed *parsed)
-{
- GcrGnupgImporter *self = GCR_GNUPG_IMPORTER (importer);
- gconstpointer block;
- gsize n_block;
-
- if (gcr_parsed_get_format (parsed) != GCR_FORMAT_OPENPGP_PACKET)
- return FALSE;
-
- block = gcr_parsed_get_data (parsed, &n_block);
- g_return_val_if_fail (block, FALSE);
-
- g_memory_input_stream_add_data (self->pv->packets, g_memdup (block, n_block),
- n_block, g_free);
- return TRUE;
-}
-
-static void
-on_process_run_complete (GObject *source,
- GAsyncResult *result,
- gpointer user_data)
-{
- GSimpleAsyncResult *res = G_SIMPLE_ASYNC_RESULT (user_data);
- GError *error = NULL;
-
- if (!_gcr_gnupg_process_run_finish (GCR_GNUPG_PROCESS (source), result, &error))
- g_simple_async_result_take_error (res, error);
-
- g_simple_async_result_complete (res);
- g_object_unref (res);
-}
-
-static void
-_gcr_gnupg_importer_import_async (GcrImporter *importer,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- GcrGnupgImporter *self = GCR_GNUPG_IMPORTER (importer);
- GSimpleAsyncResult *res;
- const gchar *argv[] = { "--import", NULL };
-
- res = g_simple_async_result_new (G_OBJECT (importer), callback, user_data,
- _gcr_gnupg_importer_import_async);
-
- _gcr_gnupg_process_run_async (self->pv->process, argv, NULL,
- GCR_GNUPG_PROCESS_WITH_STATUS,
- cancellable, on_process_run_complete,
- g_object_ref (res));
-
- g_object_unref (res);
-}
-
-static gboolean
-_gcr_gnupg_importer_import_finish (GcrImporter *importer,
- GAsyncResult *result,
- GError **error)
-{
- g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (importer),
- _gcr_gnupg_importer_import_async), FALSE);
-
- if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error))
- return FALSE;
-
- return TRUE;
-}
-
-static void
-gcr_gnupg_importer_iface (GcrImporterIface *iface)
-{
- iface->create_for_parsed = _gcr_gnupg_importer_create_for_parsed;
- iface->queue_for_parsed = _gcr_gnupg_importer_queue_for_parsed;
- iface->import_async = _gcr_gnupg_importer_import_async;
- iface->import_finish = _gcr_gnupg_importer_import_finish;
-}
-
-/**
- * _gcr_gnupg_importer_new:
- * @directory: (allow-none): the directory to import to, or %NULL for default
- *
- * Returns: (transfer full) (type Gcr.GnupgImporter): the new importer
- */
-GcrImporter *
-_gcr_gnupg_importer_new (const gchar *directory)
-{
- return g_object_new (GCR_TYPE_GNUPG_IMPORTER,
- "directory", directory,
- NULL);
-}
-
-const gchar **
-_gcr_gnupg_importer_get_imported (GcrGnupgImporter *self)
-{
- g_return_val_if_fail (GCR_IS_GNUPG_IMPORTER (self), NULL);
- return (const gchar **)self->pv->imported->data;
-}
diff --git a/gcr/gcr-gnupg-importer.h b/gcr/gcr-gnupg-importer.h
deleted file mode 100644
index 8511af84..00000000
--- a/gcr/gcr-gnupg-importer.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_H_INSIDE__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> can be included directly."
-#endif
-
-#ifndef __GCR_GNUPG_IMPORTER_H__
-#define __GCR_GNUPG_IMPORTER_H__
-
-#include "gcr-importer.h"
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_GNUPG_IMPORTER (_gcr_gnupg_importer_get_type ())
-#define GCR_GNUPG_IMPORTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_GNUPG_IMPORTER, GcrGnupgImporter))
-#define GCR_GNUPG_IMPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_GNUPG_IMPORTER, GcrGnupgImporterClass))
-#define GCR_IS_GNUPG_IMPORTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_GNUPG_IMPORTER))
-#define GCR_IS_GNUPG_IMPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_GNUPG_IMPORTER))
-#define GCR_GNUPG_IMPORTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_GNUPG_IMPORTER, GcrGnupgImporterClass))
-
-typedef struct _GcrGnupgImporter GcrGnupgImporter;
-typedef struct _GcrGnupgImporterClass GcrGnupgImporterClass;
-typedef struct _GcrGnupgImporterPrivate GcrGnupgImporterPrivate;
-
-struct _GcrGnupgImporter {
- GObject parent;
-
- /*< private >*/
- GcrGnupgImporterPrivate *pv;
-};
-
-struct _GcrGnupgImporterClass {
- GObjectClass parent_class;
-};
-
-GType _gcr_gnupg_importer_get_type (void) G_GNUC_CONST;
-
-GcrImporter * _gcr_gnupg_importer_new (const gchar *directory);
-
-const gchar ** _gcr_gnupg_importer_get_imported (GcrGnupgImporter *self);
-
-G_END_DECLS
-
-#endif /* __GCR_IMPORTER_H__ */
diff --git a/gcr/gcr-gnupg-key.c b/gcr/gcr-gnupg-key.c
deleted file mode 100644
index 1d1bc420..00000000
--- a/gcr/gcr-gnupg-key.c
+++ /dev/null
@@ -1,530 +0,0 @@
-/*
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-gnupg-key.h"
-#include "gcr-gnupg-records.h"
-#include "gcr-record.h"
-#include "gcr-memory-icon.h"
-
-#include "gck/gck.h"
-
-#include <glib/gi18n-lib.h>
-
-enum {
- PROP_0,
- PROP_KEYID,
- PROP_PUBLIC_RECORDS,
- PROP_SECRET_RECORDS,
- PROP_LABEL,
- PROP_MARKUP,
- PROP_DESCRIPTION,
- PROP_SHORT_KEYID,
- PROP_ICON
-};
-
-struct _GcrGnupgKeyPrivate {
- GPtrArray *public_records;
- GPtrArray *secret_records;
- GIcon *icon;
-};
-
-G_DEFINE_TYPE (GcrGnupgKey, _gcr_gnupg_key, G_TYPE_OBJECT);
-
-/* -----------------------------------------------------------------------------
- * INTERNAL
- */
-
-/* Copied from GPGME */
-static void
-parse_user_id (const gchar *uid, gchar **name, gchar **email, gchar **comment)
-{
- gchar *src, *tail, *x;
- int in_name = 0;
- int in_email = 0;
- int in_comment = 0;
-
- *name = NULL;
- *email = NULL;
- *comment = NULL;
-
- x = tail = src = g_strdup (uid);
-
- while (*src) {
- if (in_email) {
- /* Not legal but anyway. */
- if (*src == '<')
- in_email++;
- else if (*src == '>') {
- if (!--in_email && !*email) {
- *email = tail;
- *src = 0;
- tail = src + 1;
- }
- }
- } else if (in_comment) {
- if (*src == '(')
- in_comment++;
- else if (*src == ')') {
- if (!--in_comment && !*comment) {
- *comment = tail;
- *src = 0;
- tail = src + 1;
- }
- }
- } else if (*src == '<') {
- if (in_name) {
- if (!*name) {
- *name = tail;
- *src = 0;
- tail = src + 1;
- }
- in_name = 0;
- } else
- tail = src + 1;
-
- in_email = 1;
- } else if (*src == '(') {
- if (in_name) {
- if (!*name) {
- *name = tail;
- *src = 0;
- tail = src + 1;
- }
- in_name = 0;
- }
- in_comment = 1;
- } else if (!in_name && *src != ' ' && *src != '\t') {
- in_name = 1;
- }
- src++;
- }
-
- if (in_name) {
- if (!*name) {
- *name = tail;
- *src = 0;
- tail = src + 1;
- }
- }
-
- /* Let unused parts point to an EOS. */
- *name = g_strdup (*name ? *name : "");
- *email = g_strdup (*email ? *email : "");
- *comment = g_strdup (*comment ? *comment : "");
-
- g_strstrip (*name);
- g_strstrip (*email);
- g_strstrip (*comment);
-
- g_free (x);
-}
-
-static gchar *
-calculate_name (GcrGnupgKey *self)
-{
- GcrRecord* record;
-
- record = _gcr_records_find (self->pv->public_records, GCR_RECORD_SCHEMA_UID);
- g_return_val_if_fail (record, NULL);
-
- return _gcr_record_get_string (record, GCR_RECORD_UID_USERID);
-}
-
-static gchar *
-calculate_markup (GcrGnupgKey *self)
-{
- gchar *markup = NULL;
- gchar *uid, *name, *email, *comment;
-
- uid = calculate_name (self);
- if (uid == NULL)
- return NULL;
-
- parse_user_id (uid, &name, &email, &comment);
- if (comment != NULL && comment[0] != '\0')
- markup = g_markup_printf_escaped ("%s\n<small>%s \'%s\'</small>", name, email, comment);
- else
- markup = g_markup_printf_escaped ("%s\n<small>%s</small>", name, email);
- g_free (name);
- g_free (email);
- g_free (comment);
- g_free (uid);
-
- return markup;
-}
-
-static void
-_gcr_gnupg_key_init (GcrGnupgKey *self)
-{
- self->pv = (G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_GNUPG_KEY, GcrGnupgKeyPrivate));
-}
-
-static void
-_gcr_gnupg_key_finalize (GObject *obj)
-{
- GcrGnupgKey *self = GCR_GNUPG_KEY (obj);
-
- if (self->pv->public_records)
- g_ptr_array_free (self->pv->public_records, TRUE);
- if (self->pv->secret_records)
- g_ptr_array_free (self->pv->secret_records, TRUE);
-
- G_OBJECT_CLASS (_gcr_gnupg_key_parent_class)->finalize (obj);
-}
-
-static void
-_gcr_gnupg_key_set_property (GObject *obj, guint prop_id, const GValue *value,
- GParamSpec *pspec)
-{
- GcrGnupgKey *self = GCR_GNUPG_KEY (obj);
-
- switch (prop_id) {
- case PROP_PUBLIC_RECORDS:
- _gcr_gnupg_key_set_public_records (self, g_value_get_boxed (value));
- break;
- case PROP_SECRET_RECORDS:
- _gcr_gnupg_key_set_secret_records (self, g_value_get_boxed (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-_gcr_gnupg_key_get_property (GObject *obj, guint prop_id, GValue *value,
- GParamSpec *pspec)
-{
- GcrGnupgKey *self = GCR_GNUPG_KEY (obj);
-
- switch (prop_id) {
- case PROP_PUBLIC_RECORDS:
- g_value_set_boxed (value, self->pv->public_records);
- break;
- case PROP_SECRET_RECORDS:
- g_value_set_boxed (value, self->pv->secret_records);
- break;
- case PROP_KEYID:
- g_value_set_string (value, _gcr_gnupg_key_get_keyid (self));
- break;
- case PROP_LABEL:
- g_value_take_string (value, calculate_name (self));
- break;
- case PROP_DESCRIPTION:
- g_value_set_string (value, _("PGP Key"));
- break;
- case PROP_MARKUP:
- g_value_take_string (value, calculate_markup (self));
- break;
- case PROP_SHORT_KEYID:
- g_value_set_string (value, _gcr_gnupg_records_get_short_keyid (self->pv->public_records));
- break;
- case PROP_ICON:
- g_value_set_object (value, _gcr_gnupg_key_get_icon (self));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-_gcr_gnupg_key_class_init (GcrGnupgKeyClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- _gcr_gnupg_key_parent_class = g_type_class_peek_parent (klass);
- g_type_class_add_private (klass, sizeof (GcrGnupgKeyPrivate));
-
- gobject_class->finalize = _gcr_gnupg_key_finalize;
- gobject_class->set_property = _gcr_gnupg_key_set_property;
- gobject_class->get_property = _gcr_gnupg_key_get_property;
-
- /**
- * GcrGnupgKey:public-records:
- *
- * Public key data. Should always be present.
- */
- g_object_class_install_property (gobject_class, PROP_PUBLIC_RECORDS,
- g_param_spec_boxed ("public-records", "Public Records", "Public Key Colon Records",
- G_TYPE_PTR_ARRAY, G_PARAM_READWRITE));
-
- /**
- * GcrGnupgKey:secret-records:
- *
- * Secret key data. The keyid of this data must match public-dataset.
- * If present, this key represents a secret key.
- */
- g_object_class_install_property (gobject_class, PROP_SECRET_RECORDS,
- g_param_spec_boxed ("secret-records", "Secret Records", "Secret Key Colon Records",
- G_TYPE_PTR_ARRAY, G_PARAM_READWRITE));
-
- /**
- * GcrGnupgKey:keyid:
- *
- * Key identifier.
- */
- g_object_class_install_property (gobject_class, PROP_KEYID,
- g_param_spec_string ("keyid", "Key ID", "Key identifier",
- "", G_PARAM_READABLE));
-
- /**
- * GcrGnupgKey:label:
- *
- * User readable label for this key.
- */
- g_object_class_install_property (gobject_class, PROP_LABEL,
- g_param_spec_string ("label", "Label", "Key label",
- "", G_PARAM_READABLE));
-
- /**
- * GcrGnupgKey::description:
- *
- * Description of type of key.
- */
- g_object_class_install_property (gobject_class, PROP_DESCRIPTION,
- g_param_spec_string ("description", "Description", "Description of object type",
- "", G_PARAM_READABLE));
-
- /**
- * GcrGnupgKey:markup:
- *
- * User readable markup which contains key label.
- */
- g_object_class_install_property (gobject_class, PROP_MARKUP,
- g_param_spec_string ("markup", "Markup", "Markup which describes key",
- "", G_PARAM_READABLE));
-
- /**
- * GcrGnupgKey:short-keyid:
- *
- * User readable key identifier.
- */
- g_object_class_install_property (gobject_class, PROP_SHORT_KEYID,
- g_param_spec_string ("short-keyid", "Short Key ID", "Display key identifier",
- "", G_PARAM_READABLE));
-
- /**
- * GcrGnupgKey:icon:
- *
- * Icon for this key.
- */
- g_object_class_install_property (gobject_class, PROP_ICON,
- g_param_spec_object ("icon", "Icon", "Icon for this key",
- G_TYPE_ICON, G_PARAM_READABLE));
-}
-
-/**
- * _gcr_gnupg_key_new:
- * @pubset: array of GcrRecord* representing public part of key
- * @secset: (allow-none): array of GcrRecord* representing secret part of key.
- *
- * Create a new GcrGnupgKey for the record data passed. If the secret part
- * of the key is set, then this represents a secret key; otherwise it represents
- * a public key.
- *
- * Returns: (transfer full): A newly allocated key.
- */
-GcrGnupgKey*
-_gcr_gnupg_key_new (GPtrArray *pubset, GPtrArray *secset)
-{
- g_return_val_if_fail (pubset, NULL);
- return g_object_new (GCR_TYPE_GNUPG_KEY,
- "public-records", pubset,
- "secret-records", secset,
- NULL);
-}
-
-/**
- * _gcr_gnupg_key_get_public_records:
- * @self: The key
- *
- * Get the record data this key is based on.
- *
- * Returns: (transfer none): An array of GcrRecord*.
- */
-GPtrArray*
-_gcr_gnupg_key_get_public_records (GcrGnupgKey *self)
-{
- g_return_val_if_fail (GCR_IS_GNUPG_KEY (self), NULL);
- return self->pv->public_records;
-}
-
-/**
- * _gcr_gnupg_key_set_public_records:
- * @self: The key
- * @records: The new array of GcrRecord*
- *
- * Change the record data that this key is based on.
- */
-void
-_gcr_gnupg_key_set_public_records (GcrGnupgKey *self, GPtrArray *records)
-{
- GObject *obj;
-
- g_return_if_fail (GCR_IS_GNUPG_KEY (self));
- g_return_if_fail (records);
-
- /* Check that it matches previous */
- if (self->pv->public_records) {
- const gchar *old_keyid = _gcr_gnupg_records_get_keyid (self->pv->public_records);
- const gchar *new_keyid = _gcr_gnupg_records_get_keyid (records);
-
- if (g_strcmp0 (old_keyid, new_keyid) != 0) {
- g_warning ("it is an error to change a gnupg key so that the "
- "fingerprint is no longer the same: %s != %s",
- old_keyid, new_keyid);
- return;
- }
- }
-
- g_ptr_array_ref (records);
- if (self->pv->public_records)
- g_ptr_array_unref (self->pv->public_records);
- self->pv->public_records = records;
-
- obj = G_OBJECT (self);
- g_object_freeze_notify (obj);
- g_object_notify (obj, "public-records");
- g_object_notify (obj, "label");
- g_object_notify (obj, "markup");
- g_object_thaw_notify (obj);
-}
-
-/**
- * _gcr_gnupg_key_get_secret_records:
- * @self: The key
- *
- * Get the record secret data this key is based on. %NULL if a public key.
- *
- * Returns: (transfer none) (allow-none): An array of GcrColons*.
- */
-GPtrArray*
-_gcr_gnupg_key_get_secret_records (GcrGnupgKey *self)
-{
- g_return_val_if_fail (GCR_IS_GNUPG_KEY (self), NULL);
- return self->pv->secret_records;
-}
-
-/**
- * _gcr_gnupg_key_set_secret_records:
- * @self: The key
- * @records: (allow-none): The new array of GcrRecord*
- *
- * Set the secret data for this key. %NULL if public key.
- */
-void
-_gcr_gnupg_key_set_secret_records (GcrGnupgKey *self, GPtrArray *records)
-{
- GObject *obj;
-
- g_return_if_fail (GCR_IS_GNUPG_KEY (self));
-
- /* Check that it matches public key */
- if (self->pv->public_records && records) {
- const gchar *pub_keyid = _gcr_gnupg_records_get_keyid (self->pv->public_records);
- const gchar *sec_keyid = _gcr_gnupg_records_get_keyid (records);
-
- if (g_strcmp0 (pub_keyid, sec_keyid) != 0) {
- g_warning ("it is an error to create a gnupg key so that the "
- "fingerprint of thet pub and sec parts are not the same: %s != %s",
- pub_keyid, sec_keyid);
- return;
- }
- }
-
- if (records)
- g_ptr_array_ref (records);
- if (self->pv->secret_records)
- g_ptr_array_unref (self->pv->secret_records);
- self->pv->secret_records = records;
-
- obj = G_OBJECT (self);
- g_object_freeze_notify (obj);
- g_object_notify (obj, "secret-records");
- g_object_thaw_notify (obj);
-}
-
-/**
- * _gcr_gnupg_key_get_keyid:
- * @self: The key
- *
- * Get the keyid for this key.
- *
- * Returns: (transfer none): The keyid.
- */
-const gchar*
-_gcr_gnupg_key_get_keyid (GcrGnupgKey *self)
-{
- g_return_val_if_fail (GCR_IS_GNUPG_KEY (self), NULL);
- return _gcr_gnupg_records_get_keyid (self->pv->public_records);
-}
-
-/**
- * _gcr_gnupg_key_get_icon:
- * @self: A gnupg key.
- *
- * Get the display icon for this key.
- *
- * Return value: (transfer none): The icon, owned by the key.
- */
-GIcon*
-_gcr_gnupg_key_get_icon (GcrGnupgKey *self)
-{
- g_return_val_if_fail (GCR_IS_GNUPG_KEY (self), NULL);
-
- if (self->pv->icon == NULL) {
- self->pv->icon = _gcr_gnupg_records_get_icon (self->pv->public_records);
- if (self->pv->icon == NULL) {
- if (self->pv->secret_records)
- self->pv->icon = g_themed_icon_new ("gcr-key-pair");
- else
- self->pv->icon = g_themed_icon_new ("gcr-key");
- }
- }
-
- return self->pv->icon;
-}
-
-/**
- * _gcr_gnupg_key_get_columns:
- *
- * Get the columns that we should display for gnupg keys.
- *
- * Returns: (transfer none): The columns, NULL terminated, should not be freed.
- */
-const GcrColumn*
-_gcr_gnupg_key_get_columns (void)
-{
- static GcrColumn columns[] = {
- { "icon", /* later */ 0, /* later */ 0, NULL, 0, NULL, 0 },
- { "label", G_TYPE_STRING, G_TYPE_STRING, NC_("column", "Name"),
- GCR_COLUMN_SORTABLE, NULL, 0 },
- { "short-keyid", G_TYPE_STRING, G_TYPE_STRING, NC_("column", "Key ID"),
- GCR_COLUMN_SORTABLE, NULL, 0 },
- { NULL }
- };
-
- columns[0].property_type = columns[0].column_type = G_TYPE_ICON;
- return columns;
-}
diff --git a/gcr/gcr-gnupg-key.h b/gcr/gcr-gnupg-key.h
deleted file mode 100644
index 2c120af2..00000000
--- a/gcr/gcr-gnupg-key.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef GCR_GNUPG_KEY_H
-#define GCR_GNUPG_KEY_H
-
-#include <glib-object.h>
-
-#include "gcr-column.h"
-#include "gcr-types.h"
-
-G_BEGIN_DECLS
-
-#define GCR_GNUPG_KEY_COLUMNS (_gcr_gnupg_key_get_columns ())
-#define GCR_TYPE_GNUPG_KEY (_gcr_gnupg_key_get_type ())
-#define GCR_GNUPG_KEY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_GNUPG_KEY, GcrGnupgKey))
-#define GCR_GNUPG_KEY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_GNUPG_KEY, GcrGnupgKeyClass))
-#define GCR_IS_GNUPG_KEY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_GNUPG_KEY))
-#define GCR_IS_GNUPG_KEY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_GNUPG_KEY))
-#define GCR_GNUPG_KEY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_GNUPG_KEY, GcrGnupgKeyClass))
-
-typedef struct _GcrGnupgKey GcrGnupgKey;
-typedef struct _GcrGnupgKeyClass GcrGnupgKeyClass;
-typedef struct _GcrGnupgKeyPrivate GcrGnupgKeyPrivate;
-
-struct _GcrGnupgKey {
- /*< private >*/
- GObject parent;
- GcrGnupgKeyPrivate *pv;
-};
-
-struct _GcrGnupgKeyClass {
- GObjectClass parent_class;
-};
-
-GType _gcr_gnupg_key_get_type (void);
-
-const GcrColumn* _gcr_gnupg_key_get_columns (void);
-
-GcrGnupgKey* _gcr_gnupg_key_new (GPtrArray *pubset,
- GPtrArray *secset);
-
-const gchar* _gcr_gnupg_key_get_keyid (GcrGnupgKey *self);
-
-GPtrArray* _gcr_gnupg_key_get_public_records (GcrGnupgKey *self);
-
-void _gcr_gnupg_key_set_public_records (GcrGnupgKey *self,
- GPtrArray *records);
-
-GPtrArray* _gcr_gnupg_key_get_secret_records (GcrGnupgKey *self);
-
-void _gcr_gnupg_key_set_secret_records (GcrGnupgKey *self,
- GPtrArray *records);
-
-GIcon* _gcr_gnupg_key_get_icon (GcrGnupgKey *self);
-
-G_END_DECLS
-
-#endif /* __GCR_GNUPG_KEY_H__ */
diff --git a/gcr/gcr-gnupg-process.c b/gcr/gcr-gnupg-process.c
deleted file mode 100644
index 81423da4..00000000
--- a/gcr/gcr-gnupg-process.c
+++ /dev/null
@@ -1,1157 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#define DEBUG_FLAG GCR_DEBUG_GNUPG
-#include "gcr-debug.h"
-#include "gcr-gnupg-process.h"
-#include "gcr-marshal.h"
-#include "gcr-util.h"
-
-#include <glib/gi18n-lib.h>
-
-#include <sys/wait.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <string.h>
-
-/**
- * GcrGnupgProcessFlags:
- * @GCR_GNUPG_PROCESS_NONE: No flags
- * @GCR_GNUPG_PROCESS_RESPECT_LOCALE: Respect the user's locale when running gnupg.
- * @GCR_GNUPG_PROCESS_WITH_STATUS: Ask the process to send status records.
- * @GCR_GNUPG_PROCESS_WITH_ATTRIBUTES: Ask the process to output attribute data.
- *
- * Flags for running a gnupg process.
- */
-
-enum {
- PROP_0,
- PROP_DIRECTORY,
- PROP_EXECUTABLE,
- PROP_INPUT_STREAM,
- PROP_OUTPUT_STREAM,
- PROP_ATTRIBUTE_STREAM
-};
-
-enum {
- FD_INPUT,
- FD_OUTPUT,
- FD_ERROR,
- FD_STATUS,
- FD_ATTRIBUTE,
- NUM_FDS
-};
-
-enum {
- ERROR_LINE,
- STATUS_RECORD,
- NUM_SIGNALS
-};
-
-static gint signals[NUM_SIGNALS] = { 0, };
-
-typedef struct _GnupgSource {
- GSource source;
- GPollFD polls[NUM_FDS]; /* The various fd's we're listening to */
-
- GcrGnupgProcess *process; /* Pointer back to the process object */
-
- GByteArray *input_buf;
- GString *error_buf;
- GString *status_buf;
- guint source_sig;
-
- GPid child_pid;
- guint child_sig;
-
- GCancellable *cancellable;
- guint cancel_sig;
-} GnupgSource;
-
-struct _GcrGnupgProcessPrivate {
- gchar *directory;
- gchar *executable;
-
- GInputStream *input;
- GOutputStream *output;
- GOutputStream *attributes;
-
- gboolean running;
- gboolean complete;
- GError *error;
-
- GAsyncReadyCallback async_callback;
- gpointer user_data;
-};
-
-/* Forward declarations */
-static void _gcr_gnupg_process_init_async (GAsyncResultIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (GcrGnupgProcess, _gcr_gnupg_process, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (G_TYPE_ASYNC_RESULT, _gcr_gnupg_process_init_async));
-
-static void
-_gcr_gnupg_process_init (GcrGnupgProcess *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_GNUPG_PROCESS,
- GcrGnupgProcessPrivate);
-}
-
-static void
-_gcr_gnupg_process_constructed (GObject *obj)
-{
- GcrGnupgProcess *self = GCR_GNUPG_PROCESS (obj);
-
- if (G_OBJECT_CLASS (_gcr_gnupg_process_parent_class)->constructed)
- G_OBJECT_CLASS (_gcr_gnupg_process_parent_class)->constructed (obj);
-
- if (!self->pv->executable)
- self->pv->executable = g_strdup (GPG_EXECUTABLE);
-}
-
-static void
-_gcr_gnupg_process_get_property (GObject *obj, guint prop_id, GValue *value,
- GParamSpec *pspec)
-{
- GcrGnupgProcess *self = GCR_GNUPG_PROCESS (obj);
-
- switch (prop_id) {
- case PROP_DIRECTORY:
- g_value_set_string (value, self->pv->directory);
- break;
- case PROP_EXECUTABLE:
- g_value_set_string (value, self->pv->executable);
- break;
- case PROP_INPUT_STREAM:
- g_value_set_object (value, _gcr_gnupg_process_get_input_stream (self));
- break;
- case PROP_OUTPUT_STREAM:
- g_value_set_object (value, _gcr_gnupg_process_get_output_stream (self));
- break;
- case PROP_ATTRIBUTE_STREAM:
- g_value_set_object (value, _gcr_gnupg_process_get_attribute_stream (self));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-_gcr_gnupg_process_set_property (GObject *obj, guint prop_id, const GValue *value,
- GParamSpec *pspec)
-{
- GcrGnupgProcess *self = GCR_GNUPG_PROCESS (obj);
-
- switch (prop_id) {
- case PROP_DIRECTORY:
- g_return_if_fail (!self->pv->directory);
- self->pv->directory = g_value_dup_string (value);
- break;
- case PROP_EXECUTABLE:
- g_return_if_fail (!self->pv->executable);
- self->pv->executable = g_value_dup_string (value);
- break;
- case PROP_INPUT_STREAM:
- _gcr_gnupg_process_set_input_stream (self, g_value_get_object (value));
- break;
- case PROP_OUTPUT_STREAM:
- _gcr_gnupg_process_set_output_stream (self, g_value_get_object (value));
- break;
- case PROP_ATTRIBUTE_STREAM:
- _gcr_gnupg_process_set_attribute_stream (self, g_value_get_object (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-_gcr_gnupg_process_dispose (GObject *obj)
-{
- GcrGnupgProcess *self = GCR_GNUPG_PROCESS (obj);
-
- g_clear_object (&self->pv->input);
- g_clear_object (&self->pv->output);
- g_clear_object (&self->pv->attributes);
-
- G_OBJECT_CLASS (_gcr_gnupg_process_parent_class)->dispose (obj);
-}
-
-static void
-_gcr_gnupg_process_finalize (GObject *obj)
-{
- GcrGnupgProcess *self = GCR_GNUPG_PROCESS (obj);
-
- g_assert (!self->pv->running);
- g_free (self->pv->directory);
- g_free (self->pv->executable);
- g_clear_error (&self->pv->error);
-
- G_OBJECT_CLASS (_gcr_gnupg_process_parent_class)->finalize (obj);
-}
-
-static void
-_gcr_gnupg_process_class_init (GcrGnupgProcessClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- gobject_class->constructed = _gcr_gnupg_process_constructed;
- gobject_class->get_property = _gcr_gnupg_process_get_property;
- gobject_class->set_property = _gcr_gnupg_process_set_property;
- gobject_class->dispose = _gcr_gnupg_process_dispose;
- gobject_class->finalize = _gcr_gnupg_process_finalize;
-
- /**
- * GcrGnupgProcess:directory:
- *
- * Directory to run as gnupg home directory, or %NULL for default
- * ~/.gnupg/ directory.
- */
- g_object_class_install_property (gobject_class, PROP_DIRECTORY,
- g_param_spec_string ("directory", "Directory", "Gnupg Directory",
- NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- /**
- * GcrGnupgProcess:executable:
- *
- * Path to the gnupg executable, or %NULL for default.
- */
- g_object_class_install_property (gobject_class, PROP_EXECUTABLE,
- g_param_spec_string ("executable", "Executable", "Gnupg Executable",
- GPG_EXECUTABLE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- /**
- * GcrGnupgProcess:input-stream:
- *
- * Input for gnupg, or %NULL for no input.
- */
- g_object_class_install_property (gobject_class, PROP_INPUT_STREAM,
- g_param_spec_object ("input-stream", "Input Stream", "Input Stream",
- G_TYPE_INPUT_STREAM, G_PARAM_READWRITE));
-
- /**
- * GcrGnupgProcess:output-stream:
- *
- * Output from gnupg, or %NULL for ignored output.
- */
- g_object_class_install_property (gobject_class, PROP_OUTPUT_STREAM,
- g_param_spec_object ("output-stream", "Output Stream", "Output Stream",
- G_TYPE_OUTPUT_STREAM, G_PARAM_READWRITE));
-
- /**
- * GcrGnupgProcess:attribute-stream:
- *
- * Output of attribute data from gnupg, or %NULL for ignored attributes.
- */
- g_object_class_install_property (gobject_class, PROP_ATTRIBUTE_STREAM,
- g_param_spec_object ("attribute-stream", "Attribute Stream", "Attribute Stream",
- G_TYPE_OUTPUT_STREAM, G_PARAM_READWRITE));
-
- /**
- * GcrGnupgProcess::error-line:
- * @line: a line of error output.
- *
- * Signal emitted when a line of error output is available from the
- * gnupg process.
- */
- signals[ERROR_LINE] = g_signal_new ("error-line", GCR_TYPE_GNUPG_PROCESS,
- G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GcrGnupgProcessClass, error_line),
- NULL, NULL, _gcr_marshal_VOID__STRING,
- G_TYPE_NONE, 1, G_TYPE_STRING);
-
- /**
- * GcrGnupgProcess::status-record:
- * @record: a status record.
- *
- * Signal emitted when a status record is available from the gnupg process.
- */
- signals[STATUS_RECORD] = g_signal_new ("status-record", GCR_TYPE_GNUPG_PROCESS,
- G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GcrGnupgProcessClass, status_record),
- NULL, NULL, _gcr_marshal_VOID__BOXED,
- G_TYPE_NONE, 1, GCR_TYPE_RECORD);
-
- g_type_class_add_private (gobject_class, sizeof (GcrGnupgProcessPrivate));
-}
-
-static gpointer
-_gcr_gnupg_process_get_user_data (GAsyncResult *result)
-{
- g_return_val_if_fail (GCR_IS_GNUPG_PROCESS (result), NULL);
- return GCR_GNUPG_PROCESS (result)->pv->user_data;
-}
-
-static GObject*
-_gcr_gnupg_process_get_source_object (GAsyncResult *result)
-{
- g_return_val_if_fail (GCR_IS_GNUPG_PROCESS (result), NULL);
- return G_OBJECT (result);
-}
-
-static void
-_gcr_gnupg_process_init_async (GAsyncResultIface *iface)
-{
- iface->get_source_object = _gcr_gnupg_process_get_source_object;
- iface->get_user_data = _gcr_gnupg_process_get_user_data;
-}
-
-/**
- * _gcr_gnupg_process_new:
- * @directory: (allow-none): The gnupg home directory
- * @executable: (allow-none): The gpg executable
- *
- * Create a new GcrGnupgProcess.
- *
- * The gnupg home directory is where the keyring files live. If directory is
- * %NULL then the default gnupg home directory is used.
- *
- * The executable will default to the compiled in path if a %NULL executable
- * argument is used.
- *
- * Returns: (transfer full): A newly allocated process.
- */
-GcrGnupgProcess*
-_gcr_gnupg_process_new (const gchar *directory, const gchar *executable)
-{
- return g_object_new (GCR_TYPE_GNUPG_PROCESS,
- "directory", directory,
- "executable", executable,
- NULL);
-}
-
-const gchar *
-_gcr_gnupg_process_get_directory (GcrGnupgProcess *self)
-{
- g_return_val_if_fail (GCR_GNUPG_PROCESS (self), NULL);
- return self->pv->directory;
-}
-
-GInputStream *
-_gcr_gnupg_process_get_input_stream (GcrGnupgProcess *self)
-{
- g_return_val_if_fail (GCR_GNUPG_PROCESS (self), NULL);
- return self->pv->input;
-}
-
-void
-_gcr_gnupg_process_set_input_stream (GcrGnupgProcess *self,
- GInputStream *input)
-{
- g_return_if_fail (GCR_GNUPG_PROCESS (self));
- g_return_if_fail (input == NULL || G_INPUT_STREAM (input));
-
- if (input)
- g_object_ref (input);
- if (self->pv->input)
- g_object_unref (self->pv->input);
- self->pv->input = input;
- g_object_notify (G_OBJECT (self), "input-stream");
-}
-
-GOutputStream *
-_gcr_gnupg_process_get_output_stream (GcrGnupgProcess *self)
-{
- g_return_val_if_fail (GCR_GNUPG_PROCESS (self), NULL);
- return self->pv->output;
-}
-
-void
-_gcr_gnupg_process_set_output_stream (GcrGnupgProcess *self,
- GOutputStream *output)
-{
- g_return_if_fail (GCR_GNUPG_PROCESS (self));
- g_return_if_fail (output == NULL || G_OUTPUT_STREAM (output));
-
- if (output)
- g_object_ref (output);
- if (self->pv->output)
- g_object_unref (self->pv->output);
- self->pv->output = output;
- g_object_notify (G_OBJECT (self), "output-stream");
-}
-
-GOutputStream *
-_gcr_gnupg_process_get_attribute_stream (GcrGnupgProcess *self)
-{
- g_return_val_if_fail (GCR_GNUPG_PROCESS (self), NULL);
- return self->pv->attributes;
-}
-
-void
-_gcr_gnupg_process_set_attribute_stream (GcrGnupgProcess *self,
- GOutputStream *output)
-{
- g_return_if_fail (GCR_GNUPG_PROCESS (self));
- g_return_if_fail (output == NULL || G_OUTPUT_STREAM (output));
-
- if (output)
- g_object_ref (output);
- if (self->pv->attributes)
- g_object_unref (self->pv->attributes);
- self->pv->attributes = output;
- g_object_notify (G_OBJECT (self), "attribute-stream");
-}
-
-static void
-run_async_ready_callback (GcrGnupgProcess *self)
-{
- GAsyncReadyCallback callback;
- gpointer user_data;
-
- _gcr_debug ("running async callback");
-
- /* Remove these before completing */
- callback = self->pv->async_callback;
- user_data = self->pv->user_data;
- self->pv->async_callback = NULL;
- self->pv->user_data = NULL;
-
- if (callback != NULL)
- (callback) (G_OBJECT (self), G_ASYNC_RESULT (self), user_data);
-}
-
-static gboolean
-on_run_async_ready_callback_later (gpointer user_data)
-{
- run_async_ready_callback (GCR_GNUPG_PROCESS (user_data));
- return FALSE; /* Don't run this callback again */
-}
-
-static void
-run_async_ready_callback_later (GcrGnupgProcess *self)
-{
- _gcr_debug ("running async callback later");
- g_idle_add_full (G_PRIORITY_DEFAULT, on_run_async_ready_callback_later,
- g_object_ref (self), g_object_unref);
-}
-
-static void
-complete_run_process (GcrGnupgProcess *self)
-{
- g_return_if_fail (self->pv->running);
- g_return_if_fail (!self->pv->complete);
-
- self->pv->running = FALSE;
- self->pv->complete = TRUE;
-
- if (self->pv->error == NULL) {
- _gcr_debug ("completed process");
- } else {
- _gcr_debug ("completed process with error: %s",
- self->pv->error->message);
- }
-}
-
-static gboolean
-complete_source_is_done (GnupgSource *gnupg_source)
-{
- _gcr_debug ("all fds closed and process exited, completing");
-
- g_assert (gnupg_source->child_sig == 0);
- g_assert (gnupg_source->source_sig == 0);
-
- complete_run_process (gnupg_source->process);
- run_async_ready_callback (gnupg_source->process);
-
- /* All done, the source can go away now */
- g_source_unref ((GSource*)gnupg_source);
- return TRUE;
-}
-
-static void
-close_fd (int *fd)
-{
- g_assert (fd);
- if (*fd >= 0) {
- _gcr_debug ("closing fd: %d", *fd);
- close (*fd);
- }
- *fd = -1;
-}
-
-static void
-close_poll (GSource *source, GPollFD *poll)
-{
- g_source_remove_poll (source, poll);
- close_fd (&poll->fd);
- poll->revents = 0;
-}
-
-static gboolean
-unused_callback (gpointer data)
-{
- /* Never called */
- g_assert_not_reached ();
- return FALSE;
-}
-
-static gboolean
-on_gnupg_source_prepare (GSource *source, gint *timeout_)
-{
- GnupgSource *gnupg_source = (GnupgSource*)source;
- gint i;
-
- for (i = 0; i < NUM_FDS; ++i) {
- if (gnupg_source->polls[i].fd >= 0)
- return FALSE;
- }
-
- /* If none of the FDs are valid, then process immediately */
- return TRUE;
-}
-
-static gboolean
-on_gnupg_source_check (GSource *source)
-{
- GnupgSource *gnupg_source = (GnupgSource*)source;
- gint i;
-
- for (i = 0; i < NUM_FDS; ++i) {
- if (gnupg_source->polls[i].fd >= 0 && gnupg_source->polls[i].revents != 0)
- return TRUE;
- }
- return FALSE;
-}
-
-static void
-on_gnupg_source_finalize (GSource *source)
-{
- GnupgSource *gnupg_source = (GnupgSource*)source;
- gint i;
-
- if (gnupg_source->cancel_sig)
- g_signal_handler_disconnect (gnupg_source->cancellable, gnupg_source->cancel_sig);
- if (gnupg_source->cancellable)
- g_object_unref (gnupg_source->cancellable);
-
- for (i = 0; i < NUM_FDS; ++i)
- close_fd (&gnupg_source->polls[i].fd);
-
- g_object_unref (gnupg_source->process);
- if (gnupg_source->input_buf)
- g_byte_array_free (gnupg_source->input_buf, TRUE);
- g_string_free (gnupg_source->error_buf, TRUE);
- g_string_free (gnupg_source->status_buf, TRUE);
-
- g_assert (!gnupg_source->child_pid);
- g_assert (!gnupg_source->child_sig);
-}
-
-static gboolean
-read_output (int fd, GByteArray *buffer)
-{
- guchar block[1024];
- gssize result;
-
- g_return_val_if_fail (fd >= 0, FALSE);
-
- do {
- result = read (fd, block, sizeof (block));
- if (result < 0) {
- if (errno == EINTR || errno == EAGAIN)
- continue;
- return FALSE;
- } else {
- g_byte_array_append (buffer, block, result);
- }
- } while (result == sizeof (block));
-
- return TRUE;
-}
-
-static gboolean
-write_input (int fd, GByteArray *buffer)
-{
- gssize result;
-
- g_return_val_if_fail (fd >= 0, FALSE);
-
- for (;;) {
- result = write (fd, buffer->data, buffer->len);
- if (result < 0) {
- if (errno == EINTR || errno == EAGAIN)
- continue;
- return FALSE;
- } else {
- g_byte_array_remove_range (buffer, 0, result);
- return TRUE;
- }
- }
-}
-
-static void
-emit_status_for_each_line (const gchar *line, gpointer user_data)
-{
- GcrRecord *record;
-
- if (g_str_has_prefix (line, "[GNUPG:] ")) {
- _gcr_debug ("received status line: %s", line);
- line += 9;
- } else {
- g_message ("gnupg status record was not prefixed appropriately: %s", line);
- return;
- }
-
- record = _gcr_record_parse_spaces (line, -1);
- if (!record) {
- g_message ("couldn't parse status record: %s", line);
- return;
- }
-
- g_signal_emit (GCR_GNUPG_PROCESS (user_data), signals[STATUS_RECORD], 0, record);
- _gcr_record_free (record);
-}
-
-static void
-emit_error_for_each_line (const gchar *line, gpointer user_data)
-{
- _gcr_debug ("received error line: %s", line);
- g_signal_emit (GCR_GNUPG_PROCESS (user_data), signals[ERROR_LINE], 0, line);
-}
-
-static gboolean
-on_gnupg_source_input (GcrGnupgProcess *self,
- GnupgSource *gnupg_source,
- gint fd)
-{
- gssize read;
-
- if (gnupg_source->input_buf == NULL ||
- gnupg_source->input_buf->len == 0) {
- if (self->pv->input == NULL)
- return FALSE;
- if (!gnupg_source->input_buf)
- gnupg_source->input_buf = g_byte_array_new ();
- g_byte_array_set_size (gnupg_source->input_buf, 4096);
- read = g_input_stream_read (self->pv->input,
- gnupg_source->input_buf->data,
- gnupg_source->input_buf->len,
- gnupg_source->cancellable, NULL);
- g_byte_array_set_size (gnupg_source->input_buf, read < 0 ? 0 : read);
- if (read < 0)
- return FALSE;
- if (read == 0)
- return FALSE;
- }
-
- if (!write_input (fd, gnupg_source->input_buf)) {
- g_warning ("couldn't write output data to gnupg process");
- return FALSE;
- }
-
- return TRUE;
-}
-
-static gboolean
-on_gnupg_source_status (GcrGnupgProcess *self,
- GnupgSource *gnupg_source,
- gint fd)
-{
- GByteArray *buffer = g_byte_array_new ();
- gboolean result = TRUE;
-
- if (!read_output (fd, buffer)) {
- g_warning ("couldn't read status data from gnupg process");
- result = FALSE;
- } else {
- g_string_append_len (gnupg_source->status_buf, (gchar*)buffer->data, buffer->len);
- _gcr_util_parse_lines (gnupg_source->status_buf, buffer->len == 0,
- emit_status_for_each_line, self);
- }
-
- g_byte_array_unref (buffer);
- return result;
-}
-
-static gboolean
-on_gnupg_source_attribute (GcrGnupgProcess *self,
- GnupgSource *gnupg_source,
- gint fd)
-{
- GByteArray *buffer = g_byte_array_new ();
- gboolean result = TRUE;
-
- if (!read_output (fd, buffer)) {
- g_warning ("couldn't read attribute data from gnupg process");
- result = FALSE;
- } else if (buffer->len > 0) {
- _gcr_debug ("received %d bytes of attribute data", (gint)buffer->len);
- if (self->pv->attributes != NULL)
- g_output_stream_write_all (self->pv->attributes, buffer->data,
- buffer->len, NULL,
- gnupg_source->cancellable, NULL);
- }
-
- g_byte_array_unref (buffer);
- return result;
-}
-
-static gboolean
-on_gnupg_source_output (GcrGnupgProcess *self,
- GnupgSource *gnupg_source,
- gint fd)
-{
- GByteArray *buffer = g_byte_array_new ();
- gboolean result = TRUE;
-
- if (!read_output (fd, buffer)) {
- g_warning ("couldn't read output data from gnupg process");
- result = FALSE;
- } else if (buffer->len > 0) {
- _gcr_debug ("received %d bytes of output data", (gint)buffer->len);
- if (self->pv->output != NULL)
- g_output_stream_write_all (self->pv->output, buffer->data, buffer->len,
- NULL, gnupg_source->cancellable, NULL);
- }
-
- g_byte_array_unref (buffer);
- return result;
-}
-
-static gboolean
-on_gnupg_source_error (GcrGnupgProcess *self,
- GnupgSource *gnupg_source,
- gint fd,
- gboolean last)
-{
- GByteArray *buffer = g_byte_array_new ();
- gboolean result = TRUE;
-
- if (!read_output (fd, buffer)) {
- g_warning ("couldn't read error data from gnupg process");
- result = FALSE;
- } else {
- g_string_append_len (gnupg_source->error_buf, (gchar*)buffer->data, buffer->len);
- _gcr_util_parse_lines (gnupg_source->error_buf, last,
- emit_error_for_each_line, gnupg_source->process);
- }
-
- g_byte_array_unref (buffer);
- return result;
-}
-
-static gboolean
-on_gnupg_source_dispatch (GSource *source, GSourceFunc unused, gpointer user_data)
-{
- GnupgSource *gnupg_source = (GnupgSource*)source;
- GcrGnupgProcess *self = gnupg_source->process;
- GPollFD *poll;
- guint i;
-
- /* Standard input, no support yet */
- poll = &gnupg_source->polls[FD_INPUT];
- if (poll->fd >= 0) {
- if (poll->revents & G_IO_OUT)
- if (!on_gnupg_source_input (self, gnupg_source, poll->fd))
- poll->revents |= G_IO_HUP;
- if (poll->revents & G_IO_HUP)
- close_poll (source, poll);
- poll->revents = 0;
- }
-
- /* Status output */
- poll = &gnupg_source->polls[FD_STATUS];
- if (poll->fd >= 0) {
- if (poll->revents & G_IO_IN)
- if (!on_gnupg_source_status (self, gnupg_source, poll->fd))
- poll->revents |= G_IO_HUP;
- if (poll->revents & G_IO_HUP)
- close_poll (source, poll);
- poll->revents = 0;
- }
-
- /* Attribute output */
- poll = &gnupg_source->polls[FD_ATTRIBUTE];
- if (poll->fd >= 0) {
- if (poll->revents & G_IO_IN)
- if (!on_gnupg_source_attribute (self, gnupg_source, poll->fd))
- poll->revents |= G_IO_HUP;
- if (poll->revents & G_IO_HUP)
- close_poll (source, poll);
- poll->revents = 0;
- }
-
- /* Standard output */
- poll = &gnupg_source->polls[FD_OUTPUT];
- if (poll->fd >= 0) {
- if (poll->revents & G_IO_IN)
- if (!on_gnupg_source_output (self, gnupg_source, poll->fd))
- poll->revents |= G_IO_HUP;
- if (poll->revents & G_IO_HUP)
- close_poll (source, poll);
- poll->revents = 0;
- }
-
- /* Standard error */
- poll = &gnupg_source->polls[FD_ERROR];
- if (poll->fd >= 0) {
- if (poll->revents & G_IO_IN)
- if (!on_gnupg_source_error (self, gnupg_source, poll->fd,
- (poll->revents & G_IO_HUP) ? TRUE : FALSE))
- poll->revents |= G_IO_HUP;
- if (poll->revents & G_IO_HUP)
- close_poll (source, poll);
- poll->revents = 0;
- }
-
- for (i = 0; i < NUM_FDS; ++i) {
- if (gnupg_source->polls[i].fd >= 0)
- return TRUE;
- }
-
- /* Because we return below */
- gnupg_source->source_sig = 0;
-
- if (!gnupg_source->child_pid)
- complete_source_is_done (gnupg_source);
-
- return FALSE; /* Disconnect this source */
-}
-
-static GSourceFuncs gnupg_source_funcs = {
- on_gnupg_source_prepare,
- on_gnupg_source_check,
- on_gnupg_source_dispatch,
- on_gnupg_source_finalize,
-};
-
-static void
-on_gnupg_process_child_exited (GPid pid, gint status, gpointer user_data)
-{
- GnupgSource *gnupg_source = user_data;
- GcrGnupgProcess *self = gnupg_source->process;
- GError *error = NULL;
- gint code;
- guint i;
-
- _gcr_debug ("process exited: %d", (int)pid);
-
- g_spawn_close_pid (gnupg_source->child_pid);
- gnupg_source->child_pid = 0;
- gnupg_source->child_sig = 0;
-
- if (WIFEXITED (status)) {
- code = WEXITSTATUS (status);
- if (code != 0) {
- error = g_error_new (G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED,
- _("Gnupg process exited with code: %d"), code);
- }
- } else if (WIFSIGNALED (status)) {
- code = WTERMSIG (status);
- /* Ignore cases where we've signaled the process because we were cancelled */
- if (!g_error_matches (self->pv->error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
- error = g_error_new (G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED,
- _("Gnupg process was terminated with signal: %d"), code);
- }
-
- /* Take this as the async result error */
- if (error && !self->pv->error) {
- _gcr_debug ("%s", error->message);
- self->pv->error = error;
-
- /* Already have an error, just print out message */
- } else if (error) {
- g_warning ("%s", error->message);
- g_error_free (error);
- }
-
- for (i = 0; i < NUM_FDS; ++i) {
- if (gnupg_source->polls[i].fd >= 0)
- return;
- }
-
- complete_source_is_done (gnupg_source);
-}
-
-static void
-on_gnupg_process_child_setup (gpointer user_data)
-{
- int *child_fds = user_data;
- long val;
- guint i;
-
- /*
- * Clear close-on-exec flag for these file descriptors, so that
- * gnupg can write to them
- */
-
- for (i = 0; i < NUM_FDS; i++) {
- if (child_fds[i] >= 0) {
- val = fcntl (child_fds[i], F_GETFD);
- fcntl (child_fds[i], F_SETFD, val & ~FD_CLOEXEC);
- }
- }
-}
-
-static void
-on_cancellable_cancelled (GCancellable *cancellable, gpointer user_data)
-{
- GnupgSource *gnupg_source = user_data;
-
- g_assert (gnupg_source->process);
-
- _gcr_debug ("process cancelled");
-
- /* Set an error, which is respected when this actually completes. */
- if (gnupg_source->process->pv->error == NULL)
- gnupg_source->process->pv->error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_CANCELLED,
- _("The operation was cancelled"));
-
- /* Try and kill the child process */
- if (gnupg_source->child_pid) {
- _gcr_debug ("sending term signal to process: %d",
- (int)gnupg_source->child_pid);
- kill (gnupg_source->child_pid, SIGTERM);
- }
-}
-
-/**
- * _gcr_gnupg_process_run_async:
- * @self: The process
- * @argv: (array zero-terminated=1): The arguments for the process, not including executable, terminated with %NULL.
- * @envp: (allow-none) (array zero-terminated=1): The environment for new process, terminated with %NULL.
- * @flags: Flags for starting the process.
- * @cancellable: (allow-none): Cancellation object
- * @callback: Will be called when operation completes.
- * @user_data: (closure): Data passed to callback.
- *
- * Run the gpg process. Only one 'run' operation can run per GcrGnupgProcess
- * object. The GcrGnupgProcess:output_data and GcrGnupgProcess:error_line
- * signals will be emitted when data is received from the gpg process.
- *
- * Unless the %GCR_GNUPG_PROCESS_RESPECT_LOCALE flag is specified, the process
- * will be run in the 'C' locale. If the %GCR_GNUPG_PROCESS_WITH_STATUS or
- * %GCR_GNUPG_PROCESS_WITH_ATTRIBUTES flags are set, then the gpg process
- * will be status and attribute output respectively. The
- * GcrGnupgProcess:status_record and GcrGnupgProcess:attribute_data signals
- * will provide this data.
- */
-void
-_gcr_gnupg_process_run_async (GcrGnupgProcess *self, const gchar **argv, const gchar **envp,
- GcrGnupgProcessFlags flags, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- GError *error = NULL;
- GPtrArray *args;
- GPtrArray *envs;
- int child_fds[NUM_FDS];
- int status_fds[2] = { -1, -1 };
- int attribute_fds[2] = { -1, -1 };
- int output_fd = -1;
- int error_fd = -1;
- int input_fd = -1;
- GnupgSource *gnupg_source;
- GSource *source;
- GPid pid;
- guint i;
-
- g_return_if_fail (GCR_IS_GNUPG_PROCESS (self));
- g_return_if_fail (argv);
- g_return_if_fail (callback);
- g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
-
- g_return_if_fail (self->pv->running == FALSE);
- g_return_if_fail (self->pv->complete == FALSE);
- g_return_if_fail (self->pv->executable);
-
- self->pv->async_callback = callback;
- self->pv->user_data = user_data;
-
- for (i = 0; i < NUM_FDS; i++)
- child_fds[i] = -1;
-
- /* The command needs to be updated with these status and attribute fds */
- args = g_ptr_array_new_with_free_func (g_free);
- g_ptr_array_add (args, g_strdup (self->pv->executable));
-
- /* Spawn/child will close all other attributes, besides thesthose in child_fds */
- child_fds[FD_INPUT] = 0;
- child_fds[FD_OUTPUT] = 1;
- child_fds[FD_ERROR] = 2;
-
- if (flags & GCR_GNUPG_PROCESS_WITH_STATUS) {
- if (pipe (status_fds) < 0)
- g_return_if_reached ();
- child_fds[FD_STATUS] = status_fds[1];
- g_ptr_array_add (args, g_strdup ("--status-fd"));
- g_ptr_array_add (args, g_strdup_printf ("%d", child_fds[FD_STATUS]));
- }
- if (flags & GCR_GNUPG_PROCESS_WITH_ATTRIBUTES) {
- if (pipe (attribute_fds) < 0)
- g_return_if_reached ();
- child_fds[FD_ATTRIBUTE] = attribute_fds[1];
- g_ptr_array_add (args, g_strdup ("--attribute-fd"));
- g_ptr_array_add (args, g_strdup_printf ("%d", child_fds[FD_ATTRIBUTE]));
- }
-
- if (self->pv->directory) {
- g_ptr_array_add (args, g_strdup ("--homedir"));
- g_ptr_array_add (args, g_strdup (self->pv->directory));
- }
-
- /* All the remaining arguments */
- for (i = 0; argv[i] != NULL; i++)
- g_ptr_array_add (args, g_strdup (argv[i]));
- g_ptr_array_add (args, NULL);
-
- envs = g_ptr_array_new ();
- for (i = 0; envp && envp[i] != NULL; i++) {
- if (flags & GCR_GNUPG_PROCESS_RESPECT_LOCALE ||
- !g_str_has_prefix (envp[i], "LOCALE="))
- g_ptr_array_add (envs, (gpointer)envp[i]);
- }
- if (!(flags & GCR_GNUPG_PROCESS_RESPECT_LOCALE))
- g_ptr_array_add (envs, (gpointer)"LOCALE=C");
- g_ptr_array_add (envs, NULL);
-
- if (_gcr_debugging) {
- gchar *command = g_strjoinv (" ", (gchar**)args->pdata);
- gchar *environ = g_strjoinv (", ", (gchar**)envs->pdata);
- _gcr_debug ("running command: %s", command);
- _gcr_debug ("process environment: %s", environ);
- g_free (command);
- g_free (environ);
- }
-
- g_spawn_async_with_pipes (self->pv->directory, (gchar**)args->pdata,
- (gchar**)envs->pdata, G_SPAWN_DO_NOT_REAP_CHILD,
- on_gnupg_process_child_setup, child_fds,
- &pid, &input_fd, &output_fd, &error_fd, &error);
-
- g_ptr_array_free (args, TRUE);
- g_ptr_array_free (envs, TRUE);
-
- /* Close 'wrong' ends of extra file descriptors */
- close_fd (&(status_fds[1]));
- close_fd (&(attribute_fds[1]));
-
- self->pv->complete = FALSE;
- self->pv->running = TRUE;
-
- if (error) {
- close_fd (&(status_fds[0]));
- close_fd (&(attribute_fds[0]));
- g_assert (!self->pv->error);
- self->pv->error = error;
- complete_run_process (self);
- run_async_ready_callback_later (self);
- return;
- }
-
- _gcr_debug ("process started: %d", (int)pid);
-
- source = g_source_new (&gnupg_source_funcs, sizeof (GnupgSource));
-
- /* Initialize the source */
- gnupg_source = (GnupgSource*)source;
- for (i = 0; i < NUM_FDS; i++)
- gnupg_source->polls[i].fd = -1;
- gnupg_source->error_buf = g_string_sized_new (128);
- gnupg_source->status_buf = g_string_sized_new (128);
- gnupg_source->process = g_object_ref (self);
- gnupg_source->child_pid = pid;
-
- gnupg_source->polls[FD_INPUT].fd = input_fd;
- if (input_fd >= 0) {
- gnupg_source->polls[FD_INPUT].events = G_IO_HUP | G_IO_OUT;
- g_source_add_poll (source, &gnupg_source->polls[FD_INPUT]);
- }
- gnupg_source->polls[FD_OUTPUT].fd = output_fd;
- if (output_fd >= 0) {
- gnupg_source->polls[FD_OUTPUT].events = G_IO_HUP | G_IO_IN;
- g_source_add_poll (source, &gnupg_source->polls[FD_OUTPUT]);
- }
- gnupg_source->polls[FD_ERROR].fd = error_fd;
- if (error_fd >= 0) {
- gnupg_source->polls[FD_ERROR].events = G_IO_HUP | G_IO_IN;
- g_source_add_poll (source, &gnupg_source->polls[FD_ERROR]);
- }
- gnupg_source->polls[FD_STATUS].fd = status_fds[0];
- if (status_fds[0] >= 0) {
- gnupg_source->polls[FD_STATUS].events = G_IO_HUP | G_IO_IN;
- g_source_add_poll (source, &gnupg_source->polls[FD_STATUS]);
- }
- gnupg_source->polls[FD_ATTRIBUTE].fd = attribute_fds[0];
- if (attribute_fds[0] >= 0) {
- gnupg_source->polls[FD_ATTRIBUTE].events = G_IO_HUP | G_IO_IN;
- g_source_add_poll (source, &gnupg_source->polls[FD_ATTRIBUTE]);
- }
-
- if (cancellable) {
- gnupg_source->cancellable = g_object_ref (cancellable);
- gnupg_source->cancel_sig = g_cancellable_connect (cancellable,
- G_CALLBACK (on_cancellable_cancelled),
- g_source_ref (source),
- (GDestroyNotify)g_source_unref);
- }
-
- g_source_set_callback (source, unused_callback, NULL, NULL);
- gnupg_source->source_sig = g_source_attach (source, g_main_context_default ());
-
- /* This assumes the outstanding reference to source */
- g_assert (!gnupg_source->child_sig);
- gnupg_source->child_sig = g_child_watch_add_full (G_PRIORITY_DEFAULT, pid,
- on_gnupg_process_child_exited,
- g_source_ref (source),
- (GDestroyNotify)g_source_unref);
-
- /* source is unreffed in complete_if_source_is_done() */
-}
-
-/**
- * _gcr_gnupg_process_run_finish:
- * @self: The process
- * @result: The result passed to the callback
- * @error: Location to raise an error on failure.
- *
- * Get the result of running a gnupg process.
- *
- * Return value: Whether the Gnupg process was run or not.
- */
-gboolean
-_gcr_gnupg_process_run_finish (GcrGnupgProcess *self, GAsyncResult *result,
- GError **error)
-{
- g_return_val_if_fail (GCR_IS_GNUPG_PROCESS (self), FALSE);
- g_return_val_if_fail (!error || !*error, FALSE);
- g_return_val_if_fail (G_ASYNC_RESULT (self) == result, FALSE);
- g_return_val_if_fail (self->pv->complete, FALSE);
-
- /* This allows the process to run again... */
- self->pv->complete = FALSE;
-
- g_assert (!self->pv->running);
- g_assert (!self->pv->async_callback);
- g_assert (!self->pv->user_data);
-
- if (self->pv->error) {
- g_propagate_error (error, self->pv->error);
- self->pv->error = NULL;
- return FALSE;
- }
-
- return TRUE;
-}
diff --git a/gcr/gcr-gnupg-process.h b/gcr/gcr-gnupg-process.h
deleted file mode 100644
index 61e4894b..00000000
--- a/gcr/gcr-gnupg-process.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#ifndef GCR_GNUPG_PROCESS_H
-#define GCR_GNUPG_PROCESS_H
-
-#include "gcr-base.h"
-#include "gcr-record.h"
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_GNUPG_PROCESS (_gcr_gnupg_process_get_type ())
-#define GCR_GNUPG_PROCESS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_GNUPG_PROCESS, GcrGnupgProcess))
-#define GCR_GNUPG_PROCESS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_GNUPG_PROCESS, GcrGnupgProcessClass))
-#define GCR_IS_GNUPG_PROCESS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_GNUPG_PROCESS))
-#define GCR_IS_GNUPG_PROCESS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_GNUPG_PROCESS))
-#define GCR_GNUPG_PROCESS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_GNUPG_PROCESS, GcrGnupgProcessClass))
-
-typedef struct _GcrGnupgProcess GcrGnupgProcess;
-typedef struct _GcrGnupgProcessClass GcrGnupgProcessClass;
-typedef struct _GcrGnupgProcessPrivate GcrGnupgProcessPrivate;
-
-struct _GcrGnupgProcess {
- /*< private >*/
- GObject parent;
- GcrGnupgProcessPrivate *pv;
-};
-
-struct _GcrGnupgProcessClass {
- GObjectClass parent_class;
-
- /* signals */
- gboolean (*error_line) (GcrGnupgProcess *self, const gchar *line);
-
- gboolean (*status_record) (GcrGnupgProcess *self, GcrRecord *record);
-};
-
-typedef enum {
- GCR_GNUPG_PROCESS_NONE = 0,
- GCR_GNUPG_PROCESS_RESPECT_LOCALE = 1 << 0,
- GCR_GNUPG_PROCESS_WITH_STATUS = 1 << 1,
- GCR_GNUPG_PROCESS_WITH_ATTRIBUTES = 1 << 2
-} GcrGnupgProcessFlags;
-
-GType _gcr_gnupg_process_get_type (void) G_GNUC_CONST;
-
-GcrGnupgProcess* _gcr_gnupg_process_new (const gchar *directory,
- const gchar *executable);
-
-const gchar * _gcr_gnupg_process_get_directory (GcrGnupgProcess *self);
-
-GInputStream * _gcr_gnupg_process_get_input_stream (GcrGnupgProcess *self);
-
-void _gcr_gnupg_process_set_input_stream (GcrGnupgProcess *self,
- GInputStream *input);
-
-GOutputStream * _gcr_gnupg_process_get_output_stream (GcrGnupgProcess *self);
-
-void _gcr_gnupg_process_set_output_stream (GcrGnupgProcess *self,
- GOutputStream *output);
-
-GOutputStream * _gcr_gnupg_process_get_attribute_stream (GcrGnupgProcess *self);
-
-void _gcr_gnupg_process_set_attribute_stream (GcrGnupgProcess *self,
- GOutputStream *output);
-
-void _gcr_gnupg_process_run_async (GcrGnupgProcess *self,
- const gchar **argv,
- const gchar **envp,
- GcrGnupgProcessFlags flags,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean _gcr_gnupg_process_run_finish (GcrGnupgProcess *self,
- GAsyncResult *result,
- GError **error);
-
-G_END_DECLS
-
-#endif /* GCR_GNUPG_PROCESS_H */
diff --git a/gcr/gcr-gnupg-records.c b/gcr/gcr-gnupg-records.c
deleted file mode 100644
index e634b1f1..00000000
--- a/gcr/gcr-gnupg-records.c
+++ /dev/null
@@ -1,267 +0,0 @@
-/*
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-gnupg-records.h"
-#include "gcr-record.h"
-#include "gcr-memory-icon.h"
-
-#include "gck/gck.h"
-
-#include <glib/gi18n-lib.h>
-
-/* Copied from GPGME */
-gboolean
-_gcr_gnupg_records_parse_user_id (const gchar *user_id,
- gchar **rname,
- gchar **remail,
- gchar **rcomment)
-{
- gchar *src, *tail, *x;
- int in_name = 0;
- int in_email = 0;
- int in_comment = 0;
- gboolean anything;
- const gchar *name = NULL;
- const gchar *email = NULL;
- const gchar *comment = NULL;
-
- x = tail = src = g_strdup (user_id);
-
- while (*src) {
- if (in_email) {
- /* Not legal but anyway. */
- if (*src == '<')
- in_email++;
- else if (*src == '>') {
- if (!--in_email && !email) {
- email = tail;
- *src = 0;
- tail = src + 1;
- }
- }
- } else if (in_comment) {
- if (*src == '(')
- in_comment++;
- else if (*src == ')') {
- if (!--in_comment && !comment) {
- comment = tail;
- *src = 0;
- tail = src + 1;
- }
- }
- } else if (*src == '<') {
- if (in_name) {
- if (!name) {
- name = tail;
- *src = 0;
- tail = src + 1;
- }
- in_name = 0;
- } else
- tail = src + 1;
-
- in_email = 1;
- } else if (*src == '(') {
- if (in_name) {
- if (!name) {
- name = tail;
- *src = 0;
- tail = src + 1;
- }
- in_name = 0;
- }
- in_comment = 1;
- } else if (!in_name && *src != ' ' && *src != '\t') {
- in_name = 1;
- }
- src++;
- }
-
- if (in_name) {
- if (!name) {
- name = tail;
- *src = 0;
- tail = src + 1;
- }
- }
-
- anything = FALSE;
-
- if (rname) {
- *rname = g_strdup (name);
- if (name) {
- g_strstrip (*rname);
- anything = TRUE;
- }
- }
-
- if (remail) {
- *remail = g_strdup (email);
- if (email) {
- g_strstrip (*remail);
- anything = TRUE;
- }
- }
-
- if (rcomment) {
- *rcomment = g_strdup (comment);
- if (comment) {
- g_strstrip (*rcomment);
- anything = TRUE;
- }
- }
-
- g_free (x);
- return anything;
-}
-
-const gchar *
-_gcr_gnupg_records_get_keyid (GPtrArray *records)
-{
- GcrRecord *record;
-
- record = _gcr_records_find (records, GCR_RECORD_SCHEMA_PUB);
- if (record != NULL)
- return _gcr_record_get_raw (record, GCR_RECORD_KEY_KEYID);
- record = _gcr_records_find (records, GCR_RECORD_SCHEMA_SEC);
- if (record != NULL)
- return _gcr_record_get_raw (record, GCR_RECORD_KEY_KEYID);
- return NULL;
-}
-
-const gchar *
-_gcr_gnupg_records_get_short_keyid (GPtrArray *records)
-{
- const gchar *keyid;
- gsize length;
-
- keyid = _gcr_gnupg_records_get_keyid (records);
- if (keyid == NULL)
- return NULL;
-
- length = strlen (keyid);
- if (length > 8)
- keyid += (length - 8);
-
- return keyid;
-}
-
-gchar *
-_gcr_gnupg_records_get_user_id (GPtrArray *records)
-{
- GcrRecord *record;
-
- record = _gcr_records_find (records, GCR_RECORD_SCHEMA_UID);
- if (record != NULL)
- return _gcr_record_get_string (record, GCR_RECORD_UID_USERID);
- return NULL;
-}
-
-const gchar *
-_gcr_gnupg_records_get_fingerprint (GPtrArray *records)
-{
- GcrRecord *record;
-
- record = _gcr_records_find (records, GCR_RECORD_SCHEMA_FPR);
- if (record != NULL)
- return _gcr_record_get_raw (record, GCR_RECORD_FPR_FINGERPRINT);
- return NULL;
-}
-
-#define TYPE_IMAGE 0x01
-#define IMAGE_HEADER_LEN 0x10
-#define IMAGE_JPEG_SIG "\x10\x00\x01\x01"
-#define IMAGE_JPEG_SIG_LEN 4
-
-static void
-add_emblem_to_icon (GIcon **icon,
- const gchar *emblem_name)
-{
- GIcon *emblem_icon;
- GIcon *result;
- GEmblem *emblem;
-
- emblem_icon = g_themed_icon_new (emblem_name);
- emblem = g_emblem_new_with_origin (emblem_icon, G_EMBLEM_ORIGIN_LIVEMETADATA);
- result = g_emblemed_icon_new (*icon, emblem);
- g_object_unref (*icon);
- *icon = result;
- g_object_unref (emblem);
- g_object_unref (emblem_icon);
-}
-
-GIcon *
-_gcr_gnupg_records_get_icon (GPtrArray *records)
-{
- GcrRecord *record;
- gchar validity;
- guchar *data;
- gsize n_data;
- guint type;
- GIcon *icon;
- guint i;
-
- for (i = 0; i < records->len; i++) {
- record = records->pdata[i];
- if (GCR_RECORD_SCHEMA_XA1 != _gcr_record_get_schema (record))
- continue;
- if (!_gcr_record_get_uint (record, GCR_RECORD_XA1_TYPE, &type))
- continue;
- if (type != TYPE_IMAGE)
- continue;
-
- data = _gcr_record_get_base64 (record, GCR_RECORD_XA1_DATA, &n_data);
- g_return_val_if_fail (data != NULL, NULL);
-
- /* Header is 16 bytes long */
- if (n_data <= IMAGE_HEADER_LEN) {
- g_free (data);
- continue;
- }
-
- /* These are the header bytes. See gnupg doc/DETAILS */
- g_assert (IMAGE_JPEG_SIG_LEN < IMAGE_HEADER_LEN);
- if (memcmp (data, IMAGE_JPEG_SIG, IMAGE_JPEG_SIG_LEN) != 0) {
- g_free (data);
- continue;
- }
-
- icon = G_ICON (_gcr_memory_icon_new_full ("image/jpeg", data,
- n_data, IMAGE_HEADER_LEN,
- g_free));
-
- validity = _gcr_record_get_char (record, GCR_RECORD_XA1_TRUST);
- if (validity != 0 && validity != 'm' && validity != 'f' && validity != 'u')
- add_emblem_to_icon (&icon, "dialog-question");
-
- /* We have a valid header */
- return icon;
- }
-
- if (_gcr_records_find (records, GCR_RECORD_SCHEMA_SEC))
- return g_themed_icon_new ("gcr-key-pair");
- else
- return g_themed_icon_new ("gcr-key");
-
- return NULL;
-}
diff --git a/gcr/gcr-gnupg-records.h b/gcr/gcr-gnupg-records.h
deleted file mode 100644
index 4a61ff97..00000000
--- a/gcr/gcr-gnupg-records.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_H_INSIDE__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> can be included directly."
-#endif
-
-#ifndef GCR_GNUPG_RECORDS_H
-#define GCR_GNUPG_RECORDS_H
-
-#include <gio/gio.h>
-
-#include "gcr-record.h"
-
-G_BEGIN_DECLS
-
-const gchar * _gcr_gnupg_records_get_keyid (GPtrArray *records);
-
-const gchar * _gcr_gnupg_records_get_short_keyid (GPtrArray *records);
-
-const gchar * _gcr_gnupg_records_get_fingerprint (GPtrArray *records);
-
-gchar * _gcr_gnupg_records_get_user_id (GPtrArray *records);
-
-gboolean _gcr_gnupg_records_parse_user_id (const gchar *user_id,
- gchar **name,
- gchar **email,
- gchar **comment);
-
-GIcon * _gcr_gnupg_records_get_icon (GPtrArray *records);
-
-G_END_DECLS
-
-#endif /* __GCR_GNUPG_RECORD_H__ */
diff --git a/gcr/gcr-gnupg-renderer.c b/gcr/gcr-gnupg-renderer.c
deleted file mode 100644
index 663e32c9..00000000
--- a/gcr/gcr-gnupg-renderer.c
+++ /dev/null
@@ -1,853 +0,0 @@
-/*
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-display-view.h"
-#include "gcr-icons.h"
-#include "gcr-gnupg-records.h"
-#include "gcr-gnupg-renderer.h"
-#include "gcr-openpgp.h"
-#include "gcr-simple-certificate.h"
-#include "gcr-renderer.h"
-#include "gcr-types.h"
-
-#include "gck/gck.h"
-
-#include "egg/egg-hex.h"
-
-#include <gdk/gdk.h>
-#include <glib/gi18n-lib.h>
-
-#include <stdlib.h>
-
-enum {
- PROP_0,
- PROP_RECORDS,
- PROP_LABEL,
- PROP_ATTRIBUTES
-};
-
-struct _GcrGnupgRendererPrivate {
- GPtrArray *records;
- GckAttributes *attrs;
- gchar *label;
-};
-
-static void _gcr_gnupg_renderer_iface_init (GcrRendererIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (GcrGnupgRenderer, _gcr_gnupg_renderer, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (GCR_TYPE_RENDERER, _gcr_gnupg_renderer_iface_init);
-);
-
-/* -----------------------------------------------------------------------------
- * INTERNAL
- */
-
-static gchar *
-calculate_label (GcrGnupgRenderer *self)
-{
- gchar *userid;
- gchar *label;
-
- if (self->pv->attrs) {
- if (gck_attributes_find_string (self->pv->attrs, CKA_LABEL, &label))
- return label;
- }
-
- userid = _gcr_gnupg_records_get_user_id (self->pv->records);
- if (userid != NULL) {
- if (!_gcr_gnupg_records_parse_user_id (userid, &label, NULL, NULL))
- label = NULL;
- }
-
- if (label != NULL)
- return label;
-
- if (self->pv->label)
- return g_strdup (self->pv->label);
-
- return g_strdup (_("PGP Key"));
-}
-
-static void
-_gcr_gnupg_renderer_init (GcrGnupgRenderer *self)
-{
- self->pv = (G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_GNUPG_RENDERER,
- GcrGnupgRendererPrivate));
-}
-
-static void
-_gcr_gnupg_renderer_finalize (GObject *obj)
-{
- GcrGnupgRenderer *self = GCR_GNUPG_RENDERER (obj);
-
- gck_attributes_unref (self->pv->attrs);
- g_free (self->pv->label);
- if (self->pv->records)
- g_ptr_array_unref (self->pv->records);
-
- G_OBJECT_CLASS (_gcr_gnupg_renderer_parent_class)->finalize (obj);
-}
-
-static void
-_gcr_gnupg_renderer_set_property (GObject *obj,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GcrGnupgRenderer *self = GCR_GNUPG_RENDERER (obj);
-
- switch (prop_id) {
- case PROP_RECORDS:
- _gcr_gnupg_renderer_set_records (self, g_value_get_boxed (value));
- break;
- case PROP_LABEL:
- g_free (self->pv->label);
- self->pv->label = g_value_dup_string (value);
- g_object_notify (obj, "label");
- gcr_renderer_emit_data_changed (GCR_RENDERER (self));
- break;
- case PROP_ATTRIBUTES:
- _gcr_gnupg_renderer_set_attributes (self, g_value_get_boxed (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-_gcr_gnupg_renderer_get_property (GObject *obj,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GcrGnupgRenderer *self = GCR_GNUPG_RENDERER (obj);
-
- switch (prop_id) {
- case PROP_RECORDS:
- g_value_set_object (value, self->pv->records);
- break;
- case PROP_LABEL:
- g_value_take_string (value, calculate_label (self));
- break;
- case PROP_ATTRIBUTES:
- g_value_set_boxed (value, self->pv->attrs);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-_gcr_gnupg_renderer_class_init (GcrGnupgRendererClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- GckAttributes *registered;
-
- _gcr_gnupg_renderer_parent_class = g_type_class_peek_parent (klass);
- g_type_class_add_private (klass, sizeof (GcrGnupgRendererPrivate));
-
- gobject_class->finalize = _gcr_gnupg_renderer_finalize;
- gobject_class->set_property = _gcr_gnupg_renderer_set_property;
- gobject_class->get_property = _gcr_gnupg_renderer_get_property;
-
- g_object_class_install_property (gobject_class, PROP_RECORDS,
- g_param_spec_boxed ("records", "Records", "Gnupg records to display",
- G_TYPE_PTR_ARRAY, G_PARAM_READWRITE));
-
- g_object_class_install_property (gobject_class, PROP_ATTRIBUTES,
- g_param_spec_boxed ("attributes", "Attributes", "Certificate pkcs11 attributes",
- GCK_TYPE_ATTRIBUTES, G_PARAM_READWRITE));
-
- g_object_class_install_property (gobject_class, PROP_LABEL,
- g_param_spec_string ("label", "Label", "Certificate Label",
- "", G_PARAM_READWRITE));
-
- /* Register this as a renderer which can be loaded */
- registered = gck_attributes_new ();
- gck_attributes_add_ulong (registered, CKA_CLASS, CKO_GCR_GNUPG_RECORDS);
- gcr_renderer_register (GCR_TYPE_GNUPG_RENDERER, registered);
- gck_attributes_unref (registered);
-}
-
-static const gchar *
-name_for_algo (guint algo)
-{
- switch (algo)
- {
- case GCR_OPENPGP_ALGO_RSA:
- case GCR_OPENPGP_ALGO_RSA_E:
- case GCR_OPENPGP_ALGO_RSA_S:
- return _("RSA");
- case GCR_OPENPGP_ALGO_ELG_E:
- return _("Elgamal");
- case GCR_OPENPGP_ALGO_DSA:
- return _("DSA");
- default:
- return NULL;
- }
-}
-
-static const gchar *
-capability_for_code (gchar code)
-{
- switch (code) {
- case 'e': case 'E':
- return _("Encrypt");
- case 's': case 'S':
- return _("Sign");
- case 'c': case 'C':
- return _("Certify");
- case 'a': case 'A':
- return _("Authenticate");
- case 'D':
- return _("Disabled");
- default:
- return NULL;
- }
-}
-
-static gchar *
-capabilities_for_codes (const gchar *codes)
-{
- const gchar *cap;
- GString *result;
- guint i;
-
- result = g_string_new ("");
- for (i = 0; codes[i] != 0; i++) {
- if (result->len)
- g_string_append_unichar (result, GCR_DISPLAY_VIEW_LINE_BREAK);
- cap = capability_for_code (codes[i]);
- if (cap != NULL)
- g_string_append (result, cap);
- else
- g_string_append_c (result, codes[i]);
- }
- return g_string_free (result, FALSE);
-}
-
-static const gchar *
-status_for_code (gchar code)
-{
- switch (code) {
- case 'o':
- return _("Unknown");
- case 'i':
- return _("Invalid");
- case 'd':
- return _("Disabled");
- case 'r':
- return _("Revoked");
- case 'e':
- return _("Expired");
- case 'q': case '-':
- return _("Undefined trust");
- case 'n':
- return _("Distrusted");
- case 'm':
- return _("Marginally trusted");
- case 'f':
- return _("Fully trusted");
- case 'u':
- return _("Ultimately trusted");
- default:
- return NULL;
- }
-}
-
-static const gchar *
-message_for_code (gchar code,
- GtkMessageType *message_type)
-{
- *message_type = GTK_MESSAGE_OTHER;
- switch (code) {
- case 'o':
- *message_type = GTK_MESSAGE_QUESTION;
- return _("The information in this key has not yet been verified");
- case 'i':
- *message_type = GTK_MESSAGE_ERROR;
- return _("This key is invalid");
- case 'd':
- *message_type = GTK_MESSAGE_WARNING;
- return _("This key has been disabled");
- case 'r':
- *message_type = GTK_MESSAGE_ERROR;
- return _("This key has been revoked");
- case 'e':
- *message_type = GTK_MESSAGE_ERROR;
- return _("This key has expired");
- case 'q': case '-':
- return NULL;
- case 'n':
- *message_type = GTK_MESSAGE_WARNING;
- return _("This key is distrusted");
- case 'm':
- *message_type = GTK_MESSAGE_OTHER;
- return _("This key is marginally trusted");
- case 'f':
- *message_type = GTK_MESSAGE_OTHER;
- return _("This key is fully trusted");
- case 'u':
- *message_type = GTK_MESSAGE_OTHER;
- return _("This key is ultimately trusted");
- default:
- return NULL;
- }
-}
-
-static void
-append_key_record (GcrGnupgRenderer *self,
- GcrDisplayView *view,
- GcrRecord *record,
- const gchar *title)
-{
- GcrRenderer *renderer = GCR_RENDERER (self);
- const gchar *value;
- gchar *display;
- GDateTime *date;
- gchar code;
- guint algo;
- guint bits;
-
- _gcr_display_view_append_heading (view, renderer, title);
-
- /* Key ID */
- value = _gcr_record_get_raw (record, GCR_RECORD_KEY_KEYID);
- if (value != NULL)
- _gcr_display_view_append_value (view, renderer, _("Key ID"), value, TRUE);
-
- /* Algorithm */
- if (_gcr_record_get_uint (record, GCR_RECORD_KEY_ALGO, &algo)) {
- display = NULL;
- value = name_for_algo (algo);
- if (value == NULL)
- value = display = g_strdup_printf ("%u", algo);
- _gcr_display_view_append_value (view, renderer, _("Algorithm"), value, FALSE);
- g_free (display);
- }
-
- /* Key Size */
- if (_gcr_record_get_uint (record, GCR_RECORD_KEY_BITS, &bits)) {
- display = g_strdup_printf ("%u", bits);
- _gcr_display_view_append_value (view, renderer, _("Key Size"), display, FALSE);
- g_free (display);
- }
-
- /* Created */
- date = _gcr_record_get_date (record, GCR_RECORD_KEY_TIMESTAMP);
- if (date != NULL) {
- display = g_date_time_format (date, "%x");
- _gcr_display_view_append_value (view, renderer, _("Created"), display, FALSE);
- g_free (display);
- g_date_time_unref (date);
- }
-
- /* Expiry */
- date = _gcr_record_get_date (record, GCR_RECORD_KEY_EXPIRY);
- if (date != NULL) {
- display = g_date_time_format (date, "%x");
- _gcr_display_view_append_value (view, renderer, _("Expiry"), display, FALSE);
- g_free (display);
- g_date_time_unref (date);
- }
-
- /* Capabilities */
- value = _gcr_record_get_raw (record, GCR_RECORD_PUB_CAPS);
- if (value != NULL) {
- display = capabilities_for_codes (value);
- _gcr_display_view_append_value (view, renderer, _("Capabilities"), display, FALSE);
- g_free (display);
- }
-
- /* Owner Trust */
- code = _gcr_record_get_char (record, GCR_RECORD_KEY_OWNERTRUST);
- if (code != 0) {
- display = NULL;
- value = status_for_code (code);
- if (value == NULL) {
- value = display = g_new0 (gchar, 2);
- display[0] = code;
- }
- _gcr_display_view_append_value (view, renderer, _("Owner trust"), value, FALSE);
- g_free (display);
- }
-}
-
-static void
-append_uid_record (GcrGnupgRenderer *self,
- GcrDisplayView *view,
- GcrRecord *record)
-{
- GcrRenderer *renderer = GCR_RENDERER (self);
- gchar *userid;
- gchar *name;
- gchar *comment;
- gchar *email;
- GDateTime *date;
- gchar *display;
-
- _gcr_display_view_append_heading (view, renderer, _("User ID"));
-
- userid = _gcr_record_get_string (record, GCR_RECORD_UID_USERID);
- if (userid == NULL) {
- _gcr_display_view_append_value (view, renderer, _("Value"), _("Unknown"), FALSE);
- return;
- }
-
- if (_gcr_gnupg_records_parse_user_id (userid, &name, &email, &comment)) {
- if (name != NULL)
- _gcr_display_view_append_value (view, renderer, _("Name"), name, FALSE);
- g_free (name);
- if (email != NULL)
- _gcr_display_view_append_value (view, renderer, _("Email"), email, FALSE);
- g_free (email);
- if (comment != NULL)
- _gcr_display_view_append_value (view, renderer, _("Comment"), comment, FALSE);
- g_free (comment);
-
- /* Unparseable user id */
- } else {
- _gcr_display_view_append_value (view, renderer, _("Value"), userid, FALSE);
- }
-
- /* Created */
- date = _gcr_record_get_date (record, GCR_RECORD_UID_TIMESTAMP);
- if (date != NULL) {
- display = g_date_time_format (date, "%x");
- _gcr_display_view_append_value (view, renderer, _("Created"), display, FALSE);
- g_free (display);
- g_date_time_unref (date);
- }
-
- /* Expiry */
- date = _gcr_record_get_date (record, GCR_RECORD_UID_EXPIRY);
- if (date != NULL) {
- display = g_date_time_format (date, "%x");
- _gcr_display_view_append_value (view, renderer, _("Expiry"), display, FALSE);
- g_free (display);
- g_date_time_unref (date);
- }
-
- g_free (userid);
-}
-
-static void
-append_uat_record (GcrGnupgRenderer *self,
- GcrDisplayView *view,
- GcrRecord *record)
-{
- GcrRenderer *renderer = GCR_RENDERER (self);
- gchar **parts;
- gchar *display;
- const gchar *value;
- GDateTime *date;
-
- _gcr_display_view_append_heading (view, renderer, _("User Attribute"));
-
- /* Size */
- value = _gcr_record_get_raw (record, GCR_RECORD_UAT_COUNT_SIZE);
- if (value != NULL) {
- parts = g_strsplit (value, " ", 2);
- if (parts && parts[0] && parts[1])
- _gcr_display_view_append_value (view, renderer, _("Size"), parts[1], FALSE);
- g_strfreev (parts);
- }
-
- /* Created */
- date = _gcr_record_get_date (record, GCR_RECORD_KEY_TIMESTAMP);
- if (date != NULL) {
- display = g_date_time_format (date, "%x");
- _gcr_display_view_append_value (view, renderer, _("Created"), display, FALSE);
- g_free (display);
- g_date_time_unref (date);
- }
-
- /* Expiry */
- date = _gcr_record_get_date (record, GCR_RECORD_KEY_EXPIRY);
- if (date != NULL) {
- display = g_date_time_format (date, "%x");
- _gcr_display_view_append_value (view, renderer, _("Expiry"), display, FALSE);
- g_free (display);
- g_date_time_unref (date);
- }
-}
-
-static const gchar *
-signature_klass_string (const gchar *klass)
-{
- char *end;
- guint val;
-
- val = strtoul (klass, &end, 16);
- if (end != klass + 2)
- return NULL;
-
- switch (val) {
- case 0x00:
- return _("Signature of a binary document");
- case 0x01:
- return _("Signature of a canonical text document");
- case 0x02:
- return _("Standalone signature");
- case 0x10:
- return _("Generic certification of key");
- case 0x11:
- return _("Persona certification of key");
- case 0x12:
- return _("Casual certification of key");
- case 0x13:
- return _("Positive certification of key");
- case 0x18:
- return _("Subkey binding signature");
- case 0x19:
- return _("Primary key binding signature");
- case 0x1F:
- return _("Signature directly on key");
- case 0x20:
- return _("Key revocation signature");
- case 0x28:
- return _("Subkey revocation signature");
- case 0x30:
- return _("Certification revocation signature");
- case 0x40:
- return _("Timestamp signature");
- case 0x50:
- return _("Third-party confirmation signature");
- default:
- return NULL;
- }
-}
-
-static void
-append_sig_record (GcrGnupgRenderer *self,
- GcrDisplayView *view,
- GcrRecord *record,
- const gchar *keyid)
-{
- GcrRenderer *renderer = GCR_RENDERER (self);
- const gchar *sigid;
- gchar *display;
- const gchar *value;
- const gchar *klass;
- guint algo;
-
- /* Hide self-signatures. There's so many of them */
- sigid = _gcr_record_get_raw (record, GCR_RECORD_SIG_KEYID);
- if (sigid && keyid && g_str_equal (sigid, keyid))
- return;
-
- _gcr_display_view_append_heading (view, renderer, _("Signature"));
-
- /* Key ID */
- if (sigid != NULL)
- _gcr_display_view_append_value (view, renderer, _("Key ID"), sigid, TRUE);
-
- /* Algorithm */
- if (_gcr_record_get_uint (record, GCR_RECORD_SIG_ALGO, &algo)) {
- display = NULL;
- value = name_for_algo (algo);
- if (value == NULL)
- value = display = g_strdup_printf ("%u", algo);
- _gcr_display_view_append_value (view, renderer, _("Algorithm"), value, FALSE);
- g_free (display);
- }
-
- /* User ID */
- display = _gcr_record_get_string (record, GCR_RECORD_SIG_USERID);
- if (display != NULL)
- _gcr_display_view_append_value (view, renderer, _("User ID"), display, FALSE);
- g_free (display);
-
- /* Signature class */
- klass = _gcr_record_get_raw (record, GCR_RECORD_SIG_CLASS);
- if (klass != NULL) {
- value = NULL;
- if (strlen (klass) >= 2) {
- value = signature_klass_string (klass);
- if (value != NULL) {
- _gcr_display_view_append_value (view, renderer, _("Class"), value, FALSE);
- if (klass[2] == 'l')
- _gcr_display_view_append_value (view, renderer, _("Type"), _("Local only"), FALSE);
- else if (klass[2] == 'x')
- _gcr_display_view_append_value (view, renderer, _("Type"), _("Exportable"), FALSE);
- }
- }
- if (value == NULL)
- _gcr_display_view_append_value (view, renderer, _("Class"), klass, FALSE);
- }
-}
-
-static void
-append_rvk_record (GcrGnupgRenderer *self,
- GcrDisplayView *view,
- GcrRecord *record)
-{
- GcrRenderer *renderer = GCR_RENDERER (self);
- const gchar *value;
- gchar *display;
- guint algo;
-
- _gcr_display_view_append_heading (view, renderer, _("Revocation Key"));
-
- /* Algorithm */
- if (_gcr_record_get_uint (record, GCR_RECORD_RVK_ALGO, &algo)) {
- display = NULL;
- value = name_for_algo (algo);
- if (value == NULL)
- value = display = g_strdup_printf ("%u", algo);
- _gcr_display_view_append_value (view, renderer, _("Algorithm"), value, FALSE);
- g_free (display);
- }
-
- value = _gcr_record_get_raw (record, GCR_RECORD_RVK_FINGERPRINT);
- if (value != NULL)
- _gcr_display_view_append_value (view, renderer, _("Fingerprint"), value, TRUE);
-}
-
-static void
-append_fpr_record (GcrGnupgRenderer *self,
- GcrDisplayView *view,
- GcrRecord *record,
- GQuark last_schema)
-{
- GcrRenderer *renderer = GCR_RENDERER (self);
- const gchar *value;
- gpointer raw;
- gsize n_raw;
-
- if (last_schema != GCR_RECORD_SCHEMA_PUB &&
- last_schema != GCR_RECORD_SCHEMA_SUB &&
- last_schema != GCR_RECORD_SCHEMA_SEC &&
- last_schema != GCR_RECORD_SCHEMA_SSB)
- return;
-
- value = _gcr_record_get_raw (record, GCR_RECORD_FPR_FINGERPRINT);
- if (value != NULL) {
- raw = egg_hex_decode (value, -1, &n_raw);
- if (raw != NULL)
- _gcr_display_view_append_hex (view, renderer, _("Fingerprint"), raw, n_raw);
- else
- _gcr_display_view_append_value (view, renderer, _("Fingerprint"), value, TRUE);
- g_free (raw);
- }
-}
-
-static void
-_gcr_gnupg_renderer_render (GcrRenderer *renderer,
- GcrViewer *viewer)
-{
- GtkMessageType message_type;
- GcrGnupgRenderer *self;
- GcrDisplayView *view;
- GDateTime *date;
- const gchar *value;
- gchar *display;
- gchar *userid;
- gchar *email;
- gchar *comment;
- GIcon *icon;
- GQuark schema;
- GQuark last_schema;
- gchar code;
- guint i;
-
- self = GCR_GNUPG_RENDERER (renderer);
-
- if (GCR_IS_DISPLAY_VIEW (viewer)) {
- view = GCR_DISPLAY_VIEW (viewer);
-
- } else {
- g_warning ("GcrGnupgRenderer only works with internal specific "
- "GcrViewer returned by gcr_viewer_new().");
- return;
- }
-
- _gcr_display_view_begin (view, renderer);
-
- if (self->pv->records == NULL || self->pv->records->len == 0) {
- _gcr_display_view_end (view, renderer);
- return;
- }
-
- icon = _gcr_gnupg_records_get_icon (self->pv->records);
- _gcr_display_view_set_icon (view, GCR_RENDERER (self), icon);
- g_object_unref (icon);
-
- display = calculate_label (self);
- _gcr_display_view_append_title (view, renderer, display);
- g_free (display);
-
- userid = _gcr_gnupg_records_get_user_id (self->pv->records);
- if (userid != NULL) {
- if (_gcr_gnupg_records_parse_user_id (userid, NULL, &email, &comment)) {
- if (email != NULL)
- _gcr_display_view_append_content (view, renderer, _("Email"), email);
- g_free (email);
- if (comment != NULL)
- _gcr_display_view_append_content (view, renderer, _("Comment"), comment);
- g_free (comment);
- }
- g_free (userid);
- }
-
- code = _gcr_record_get_char (self->pv->records->pdata[0], GCR_RECORD_TRUST);
- if (code != 'e') {
- date = _gcr_record_get_date (self->pv->records->pdata[0], GCR_RECORD_KEY_EXPIRY);
- if (date != NULL) {
- display = g_date_time_format (date, "%x");
- _gcr_display_view_append_content (view, renderer, _("Expires"), display);
- g_date_time_unref (date);
- g_free (display);
- }
- }
-
- /* The warning or status */
- value = message_for_code (code, &message_type);
- if (value != NULL)
- _gcr_display_view_append_message (view, renderer, message_type, value);
-
- _gcr_display_view_start_details (view, renderer);
-
- value = _gcr_gnupg_records_get_keyid (self->pv->records);
- last_schema = 0;
-
- for (i = 0; i < self->pv->records->len; i++) {
- schema = _gcr_record_get_schema (self->pv->records->pdata[i]);
- if (schema == GCR_RECORD_SCHEMA_PUB)
- append_key_record (self, view, self->pv->records->pdata[i], _("Public Key"));
- else if (schema == GCR_RECORD_SCHEMA_SUB)
- append_key_record (self, view, self->pv->records->pdata[i], _("Public Subkey"));
- else if (schema == GCR_RECORD_SCHEMA_SEC)
- append_key_record (self, view, self->pv->records->pdata[i], _("Secret Key"));
- else if (schema == GCR_RECORD_SCHEMA_SSB)
- append_key_record (self, view, self->pv->records->pdata[i], _("Secret Subkey"));
- else if (schema == GCR_RECORD_SCHEMA_UID)
- append_uid_record (self, view, self->pv->records->pdata[i]);
- else if (schema == GCR_RECORD_SCHEMA_UAT)
- append_uat_record (self, view, self->pv->records->pdata[i]);
- else if (schema == GCR_RECORD_SCHEMA_SIG)
- append_sig_record (self, view, self->pv->records->pdata[i], value);
- else if (schema == GCR_RECORD_SCHEMA_RVK)
- append_rvk_record (self, view, self->pv->records->pdata[i]);
- else if (schema == GCR_RECORD_SCHEMA_FPR)
- append_fpr_record (self, view, self->pv->records->pdata[i], last_schema);
- last_schema = schema;
- }
-
- _gcr_display_view_end (view, renderer);
-}
-
-static void
-_gcr_gnupg_renderer_iface_init (GcrRendererIface *iface)
-{
- iface->render_view = _gcr_gnupg_renderer_render;
-}
-
-GcrGnupgRenderer *
-_gcr_gnupg_renderer_new (GPtrArray *records)
-{
- g_return_val_if_fail (records != NULL, NULL);
-
- return g_object_new (GCR_TYPE_GNUPG_RENDERER,
- "records", records,
- NULL);
-}
-
-GcrGnupgRenderer *
-_gcr_gnupg_renderer_new_for_attributes (const gchar *label,
- GckAttributes *attrs)
-{
- g_return_val_if_fail (attrs != NULL, NULL);
-
- return g_object_new (GCR_TYPE_GNUPG_RENDERER,
- "label", label,
- "attributes", attrs,
- NULL);
-}
-
-GPtrArray *
-_gcr_gnupg_renderer_get_records (GcrGnupgRenderer *self)
-{
- g_return_val_if_fail (GCR_IS_GNUPG_RENDERER (self), NULL);
- return self->pv->records;
-}
-
-void
-_gcr_gnupg_renderer_set_records (GcrGnupgRenderer *self,
- GPtrArray *records)
-{
- g_return_if_fail (GCR_IS_GNUPG_RENDERER (self));
-
- if (records)
- g_ptr_array_ref (records);
- if (self->pv->records)
- g_ptr_array_unref (self->pv->records);
- self->pv->records = records;
-
- if (self->pv->attrs) {
- gck_attributes_unref (self->pv->attrs);
- self->pv->attrs = NULL;
- g_object_notify (G_OBJECT (self), "attributes");
- }
-
- gcr_renderer_emit_data_changed (GCR_RENDERER (self));
- g_object_notify (G_OBJECT (self), "records");
-}
-
-GckAttributes*
-_gcr_gnupg_renderer_get_attributes (GcrGnupgRenderer *self)
-{
- g_return_val_if_fail (GCR_IS_GNUPG_RENDERER (self), NULL);
- return self->pv->attrs;
-}
-
-void
-_gcr_gnupg_renderer_set_attributes (GcrGnupgRenderer *self,
- GckAttributes *attrs)
-{
- GckAttribute *attr;
- GPtrArray *records;
-
- g_return_if_fail (GCR_IS_GNUPG_RENDERER (self));
-
- attr = gck_attributes_find (attrs, CKA_VALUE);
- g_return_if_fail (attr != NULL);
- records = _gcr_records_parse_colons (attr->value, attr->length);
- g_return_if_fail (records != NULL);
-
- if (attrs)
- gck_attributes_ref (attrs);
- gck_attributes_unref (self->pv->attrs);
- self->pv->attrs = attrs;
-
- if (self->pv->records)
- g_ptr_array_unref (self->pv->records);
- self->pv->records = records;
- g_object_notify (G_OBJECT (self), "records");
-
- gcr_renderer_emit_data_changed (GCR_RENDERER (self));
- g_object_notify (G_OBJECT (self), "attributes");
-
-}
diff --git a/gcr/gcr-gnupg-renderer.h b/gcr/gcr-gnupg-renderer.h
deleted file mode 100644
index 0d09c313..00000000
--- a/gcr/gcr-gnupg-renderer.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_H_INSIDE__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> can be included directly."
-#endif
-
-#ifndef __GCR_GNUPG_RENDERER_H__
-#define __GCR_GNUPG_RENDERER_H__
-
-#include <glib-object.h>
-#include <gtk/gtk.h>
-
-#include "gcr-record.h"
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_GNUPG_RENDERER (_gcr_gnupg_renderer_get_type ())
-#define GCR_GNUPG_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_GNUPG_RENDERER, GcrGnupgRenderer))
-#define GCR_GNUPG_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_GNUPG_RENDERER, GcrGnupgRendererClass))
-#define GCR_IS_GNUPG_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_GNUPG_RENDERER))
-#define GCR_IS_GNUPG_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_GNUPG_RENDERER))
-#define GCR_GNUPG_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_GNUPG_RENDERER, GcrGnupgRendererClass))
-
-typedef struct _GcrGnupgRenderer GcrGnupgRenderer;
-typedef struct _GcrGnupgRendererClass GcrGnupgRendererClass;
-typedef struct _GcrGnupgRendererPrivate GcrGnupgRendererPrivate;
-
-struct _GcrGnupgRenderer {
- GObject parent;
-
- /*< private >*/
- GcrGnupgRendererPrivate *pv;
-};
-
-struct _GcrGnupgRendererClass {
- GObjectClass parent_class;
-};
-
-GType _gcr_gnupg_renderer_get_type (void);
-
-GcrGnupgRenderer * _gcr_gnupg_renderer_new (GPtrArray *records);
-
-GcrGnupgRenderer * _gcr_gnupg_renderer_new_for_attributes (const gchar *label,
- GckAttributes *attrs);
-
-GPtrArray * _gcr_gnupg_renderer_get_records (GcrGnupgRenderer *self);
-
-void _gcr_gnupg_renderer_set_records (GcrGnupgRenderer *self,
- GPtrArray *records);
-
-GckAttributes * _gcr_gnupg_renderer_get_attributes (GcrGnupgRenderer *self);
-
-void _gcr_gnupg_renderer_set_attributes (GcrGnupgRenderer *self,
- GckAttributes *attrs);
-
-G_END_DECLS
-
-#endif /* __GCR_GNUPG_RENDERER_H__ */
diff --git a/gcr/gcr-gnupg-util.c b/gcr/gcr-gnupg-util.c
deleted file mode 100644
index b85836b5..00000000
--- a/gcr/gcr-gnupg-util.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "egg/egg-hex.h"
-
-#include "gcr-gnupg-util.h"
-
-#include <gcrypt.h>
-
-/**
- * _gcr_gnupg_build_xa1_record:
- * @meta: Status metadata record about the attribute data.
- * @attribute: Pointer to attribute data.
- * @n_attribute: Length of attribute data.
- *
- * Build a record for attribute data. We use this records to convert attribute
- * data into something we can keep with an array of GcrRecord.
- *
- * Returns: (transfer full): The newly allocated record.
- */
-GcrRecord*
-_gcr_gnupg_build_xa1_record (GcrRecord *meta, gpointer attribute,
- gsize n_attribute)
-{
- gchar hash[20];
- gchar *hex;
- gchar status = 0;
- GcrRecord *record;
- guint flags, type;
- const gchar *created, *expiry;
-
- g_return_val_if_fail (meta, NULL);
-
- record = _gcr_record_new (GCR_RECORD_SCHEMA_XA1, GCR_RECORD_XA1_MAX, ':');
-
- gcry_md_hash_buffer (GCRY_MD_RMD160, hash, attribute, n_attribute);
- hex = egg_hex_encode_full (hash, sizeof (hash), TRUE, 0, 1);
- _gcr_record_take_raw (record, GCR_RECORD_XA1_FINGERPRINT, hex);
-
- if (!_gcr_record_get_uint (meta, GCR_RECORD_ATTRIBUTE_FLAGS, &flags))
- flags = 0;
-
- if (_gcr_record_get_uint (meta, GCR_RECORD_ATTRIBUTE_TYPE, &type))
- _gcr_record_set_uint (record, GCR_RECORD_XA1_TYPE, type);
-
- created = _gcr_record_get_raw (meta, GCR_RECORD_ATTRIBUTE_TIMESTAMP);
- if (created == NULL)
- _gcr_record_set_raw (record, GCR_RECORD_XA1_TIMESTAMP, created);
-
- expiry = _gcr_record_get_raw (meta, GCR_RECORD_ATTRIBUTE_EXPIRY);
- if (expiry != NULL)
- _gcr_record_set_raw (record, GCR_RECORD_XA1_EXPIRY, expiry);
-
- /* These values are from gnupg doc/DETAILS */
- if (flags & 0x02)
- status = 'r';
- else if (flags & 0x04)
- status = 'e';
- else if (flags & 0x01)
- status = 'P';
- if (status != 0)
- _gcr_record_set_char (record, GCR_RECORD_XA1_TRUST, status);
-
- _gcr_record_set_base64 (record, GCR_RECORD_XA1_DATA, attribute, n_attribute);
-
- return record;
-}
diff --git a/gcr/gcr-gnupg-util.h b/gcr/gcr-gnupg-util.h
deleted file mode 100644
index 5910bfbd..00000000
--- a/gcr/gcr-gnupg-util.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef GCR_GNUPG_UTIL_H
-#define GCR_GNUPG_UTIL_H
-
-#include <glib.h>
-
-#include "gcr-record.h"
-
-G_BEGIN_DECLS
-
-GcrRecord* _gcr_gnupg_build_xa1_record (GcrRecord *meta,
- gpointer attribute,
- gsize n_attribute);
-
-G_END_DECLS
-
-#endif /* __GCR_GNUPG_KEY_H__ */
diff --git a/gcr/gcr-icons.c b/gcr/gcr-icons.c
deleted file mode 100644
index e375d009..00000000
--- a/gcr/gcr-icons.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-base.h"
-#include "gcr-icons.h"
-
-/**
- * gcr_icon_for_token:
- * @token_info: the token info
- *
- * Get an appropriate icon for the token
- *
- * Returns: (transfer full): the icon
- */
-GIcon *
-gcr_icon_for_token (GckTokenInfo *token_info)
-{
- GIcon *icon;
-
- g_return_val_if_fail (token_info != NULL, NULL);
-
- if (g_strcmp0 (token_info->manufacturer_id, "Gnome Keyring") == 0)
- icon = g_themed_icon_new (GCR_ICON_HOME_DIRECTORY);
-
- else if (g_strcmp0 (token_info->manufacturer_id, "Mozilla Foundation") == 0 &&
- g_strcmp0 (token_info->model, "NSS 3") == 0)
- icon = g_themed_icon_new (GCR_ICON_HOME_DIRECTORY);
-
- else
- icon = g_themed_icon_new (GCR_ICON_SMART_CARD);
-
- return icon;
-}
diff --git a/gcr/gcr-icons.h b/gcr/gcr-icons.h
deleted file mode 100644
index 7fb4f6c1..00000000
--- a/gcr/gcr-icons.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- * Copyright (C) 2011 Collabora Ltd
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef __GCR_ICONS_H__
-#define __GCR_ICONS_H__
-
-#include <gck/gck.h>
-
-#include <gio/gio.h>
-
-G_BEGIN_DECLS
-
-#define GCR_ICON_CERTIFICATE "application-certificate"
-#define GCR_ICON_KEY "gcr-key"
-#define GCR_ICON_KEY_PAIR "gcr-key-pair"
-#define GCR_ICON_SMART_CARD "gcr-smart-card"
-#define GCR_ICON_HOME_DIRECTORY "user-home"
-
-GIcon * gcr_icon_for_token (GckTokenInfo *token_info);
-
-G_END_DECLS
-
-#endif /* __GCR_SMART_CARD_H__ */
diff --git a/gcr/gcr-import-button.c b/gcr/gcr-import-button.c
deleted file mode 100644
index b25f20cf..00000000
--- a/gcr/gcr-import-button.c
+++ /dev/null
@@ -1,560 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-import-button.h"
-#include "gcr-internal.h"
-#include "gcr-marshal.h"
-#include "gcr-parser.h"
-#include "gcr-pkcs11-import-interaction.h"
-
-#include <glib/gi18n-lib.h>
-
-enum {
- PROP_0,
- PROP_LABEL
-};
-
-/**
- * SECTION:gcr-import-button
- * @title: GcrImportButton
- * @short_description: Button which imports parsed certificates and keys
- *
- * A button which imports keys and certificates. Shows a spinner when the
- * button is activated. When more than one importer is available shows
- * a drop down to select which to import to.
- */
-
-/**
- * GcrImportButton:
- *
- * Button which imports parsed certificates and keys.
- */
-
-/**
- * GcrImportButtonClass:
- * @parent_class: The parent class
- * @imported: Emitted when the import completes, or fails.
- *
- * Class for #GcrImportButton.
- */
-
-struct _GcrImportButtonPrivate {
- GList *queued;
- GList *importers;
- gboolean ready;
- gboolean created;
- gboolean importing;
- gchar *imported;
- GtkWidget *spinner;
- GtkWidget *arrow;
- GtkWidget *label;
- GCancellable *cancellable;
- GtkMenu *menu;
-};
-
-enum {
- IMPORTED,
- LAST_SIGNAL
-};
-
-static guint signals[LAST_SIGNAL] = { 0 };
-
-static GQuark QUARK_IMPORTER = 0;
-
-G_DEFINE_TYPE (GcrImportButton, gcr_import_button, GTK_TYPE_BUTTON);
-
-static void
-gcr_import_button_init (GcrImportButton *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_IMPORT_BUTTON, GcrImportButtonPrivate);
- self->pv->cancellable = g_cancellable_new ();
- self->pv->label = gtk_label_new ("");
-}
-
-static void
-update_import_button (GcrImportButton *self)
-{
- gchar *message;
- gchar *label;
-
- /* Initializing, set a spinner */
- if (self->pv->queued && !self->pv->ready) {
- gtk_widget_show (self->pv->spinner);
- gtk_spinner_start (GTK_SPINNER (self->pv->spinner));
- gtk_widget_hide (self->pv->arrow);
- gtk_widget_set_sensitive (GTK_WIDGET (self), FALSE);
- gtk_widget_set_tooltip_text (GTK_WIDGET (self), _("Initializing..."));
-
- /* Importing, set a spinner */
- } else if (self->pv->importing) {
- gtk_widget_show (self->pv->spinner);
- gtk_spinner_start (GTK_SPINNER (self->pv->spinner));
- gtk_widget_hide (self->pv->arrow);
- gtk_widget_set_sensitive (GTK_WIDGET (self), FALSE);
- gtk_widget_set_tooltip_text (GTK_WIDGET (self), _("Import is in progress..."));
-
- } else if (self->pv->imported) {
- gtk_widget_hide (self->pv->spinner);
- gtk_spinner_stop (GTK_SPINNER (self->pv->spinner));
- gtk_widget_hide (self->pv->arrow);
- gtk_widget_set_sensitive (GTK_WIDGET (self), FALSE);
- message = g_strdup_printf (_("Imported to: %s"), self->pv->imported);
- gtk_widget_set_tooltip_text (GTK_WIDGET (self), message);
- g_free (message);
-
- /* Not importing, but have importers */
- } else if (self->pv->importers) {
-
- gtk_widget_hide (self->pv->spinner);
- gtk_spinner_stop (GTK_SPINNER (self->pv->spinner));
- gtk_widget_set_sensitive (GTK_WIDGET (self), TRUE);
-
- /* More than one importer */
- if (self->pv->importers->next) {
- gtk_widget_show (self->pv->arrow);
- gtk_widget_set_tooltip_text (GTK_WIDGET (self), NULL);
-
- /* Only one importer */
- } else {
- gtk_widget_hide (self->pv->arrow);
- g_object_get (self->pv->importers->data, "label", &label, NULL);
- message = g_strdup_printf (_("Import to: %s"), label);
- gtk_widget_set_tooltip_text (GTK_WIDGET (self), message);
- g_free (message);
- g_free (label);
- }
-
- /* No importers, none compatible */
- } else if (self->pv->created) {
- gtk_widget_hide (self->pv->spinner);
- gtk_spinner_stop (GTK_SPINNER (self->pv->spinner));
- gtk_widget_hide (self->pv->arrow);
-
- gtk_widget_set_sensitive (GTK_WIDGET (self), FALSE);
- gtk_widget_set_tooltip_text (GTK_WIDGET (self), _("Cannot import because there are no compatible importers"));
-
- /* No importers yet added */
- } else {
- gtk_widget_hide (self->pv->spinner);
- gtk_spinner_stop (GTK_SPINNER (self->pv->spinner));
- gtk_widget_hide (self->pv->arrow);
-
- gtk_widget_set_sensitive (GTK_WIDGET (self), FALSE);
- gtk_widget_set_tooltip_text (GTK_WIDGET (self), _("No data to import"));
- }
-}
-
-static void
-on_library_pkcs11_ready (GObject *source,
- GAsyncResult *result,
- gpointer user_data)
-{
- GcrImportButton *self = GCR_IMPORT_BUTTON (user_data);
- GList *queued, *l;
-
- self->pv->ready = TRUE;
-
- /* Process the parsed items that have been seen */
- queued = self->pv->queued;
- self->pv->queued = NULL;
- for (l = queued; l != NULL; l = g_list_next (l))
- gcr_import_button_add_parsed (self, l->data);
- g_assert (self->pv->queued == NULL);
- g_list_free_full (queued, gcr_parsed_unref);
-}
-
-static void
-gcr_import_button_constructed (GObject *obj)
-{
- GcrImportButton *self = GCR_IMPORT_BUTTON (obj);
- GtkWidget *grid;
-
- G_OBJECT_CLASS (gcr_import_button_parent_class)->constructed (obj);
-
- self->pv->spinner = gtk_spinner_new ();
- self->pv->arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE);
- grid = gtk_grid_new ();
-
- gtk_orientable_set_orientation (GTK_ORIENTABLE (grid), GTK_ORIENTATION_HORIZONTAL);
- gtk_container_add (GTK_CONTAINER (grid), self->pv->spinner);
- gtk_container_add (GTK_CONTAINER (grid), self->pv->label);
- gtk_container_add (GTK_CONTAINER (grid), self->pv->arrow);
- gtk_grid_set_row_spacing (GTK_GRID (grid), 3);
- gtk_widget_set_hexpand (grid, TRUE);
- gtk_widget_set_halign (grid, GTK_ALIGN_CENTER);
-
- gtk_widget_show (self->pv->label);
- gtk_widget_show (grid);
-
- gtk_container_add (GTK_CONTAINER (self), grid);
-
- update_import_button (self);
-
- gcr_pkcs11_initialize_async (NULL, on_library_pkcs11_ready, g_object_ref (self));
-}
-
-static void
-gcr_import_button_set_property (GObject *obj,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GcrImportButton *self = GCR_IMPORT_BUTTON (obj);
-
- switch (prop_id) {
- case PROP_LABEL:
- gtk_label_set_label (GTK_LABEL (self->pv->label), g_value_get_string (value));
- g_object_notify (obj, "label");
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_import_button_get_property (GObject *obj,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GcrImportButton *self = GCR_IMPORT_BUTTON (obj);
-
- switch (prop_id) {
- case PROP_LABEL:
- g_value_set_string (value, gtk_label_get_label (GTK_LABEL (self->pv->label)));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_import_button_dispose (GObject *obj)
-{
- GcrImportButton *self = GCR_IMPORT_BUTTON (obj);
-
- gck_list_unref_free (self->pv->importers);
- self->pv->importers = NULL;
- g_cancellable_cancel (self->pv->cancellable);
- g_clear_object (&self->pv->menu);
-
- g_list_free_full (self->pv->queued, gcr_parsed_unref);
- self->pv->queued = NULL;
-
- G_OBJECT_CLASS (gcr_import_button_parent_class)->dispose (obj);
-}
-
-static void
-gcr_import_button_finalize (GObject *obj)
-{
- GcrImportButton *self = GCR_IMPORT_BUTTON (obj);
-
- g_object_unref (self->pv->cancellable);
-
- G_OBJECT_CLASS (gcr_import_button_parent_class)->finalize (obj);
-}
-
-static void
-on_import_complete (GObject *importer,
- GAsyncResult *result,
- gpointer user_data)
-{
- GcrImportButton *self = GCR_IMPORT_BUTTON (user_data);
- GError *error = NULL;
-
- g_return_if_fail (self->pv->imported == NULL);
-
- self->pv->importing = FALSE;
-
- gcr_importer_import_finish (GCR_IMPORTER (importer), result, &error);
- if (error == NULL) {
- g_object_get (importer, "label", &self->pv->imported, NULL);
- gck_list_unref_free (self->pv->importers);
- self->pv->importers = NULL;
- }
-
- g_signal_emit (self, signals[IMPORTED], 0, importer, error);
- g_clear_error (&error);
-
- update_import_button (self);
-}
-
-static void
-begin_import (GcrImportButton *self,
- GcrImporter *importer)
-{
- GTlsInteraction *interaction;
- GtkWindow *window;
-
- g_return_if_fail (self->pv->importing == FALSE);
-
- self->pv->importing = TRUE;
- g_free (self->pv->imported);
- self->pv->imported = NULL;
-
- /* TODO: Hack. Need to figure out how to pair these up... */
- if (g_strcmp0 (G_OBJECT_TYPE_NAME (importer), "GcrPkcs11Importer") == 0) {
- window = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (self)));
- interaction = _gcr_pkcs11_import_interaction_new (window);
- gcr_importer_set_interaction (importer, interaction);
- g_object_unref (interaction);
- }
-
- gcr_importer_import_async (importer,
- self->pv->cancellable,
- on_import_complete,
- g_object_ref (self));
-}
-
-static void
-on_importer_menu_activated (GtkMenuItem *menu_item,
- gpointer user_data)
-{
- GcrImportButton *self = GCR_IMPORT_BUTTON (user_data);
- GcrImporter *importer;
-
- importer = g_object_get_qdata (G_OBJECT (menu_item), QUARK_IMPORTER);
- g_return_if_fail (GCR_IMPORTER (importer));
- g_return_if_fail (self->pv->importing == FALSE);
-
- begin_import (self, importer);
- update_import_button (self);
-}
-
-static void
-update_importer_menu (GcrImportButton *self)
-{
- GtkWidget *menu_item;
- GtkWidget *image;
- GList *children, *l;
- GIcon *icon;
- gchar *label;
-
- if (!self->pv->menu) {
- self->pv->menu = GTK_MENU (gtk_menu_new ());
- g_object_ref_sink (self->pv->menu);
- }
-
- children = gtk_container_get_children (GTK_CONTAINER (self->pv->menu));
- for (l = children; l != NULL; l = g_list_next (l))
- gtk_container_remove (GTK_CONTAINER (self->pv->menu), l->data);
- g_list_free (children);
-
- for (l = self->pv->importers; l != NULL; l = g_list_next (l)) {
- g_object_get (l->data, "label", &label, "icon", &icon, NULL);
- menu_item = gtk_image_menu_item_new_with_label (label);
- g_signal_connect (menu_item, "activate", G_CALLBACK (on_importer_menu_activated), self);
- g_object_set_qdata (G_OBJECT (menu_item), QUARK_IMPORTER, l->data);
- image = gtk_image_new_from_gicon (icon, GTK_ICON_SIZE_MENU);
- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image);
- gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (menu_item), TRUE);
- gtk_widget_show (image);
- gtk_widget_show (menu_item);
- gtk_container_add (GTK_CONTAINER (self->pv->menu), menu_item);
- g_object_unref (icon);
- g_free (label);
- }
-}
-
-static void
-on_menu_position (GtkMenu *menu,
- gint *x,
- gint *y,
- gboolean *push_in,
- gpointer user_data)
-{
- GcrImportButton *self = GCR_IMPORT_BUTTON (user_data);
- GtkWidget *widget = GTK_WIDGET (self);
- GtkAllocation allocation;
- GtkRequisition menu_req;
- GdkRectangle monitor;
- GdkWindow *window;
- GtkWidget *toplevel;
- GdkScreen *screen;
- gint monitor_num;
- gint sx = 0;
- gint sy = 0;
-
- g_return_if_fail (x != NULL);
- g_return_if_fail (y != NULL);
- g_return_if_fail (push_in != NULL);
-
- gtk_widget_get_allocation (widget, &allocation);
-
- if (!gtk_widget_get_has_window (widget)) {
- sx += allocation.x;
- sy += allocation.y;
- }
-
- window = gtk_widget_get_window (widget);
- gdk_window_get_root_coords (window, sx, sy, &sx, &sy);
-
- gtk_widget_get_preferred_size (GTK_WIDGET (menu), NULL, &menu_req);
- if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR)
- *x = sx;
- else
- *x = sx + allocation.width - menu_req.width;
- *y = sy;
-
- screen = gtk_widget_get_screen (widget);
- monitor_num = gdk_screen_get_monitor_at_window (screen, window);
- if (monitor_num < 0)
- monitor_num = 0;
- gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor);
-
- if (*x < monitor.x)
- *x = monitor.x;
- else if (*x + menu_req.width > monitor.x + monitor.width)
- *x = monitor.x + monitor.width - menu_req.width;
-
- if (monitor.y + monitor.height - *y - allocation.height >= menu_req.height)
- *y += allocation.height;
- else if (*y - monitor.y >= menu_req.height)
- *y -= menu_req.height;
- else if (monitor.y + monitor.height - *y - allocation.height > *y - monitor.y)
- *y += allocation.height;
- else
- *y -= menu_req.height;
-
- gtk_menu_set_monitor (menu, monitor_num);
-
- toplevel = gtk_widget_get_parent (GTK_WIDGET (menu));
- if (GTK_IS_WINDOW (toplevel) && gtk_widget_get_visible (toplevel))
- gtk_window_set_type_hint (GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU);
-
- *push_in = FALSE;
-}
-
-static void
-gcr_import_button_clicked (GtkButton *button)
-{
- GcrImportButton *self = GCR_IMPORT_BUTTON (button);
-
- g_return_if_fail (self->pv->importing == FALSE);
- g_return_if_fail (self->pv->importers != NULL);
-
- /* More than one importer, show the menu */
- if (self->pv->importers->next) {
- update_importer_menu (self);
- gtk_menu_popup (self->pv->menu, NULL, NULL, on_menu_position,
- self, 1, gtk_get_current_event_time ());
-
- /* Only one importer, import on click */
- } else {
- begin_import (self, self->pv->importers->data);
- }
-
- update_import_button (self);
-}
-
-static void
-gcr_import_button_class_init (GcrImportButtonClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- GtkButtonClass *button_class = GTK_BUTTON_CLASS (klass);
-
- gobject_class->constructed = gcr_import_button_constructed;
- gobject_class->dispose = gcr_import_button_dispose;
- gobject_class->finalize = gcr_import_button_finalize;
- gobject_class->get_property = gcr_import_button_get_property;
- gobject_class->set_property = gcr_import_button_set_property;
-
- button_class->clicked = gcr_import_button_clicked;
-
- g_object_class_override_property (gobject_class, PROP_LABEL, "label");
-
- /**
- * GcrImportButton::imported:
- * @self: the import button
- * @importer: the importer that was imported to
- * @error: if import was successful %NULL, or an error
- *
- * Signal emitted when an import completes or fails.
- */
- signals[IMPORTED] = g_signal_new ("imported", GCR_TYPE_IMPORT_BUTTON, G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GcrImportButtonClass, imported),
- NULL, NULL, _gcr_marshal_VOID__OBJECT_BOXED,
- G_TYPE_NONE, 2, G_TYPE_OBJECT, G_TYPE_ERROR);
-
- QUARK_IMPORTER = g_quark_from_static_string ("gcr-import-button-importer");
-
- g_type_class_add_private (klass, sizeof (GcrImportButtonPrivate));
-}
-
-/**
- * gcr_import_button_new:
- * @label: (allow-none): label to display on the button
- *
- * Create a new #GcrImportButton.
- *
- * Returns: (transfer full): a newly created #GcrImportButton
- */
-GcrImportButton *
-gcr_import_button_new (const gchar *label)
-{
- return g_object_new (GCR_TYPE_IMPORT_BUTTON,
- "label", label,
- NULL);
-}
-
-/**
- * gcr_import_button_add_parsed:
- * @self: an import button
- * @parsed: a parsed item
- *
- * Queue an item to import via the button
- */
-void
-gcr_import_button_add_parsed (GcrImportButton *self,
- GcrParsed *parsed)
-{
- GList *importers;
-
- g_return_if_fail (GCR_IS_IMPORT_BUTTON (self));
- g_return_if_fail (parsed != NULL);
-
- if (!self->pv->ready) {
- self->pv->queued = g_list_prepend (self->pv->queued, gcr_parsed_ref (parsed));
- update_import_button (self);
- return;
- }
-
- g_free (self->pv->imported);
- self->pv->imported = NULL;
-
- if (self->pv->created) {
- importers = gcr_importer_queue_and_filter_for_parsed (self->pv->importers, parsed);
- } else {
- importers = gcr_importer_create_for_parsed (parsed);
- self->pv->created = TRUE;
- }
-
- gck_list_unref_free (self->pv->importers);
- self->pv->importers = importers;
-
- update_import_button (self);
-}
diff --git a/gcr/gcr-import-button.h b/gcr/gcr-import-button.h
deleted file mode 100644
index 6c839fcb..00000000
--- a/gcr/gcr-import-button.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#ifndef __GCR_IMPORT_BUTTON_H__
-#define __GCR_IMPORT_BUTTON_H__
-
-#include "gcr.h"
-
-#include <gtk/gtk.h>
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_IMPORT_BUTTON (gcr_import_button_get_type ())
-#define GCR_IMPORT_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_IMPORT_BUTTON, GcrImportButton))
-#define GCR_IMPORT_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_IMPORT_BUTTON, GcrImportButtonClass))
-#define GCR_IS_IMPORT_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_IMPORT_BUTTON))
-#define GCR_IS_IMPORT_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_IMPORT_BUTTON))
-#define GCR_IMPORT_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_IMPORT_BUTTON, GcrImportButtonClass))
-
-typedef struct _GcrImportButton GcrImportButton;
-typedef struct _GcrImportButtonClass GcrImportButtonClass;
-typedef struct _GcrImportButtonPrivate GcrImportButtonPrivate;
-
-struct _GcrImportButton {
- GtkButton parent;
-
- /*< private >*/
- GcrImportButtonPrivate *pv;
-};
-
-struct _GcrImportButtonClass {
- GtkButtonClass parent_class;
-
- void (*imported) (GcrImportButton *self,
- GcrImporter *importer,
- GError *error);
-};
-
-GType gcr_import_button_get_type (void) G_GNUC_CONST;
-
-GcrImportButton * gcr_import_button_new (const gchar *label);
-
-void gcr_import_button_add_parsed (GcrImportButton *self,
- GcrParsed *parsed);
-
-G_END_DECLS
-
-#endif /* __GCR_IMPORT_BUTTON_H__ */
diff --git a/gcr/gcr-import-interaction.c b/gcr/gcr-import-interaction.c
deleted file mode 100644
index 19d0bc01..00000000
--- a/gcr/gcr-import-interaction.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-import-interaction.h"
-
-/**
- * SECTION:gcr-importer
- * @title: GcrImporter
- * @short_description: Import certificates and keys
- *
- * An interface which allows importing of certificates and keys. Each
- * #GcrImporter is registered with a set of PKCS\#11 attributes to match
- * stuff that it can import.
- *
- * An importer gets passed a #GcrParser and accesses the currently parsed
- * item. To create a set of importers that can import the currently parsed
- * item in a #GcrParser, use gcr_importer_create_for_parsed(). The list of
- * importers returned has the parsed item queued for import.
- *
- * To queue additional items with a importer use gcr_importer_queue_for_parsed().
- * In addition you can try and queue an additional item with a set of importers
- * using the gcr_importer_queue_and_filter_for_parsed().
- *
- * To start the import use gcr_importer_import() or the async variants.
- */
-
-/**
- * GcrImporter:
- *
- * Imports certificates and keys
- */
-
-/**
- * GcrImporterIface:
- * @parent: parent interface
- * @create_for_parsed: implementation of gcr_importer_create_for_parsed(), required
- * @queue_for_parsed: implementation of gcr_importer_queue_for_parsed(), required
- * @import_sync: optional implemantionon of gcr_importer_import()
- * @import_async: implementation of gcr_importer_import_async(), required
- * @import_finish: implementation of gcr_importer_import_finish()
- *
- * Interface implemented for a #GcrImporter.
- */
-
-typedef GcrImportInteractionIface GcrImportInteractionInterface;
-
-G_DEFINE_INTERFACE (GcrImportInteraction, gcr_import_interaction, G_TYPE_TLS_INTERACTION);
-
-static void
-gcr_import_interaction_default_init (GcrImportInteractionIface *iface)
-{
- static volatile gsize initialized = 0;
-
- if (g_once_init_enter (&initialized)) {
- g_once_init_leave (&initialized, 1);
- }
-}
-
-/**
- * gcr_import_interaction_supplement_prep:
- * @interaction: the interaction
- * @attributes: attributes to supplement
- *
- * Prepare for supplementing the given attributes before import. This means
- * prompting the user for things like labels and the like. The attributes
- * will contain attributes for values that the importer needs, either empty
- * or prefilled with suggested values.
- *
- * This method does not prompt the user, but rather just prepares the
- * interaction that these are the attributes that are needed.
- */
-void
-gcr_import_interaction_supplement_prep (GcrImportInteraction *interaction,
- GckAttributes *attributes)
-{
- GcrImportInteractionIface *iface;
-
- g_return_if_fail (GCR_IS_IMPORT_INTERACTION (interaction));
- g_return_if_fail (attributes != NULL);
-
- iface = GCR_IMPORT_INTERACTION_GET_INTERFACE (interaction);
- if (iface->supplement != NULL)
- (iface->supplement_prep) (interaction, attributes);
-}
-
-/**
- * gcr_import_interaction_supplement:
- * @interaction: the interaction
- * @attributes: supplemented attributes
- * @cancellable: optional cancellable object
- * @error: location to store error on failure
- *
- * Supplement attributes before import. This means prompting the user for
- * things like labels and the like. The needed attributes will have been passed
- * to gcr_import_interaction_supplement_prep().
- *
- * This method prompts the user and fills in the attributes. If the user or
- * cancellable cancels the operation the error should be set with %G_IO_ERROR_CANCELLED.
- *
- * Returns: %G_TLS_INTERACTION_HANDLED if successful or %G_TLS_INTERACTION_FAILED
- */
-GTlsInteractionResult
-gcr_import_interaction_supplement (GcrImportInteraction *interaction,
- GckAttributes *attributes,
- GCancellable *cancellable,
- GError **error)
-{
- GcrImportInteractionIface *iface;
-
- g_return_val_if_fail (GCR_IS_IMPORT_INTERACTION (interaction), G_TLS_INTERACTION_UNHANDLED);
- g_return_val_if_fail (attributes != NULL, G_TLS_INTERACTION_UNHANDLED);
- g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), G_TLS_INTERACTION_UNHANDLED);
- g_return_val_if_fail (error == NULL || *error == NULL, G_TLS_INTERACTION_UNHANDLED);
-
- iface = GCR_IMPORT_INTERACTION_GET_INTERFACE (interaction);
- g_return_val_if_fail (iface->supplement != NULL, G_TLS_INTERACTION_UNHANDLED);
-
- return (iface->supplement) (interaction, attributes, cancellable, error);
-}
-
-
-/**
- * gcr_import_interaction_supplement_async:
- * @interaction: the interaction
- * @attributes: supplemented attributes
- * @cancellable: optional cancellable object
- * @callback: called when the operation completes
- * @user_data: data to be passed to the callback
- *
- * Asynchronously supplement attributes before import. This means prompting the
- * user for things like labels and the like. The needed attributes will have
- * been passed to gcr_import_interaction_supplement_prep().
- *
- * This method prompts the user and fills in the attributes.
- */
-void
-gcr_import_interaction_supplement_async (GcrImportInteraction *interaction,
- GckAttributes *attributes,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- GcrImportInteractionIface *iface;
-
- g_return_if_fail (GCR_IS_IMPORT_INTERACTION (interaction));
- g_return_if_fail (attributes != NULL);
- g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
-
- iface = GCR_IMPORT_INTERACTION_GET_INTERFACE (interaction);
- g_return_if_fail (iface->supplement != NULL);
-
- (iface->supplement_async) (interaction, attributes, cancellable, callback, user_data);
-}
-
-/**
- * gcr_import_interaction_supplement_finish:
- * @interaction: the interaction
- * @result: the asynchronous result
- * @error: location to place an error on failure
- *
- * Complete operation to asynchronously supplement attributes before import.
- *
- * If the user or cancellable cancels the operation the error should be set
- * with %G_IO_ERROR_CANCELLED.
- *
- * Returns: %G_TLS_INTERACTION_HANDLED if successful or %G_TLS_INTERACTION_FAILED
- */
-GTlsInteractionResult
-gcr_import_interaction_supplement_finish (GcrImportInteraction *interaction,
- GAsyncResult *result,
- GError **error)
-{
- GcrImportInteractionIface *iface;
-
- g_return_val_if_fail (GCR_IS_IMPORT_INTERACTION (interaction), G_TLS_INTERACTION_UNHANDLED);
- g_return_val_if_fail (G_IS_ASYNC_RESULT (result), G_TLS_INTERACTION_UNHANDLED);
- g_return_val_if_fail (error == NULL || *error == NULL, G_TLS_INTERACTION_UNHANDLED);
-
- iface = GCR_IMPORT_INTERACTION_GET_INTERFACE (interaction);
- g_return_val_if_fail (iface->supplement != NULL, G_TLS_INTERACTION_UNHANDLED);
-
- return (iface->supplement_finish) (interaction, result, error);
-}
diff --git a/gcr/gcr-import-interaction.h b/gcr/gcr-import-interaction.h
deleted file mode 100644
index 2793d139..00000000
--- a/gcr/gcr-import-interaction.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef __GCR_IMPORT_INTERACTION_H__
-#define __GCR_IMPORT_INTERACTION_H__
-
-#include "gcr-importer.h"
-
-#include <glib-object.h>
-
-#include <gio/gio.h>
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_IMPORT_INTERACTION (gcr_import_interaction_get_type ())
-#define GCR_IMPORT_INTERACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_IMPORT_INTERACTION, GcrImportInteraction))
-#define GCR_IS_IMPORT_INTERACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_IMPORT_INTERACTION))
-#define GCR_IMPORT_INTERACTION_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GCR_TYPE_IMPORT_INTERACTION, GcrImportInteractionIface))
-
-typedef struct _GcrImportInteraction GcrImportInteraction;
-typedef struct _GcrImportInteractionIface GcrImportInteractionIface;
-
-struct _GcrImportInteractionIface {
- GTypeInterface parent;
-
- void (*supplement_prep) (GcrImportInteraction *interaction,
- GckAttributes *attributes);
-
- GTlsInteractionResult (*supplement) (GcrImportInteraction *interaction,
- GckAttributes *attributes,
- GCancellable *cancellable,
- GError **error);
-
- void (*supplement_async) (GcrImportInteraction *interaction,
- GckAttributes *attributes,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
- GTlsInteractionResult (*supplement_finish) (GcrImportInteraction *interaction,
- GAsyncResult *result,
- GError **error);
-
- /*< private >*/
- gpointer reserved[6];
-};
-
-GType gcr_import_interaction_get_type (void);
-
-void gcr_import_interaction_supplement_prep (GcrImportInteraction *interaction,
- GckAttributes *attributes);
-
-GTlsInteractionResult gcr_import_interaction_supplement (GcrImportInteraction *interaction,
- GckAttributes *attributes,
- GCancellable *cancellable,
- GError **error);
-
-void gcr_import_interaction_supplement_async (GcrImportInteraction *interaction,
- GckAttributes *attributes,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-GTlsInteractionResult gcr_import_interaction_supplement_finish (GcrImportInteraction *interaction,
- GAsyncResult *result,
- GError **error);
-
-G_END_DECLS
-
-#endif /* __GCR_IMPORT_INTERACTION_H__ */
diff --git a/gcr/gcr-importer.c b/gcr/gcr-importer.c
deleted file mode 100644
index cb572851..00000000
--- a/gcr/gcr-importer.c
+++ /dev/null
@@ -1,628 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-deprecated-base.h"
-#include "gcr-importer.h"
-#include "gcr-internal.h"
-#include "gcr-marshal.h"
-#include "gcr-gnupg-importer.h"
-#include "gcr-parser.h"
-#include "gcr-pkcs11-importer.h"
-
-#include <glib/gi18n-lib.h>
-
-/**
- * SECTION:gcr-importer
- * @title: GcrImporter
- * @short_description: Import certificates and keys
- *
- * An interface which allows importing of certificates and keys. Each
- * #GcrImporter is registered with a set of PKCS\#11 attributes to match
- * stuff that it can import.
- *
- * An importer gets passed a #GcrParser and accesses the currently parsed
- * item. To create a set of importers that can import the currently parsed
- * item in a #GcrParser, use gcr_importer_create_for_parsed(). The list of
- * importers returned has the parsed item queued for import.
- *
- * To queue additional items with a importer use gcr_importer_queue_for_parsed().
- * In addition you can try and queue an additional item with a set of importers
- * using the gcr_importer_queue_and_filter_for_parsed().
- *
- * To start the import use gcr_importer_import() or the async variants.
- */
-
-/**
- * GcrImporter:
- *
- * Imports certificates and keys
- */
-
-/**
- * GcrImporterIface:
- * @parent: parent interface
- * @create_for_parsed: implementation of gcr_importer_create_for_parsed(), required
- * @queue_for_parsed: implementation of gcr_importer_queue_for_parsed(), required
- * @import_sync: optional implemantionon of gcr_importer_import()
- * @import_async: implementation of gcr_importer_import_async(), required
- * @import_finish: implementation of gcr_importer_import_finish()
- *
- * Interface implemented for a #GcrImporter.
- */
-
-typedef GcrImporterIface GcrImporterInterface;
-
-G_DEFINE_INTERFACE (GcrImporter, gcr_importer, G_TYPE_OBJECT);
-
-typedef struct _GcrRegistered {
- GckAttributes *attrs;
- GType importer_type;
-} GcrRegistered;
-
-static GArray *registered_importers = NULL;
-static gboolean registered_sorted = FALSE;
-
-static void
-gcr_importer_default_init (GcrImporterIface *iface)
-{
- static volatile gsize initialized = 0;
-
- if (g_once_init_enter (&initialized)) {
-
- /**
- * GcrImporter:label:
- *
- * The label for the importer.
- */
- g_object_interface_install_property (iface,
- g_param_spec_string ("label", "Label", "The label for the importer",
- "", G_PARAM_READABLE));
-
- /**
- * GcrImporter:icon:
- *
- * The icon for the importer.
- */
- g_object_interface_install_property (iface,
- g_param_spec_object ("icon", "Icon", "The icon for the importer",
- G_TYPE_ICON, G_PARAM_READABLE));
-
- /**
- * GcrImporter:interaction:
- *
- * The interaction for the importer.
- */
- g_object_interface_install_property (iface,
- g_param_spec_object ("interaction", "Interaction",
- "Interaction for prompts",
- G_TYPE_TLS_INTERACTION, G_PARAM_READWRITE));
-
- g_once_init_leave (&initialized, 1);
- }
-}
-
-/**
- * gcr_importer_register:
- * @importer_type: the GType of the importer being registered
- * @attrs: the attributes that this importer is compatible with
- *
- * Register an importer to handle parsed items that match the given attributes.
- */
-void
-gcr_importer_register (GType importer_type,
- GckAttributes *attrs)
-{
- GcrRegistered registered;
-
- if (!registered_importers)
- registered_importers = g_array_new (FALSE, FALSE, sizeof (GcrRegistered));
-
- registered.importer_type = importer_type;
- registered.attrs = gck_attributes_ref (attrs);
- g_array_append_val (registered_importers, registered);
- registered_sorted = FALSE;
-}
-
-static gint
-sort_registered_by_n_attrs (gconstpointer a, gconstpointer b)
-{
- const GcrRegistered *ra = a;
- const GcrRegistered *rb = b;
- gulong na, nb;
-
- g_assert (a);
- g_assert (b);
-
- na = gck_attributes_count (ra->attrs);
- nb = gck_attributes_count (rb->attrs);
-
- /* Note we're sorting in reverse order */
- if (na < nb)
- return 1;
- return (na == nb) ? 0 : -1;
-}
-
-static gboolean
-check_if_seen_or_add (GHashTable *seen,
- gpointer key)
-{
- if (g_hash_table_lookup (seen, key))
- return TRUE;
- g_hash_table_insert (seen, key, key);
- return FALSE;
-}
-
-/**
- * gcr_importer_create_for_parsed:
- * @parsed: a parser with a parsed item to import
- *
- * Create a set of importers which can import this parsed item.
- * The parsed item is represented by the state of the GcrParser at the
- * time of calling this method.
- *
- * Returns: (element-type Gcr.Importer) (transfer full): a list of importers
- * which can import the parsed item, which should be freed with
- * g_object_unref(), or %NULL if no types of importers can be created
- */
-GList *
-gcr_importer_create_for_parsed (GcrParsed *parsed)
-{
- GcrRegistered *registered;
- GcrImporterIface *iface;
- gpointer instance_class;
- GckAttributes *attrs;
- gboolean matched;
- gulong n_attrs;
- GList *results = NULL;
- GHashTable *seen;
- gulong j;
- gsize i;
-
- g_return_val_if_fail (parsed != NULL, NULL);
-
- gcr_importer_register_well_known ();
-
- if (!registered_importers)
- return NULL;
-
- if (!registered_sorted) {
- g_array_sort (registered_importers, sort_registered_by_n_attrs);
- registered_sorted = TRUE;
- }
-
- attrs = gcr_parsed_get_attributes (parsed);
- if (attrs != NULL)
- gck_attributes_ref (attrs);
- else
- attrs = gck_attributes_new ();
-
- seen = g_hash_table_new (g_direct_hash, g_direct_equal);
-
- for (i = 0; i < registered_importers->len; ++i) {
- registered = &(g_array_index (registered_importers, GcrRegistered, i));
- n_attrs = gck_attributes_count (registered->attrs);
-
- matched = TRUE;
-
- for (j = 0; j < n_attrs; ++j) {
- if (!gck_attributes_contains (attrs, gck_attributes_at (registered->attrs, j))) {
- matched = FALSE;
- break;
- }
- }
-
- if (matched) {
- if (check_if_seen_or_add (seen, GUINT_TO_POINTER (registered->importer_type)))
- continue;
-
- instance_class = g_type_class_ref (registered->importer_type);
-
- iface = g_type_interface_peek (instance_class, GCR_TYPE_IMPORTER);
- g_return_val_if_fail (iface != NULL, NULL);
- g_return_val_if_fail (iface->create_for_parsed, NULL);
- results = g_list_concat (results, (iface->create_for_parsed) (parsed));
-
- g_type_class_unref (instance_class);
- }
- }
-
- g_hash_table_unref (seen);
- gck_attributes_unref (attrs);
- return results;
-}
-
-/**
- * gcr_importer_queue_for_parsed:
- * @importer: an importer to add additional items to
- * @parsed: a parsed item to import
- *
- * Queues an additional item to be imported. The parsed item is represented
- * by the state of the #GcrParser at the time of calling this method.
- *
- * If the parsed item is incompatible with the importer, then this will
- * fail and the item will not be queued.
- *
- * Returns: whether the item was queued or not
- */
-gboolean
-gcr_importer_queue_for_parsed (GcrImporter *importer,
- GcrParsed *parsed)
-{
- GcrImporterIface *iface;
-
- g_return_val_if_fail (GCR_IS_IMPORTER (importer), FALSE);
- g_return_val_if_fail (parsed != NULL, FALSE);
-
- iface = GCR_IMPORTER_GET_INTERFACE (importer);
- g_return_val_if_fail (iface != NULL, FALSE);
- g_return_val_if_fail (iface->queue_for_parsed != NULL, FALSE);
-
- return (iface->queue_for_parsed) (importer, parsed);
-}
-
-/**
- * gcr_importer_queue_and_filter_for_parsed:
- * @importers: (element-type Gcr.Importer): a set of importers
- * @parsed: a parsed item
- *
- * Queues an additional item to be imported in all compattible importers
- * in the set. The parsed item is represented by the state of the #GcrParser
- * at the time of calling this method.
- *
- * If the parsed item is incompatible with an importer, then that the item
- * will not be queued on that importer.
- *
- * Returns: (transfer full) (element-type Gcr.Importer): a new set of importers
- * that queued the item, which should be freed with gck_list_unref_free()
- */
-GList *
-gcr_importer_queue_and_filter_for_parsed (GList *importers,
- GcrParsed *parsed)
-{
- GList *results = NULL;
- GList *l;
-
- for (l = importers; l != NULL; l = g_list_next (l)) {
- if (gcr_importer_queue_for_parsed (l->data, parsed))
- results = g_list_prepend (results, g_object_ref (l->data));
- }
-
- return g_list_reverse (results);
-}
-
-typedef struct {
- gboolean complete;
- GCond *cond;
- GMutex *mutex;
- GError *error;
- GMainContext *context;
-} ImportClosure;
-
-static void
-on_import_async_complete (GObject *source,
- GAsyncResult *result,
- gpointer user_data)
-{
- ImportClosure *closure = user_data;
- GError *error = NULL;
-
- if (!gcr_importer_import_finish (GCR_IMPORTER (source), result, &error)) {
- if (error == NULL) {
- g_warning ("%s::import_finished returned false, but did not set error",
- G_OBJECT_TYPE_NAME (source));
- }
- }
-
- g_mutex_lock (closure->mutex);
-
- closure->complete = TRUE;
- closure->error = error;
- g_cond_signal (closure->cond);
-
- g_mutex_unlock (closure->mutex);
-}
-
-/**
- * gcr_importer_import:
- * @importer: the importer
- * @cancellable: a #GCancellable, or %NULL
- * @error: the location to place an error on failure, or %NULL
- *
- * Import the queued items in the importer. This call will block
- * until the operation completes.
- *
- * Returns: whether the items were imported successfully or not
- */
-gboolean
-gcr_importer_import (GcrImporter *importer,
- GCancellable *cancellable,
- GError **error)
-{
- gboolean result;
- ImportClosure *closure;
- GcrImporterIface *iface;
-
- g_return_val_if_fail (GCR_IS_IMPORTER (importer), FALSE);
- g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), FALSE);
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
-
- iface = GCR_IMPORTER_GET_INTERFACE (importer);
- if (iface->import_sync)
- return (iface->import_sync) (importer, cancellable, error);
-
- g_return_val_if_fail (iface->import_async != NULL, FALSE);
- g_return_val_if_fail (iface->import_finish != NULL, FALSE);
-
- closure = g_new0 (ImportClosure, 1);
- closure->cond = g_cond_new ();
- closure->mutex = g_mutex_new ();
- closure->context = g_main_context_get_thread_default ();
- g_mutex_lock (closure->mutex);
-
- (iface->import_async) (importer, cancellable, on_import_async_complete, closure);
-
- /*
- * Handle the case where we've been called from within the main context
- * or in the case where the main context is not running. This approximates
- * the behavior of a modal dialog.
- */
- if (g_main_context_acquire (closure->context)) {
- while (!closure->complete) {
- g_mutex_unlock (closure->mutex);
- g_main_context_iteration (closure->context, TRUE);
- g_mutex_lock (closure->mutex);
- }
-
- g_main_context_release (closure->context);
-
- /*
- * Handle the case where we're in a different thread than the main
- * context and a main loop is running.
- */
- } else {
- while (!closure->complete)
- g_cond_wait (closure->cond, closure->mutex);
- }
-
- g_mutex_unlock (closure->mutex);
-
- result = (closure->error == NULL);
- if (closure->error)
- g_propagate_error (error, closure->error);
-
- g_cond_free (closure->cond);
- g_mutex_free (closure->mutex);
- g_free (closure);
-
- return result;
-}
-
-/**
- * gcr_importer_import_async:
- * @importer: the importer
- * @cancellable: a #GCancellable, or %NULL
- * @callback: called when the operation completes
- * @user_data: data to be passed to the callback
- *
- * Import the queued items in the importer. This function returns immediately
- * and completes asynchronously.
- */
-void
-gcr_importer_import_async (GcrImporter *importer,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- GcrImporterIface *iface;
-
- g_return_if_fail (GCR_IS_IMPORTER (importer));
- g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
-
- iface = GCR_IMPORTER_GET_INTERFACE (importer);
- g_return_if_fail (iface != NULL);
- g_return_if_fail (iface->import_async != NULL);
-
- return (iface->import_async) (importer, cancellable, callback, user_data);
-}
-
-/**
- * gcr_importer_import_finish:
- * @importer: the importer
- * @result: an asynchronous result
- * @error: the location to place an error on failure, or %NULL
- *
- * Complete an asynchronous operation to import queued items.
- *
- * Returns: whether the import succeeded or failed
- */
-gboolean
-gcr_importer_import_finish (GcrImporter *importer,
- GAsyncResult *result,
- GError **error)
-{
- GcrImporterIface *iface;
-
- g_return_val_if_fail (GCR_IS_IMPORTER (importer), FALSE);
- g_return_val_if_fail (G_IS_ASYNC_RESULT (result), FALSE);
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
-
- iface = GCR_IMPORTER_GET_INTERFACE (importer);
- g_return_val_if_fail (iface != NULL, FALSE);
- g_return_val_if_fail (iface->import_finish != NULL, FALSE);
-
- return (iface->import_finish) (importer, result, error);
-}
-
-/**
- * gcr_importer_get_interaction:
- * @importer: the importer
- *
- * Get the interaction used to prompt the user when needed by this
- * importer.
- *
- * Returns: (transfer none) (allow-none): the interaction or %NULL
- */
-GTlsInteraction *
-gcr_importer_get_interaction (GcrImporter *importer)
-{
- GTlsInteraction *interaction = NULL;
-
- g_return_val_if_fail (GCR_IS_IMPORTER (importer), NULL);
-
- g_object_get (importer, "interaction", &interaction, NULL);
-
- if (interaction != NULL)
- g_object_unref (interaction);
-
- return interaction;
-}
-
-/**
- * gcr_importer_set_interaction:
- * @importer: the importer
- * @interaction: the interaction used by the importer
- *
- * Set the interaction used to prompt the user when needed by this
- * importer.
- */
-void
-gcr_importer_set_interaction (GcrImporter *importer,
- GTlsInteraction *interaction)
-{
- g_return_if_fail (GCR_IS_IMPORTER (importer));
- g_object_set (importer, "interaction", interaction, NULL);
-}
-
-/**
- * gcr_importer_register_well_known:
- *
- * Register built-in PKCS\#11 and GnuPG importers.
- */
-void
-gcr_importer_register_well_known (void)
-{
- g_type_class_unref (g_type_class_ref (GCR_TYPE_PKCS11_IMPORTER));
- g_type_class_unref (g_type_class_ref (GCR_TYPE_GNUPG_IMPORTER));
-}
-
-#ifndef GCR_DISABLE_DEPRECATED
-
-/**
- * gcr_importer_get_parser:
- * @self: An importer
- *
- * Has no effect. Use gcr_importer_listen() instead.
- *
- * Returns: %NULL is always returned.
- * Deprecated: Since 3.0.0
- */
-GcrParser*
-gcr_importer_get_parser (GcrImporter *self)
-{
- g_warning ("gcr_importer_get_parser() is no longer supported "
- "Use gcr_importer_listen() instead.");
- return NULL;
-}
-
-/**
- * gcr_importer_set_parser:
- * @self: An importer
- * @parser: A parser
- *
- * Has no effect. Use gcr_importer_listen() instead.
- *
- * Deprecated: Since 3.0.0
- */
-void
-gcr_importer_set_parser (GcrImporter *self,
- GcrParser *parser)
-{
- g_warning ("gcr_importer_set_parser() is no longer supported "
- "Use gcr_importer_listen() instead.");
-}
-
-/*
- * gcr_importer_get_slot:
- * @self: The importer
- *
- * Returns %NULL.
- *
- * Deprecated: since 3.4.0
- */
-GckSlot *
-gcr_importer_get_slot (GcrImporter *self)
-{
- g_warning ("gcr_importer_get_slot() is no longer supported.");
- return NULL;
-}
-
-/**
- * gcr_importer_set_slot:
- * @self: The importer
- * @slot: The slot to import to
- *
- * Has no effect.
- *
- * Deprecated: since 3.4.0
- */
-void
-gcr_importer_set_slot (GcrImporter *self,
- GckSlot *slot)
-{
- g_warning ("gcr_importer_set_slot() is no longer supported.");
-}
-
-/**
- * gcr_importer_get_prompt_behavior:
- * @self: The importer
- *
- * Returns: zero
- *
- * Deprecated: since 3.4.0
- */
-GcrImporterPromptBehavior
-gcr_importer_get_prompt_behavior (GcrImporter *self)
-{
- g_warning ("gcr_importer_get_prompt_behavior() is no longer supported.");
- return 0;
-}
-
-/**
- * gcr_importer_set_prompt_behavior:
- * @self: The importer
- * @behavior: The prompt behavior flag
- *
- * Has no effect.
- *
- * Deprecated: since 3.4.0
- */
-void
-gcr_importer_set_prompt_behavior (GcrImporter *self,
- GcrImporterPromptBehavior behavior)
-{
- g_warning ("gcr_importer_set_prompt_behavior() is no longer supported.");
-}
-
-#endif /* GCR_DISABLE_DEPRECATED */
diff --git a/gcr/gcr-importer.h b/gcr/gcr-importer.h
deleted file mode 100644
index d9159408..00000000
--- a/gcr/gcr-importer.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef __GCR_IMPORTER_H__
-#define __GCR_IMPORTER_H__
-
-#include "gcr-parser.h"
-
-#include <glib-object.h>
-
-#include <gio/gio.h>
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_IMPORTER (gcr_importer_get_type ())
-#define GCR_IMPORTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_IMPORTER, GcrImporter))
-#define GCR_IS_IMPORTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_IMPORTER))
-#define GCR_IMPORTER_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GCR_TYPE_IMPORTER, GcrImporterIface))
-
-typedef struct _GcrImporter GcrImporter;
-typedef struct _GcrImporterIface GcrImporterIface;
-
-struct _GcrImporterIface {
- GTypeInterface parent;
-
- GList * (*create_for_parsed) (GcrParsed *parsed);
-
- gboolean (*queue_for_parsed) (GcrImporter *importer,
- GcrParsed *parsed);
-
- gboolean (*import_sync) (GcrImporter *importer,
- GCancellable *cancellable,
- GError **error);
-
- void (*import_async) (GcrImporter *importer,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
- gboolean (*import_finish) (GcrImporter *importer,
- GAsyncResult *result,
- GError **error);
-
- /*< private >*/
- gpointer reserved[14];
-};
-
-GType gcr_importer_get_type (void);
-
-GList * gcr_importer_create_for_parsed (GcrParsed *parsed);
-
-gboolean gcr_importer_queue_for_parsed (GcrImporter *importer,
- GcrParsed *parsed);
-
-GList * gcr_importer_queue_and_filter_for_parsed (GList *importers,
- GcrParsed *parsed);
-
-gboolean gcr_importer_import (GcrImporter *importer,
- GCancellable *cancellable,
- GError **error);
-
-void gcr_importer_import_async (GcrImporter *importer,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean gcr_importer_import_finish (GcrImporter *importer,
- GAsyncResult *result,
- GError **error);
-
-GTlsInteraction * gcr_importer_get_interaction (GcrImporter *importer);
-
-void gcr_importer_set_interaction (GcrImporter *importer,
- GTlsInteraction *interaction);
-
-void gcr_importer_register (GType importer_type,
- GckAttributes *attrs);
-
-void gcr_importer_register_well_known (void);
-
-G_END_DECLS
-
-#endif /* __GCR_IMPORTER_H__ */
diff --git a/gcr/gcr-internal.h b/gcr/gcr-internal.h
deleted file mode 100644
index ef6153fc..00000000
--- a/gcr/gcr-internal.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#ifndef GCR_INTERNAL_H_
-#define GCR_INTERNAL_H_
-
-#include <glib.h>
-#include <gio/gio.h>
-
-/* Should only be used internally */
-#define GCR_SUCCESS 0
-
-void _gcr_initialize_library (void);
-
-void _gcr_set_pkcs11_config_dir (const gchar *dir);
-
-#endif /* GCR_INTERNAL_H_ */
diff --git a/gcr/gcr-key-renderer.c b/gcr/gcr-key-renderer.c
deleted file mode 100644
index 91020692..00000000
--- a/gcr/gcr-key-renderer.c
+++ /dev/null
@@ -1,404 +0,0 @@
-/*
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-key-renderer.h"
-#include "gcr-display-view.h"
-#include "gcr-fingerprint.h"
-#include "gcr-icons.h"
-#include "gcr-renderer.h"
-#include "gcr-viewer.h"
-
-#include "gck/gck.h"
-
-#include <gdk/gdk.h>
-#include <glib/gi18n-lib.h>
-
-/**
- * GcrKeyRenderer:
- *
- * An implementation of #GcrRenderer which renders keys.
- */
-
-/**
- * GcrKeyRendererClass:
- * @parent_class: The parent class.
- *
- * The class for #GcrKeyRenderer.
- */
-
-enum {
- PROP_0,
- PROP_LABEL,
- PROP_ATTRIBUTES
-};
-
-struct _GcrKeyRendererPrivate {
- guint key_size;
- gchar *label;
- GckAttributes *attributes;
- GIcon *icon;
-};
-
-static void gcr_key_renderer_renderer_iface (GcrRendererIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (GcrKeyRenderer, gcr_key_renderer, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (GCR_TYPE_RENDERER, gcr_key_renderer_renderer_iface));
-
-/* -----------------------------------------------------------------------------
- * INTERNAL
- */
-
-static gchar*
-calculate_label (GcrKeyRenderer *self)
-{
- gchar *label;
-
- if (self->pv->label)
- return g_strdup (self->pv->label);
-
- if (self->pv->attributes) {
- if (gck_attributes_find_string (self->pv->attributes, CKA_LABEL, &label))
- return label;
- }
-
- return g_strdup (_("Key"));
-}
-
-static gint
-calculate_rsa_key_size (GckAttributes *attrs)
-{
- GckAttribute *attr;
- gulong bits;
-
- attr = gck_attributes_find (attrs, CKA_MODULUS);
-
- /* Calculate the bit length, and remove the complement */
- if (attr != NULL)
- return (attr->length / 2) * 2 * 8;
-
- if (gck_attributes_find_ulong (attrs, CKA_MODULUS_BITS, &bits))
- return (gint)bits;
-
- return -1;
-}
-
-static guint
-calculate_dsa_key_size (GckAttributes *attrs)
-{
- GckAttribute *attr;
- gulong bits;
-
- attr = gck_attributes_find (attrs, CKA_PRIME);
-
- /* Calculate the bit length, and remove the complement */
- if (attr != NULL)
- return (attr->length / 2) * 2 * 8;
-
- if (gck_attributes_find_ulong (attrs, CKA_PRIME_BITS, &bits))
- return (gint)bits;
-
- return -1;
-}
-
-static gint
-calculate_key_size (GckAttributes *attrs, gulong key_type)
-{
- if (key_type == CKK_RSA)
- return calculate_rsa_key_size (attrs);
- else if (key_type == CKK_DSA)
- return calculate_dsa_key_size (attrs);
- else
- return -1;
-}
-
-/* -----------------------------------------------------------------------------
- * OBJECT
- */
-
-static void
-gcr_key_renderer_init (GcrKeyRenderer *self)
-{
- self->pv = (G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_KEY_RENDERER, GcrKeyRendererPrivate));
- self->pv->icon = g_themed_icon_new (GCR_ICON_KEY);
-}
-
-static void
-gcr_key_renderer_dispose (GObject *obj)
-{
- G_OBJECT_CLASS (gcr_key_renderer_parent_class)->dispose (obj);
-}
-
-static void
-gcr_key_renderer_finalize (GObject *obj)
-{
- GcrKeyRenderer *self = GCR_KEY_RENDERER (obj);
-
- if (self->pv->attributes)
- gck_attributes_unref (self->pv->attributes);
- self->pv->attributes = NULL;
-
- g_free (self->pv->label);
- self->pv->label = NULL;
-
- if (self->pv->icon)
- g_object_unref (self->pv->icon);
- self->pv->icon = NULL;
-
- G_OBJECT_CLASS (gcr_key_renderer_parent_class)->finalize (obj);
-}
-
-static void
-gcr_key_renderer_set_property (GObject *obj, guint prop_id, const GValue *value,
- GParamSpec *pspec)
-{
- GcrKeyRenderer *self = GCR_KEY_RENDERER (obj);
-
- switch (prop_id) {
- case PROP_LABEL:
- g_free (self->pv->label);
- self->pv->label = g_value_dup_string (value);
- g_object_notify (obj, "label");
- gcr_renderer_emit_data_changed (GCR_RENDERER (self));
- break;
- case PROP_ATTRIBUTES:
- g_return_if_fail (!self->pv->attributes);
- self->pv->attributes = g_value_dup_boxed (value);
- gcr_renderer_emit_data_changed (GCR_RENDERER (self));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_key_renderer_get_property (GObject *obj, guint prop_id, GValue *value,
- GParamSpec *pspec)
-{
- GcrKeyRenderer *self = GCR_KEY_RENDERER (obj);
-
- switch (prop_id) {
- case PROP_LABEL:
- g_value_take_string (value, calculate_label (self));
- break;
- case PROP_ATTRIBUTES:
- g_value_set_boxed (value, self->pv->attributes);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_key_renderer_class_init (GcrKeyRendererClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- GckAttributes *registered;
-
- gcr_key_renderer_parent_class = g_type_class_peek_parent (klass);
- g_type_class_add_private (klass, sizeof (GcrKeyRendererPrivate));
-
- gobject_class->dispose = gcr_key_renderer_dispose;
- gobject_class->finalize = gcr_key_renderer_finalize;
- gobject_class->set_property = gcr_key_renderer_set_property;
- gobject_class->get_property = gcr_key_renderer_get_property;
-
- g_object_class_override_property (gobject_class, PROP_LABEL, "label");
- g_object_class_override_property (gobject_class, PROP_ATTRIBUTES, "attributes");
-
- /* Register this as a view which can be loaded */
- registered = gck_attributes_new ();
- gck_attributes_add_ulong (registered, CKA_CLASS, CKO_PRIVATE_KEY);
- gcr_renderer_register (GCR_TYPE_KEY_RENDERER, registered);
- gck_attributes_unref (registered);
-}
-
-static void
-gcr_key_renderer_real_render (GcrRenderer *renderer, GcrViewer *viewer)
-{
- GcrKeyRenderer *self;
- GcrDisplayView *view;
- const gchar *text = "";
- gpointer fingerprint;
- gsize n_fingerprint;
- gchar *display;
- gulong klass;
- gulong key_type;
- gint size;
-
- self = GCR_KEY_RENDERER (renderer);
-
- if (GCR_IS_DISPLAY_VIEW (viewer)) {
- view = GCR_DISPLAY_VIEW (viewer);
-
- } else {
- g_warning ("GcrKeyRenderer only works with internal specific "
- "GcrViewer returned by gcr_viewer_new().");
- return;
- }
-
- _gcr_display_view_begin (view, renderer);
-
- if (!self->pv->attributes) {
- _gcr_display_view_end (view, renderer);
- return;
- }
-
- if (!gck_attributes_find_ulong (self->pv->attributes, CKA_CLASS, &klass) ||
- !gck_attributes_find_ulong (self->pv->attributes, CKA_KEY_TYPE, &key_type)) {
- g_warning ("private key does not have the CKA_CLASS and CKA_KEY_TYPE attributes");
- _gcr_display_view_end (view, renderer);
- return;
- }
-
- _gcr_display_view_set_icon (view, renderer, self->pv->icon);
-
- display = calculate_label (self);
- _gcr_display_view_append_title (view, renderer, display);
- g_free (display);
-
- if (klass == CKO_PRIVATE_KEY) {
- if (key_type == CKK_RSA)
- text = _("Private RSA Key");
- else if (key_type == CKK_DSA)
- text = _("Private DSA Key");
- else
- text = _("Private Key");
- } else if (klass == CKO_PUBLIC_KEY) {
- if (key_type == CKK_RSA)
- text = _("Public DSA Key");
- else if (key_type == CKK_DSA)
- text = _("Public DSA Key");
- else
- text = _("Public Key");
- }
-
- _gcr_display_view_append_content (view, renderer, text, NULL);
-
- size = calculate_key_size (self->pv->attributes, key_type);
- if (size >= 0) {
- display = g_strdup_printf (ngettext ("%d bit", "%d bits", size), size);
- _gcr_display_view_append_content (view, renderer, _("Strength"), display);
- g_free (display);
- }
-
- _gcr_display_view_start_details (view, renderer);
-
-
- if (key_type == CKK_RSA)
- text = _("RSA");
- else if (key_type == CKK_DSA)
- text = _("DSA");
- else
- text = _("Unknown");
- _gcr_display_view_append_value (view, renderer, _("Algorithm"), text, FALSE);
-
- size = calculate_key_size (self->pv->attributes, key_type);
- if (size < 0)
- display = g_strdup (_("Unknown"));
- else
- display = g_strdup_printf ("%d", size);
- _gcr_display_view_append_value (view, renderer, _("Size"), display, FALSE);
- g_free (display);
-
- /* Fingerprints */
- _gcr_display_view_append_heading (view, renderer, _("Fingerprints"));
-
- fingerprint = gcr_fingerprint_from_attributes (self->pv->attributes,
- G_CHECKSUM_SHA1, &n_fingerprint);
- if (fingerprint) {
- _gcr_display_view_append_hex (view, renderer, _("SHA1"), fingerprint, n_fingerprint);
- g_free (fingerprint);
- }
- fingerprint = gcr_fingerprint_from_attributes (self->pv->attributes,
- G_CHECKSUM_SHA256, &n_fingerprint);
- if (fingerprint) {
- _gcr_display_view_append_hex (view, renderer, _("SHA256"), fingerprint, n_fingerprint);
- g_free (fingerprint);
- }
-
- _gcr_display_view_end (view, renderer);
-}
-
-static void
-gcr_key_renderer_renderer_iface (GcrRendererIface *iface)
-{
- iface->render_view = gcr_key_renderer_real_render;
-}
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-/**
- * gcr_key_renderer_new:
- * @label: (allow-none): label describing the key
- * @attrs: (allow-none): key to display, or %NULL
- *
- * Create a new key renderer which renders a given key in the attributes.
- *
- * Returns: (transfer full): a newly allocated #GcrKeyRenderer, which should be
- * freed with g_object_unref()
- */
-GcrKeyRenderer*
-gcr_key_renderer_new (const gchar *label, GckAttributes *attrs)
-{
- return g_object_new (GCR_TYPE_KEY_RENDERER, "label", label, "attributes", attrs, NULL);
-}
-
-/**
- * gcr_key_renderer_set_attributes:
- * @self: The key renderer
- * @attrs: (allow-none): the attributes to display
- *
- * Get the attributes displayed in the renderer. The attributes should represent
- * either an RSA or DSA key in PKCS\#11 style.
- */
-void
-gcr_key_renderer_set_attributes (GcrKeyRenderer *self, GckAttributes *attrs)
-{
- g_return_if_fail (GCR_IS_KEY_RENDERER (self));
-
- if (self->pv->attributes)
- gck_attributes_unref (self->pv->attributes);
- self->pv->attributes = attrs;
- if (self->pv->attributes)
- gck_attributes_ref (self->pv->attributes);
-
- g_object_notify (G_OBJECT (self), "attributes");
- gcr_renderer_emit_data_changed (GCR_RENDERER (self));
-}
-
-/**
- * gcr_key_renderer_get_attributes:
- * @self: The key renderer
- *
- * Get the attributes displayed in the renderer.
- *
- * Returns: (transfer none) (allow-none): the attributes, owned by the renderer
- */
-GckAttributes*
-gcr_key_renderer_get_attributes (GcrKeyRenderer *self)
-{
- g_return_val_if_fail (GCR_IS_KEY_RENDERER (self), NULL);
- return self->pv->attributes;
-}
diff --git a/gcr/gcr-key-renderer.h b/gcr/gcr-key-renderer.h
deleted file mode 100644
index 1c796444..00000000
--- a/gcr/gcr-key-renderer.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef __GCR_KEY_RENDERER_H__
-#define __GCR_KEY_RENDERER_H__
-
-#include <glib-object.h>
-#include <gtk/gtk.h>
-
-#include "gcr-types.h"
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_KEY_RENDERER (gcr_key_renderer_get_type ())
-#define GCR_KEY_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_KEY_RENDERER, GcrKeyRenderer))
-#define GCR_KEY_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_KEY_RENDERER, GcrKeyRendererClass))
-#define GCR_IS_KEY_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_KEY_RENDERER))
-#define GCR_IS_KEY_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_KEY_RENDERER))
-#define GCR_KEY_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_KEY_RENDERER, GcrKeyRendererClass))
-
-typedef struct _GcrKeyRenderer GcrKeyRenderer;
-typedef struct _GcrKeyRendererClass GcrKeyRendererClass;
-typedef struct _GcrKeyRendererPrivate GcrKeyRendererPrivate;
-
-struct _GcrKeyRenderer {
- GObject parent;
-
- /*< private >*/
- GcrKeyRendererPrivate *pv;
-};
-
-struct _GcrKeyRendererClass {
- GObjectClass parent_class;
-};
-
-GType gcr_key_renderer_get_type (void);
-
-GcrKeyRenderer* gcr_key_renderer_new (const gchar *label,
- GckAttributes *attrs);
-
-void gcr_key_renderer_set_attributes (GcrKeyRenderer *self,
- GckAttributes *attrs);
-
-GckAttributes* gcr_key_renderer_get_attributes (GcrKeyRenderer *self);
-
-G_END_DECLS
-
-#endif /* __GCR_KEY_RENDERER_H__ */
diff --git a/gcr/gcr-key-widget.c b/gcr/gcr-key-widget.c
deleted file mode 100644
index 65b57911..00000000
--- a/gcr/gcr-key-widget.c
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-key-renderer.h"
-#include "gcr-key-widget.h"
-#include "gcr-renderer.h"
-#include "gcr-viewer.h"
-
-#include "gck/gck.h"
-
-#include <gdk/gdk.h>
-#include <glib/gi18n-lib.h>
-
-/**
- * SECTION:gcr-key-widget
- * @title: GcrKeyWidget
- * @short_description: Key widget and renderer
- *
- * A #GcrKeyWidget can be used to display a RSA or DSA key. The widget
- * is normally in a collapsed state showing only details, but can be expanded
- * by the user.
- *
- * Use gcr_key_widget_new() to create a new key widget. Only
- * one key can be displayed. A #GcrKeyWidget contains a
- * #GcrViewer internally and #GcrKeyRenderer is used to render the
- * key to the viewer. To show more than one key in a view,
- * create the viewer and add renderers to it.
- */
-
-/**
- * GcrKeyWidget:
- *
- * A widget that displays a key.
- */
-
-/**
- * GcrKeyWidgetClass:
- *
- * The class for #GcrKeyWidget
- */
-enum {
- PROP_0,
- PROP_ATTRIBUTES
-};
-
-struct _GcrKeyWidget {
- GtkAlignment parent;
-
- /*< private >*/
- GcrKeyWidgetPrivate *pv;
-};
-
-struct _GcrKeyWidgetClass {
- /*< private >*/
- GtkAlignmentClass parent_class;
-};
-
-struct _GcrKeyWidgetPrivate {
- GcrViewer *viewer;
- GcrKeyRenderer *renderer;
-};
-
-G_DEFINE_TYPE (GcrKeyWidget, gcr_key_widget, GTK_TYPE_ALIGNMENT);
-
-/* -----------------------------------------------------------------------------
- * OBJECT
- */
-
-static GObject*
-gcr_key_widget_constructor (GType type, guint n_props, GObjectConstructParam *props)
-{
- GObject *obj = G_OBJECT_CLASS (gcr_key_widget_parent_class)->constructor (type, n_props, props);
- GcrKeyWidget *self = NULL;
-
- g_return_val_if_fail (obj, NULL);
-
- self = GCR_KEY_WIDGET (obj);
-
- self->pv->viewer = gcr_viewer_new_scrolled ();
- gtk_container_add (GTK_CONTAINER (self), GTK_WIDGET (self->pv->viewer));
- gtk_widget_show (GTK_WIDGET (self->pv->viewer));
-
- gcr_viewer_add_renderer (self->pv->viewer, GCR_RENDERER (self->pv->renderer));
- return obj;
-}
-
-static void
-gcr_key_widget_init (GcrKeyWidget *self)
-{
- self->pv = (G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_KEY_WIDGET, GcrKeyWidgetPrivate));
- self->pv->renderer = gcr_key_renderer_new (NULL, NULL);
-}
-
-static void
-gcr_key_widget_finalize (GObject *obj)
-{
- GcrKeyWidget *self = GCR_KEY_WIDGET (obj);
-
- g_assert (self->pv->renderer);
- g_object_unref (self->pv->renderer);
- self->pv->renderer = NULL;
-
- g_assert (self->pv->viewer);
- self->pv->viewer = NULL;
-
- G_OBJECT_CLASS (gcr_key_widget_parent_class)->finalize (obj);
-}
-
-static void
-gcr_key_widget_set_property (GObject *obj, guint prop_id, const GValue *value,
- GParamSpec *pspec)
-{
- GcrKeyWidget *self = GCR_KEY_WIDGET (obj);
-
- switch (prop_id) {
- case PROP_ATTRIBUTES:
- gcr_key_widget_set_attributes (self, g_value_get_boxed (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_key_widget_get_property (GObject *obj, guint prop_id, GValue *value,
- GParamSpec *pspec)
-{
- GcrKeyWidget *self = GCR_KEY_WIDGET (obj);
-
- switch (prop_id) {
- case PROP_ATTRIBUTES:
- g_value_set_boxed (value, gcr_key_widget_get_attributes (self));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_key_widget_class_init (GcrKeyWidgetClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- gcr_key_widget_parent_class = g_type_class_peek_parent (klass);
- g_type_class_add_private (klass, sizeof (GcrKeyWidgetPrivate));
-
- gobject_class->constructor = gcr_key_widget_constructor;
- gobject_class->finalize = gcr_key_widget_finalize;
- gobject_class->set_property = gcr_key_widget_set_property;
- gobject_class->get_property = gcr_key_widget_get_property;
-
- g_object_class_install_property (gobject_class, PROP_ATTRIBUTES,
- g_param_spec_boxed ("attributes", "Attributes", "The data displayed in the widget",
- GCK_TYPE_ATTRIBUTES, G_PARAM_READWRITE));
-}
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-/**
- * gcr_key_widget_new:
- * @attrs: (allow-none): key to display, or %NULL
- *
- * Create a new key widget which displays a given key in the attributes.
- *
- * Returns: A newly allocated #GcrKeyWidget, which should be freed
- * with g_object_unref().
- */
-GcrKeyWidget*
-gcr_key_widget_new (GckAttributes *attrs)
-{
- return g_object_new (GCR_TYPE_KEY_WIDGET, "attributes", attrs, NULL);
-}
-
-/**
- * gcr_key_widget_set_attributes:
- * @self: The key widget
- * @attrs: (allow-none): the attributes to display
- *
- * Get the attributes displayed in the widget. The attributes should represent
- * either an RSA or DSA key in PKCS\#11 style.
- */
-void
-gcr_key_widget_set_attributes (GcrKeyWidget *self, GckAttributes *attrs)
-{
- g_return_if_fail (GCR_IS_KEY_WIDGET (self));
- gcr_key_renderer_set_attributes (self->pv->renderer, attrs);
-}
-
-/**
- * gcr_key_widget_get_attributes:
- * @self: The key widget
- *
- * Get the attributes displayed in the widget.
- *
- * Returns: (allow-none) (transfer none): The attributes, owned by the widget.
- */
-GckAttributes*
-gcr_key_widget_get_attributes (GcrKeyWidget *self)
-{
- g_return_val_if_fail (GCR_IS_KEY_WIDGET (self), NULL);
- return gcr_key_renderer_get_attributes (self->pv->renderer);
-}
diff --git a/gcr/gcr-key-widget.h b/gcr/gcr-key-widget.h
deleted file mode 100644
index 4901aad6..00000000
--- a/gcr/gcr-key-widget.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef __GCR_KEY_WIDGET_H__
-#define __GCR_KEY_WIDGET_H__
-
-#include <glib-object.h>
-#include <gtk/gtk.h>
-
-#include "gcr-types.h"
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_KEY_WIDGET (gcr_key_widget_get_type ())
-#define GCR_KEY_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_KEY_WIDGET, GcrKeyWidget))
-#define GCR_KEY_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_KEY_WIDGET, GcrKeyWidgetClass))
-#define GCR_IS_KEY_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_KEY_WIDGET))
-#define GCR_IS_KEY_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_KEY_WIDGET))
-#define GCR_KEY_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_KEY_WIDGET, GcrKeyWidgetClass))
-
-typedef struct _GcrKeyWidget GcrKeyWidget;
-typedef struct _GcrKeyWidgetClass GcrKeyWidgetClass;
-typedef struct _GcrKeyWidgetPrivate GcrKeyWidgetPrivate;
-
-/*
- * TODO: GcrKeyWidget and GcrKeyWidgetClass are hidden until
- * we can figure out what they should be derived from.
- */
-
-GType gcr_key_widget_get_type (void);
-
-GcrKeyWidget* gcr_key_widget_new (GckAttributes *attrs);
-
-void gcr_key_widget_set_attributes (GcrKeyWidget *self,
- GckAttributes *attrs);
-
-GckAttributes* gcr_key_widget_get_attributes (GcrKeyWidget *self);
-
-G_END_DECLS
-
-#endif /* __GCR_KEY_WIDGET_H__ */
diff --git a/gcr/gcr-library.c b/gcr/gcr-library.c
deleted file mode 100644
index 4910e6cd..00000000
--- a/gcr/gcr-library.c
+++ /dev/null
@@ -1,558 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2008 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-base.h"
-#define DEBUG_FLAG GCR_DEBUG_LIBRARY
-#include "gcr-debug.h"
-#include "gcr-internal.h"
-#include "gcr-library.h"
-#include "gcr-types.h"
-
-#include "egg/egg-error.h"
-#include "egg/egg-libgcrypt.h"
-#include "egg/egg-secure-memory.h"
-
-#include <p11-kit/p11-kit.h>
-
-#include <gck/gck.h>
-
-#include <gcrypt.h>
-
-#include <glib/gi18n-lib.h>
-
-/**
- * SECTION:gcr-library
- * @title: Library Settings
- * @short_description: functions for manipulating GCR library global settings.
- *
- * Manage or lookup various global aspesct and settings of the library.
- *
- * The GCR library maintains a global list of PKCS\#11 modules to use for
- * its various lookups and storage operations. Each module is represented by
- * a GckModule object. You can examine this list by using
- * gcr_pkcs11_get_modules().
- *
- * The list is configured automatically by looking for system installed
- * PKCS\#11 modules. It's not not normally necessary to modify this list. But
- * if you have special needs, you can use the gcr_pkcs11_set_modules() and
- * gcr_pkcs11_add_module() to do so.
- *
- * Trust assertions are stored and looked up in specific PKCS\#11 slots.
- * You can examine this list with gcr_pkcs11_get_trust_lookup_slots()
- */
-
-/**
- * SECTION:gcr-private
- * @title: Private declarations
- * @short_description: private declarations to supress warnings.
- *
- * This section is only here to supress warnings, and should not be displayed.
- */
-
-/**
- * GCR_DATA_ERROR:
- *
- * The #GError domain for data parsing errors.
- */
-
-G_LOCK_DEFINE_STATIC (modules);
-static GList *all_modules = NULL;
-static gboolean initialized_modules = FALSE;
-
-G_LOCK_DEFINE_STATIC (uris);
-static gboolean initialized_uris = FALSE;
-static gchar *trust_store_uri = NULL;
-static gchar **trust_lookup_uris = NULL;
-
-/* -----------------------------------------------------------------------------
- * ERRORS
- */
-
-GQuark
-gcr_data_error_get_domain (void)
-{
- static GQuark domain = 0;
- if (domain == 0)
- domain = g_quark_from_static_string ("gcr-parser-error");
- return domain;
-}
-
-GQuark
-gcr_error_get_domain (void)
-{
- static GQuark domain = 0;
- if (domain == 0)
- domain = g_quark_from_static_string ("gcr-error");
- return domain;
-}
-
-/* -----------------------------------------------------------------------------
- * INITIALIZATION
- */
-
-void
-_gcr_initialize_library (void)
-{
- static gint gcr_initialize = 0;
-
-#if GLIB_CHECK_VERSION (2,29,90)
- if (g_atomic_int_add (&gcr_initialize, 1) == 0)
-#else
- if (g_atomic_int_exchange_and_add (&gcr_initialize, 1) == 0)
-#endif
- return;
-
- /* Initialize the libgcrypt library if needed */
- egg_libgcrypt_initialize ();
-
- _gcr_debug ("initialized library");
-}
-
-static void
-initialize_uris (void)
-{
- GPtrArray *uris;
- GList *l;
- gchar *uri;
- gchar *debug;
-
- g_return_if_fail (initialized_modules);
-
- if (initialized_uris)
- return;
-
- G_LOCK (uris);
-
- if (!initialized_uris) {
- /* Ask for the global x-trust-store option */
- trust_store_uri = p11_kit_registered_option (NULL, "x-trust-store");
- for (l = all_modules; !trust_store_uri && l != NULL; l = g_list_next (l)) {
- trust_store_uri = p11_kit_registered_option (gck_module_get_functions (l->data),
- "x-trust-store");
- }
-
- uris = g_ptr_array_new ();
- uri = p11_kit_registered_option (NULL, "x-trust-lookup");
- if (uri != NULL)
- g_ptr_array_add (uris, uri);
- for (l = all_modules; l != NULL; l = g_list_next (l)) {
- uri = p11_kit_registered_option (gck_module_get_functions (l->data),
- "x-trust-lookup");
- if (uri != NULL)
- g_ptr_array_add (uris, uri);
- }
- g_ptr_array_add (uris, NULL);
-
- trust_lookup_uris = (gchar**)g_ptr_array_free (uris, FALSE);
-
- _gcr_debug ("trust store uri is: %s", trust_store_uri);
- debug = g_strjoinv (" ", trust_lookup_uris);
- _gcr_debug ("trust lookup uris are: %s", debug);
- g_free (debug);
-
- initialized_uris = TRUE;
- }
-
- G_UNLOCK (uris);
-}
-
-static void
-on_initialize_registered (GObject *object,
- GAsyncResult *result,
- gpointer user_data)
-{
- GSimpleAsyncResult *res = G_SIMPLE_ASYNC_RESULT (user_data);
- GError *error = NULL;
- GList *results;
-
- results = gck_modules_initialize_registered_finish (result, &error);
- if (error != NULL) {
- _gcr_debug ("failed %s", error->message);
- g_simple_async_result_take_error (res, error);
-
- } else {
-
- G_LOCK (modules);
-
- if (!initialized_modules) {
- all_modules = g_list_concat(all_modules, results);
- results = NULL;
- initialized_modules = TRUE;
- }
-
- G_UNLOCK (modules);
- }
-
- gck_list_unref_free (results);
-
- _gcr_debug ("completed initialize of registered modules");
- g_simple_async_result_complete (res);
- g_object_unref (res);
-}
-
-/**
- * gcr_pkcs11_initialize_async:
- * @cancellable: optional cancellable used to cancel the operation
- * @callback: callback which will be called when the operation completes
- * @user_data: data passed to the callback
- *
- * Asynchronously initialize the registered PKCS\#11 modules.
- */
-void
-gcr_pkcs11_initialize_async (GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- GSimpleAsyncResult *res;
-
- res = g_simple_async_result_new (NULL, callback, user_data,
- gcr_pkcs11_initialize_async);
-
- if (initialized_modules) {
- _gcr_debug ("already initialized, no need to async");
- g_simple_async_result_complete_in_idle (res);
- } else {
- gck_modules_initialize_registered_async (cancellable,
- on_initialize_registered,
- g_object_ref (res));
- _gcr_debug ("starting initialize of registered modules");
- }
-
- g_object_unref (res);
-}
-
-/**
- * gcr_pkcs11_initialize_finish:
- * @result: the asynchronous result
- * @error: location to place an error on failure
- *
- * Complete the asynchronous operation to initialize the registered PKCS\#11
- * modules.
- *
- * Returns: whether the operation was successful or not.
- */
-gboolean
-gcr_pkcs11_initialize_finish (GAsyncResult *result,
- GError **error)
-{
- g_return_val_if_fail (g_simple_async_result_is_valid (result, NULL,
- gcr_pkcs11_initialize_async), FALSE);
-
- if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error))
- return FALSE;
-
- return TRUE;
-}
-
-/**
- * gcr_pkcs11_initialize:
- * @cancellable: optional cancellable used to cancel the operation
- * @error: location to place an error on failure
- *
- * Asynchronously initialize the registered PKCS\#11 modules.
- *
- * Returns: whether the operation was successful or not.
- */
-
-gboolean
-gcr_pkcs11_initialize (GCancellable *cancellable,
- GError **error)
-{
- GList *results;
- GError *err = NULL;
-
- if (initialized_modules)
- return TRUE;
-
- results = gck_modules_initialize_registered (cancellable, &err);
- if (err == NULL) {
-
- _gcr_debug ("registered module initialize succeeded: %d modules",
- g_list_length (results));
-
- G_LOCK (modules);
-
- if (!initialized_modules) {
- all_modules = g_list_concat (all_modules, results);
- results = NULL;
- initialized_modules = TRUE;
- }
-
- G_UNLOCK (modules);
-
- } else {
- _gcr_debug ("registered module initialize failed: %s", err->message);
- g_propagate_error (error, err);
- }
-
- gck_list_unref_free (results);
- return (err == NULL);
-}
-
-/**
- * gcr_pkcs11_get_modules:
- *
- * List all the PKCS\#11 modules that are used by the GCR library.
- * Each module is a #GckModule object.
- *
- * When done with the list, free it with gck_list_unref_free().
- *
- * Returns: (transfer full) (element-type Gck.Module): a newly allocated list
- * of #GckModule objects
- */
-GList*
-gcr_pkcs11_get_modules (void)
-{
- g_return_val_if_fail (initialized_modules, NULL);
- if (!all_modules)
- _gcr_debug ("no modules loaded");
- return gck_list_ref_copy (all_modules);
-}
-
-/**
- * gcr_pkcs11_set_modules:
- * @modules: (element-type Gck.Module): a list of #GckModule
- *
- * Set the list of PKCS\#11 modules that are used by the GCR library.
- * Each module in the list is a #GckModule object.
- *
- * It is not normally necessary to call this function. The available
- * PKCS\#11 modules installed on the system are automatically loaded
- * by the GCR library.
- */
-void
-gcr_pkcs11_set_modules (GList *modules)
-{
- GList *l;
-
- for (l = modules; l; l = g_list_next (l))
- g_return_if_fail (GCK_IS_MODULE (l->data));
-
- modules = gck_list_ref_copy (modules);
- gck_list_unref_free (all_modules);
- all_modules = modules;
- initialized_modules = TRUE;
-}
-
-/**
- * gcr_pkcs11_add_module:
- * @module: a #GckModule
- *
- * Add a #GckModule to the list of PKCS\#11 modules that are used by the
- * GCR library.
- *
- * It is not normally necessary to call this function. The available
- * PKCS\#11 modules installed on the system are automatically loaded
- * by the GCR library.
- */
-void
-gcr_pkcs11_add_module (GckModule *module)
-{
- g_return_if_fail (GCK_IS_MODULE (module));
- all_modules = g_list_append (all_modules, g_object_ref (module));
-}
-
-/**
- * gcr_pkcs11_add_module_from_file:
- * @module_path: the full file path of the PKCS\#11 module
- * @unused: unused
- * @error: a #GError or NULL
- *
- * Initialize a PKCS\#11 module and add it to the modules that are
- * used by the GCR library. Note that is an error to initialize the same
- * PKCS\#11 module twice.
- *
- * It is not normally necessary to call this function. The available
- * PKCS\#11 modules installed on the system are automatically loaded
- * by the GCR library.
- *
- * Returns: whether the module was sucessfully added.
- */
-gboolean
-gcr_pkcs11_add_module_from_file (const gchar *module_path, gpointer unused,
- GError **error)
-{
- GckModule *module;
- GError *err = NULL;
-
- g_return_val_if_fail (module_path, FALSE);
- g_return_val_if_fail (!error || !*error, FALSE);
-
- module = gck_module_initialize (module_path, NULL, &err);
- if (module == NULL) {
- _gcr_debug ("initializing module failed: %s: %s",
- module_path, err->message);
- g_propagate_error (error, err);
- return FALSE;
- }
-
- gcr_pkcs11_add_module (module);
-
- _gcr_debug ("initialized and added module: %s", module_path);
- g_object_unref (module);
- return TRUE;
-}
-
-/**
- * gcr_pkcs11_get_trust_store_slot:
- *
- * Selects an appropriate PKCS\#11 slot to store trust assertions. The slot
- * to use is normally configured automatically by the system.
- *
- * When done with the #GckSlot, use g_object_unref() to release it.
- *
- * Returns: (transfer full): the #GckSlot to use for trust assertions.
- */
-GckSlot *
-gcr_pkcs11_get_trust_store_slot (void)
-{
- GckSlot *slot;
- GError *error = NULL;
-
- g_return_val_if_fail (initialized_modules, NULL);
-
- initialize_uris ();
- slot = gck_modules_token_for_uri (all_modules, trust_store_uri, &error);
- if (!slot) {
- if (error) {
- g_warning ("error finding slot to store trust assertions: %s: %s",
- trust_store_uri, egg_error_message (error));
- g_clear_error (&error);
- } else {
- _gcr_debug ("no trust store slot found");
- }
- }
-
- return slot;
-}
-
-/**
- * gcr_pkcs11_get_trust_lookup_slots:
- *
- * List all the PKCS\#11 slots that are used by the GCR library for lookup
- * of trust assertions. Each slot is a #GckSlot object.
- *
- * When done with the list, free it with gck_list_unref_free().
- *
- * Returns: (transfer full) (element-type Gck.Slot): a list of #GckSlot objects
- * to use for lookup of trust.
- */
-GList*
-gcr_pkcs11_get_trust_lookup_slots (void)
-{
- GList *results = NULL;
- GError *error = NULL;
- gchar **uri;
-
- g_return_val_if_fail (initialized_modules, NULL);
- initialize_uris ();
-
- for (uri = trust_lookup_uris; uri && *uri; ++uri) {
- results = g_list_concat (results, gck_modules_tokens_for_uri (all_modules, *uri, &error));
- if (error != NULL) {
- g_warning ("error finding slot for trust assertions: %s: %s",
- *uri, egg_error_message (error));
- g_clear_error (&error);
- }
- }
-
- if (results == NULL)
- _gcr_debug ("no trust lookup slots found");
-
- return results;
-}
-
-/**
- * gcr_pkcs11_get_trust_store_uri:
- *
- * Get the PKCS\#11 URI that is used to identify which slot to use for
- * storing trust storage.
- *
- * Returns: (allow-none): the uri which identifies trust storage slot
- */
-const gchar*
-gcr_pkcs11_get_trust_store_uri (void)
-{
- initialize_uris ();
- return trust_store_uri;
-}
-
-/**
- * gcr_pkcs11_set_trust_store_uri:
- * @pkcs11_uri: (allow-none): the uri which identifies trust storage slot
- *
- * Set the PKCS\#11 URI that is used to identify which slot to use for
- * storing trust assertions.
- *
- * It is not normally necessary to call this function. The relevant
- * PKCS\#11 slot is automatically configured by the GCR library.
- */
-void
-gcr_pkcs11_set_trust_store_uri (const gchar *pkcs11_uri)
-{
- G_LOCK (uris);
-
- g_free (trust_store_uri);
- trust_store_uri = g_strdup (pkcs11_uri);
- initialized_uris = TRUE;
-
- G_UNLOCK (uris);
-}
-
-
-/**
- * gcr_pkcs11_get_trust_lookup_uris:
- *
- * Get the PKCS\#11 URIs that are used to identify which slots to use for
- * lookup trust assertions.
- *
- * Returns: (allow-none) (transfer none): the uri which identifies trust storage slot
- */
-const gchar **
-gcr_pkcs11_get_trust_lookup_uris (void)
-{
- initialize_uris ();
- return (const gchar **)trust_lookup_uris;
-}
-
-/**
- * gcr_pkcs11_set_trust_lookup_uris:
- * @pkcs11_uris: (allow-none): the uris which identifies trust lookup slots
- *
- * Set the PKCS\#11 URIs that are used to identify which slots to use for
- * lookup of trust assertions.
- *
- * It is not normally necessary to call this function. The relevant
- * PKCS\#11 slots are automatically configured by the GCR library.
- */
-void
-gcr_pkcs11_set_trust_lookup_uris (const gchar **pkcs11_uris)
-{
- G_LOCK (uris);
-
- g_strfreev (trust_lookup_uris);
- trust_lookup_uris = g_strdupv ((gchar**)pkcs11_uris);
- initialized_uris = TRUE;
-
- G_UNLOCK (uris);
-}
diff --git a/gcr/gcr-library.h b/gcr/gcr-library.h
deleted file mode 100644
index 617a580b..00000000
--- a/gcr/gcr-library.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef GCR_LIBRARY_H_
-#define GCR_LIBRARY_H_
-
-#include "gcr-types.h"
-
-#include <glib.h>
-
-void gcr_pkcs11_initialize_async (GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean gcr_pkcs11_initialize_finish (GAsyncResult *result,
- GError **error);
-
-gboolean gcr_pkcs11_initialize (GCancellable *cancellable,
- GError **error);
-
-GList* gcr_pkcs11_get_modules (void);
-
-void gcr_pkcs11_set_modules (GList *modules);
-
-void gcr_pkcs11_add_module (GckModule *module);
-
-gboolean gcr_pkcs11_add_module_from_file (const gchar *module_path,
- gpointer unused,
- GError **error);
-
-GList* gcr_pkcs11_get_trust_lookup_slots (void);
-
-GckSlot* gcr_pkcs11_get_trust_store_slot (void);
-
-const gchar** gcr_pkcs11_get_trust_lookup_uris (void);
-
-void gcr_pkcs11_set_trust_lookup_uris (const gchar **pkcs11_uris);
-
-const gchar* gcr_pkcs11_get_trust_store_uri (void);
-
-void gcr_pkcs11_set_trust_store_uri (const gchar *pkcs11_uri);
-
-#endif /* GCR_LIBRARY_H_ */
diff --git a/gcr/gcr-list-selector-private.h b/gcr/gcr-list-selector-private.h
deleted file mode 100644
index 5f73e0b7..00000000
--- a/gcr/gcr-list-selector-private.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#ifndef __GCR_LIST_SELECTOR_PRIVATE_H__
-#define __GCR_LIST_SELECTOR_PRIVATE_H__
-
-#include "gcr-types.h"
-#include "gcr-list-selector.h"
-#include "gcr-live-search.h"
-
-#include <gtk/gtk.h>
-
-G_BEGIN_DECLS
-
-void _gcr_list_selector_set_live_search (GcrListSelector *self,
- GcrLiveSearch *search);
-
-G_END_DECLS
-
-#endif /* __GCR_LIST_SELECTOR_PRIVATE_H__ */
diff --git a/gcr/gcr-list-selector.c b/gcr/gcr-list-selector.c
deleted file mode 100644
index 87d354ea..00000000
--- a/gcr/gcr-list-selector.c
+++ /dev/null
@@ -1,456 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-collection-model.h"
-#include "gcr-internal.h"
-#include "gcr-list-selector.h"
-#include "gcr-list-selector-private.h"
-#include "gcr-live-search.h"
-
-#include <glib/gi18n-lib.h>
-
-#include <string.h>
-
-/**
- * SECTION:gcr-list-selector
- * @title: GcrListSelector
- * @short_description: A selector widget to one or more certificates from a list.
- *
- * The #GcrListSelector can be used to select one or more certificates or keys.
- * Live search is available for quick filtering.
- */
-
-/**
- * GcrListSelector:
- *
- * A list selector widget.
- */
-
-/**
- * GcrListSelectorClass:
- *
- * The class for #GcrListSelector.
- */
-
-enum {
- PROP_0,
- PROP_COLLECTION
-};
-
-struct _GcrListSelectorPrivate {
- GcrCollection *collection;
- GcrCollectionModel *model;
-
- GtkTreeModelFilter *filter;
- GtkWidget *search_widget;
-};
-
-G_DEFINE_TYPE (GcrListSelector, gcr_list_selector, GTK_TYPE_TREE_VIEW);
-
-static gboolean
-object_is_visible (GcrListSelector *self, GObject *object)
-{
- gchar *text;
- gboolean visible;
-
- if (g_object_class_find_property (G_OBJECT_GET_CLASS (object), "search-text"))
- g_object_get (object, "search-text", &text, NULL);
- else
- g_object_get (object, "label", &text, NULL);
-
- visible = _gcr_live_search_match (GCR_LIVE_SEARCH (self->pv->search_widget), text);
- g_free (text);
-
- return visible;
-}
-
-static gboolean
-on_tree_filter_visible_func (GtkTreeModel *model, GtkTreeIter *iter,
- gpointer user_data)
-{
- GcrListSelector *self = GCR_LIST_SELECTOR (user_data);
- GObject *object;
-
- if (self->pv->search_widget == NULL ||
- !gtk_widget_get_visible (self->pv->search_widget))
- return TRUE;
-
- object = gcr_collection_model_object_for_iter (self->pv->model, iter);
- if (object != NULL)
- return object_is_visible (self, object);
-
- return FALSE;
-}
-
-static gboolean
-on_tree_view_start_search (GtkTreeView *view, gpointer user_data)
-{
- GcrListSelector *self = GCR_LIST_SELECTOR (view);
-
- if (self->pv->search_widget == NULL)
- return FALSE;
-
- if (gtk_widget_get_visible (self->pv->search_widget))
- gtk_widget_grab_focus (self->pv->search_widget);
- else
- gtk_widget_show (self->pv->search_widget);
-
- return TRUE;
-}
-
-static void
-on_search_widget_text_notify (GcrLiveSearch *search, GParamSpec *pspec,
- gpointer user_data)
-{
- GcrListSelector *self = GCR_LIST_SELECTOR (user_data);
-#if 0
- GtkTreeViewColumn *focus_column;
- GtkTreeModel *model;
- GtkTreeIter iter;
- GtkTreePath *path;
- gboolean set_cursor = FALSE;
-#endif
-
- gtk_tree_model_filter_refilter (self->pv->filter);
-
-#if 0
- /* Set cursor on the first object. */
-
- model = gtk_tree_view_get_model (GTK_TREE_VIEW (self));
- gtk_tree_view_get_cursor (GTK_TREE_VIEW (view), &path, &focus_column);
-
- if (path == NULL) {
- path = gtk_tree_path_new_from_string ("0");
- set_cursor = TRUE;
- }
-
- if (set_cursor) {
- /* FIXME: Workaround for GTK bug #621651, we have to make sure
- * the path is valid. */
- if (gtk_tree_model_get_iter (model, &iter, path)) {
- gtk_tree_view_set_cursor (GTK_TREE_VIEW (view), path,
- focus_column, FALSE);
- }
- }
-
- gtk_tree_path_free (path);
-#endif
-}
-
-static void
-on_search_widget_activate (GtkWidget *search, gpointer user_data)
-{
- GcrListSelector *self = GCR_LIST_SELECTOR (user_data);
- GtkTreePath *path;
- GtkTreeViewColumn *focus_column;
-
- gtk_tree_view_get_cursor (GTK_TREE_VIEW (self), &path, &focus_column);
- if (path != NULL) {
- gtk_tree_view_row_activated (GTK_TREE_VIEW (self), path, focus_column);
- gtk_tree_path_free (path);
-
- gtk_widget_hide (search);
- }
-}
-
-static gboolean
-on_search_widget_key_navigation (GtkWidget *search, GdkEvent *event, gpointer user_data)
-{
- GcrListSelector *self = GCR_LIST_SELECTOR (user_data);
- GdkEvent *new_event;
- gboolean ret = FALSE;
-
- new_event = gdk_event_copy (event);
- gtk_widget_grab_focus (GTK_WIDGET (self));
- ret = gtk_widget_event (GTK_WIDGET (self), new_event);
- gtk_widget_grab_focus (search);
-
- gdk_event_free (new_event);
-
- return ret;
-}
-
-static void
-on_check_column_toggled (GtkCellRendererToggle *cell, gchar *path, gpointer user_data)
-{
- GcrListSelector *self = GCR_LIST_SELECTOR (user_data);
- GtkTreeIter iter, model_iter;
-
- g_assert (path != NULL);
-
- if (gtk_tree_model_get_iter_from_string (GTK_TREE_MODEL (self->pv->filter), &iter, path)) {
- gtk_tree_model_filter_convert_iter_to_child_iter (self->pv->filter, &model_iter, &iter);
- gcr_collection_model_toggle_selected (self->pv->model, &model_iter);
- }
-}
-
-static void
-gcr_list_selector_constructed (GObject *object)
-{
- GcrListSelector *self = GCR_LIST_SELECTOR (object);
- GtkCellRenderer *cell;
- GtkTreeViewColumn *column;
- guint column_id;
-
- G_OBJECT_CLASS (gcr_list_selector_parent_class)->constructed (object);
-
- gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (self), FALSE);
-
- self->pv->model = gcr_collection_model_new (self->pv->collection,
- "icon", G_TYPE_ICON,
- "markup", G_TYPE_STRING,
- NULL);
-
- self->pv->filter = GTK_TREE_MODEL_FILTER (gtk_tree_model_filter_new (
- GTK_TREE_MODEL (self->pv->model), NULL));
- gtk_tree_model_filter_set_visible_func (self->pv->filter,
- on_tree_filter_visible_func, self, NULL);
-
- gtk_tree_view_set_model (GTK_TREE_VIEW (self), GTK_TREE_MODEL (self->pv->filter));
-
- /* The check */
-
- cell = gtk_cell_renderer_toggle_new ();
- g_signal_connect (cell, "toggled", G_CALLBACK (on_check_column_toggled), self);
-
- column_id = gcr_collection_model_column_for_selected (self->pv->model);
- column = gtk_tree_view_column_new_with_attributes ("", cell, "active", column_id, NULL);
- gtk_tree_view_column_set_resizable (column, FALSE);
- gtk_tree_view_append_column (GTK_TREE_VIEW (self), column);
-
- column = gtk_tree_view_column_new ();
-
- /* The icon */
- cell = gtk_cell_renderer_pixbuf_new ();
- g_object_set (cell, "stock-size", GTK_ICON_SIZE_DND, NULL);
- gtk_tree_view_column_pack_start (column, cell, FALSE);
- gtk_tree_view_column_add_attribute (column, cell, "gicon", 0);
-
- /* The markup */
- cell = gtk_cell_renderer_text_new ();
- gtk_tree_view_column_pack_start (column, cell, TRUE);
- gtk_tree_view_column_add_attribute (column, cell, "markup", 1);
-
- gtk_tree_view_append_column (GTK_TREE_VIEW (self), column);
-}
-
-static void
-gcr_list_selector_init (GcrListSelector *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_LIST_SELECTOR, GcrListSelectorPrivate);
-}
-
-static void
-gcr_list_selector_dispose (GObject *obj)
-{
- GcrListSelector *self = GCR_LIST_SELECTOR (obj);
-
- if (self->pv->filter)
- g_object_unref (self->pv->filter);
- self->pv->filter = NULL;
-
- if (self->pv->model)
- g_object_unref (self->pv->model);
- self->pv->model = NULL;
-
- if (self->pv->collection)
- g_object_unref (self->pv->collection);
- self->pv->collection = NULL;
-
- _gcr_list_selector_set_live_search (self, NULL);
-
- G_OBJECT_CLASS (gcr_list_selector_parent_class)->dispose (obj);
-}
-
-static void
-gcr_list_selector_finalize (GObject *obj)
-{
- GcrListSelector *self = GCR_LIST_SELECTOR (obj);
-
- g_assert (!self->pv->collection);
- g_assert (!self->pv->model);
-
- G_OBJECT_CLASS (gcr_list_selector_parent_class)->finalize (obj);
-}
-
-static void
-gcr_list_selector_set_property (GObject *obj, guint prop_id, const GValue *value,
- GParamSpec *pspec)
-{
- GcrListSelector *self = GCR_LIST_SELECTOR (obj);
-
- switch (prop_id) {
- case PROP_COLLECTION:
- g_return_if_fail (!self->pv->collection);
- self->pv->collection = g_value_dup_object (value);
- g_return_if_fail (self->pv->collection);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_list_selector_get_property (GObject *obj, guint prop_id, GValue *value,
- GParamSpec *pspec)
-{
- GcrListSelector *self = GCR_LIST_SELECTOR (obj);
-
- switch (prop_id) {
- case PROP_COLLECTION:
- g_value_set_object (value, gcr_list_selector_get_collection (self));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_list_selector_class_init (GcrListSelectorClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- gobject_class->constructed = gcr_list_selector_constructed;
- gobject_class->dispose = gcr_list_selector_dispose;
- gobject_class->finalize = gcr_list_selector_finalize;
- gobject_class->set_property = gcr_list_selector_set_property;
- gobject_class->get_property = gcr_list_selector_get_property;
-
- g_type_class_add_private (gobject_class, sizeof (GcrListSelectorPrivate));
-
- /**
- * GcrListSelector:collection:
- *
- * The collection which contains the objects to display in the selector.
- */
- g_object_class_install_property (gobject_class, PROP_COLLECTION,
- g_param_spec_object ("collection", "Collection", "Collection to select from",
- GCR_TYPE_COLLECTION, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-}
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-/**
- * gcr_list_selector_new:
- * @collection: The collection that contains the objects to display
- *
- * Create a new #GcrListSelector.
- *
- * Returns: (transfer full): a newly allocated selector, which should be
- * released with g_object_unref()
- */
-GcrListSelector *
-gcr_list_selector_new (GcrCollection *collection)
-{
- return g_object_new (GCR_TYPE_LIST_SELECTOR,
- "collection", collection,
- NULL);
-}
-
-/**
- * gcr_list_selector_get_collection:
- * @self: The selector
- *
- * Get the collection that this selector is displaying objects from.
- *
- * Returns: (transfer none): The collection, owned by the selector.
- */
-GcrCollection *
-gcr_list_selector_get_collection (GcrListSelector *self)
-{
- g_return_val_if_fail (GCR_IS_LIST_SELECTOR (self), NULL);
- return self->pv->collection;
-}
-
-/**
- * gcr_list_selector_get_selected:
- * @self: The selector
- *
- * Get a list of selected objects.
- *
- * Returns: (transfer container) (element-type GLib.Object): the list of
- * selected objects, to be released with g_list_free()
- */
-GList*
-gcr_list_selector_get_selected (GcrListSelector *self)
-{
- g_return_val_if_fail (GCR_IS_LIST_SELECTOR (self), NULL);
- return gcr_collection_model_get_selected_objects (self->pv->model);
-}
-
-/**
- * gcr_list_selector_set_selected:
- * @self: The selector
- * @selected: (element-type GLib.Object): the list of objects to select
- *
- * Select certain objects in the selector.
- */
-void
-gcr_list_selector_set_selected (GcrListSelector *self, GList *selected)
-{
- g_return_if_fail (GCR_IS_LIST_SELECTOR (self));
- gcr_collection_model_set_selected_objects (self->pv->model, selected);
-}
-
-
-void
-_gcr_list_selector_set_live_search (GcrListSelector *self, GcrLiveSearch *search)
-{
- g_return_if_fail (GCR_IS_LIST_SELECTOR (self));
-
- /* remove old handlers if old search was not null */
- if (self->pv->search_widget != NULL) {
- g_signal_handlers_disconnect_by_func (self, on_tree_view_start_search, NULL);
-
- g_signal_handlers_disconnect_by_func (self->pv->search_widget,
- on_search_widget_text_notify, self);
- g_signal_handlers_disconnect_by_func (self->pv->search_widget,
- on_search_widget_activate, self);
- g_signal_handlers_disconnect_by_func (self->pv->search_widget,
- on_search_widget_key_navigation, self);
- g_object_unref (self->pv->search_widget);
- self->pv->search_widget = NULL;
- }
-
- /* connect handlers if new search is not null */
- if (search != NULL) {
- self->pv->search_widget = g_object_ref (search);
-
- g_signal_connect (self, "start-interactive-search",
- G_CALLBACK (on_tree_view_start_search), NULL);
-
- g_signal_connect (self->pv->search_widget, "notify::text",
- G_CALLBACK (on_search_widget_text_notify), self);
- g_signal_connect (self->pv->search_widget, "activate",
- G_CALLBACK (on_search_widget_activate), self);
- g_signal_connect (self->pv->search_widget, "key-navigation",
- G_CALLBACK (on_search_widget_key_navigation), self);
- }
-}
diff --git a/gcr/gcr-list-selector.h b/gcr/gcr-list-selector.h
deleted file mode 100644
index e109167d..00000000
--- a/gcr/gcr-list-selector.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#ifndef __GCR_LIST_SELECTOR_H__
-#define __GCR_LIST_SELECTOR_H__
-
-#include "gcr-types.h"
-
-#include <gtk/gtk.h>
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_LIST_SELECTOR (gcr_list_selector_get_type ())
-#define GCR_LIST_SELECTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_LIST_SELECTOR, GcrListSelector))
-#define GCR_LIST_SELECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_LIST_SELECTOR, GcrListSelectorClass))
-#define GCR_IS_LIST_SELECTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_LIST_SELECTOR))
-#define GCR_IS_LIST_SELECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_LIST_SELECTOR))
-#define GCR_LIST_SELECTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_LIST_SELECTOR, GcrListSelectorClass))
-
-typedef struct _GcrListSelector GcrListSelector;
-typedef struct _GcrListSelectorClass GcrListSelectorClass;
-typedef struct _GcrListSelectorPrivate GcrListSelectorPrivate;
-
-struct _GcrListSelector {
- GtkTreeView parent;
-
- /*< private >*/
- GcrListSelectorPrivate *pv;
-};
-
-struct _GcrListSelectorClass {
-
- /*< private >*/
- GtkTreeViewClass parent_class;
-};
-
-GType gcr_list_selector_get_type (void);
-
-GcrListSelector* gcr_list_selector_new (GcrCollection *collection);
-
-GcrCollection* gcr_list_selector_get_collection (GcrListSelector *self);
-
-GList* gcr_list_selector_get_selected (GcrListSelector *self);
-
-void gcr_list_selector_set_selected (GcrListSelector *self,
- GList *selected);
-
-G_END_DECLS
-
-#endif /* __GCR_LIST_SELECTOR_H__ */
diff --git a/gcr/gcr-live-search.c b/gcr/gcr-live-search.c
deleted file mode 100644
index ef1919cb..00000000
--- a/gcr/gcr-live-search.c
+++ /dev/null
@@ -1,672 +0,0 @@
-/*
- * Copyright (C) 2011 Collabora Ltd.
- * Copyright (C) 2010 Collabora Ltd.
- * Copyright (C) 2007-2010 Nokia Corporation.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Authors: Felix Kaser <felix.kaser@collabora.co.uk>
- * Xavier Claessens <xavier.claessens@collabora.co.uk>
- * Claudio Saavedra <csaavedra@igalia.com>
- * Stef Walter <stefw@collabora.co.uk>
- */
-
-/* Code borrowed from Empathy */
-
-#include "config.h"
-
-#include "gcr-live-search.h"
-#include "gcr-marshal.h"
-
-#include <gtk/gtk.h>
-#include <gdk/gdkkeysyms.h>
-
-#include <string.h>
-
-G_DEFINE_TYPE (GcrLiveSearch, _gcr_live_search, GTK_TYPE_BOX)
-
-struct _GcrLiveSearchPrivate {
- GtkWidget *search_entry;
- GtkWidget *hook_widget;
- GPtrArray *stripped_words;
-};
-
-enum {
- PROP_0,
- PROP_HOOK_WIDGET,
- PROP_TEXT
-};
-
-enum {
- ACTIVATE,
- KEYNAV,
- LAST_SIGNAL
-};
-
-static guint signals[LAST_SIGNAL];
-
-static void on_hook_widget_destroy (GtkWidget *object, gpointer user_data);
-
-static gunichar
-stripped_char (gunichar ch)
-{
- gunichar retval = 0;
- GUnicodeType utype;
-#if GLIB_CHECK_VERSION (2,29,90)
- gunichar decomp[4];
-#else
- gunichar *decomp;
-#endif
- gsize dlen;
-
- utype = g_unichar_type (ch);
-
- switch (utype) {
- case G_UNICODE_CONTROL:
- case G_UNICODE_FORMAT:
- case G_UNICODE_UNASSIGNED:
- case G_UNICODE_NON_SPACING_MARK:
-#if GLIB_CHECK_VERSION (2,29,90)
- case G_UNICODE_SPACING_MARK:
-#else
- case G_UNICODE_COMBINING_MARK:
-#endif
- case G_UNICODE_ENCLOSING_MARK:
- /* Ignore those */
- break;
- case G_UNICODE_PRIVATE_USE:
- case G_UNICODE_SURROGATE:
- case G_UNICODE_LOWERCASE_LETTER:
- case G_UNICODE_MODIFIER_LETTER:
- case G_UNICODE_OTHER_LETTER:
- case G_UNICODE_TITLECASE_LETTER:
- case G_UNICODE_UPPERCASE_LETTER:
- case G_UNICODE_DECIMAL_NUMBER:
- case G_UNICODE_LETTER_NUMBER:
- case G_UNICODE_OTHER_NUMBER:
- case G_UNICODE_CONNECT_PUNCTUATION:
- case G_UNICODE_DASH_PUNCTUATION:
- case G_UNICODE_CLOSE_PUNCTUATION:
- case G_UNICODE_FINAL_PUNCTUATION:
- case G_UNICODE_INITIAL_PUNCTUATION:
- case G_UNICODE_OTHER_PUNCTUATION:
- case G_UNICODE_OPEN_PUNCTUATION:
- case G_UNICODE_CURRENCY_SYMBOL:
- case G_UNICODE_MODIFIER_SYMBOL:
- case G_UNICODE_MATH_SYMBOL:
- case G_UNICODE_OTHER_SYMBOL:
- case G_UNICODE_LINE_SEPARATOR:
- case G_UNICODE_PARAGRAPH_SEPARATOR:
- case G_UNICODE_SPACE_SEPARATOR:
- default:
- ch = g_unichar_tolower (ch);
-#if GLIB_CHECK_VERSION (2,29,90)
- dlen = g_unichar_fully_decompose (ch, FALSE, decomp, 4);
- if (dlen > 0) {
-#else
- decomp = g_unicode_canonical_decomposition (ch, &dlen);
- if (decomp != NULL) {
-#endif
- retval = decomp[0];
-#if !GLIB_CHECK_VERSION (2,29,90)
- g_free (decomp);
-#endif
- }
- }
-
- return retval;
-}
-
-static void
-append_word (GPtrArray **word_array, GString **word)
-{
- if (*word != NULL) {
- if (*word_array == NULL)
- *word_array = g_ptr_array_new_with_free_func (g_free);
- g_ptr_array_add (*word_array, g_string_free (*word, FALSE));
- *word = NULL;
- }
-}
-
-GPtrArray *
-_gcr_live_search_strip_utf8_string (const gchar *string)
-{
- GPtrArray *word_array = NULL;
- GString *word = NULL;
- const gchar *p;
-
- if (string == NULL || *string == '\0')
- return NULL;
-
- for (p = string; *p != '\0'; p = g_utf8_next_char (p)) {
- gunichar sc;
-
- /* Make the char lower-case, remove its accentuation marks, and ignore it
- * if it is just unicode marks */
- sc = stripped_char (g_utf8_get_char (p));
- if (sc == 0)
- continue;
-
- /* If it is not alpha-num, it is separator between words */
- if (!g_unichar_isalnum (sc)) {
- append_word (&word_array, &word);
- continue;
- }
-
- /* It is alpha-num, append this char to current word, or start new word */
- if (word == NULL)
- word = g_string_new (NULL);
- g_string_append_unichar (word, sc);
- }
-
- append_word (&word_array, &word);
-
- return word_array;
-}
-
-static gboolean
-live_search_match_prefix (const gchar *string, const gchar *prefix)
-{
- const gchar *p;
- const gchar *prefix_p;
- gboolean next_word = FALSE;
-
- if (prefix == NULL || prefix[0] == 0)
- return TRUE;
-
- if (string == NULL || *string == '\0')
- return FALSE;
-
- prefix_p = prefix;
- for (p = string; *p != '\0'; p = g_utf8_next_char (p)) {
- gunichar sc;
-
- /* Make the char lower-case, remove its accentuation marks, and ignore it
- * if it is just unicode marks */
- sc = stripped_char (g_utf8_get_char (p));
- if (sc == 0)
- continue;
-
- /* If we want to go to next word, ignore alpha-num chars */
- if (next_word && g_unichar_isalnum (sc))
- continue;
- next_word = FALSE;
-
- /* Ignore word separators */
- if (!g_unichar_isalnum (sc))
- continue;
-
- /* If this char does not match prefix_p, go to next word and start again
- * from the beginning of prefix */
- if (sc != g_utf8_get_char (prefix_p)) {
- next_word = TRUE;
- prefix_p = prefix;
- continue;
- }
-
- /* prefix_p match, verify to next char. If this was the last of prefix,
- * it means it completely machted and we are done. */
- prefix_p = g_utf8_next_char (prefix_p);
- if (*prefix_p == '\0')
- return TRUE;
- }
-
- return FALSE;
-}
-
-gboolean
-_gcr_live_search_match_words (const gchar *string, GPtrArray *words)
-{
- guint i;
-
- if (words == NULL)
- return TRUE;
-
- for (i = 0; i < words->len; i++)
- if (!live_search_match_prefix (string, g_ptr_array_index (words, i)))
- return FALSE;
-
- return TRUE;
-}
-
-static gboolean
-fire_key_navigation_sig (GcrLiveSearch *self, GdkEventKey *event)
-{
- gboolean ret;
-
- g_signal_emit (self, signals[KEYNAV], 0, event, &ret);
- return ret;
-}
-
-static gboolean
-on_search_entry_key_pressed (GtkEntry *entry, GdkEventKey *event, gpointer user_data)
-{
- GcrLiveSearch *self = GCR_LIVE_SEARCH (user_data);
-
- /* if esc key pressed, hide the search */
- if (event->keyval == GDK_KEY_Escape) {
- gtk_widget_hide (GTK_WIDGET (self));
- return TRUE;
- }
-
- /* emit key navigation signal, so other widgets can respond to it properly */
- if (event->keyval == GDK_KEY_Up || event->keyval == GDK_KEY_Down
- || event->keyval == GDK_KEY_Page_Up || event->keyval == GDK_KEY_Page_Down) {
- return fire_key_navigation_sig (self, event);
- }
-
- if (event->keyval == GDK_KEY_Home || event->keyval == GDK_KEY_End ||
- event->keyval == GDK_KEY_space) {
- /* If the live search is visible, the entry should catch the Home/End
- * and space events */
- if (!gtk_widget_get_visible (GTK_WIDGET (self))) {
- return fire_key_navigation_sig (self, event);
- }
- }
-
- return FALSE;
-}
-
-static void
-on_search_entry_text_changed (GtkEntry *entry, gpointer user_data)
-{
- GcrLiveSearch *self = GCR_LIVE_SEARCH (user_data);
- const gchar *text;
-
- text = gtk_entry_get_text (entry);
-
- if (text == NULL || *text == '\0')
- gtk_widget_hide (GTK_WIDGET (self));
- else
- gtk_widget_show (GTK_WIDGET (self));
-
- if (self->pv->stripped_words != NULL)
- g_ptr_array_unref (self->pv->stripped_words);
-
- self->pv->stripped_words = _gcr_live_search_strip_utf8_string (text);
-
- g_object_notify (G_OBJECT (self), "text");
-}
-
-static void
-on_search_entry_close_pressed (GtkEntry *entry, GtkEntryIconPosition icon_pos,
- GdkEvent *event, gpointer user_data)
-{
- GcrLiveSearch *self = GCR_LIVE_SEARCH (user_data);
- gtk_widget_hide (GTK_WIDGET (self));
-}
-
-static gboolean
-on_hook_widget_key_press_event (GtkWidget *widget, GdkEventKey *event,
- gpointer user_data)
-{
- GcrLiveSearch *self = GCR_LIVE_SEARCH (user_data);
- GdkEvent *new_event;
- gboolean ret;
-
- /* dont forward this event to the entry, else the event is consumed by the
- * entry and does not close the window */
- if (!gtk_widget_get_visible (GTK_WIDGET (self)) &&
- event->keyval == GDK_KEY_Escape)
- return FALSE;
-
- /* do not show the search if CTRL and/or ALT are pressed with a key
- * this is needed, because otherwise the CTRL + F accel would not work,
- * because the entry consumes it */
- if (event->state & (GDK_MOD1_MASK | GDK_CONTROL_MASK) ||
- event->keyval == GDK_KEY_Control_L ||
- event->keyval == GDK_KEY_Control_R)
- return FALSE;
-
- /* dont forward the up/down and Page Up/Down arrow keys to the entry,
- * they are needed for navigation in the treeview and are not needed in
- * the search entry */
- if (event->keyval == GDK_KEY_Up || event->keyval == GDK_KEY_Down ||
- event->keyval == GDK_KEY_Page_Up || event->keyval == GDK_KEY_Page_Down)
- return FALSE;
-
- if (event->keyval == GDK_KEY_Home || event->keyval == GDK_KEY_End ||
- event->keyval == GDK_KEY_space) {
- /* Home/End and space keys have to be forwarded to the entry only if
- * the live search is visible (to move the cursor inside the entry). */
- if (!gtk_widget_get_visible (GTK_WIDGET (self)))
- return FALSE;
- }
-
- /* realize the widget if it is not realized yet */
- gtk_widget_realize (self->pv->search_entry);
- if (!gtk_widget_has_focus (self->pv->search_entry)) {
- gtk_widget_grab_focus (self->pv->search_entry);
- gtk_editable_set_position (GTK_EDITABLE (self->pv->search_entry), -1);
- }
-
- /* forward the event to the search entry */
- new_event = gdk_event_copy ((GdkEvent *) event);
- ret = gtk_widget_event (self->pv->search_entry, new_event);
- gdk_event_free (new_event);
-
- return ret;
-}
-
-static void
-on_search_entry_activate (GtkEntry *entry, GcrLiveSearch *self)
-{
- g_signal_emit (self, signals[ACTIVATE], 0);
-}
-
-static void
-live_search_release_hook_widget (GcrLiveSearch *self)
-{
- /* remove old handlers if old source was not null */
- if (self->pv->hook_widget != NULL) {
- g_signal_handlers_disconnect_by_func (self->pv->hook_widget,
- on_hook_widget_key_press_event, self);
- g_signal_handlers_disconnect_by_func (self->pv->hook_widget,
- on_hook_widget_destroy, self);
- g_object_unref (self->pv->hook_widget);
- self->pv->hook_widget = NULL;
- }
-}
-
-static void
-on_hook_widget_destroy (GtkWidget *object, gpointer user_data)
-{
- GcrLiveSearch *self = GCR_LIVE_SEARCH (user_data);
-
- /* unref the hook widget and hide search */
- gtk_widget_hide (GTK_WIDGET (self));
- live_search_release_hook_widget (self);
-}
-
-static void
-live_search_dispose (GObject *obj)
-{
- GcrLiveSearch *self = GCR_LIVE_SEARCH (obj);
-
- live_search_release_hook_widget (self);
-
- G_OBJECT_CLASS (_gcr_live_search_parent_class)->dispose (obj);
-}
-
-static void
-live_search_finalize (GObject *obj)
-{
- GcrLiveSearch *self = GCR_LIVE_SEARCH (obj);
-
- if (self->pv->stripped_words != NULL)
- g_ptr_array_unref (self->pv->stripped_words);
-
- G_OBJECT_CLASS (_gcr_live_search_parent_class)->finalize (obj);
-}
-
-static void
-live_search_get_property (GObject *object, guint param_id,
- GValue *value, GParamSpec *pspec)
-{
- GcrLiveSearch *self = GCR_LIVE_SEARCH (object);
-
- switch (param_id) {
- case PROP_HOOK_WIDGET:
- g_value_set_object (value, _gcr_live_search_get_hook_widget (self));
- break;
- case PROP_TEXT:
- g_value_set_string (value, _gcr_live_search_get_text (self));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
- break;
- }
-}
-
-static void
-live_search_set_property (GObject *object, guint param_id,
- const GValue *value, GParamSpec *pspec)
-{
- GcrLiveSearch *self = GCR_LIVE_SEARCH (object);
-
- switch (param_id) {
- case PROP_HOOK_WIDGET:
- _gcr_live_search_set_hook_widget (self, g_value_get_object (value));
- break;
- case PROP_TEXT:
- _gcr_live_search_set_text (self, g_value_get_string (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
- break;
- };
-}
-
-static void
-live_search_unmap (GtkWidget *widget)
-{
- GcrLiveSearch *self = GCR_LIVE_SEARCH (widget);
-
- GTK_WIDGET_CLASS (_gcr_live_search_parent_class)->unmap (widget);
-
- /* unmap can happen if a parent gets hidden, in that case we want to hide
- * the live search as well, so when it gets mapped again, the live search
- * won't be shown. */
- gtk_widget_hide (widget);
-
- gtk_entry_set_text (GTK_ENTRY (self->pv->search_entry), "");
- gtk_widget_grab_focus (self->pv->hook_widget);
-}
-
-static void
-live_search_show (GtkWidget *widget)
-{
- GcrLiveSearch *self = GCR_LIVE_SEARCH (widget);
-
- if (!gtk_widget_has_focus (self->pv->search_entry))
- gtk_widget_grab_focus (self->pv->search_entry);
-
- GTK_WIDGET_CLASS (_gcr_live_search_parent_class)->show (widget);
-}
-
-static void
-live_search_grab_focus (GtkWidget *widget)
-{
- GcrLiveSearch *self = GCR_LIVE_SEARCH (widget);
-
- if (!gtk_widget_has_focus (self->pv->search_entry)) {
- gtk_widget_grab_focus (self->pv->search_entry);
- gtk_editable_set_position (GTK_EDITABLE (self->pv->search_entry), -1);
- }
-}
-
-static void
-_gcr_live_search_class_init (GcrLiveSearchClass *klass)
-{
- GObjectClass *object_class = (GObjectClass *) klass;
- GtkWidgetClass *widget_class = (GtkWidgetClass *) klass;
- GParamSpec *param_spec;
-
- object_class->finalize = live_search_finalize;
- object_class->dispose = live_search_dispose;
- object_class->get_property = live_search_get_property;
- object_class->set_property = live_search_set_property;
-
- widget_class->unmap = live_search_unmap;
- widget_class->show = live_search_show;
- widget_class->grab_focus = live_search_grab_focus;
-
- signals[ACTIVATE] = g_signal_new ("activate",
- G_TYPE_FROM_CLASS (object_class),
- G_SIGNAL_RUN_LAST,
- 0,
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
-
- signals[KEYNAV] = g_signal_new ("key-navigation",
- G_TYPE_FROM_CLASS (object_class),
- G_SIGNAL_RUN_LAST,
- 0,
- g_signal_accumulator_true_handled, NULL,
- _gcr_marshal_BOOLEAN__BOXED,
- G_TYPE_BOOLEAN, 1, GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
-
- param_spec = g_param_spec_object ("hook-widget", "Live Search Hook Widget",
- "The live search catches key-press-events on this widget",
- GTK_TYPE_WIDGET, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
- g_object_class_install_property (object_class, PROP_HOOK_WIDGET, param_spec);
-
- param_spec = g_param_spec_string ("text", "Live Search Text",
- "The text of the live search entry",
- "", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
- g_object_class_install_property (object_class, PROP_TEXT, param_spec);
-
- g_type_class_add_private (klass, sizeof (GcrLiveSearchPrivate));
-}
-
-static void
-_gcr_live_search_init (GcrLiveSearch *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE ((self), GCR_TYPE_LIVE_SEARCH,
- GcrLiveSearchPrivate);
-
- gtk_widget_set_no_show_all (GTK_WIDGET (self), TRUE);
-
- self->pv->search_entry = gtk_entry_new ();
- gtk_entry_set_icon_from_stock (GTK_ENTRY (self->pv->search_entry),
- GTK_ENTRY_ICON_SECONDARY, GTK_STOCK_CLOSE);
- gtk_entry_set_icon_activatable (GTK_ENTRY (self->pv->search_entry),
- GTK_ENTRY_ICON_SECONDARY, TRUE);
- gtk_entry_set_icon_sensitive (GTK_ENTRY (self->pv->search_entry),
- GTK_ENTRY_ICON_SECONDARY, TRUE);
- gtk_widget_show (self->pv->search_entry);
-
- gtk_box_pack_start (GTK_BOX (self), self->pv->search_entry, TRUE, TRUE, 0);
-
- g_signal_connect (self->pv->search_entry, "icon_release",
- G_CALLBACK (on_search_entry_close_pressed), self);
- g_signal_connect (self->pv->search_entry, "changed",
- G_CALLBACK (on_search_entry_text_changed), self);
- g_signal_connect (self->pv->search_entry, "key-press-event",
- G_CALLBACK (on_search_entry_key_pressed), self);
- g_signal_connect (self->pv->search_entry, "activate",
- G_CALLBACK (on_search_entry_activate), self);
-
- self->pv->hook_widget = NULL;
-}
-
-/**
- * _gcr_live_search_new:
- * @hook: (allow-none): the widget to hook
- *
- * Returns: (transfer full) (type Gcr.LiveSearch): The new widget
- */
-GtkWidget *
-_gcr_live_search_new (GtkWidget *hook)
-{
- g_return_val_if_fail (hook == NULL || GTK_IS_WIDGET (hook), NULL);
-
- return g_object_new (GCR_TYPE_LIVE_SEARCH,
- "hook-widget", hook,
- NULL);
-}
-
-/* public methods */
-
-GtkWidget *
-_gcr_live_search_get_hook_widget (GcrLiveSearch *self)
-{
- g_return_val_if_fail (GCR_IS_LIVE_SEARCH (self), NULL);
-
- return self->pv->hook_widget;
-}
-
-void
-_gcr_live_search_set_hook_widget (GcrLiveSearch *self, GtkWidget *hook)
-{
- g_return_if_fail (GCR_IS_LIVE_SEARCH (self));
- g_return_if_fail (hook == NULL || GTK_IS_WIDGET (hook));
-
- /* release the actual widget */
- live_search_release_hook_widget (self);
-
- /* connect handlers if new source is not null */
- if (hook != NULL) {
- self->pv->hook_widget = g_object_ref (hook);
- g_signal_connect (self->pv->hook_widget, "key-press-event",
- G_CALLBACK (on_hook_widget_key_press_event),
- self);
- g_signal_connect (self->pv->hook_widget, "destroy",
- G_CALLBACK (on_hook_widget_destroy),
- self);
- }
-}
-
-const gchar *
-_gcr_live_search_get_text (GcrLiveSearch *self)
-{
- g_return_val_if_fail (GCR_IS_LIVE_SEARCH (self), NULL);
-
- return gtk_entry_get_text (GTK_ENTRY (self->pv->search_entry));
-}
-
-void
-_gcr_live_search_set_text (GcrLiveSearch *self, const gchar *text)
-{
- g_return_if_fail (GCR_IS_LIVE_SEARCH (self));
- g_return_if_fail (text != NULL);
-
- gtk_entry_set_text (GTK_ENTRY (self->pv->search_entry), text);
-}
-
-/**
- * _gcr_live_search_match:
- * @self: a #GcrLiveSearch
- * @string: a string where to search, must be valid UTF-8.
- *
- * Search if one of the words in @string string starts with the current text
- * of @self.
- *
- * Searching for "aba" in "Abasto" will match, searching in "Moraba" will not,
- * and searching in "A tool (abacus)" will do.
- *
- * The match is not case-sensitive, and regardless of the accentuation marks.
- *
- * Returns: %TRUE if a match is found, %FALSE otherwise.
- *
- **/
-gboolean
-_gcr_live_search_match (GcrLiveSearch *self, const gchar *string)
-{
- g_return_val_if_fail (GCR_IS_LIVE_SEARCH (self), FALSE);
-
- return _gcr_live_search_match_words (string, self->pv->stripped_words);
-}
-
-gboolean
-_gcr_live_search_match_string (const gchar *string, const gchar *prefix)
-{
- GPtrArray *words;
- gboolean match;
-
- words = _gcr_live_search_strip_utf8_string (prefix);
- match = _gcr_live_search_match_words (string, words);
- if (words != NULL)
- g_ptr_array_unref (words);
-
- return match;
-}
-
-GPtrArray *
-_gcr_live_search_get_words (GcrLiveSearch *self)
-{
- return self->pv->stripped_words;
-}
diff --git a/gcr/gcr-live-search.h b/gcr/gcr-live-search.h
deleted file mode 100644
index cf048fd9..00000000
--- a/gcr/gcr-live-search.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2011 Collabora Ltd.
- * Copyright (C) 2010 Collabora Ltd.
- * Copyright (C) 2007-2010 Nokia Corporation.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Authors: Felix Kaser <felix.kaser@collabora.co.uk>
- * Xavier Claessens <xavier.claessens@collabora.co.uk>
- * Claudio Saavedra <csaavedra@igalia.com>
- * Stef Walter <stefw@collabora.co.uk>
- */
-
-/* Code borrowed from Empathy */
-
-#ifndef __GCR_LIVE_SEARCH_H__
-#define __GCR_LIVE_SEARCH_H__
-
-#include <gtk/gtk.h>
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_LIVE_SEARCH (_gcr_live_search_get_type ())
-#define GCR_LIVE_SEARCH(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GCR_TYPE_LIVE_SEARCH, GcrLiveSearch))
-#define GCR_LIVE_SEARCH_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GCR_TYPE_LIVE_SEARCH, GcrLiveSearchClass))
-#define GCR_IS_LIVE_SEARCH(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GCR_TYPE_LIVE_SEARCH))
-#define GCR_IS_LIVE_SEARCH_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GCR_TYPE_LIVE_SEARCH))
-#define GCR_LIVE_SEARCH_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GCR_TYPE_LIVE_SEARCH, GcrLiveSearchClass))
-
-typedef struct _GcrLiveSearch GcrLiveSearch;
-typedef struct _GcrLiveSearchClass GcrLiveSearchClass;
-typedef struct _GcrLiveSearchPrivate GcrLiveSearchPrivate;
-
-struct _GcrLiveSearch {
- /*< private >*/
- GtkBox parent;
- GcrLiveSearchPrivate *pv;
-};
-
-struct _GcrLiveSearchClass {
- GtkBoxClass parent_class;
-};
-
-GType _gcr_live_search_get_type (void) G_GNUC_CONST;
-
-GtkWidget * _gcr_live_search_new (GtkWidget *hook);
-
-GtkWidget * _gcr_live_search_get_hook_widget (GcrLiveSearch *self);
-void _gcr_live_search_set_hook_widget (GcrLiveSearch *self,
- GtkWidget *hook);
-
-const gchar * _gcr_live_search_get_text (GcrLiveSearch *self);
-void _gcr_live_search_set_text (GcrLiveSearch *self,
- const gchar *text);
-
-gboolean _gcr_live_search_match (GcrLiveSearch *self,
- const gchar *string);
-
-GPtrArray * _gcr_live_search_strip_utf8_string (const gchar *string);
-
-gboolean _gcr_live_search_match_words (const gchar *string,
- GPtrArray *words);
-
-GPtrArray * _gcr_live_search_get_words (GcrLiveSearch *self);
-
-/* Made public for unit tests */
-gboolean _gcr_live_search_match_string (const gchar *string,
- const gchar *prefix);
-
-G_END_DECLS
-
-#endif /* __GCR_LIVE_SEARCH_H__ */
diff --git a/gcr/gcr-marshal.list b/gcr/gcr-marshal.list
deleted file mode 100644
index 5e36589b..00000000
--- a/gcr/gcr-marshal.list
+++ /dev/null
@@ -1,7 +0,0 @@
-BOOLEAN:INT
-BOOLEAN:BOXED
-VOID:STRING,BOXED
-VOID:BOXED
-VOID:STRING
-VOID:OBJECT,BOXED
-VOID:OBJECT,OBJECT
diff --git a/gcr/gcr-memory-icon.c b/gcr/gcr-memory-icon.c
deleted file mode 100644
index 39713593..00000000
--- a/gcr/gcr-memory-icon.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-memory-icon.h"
-
-#include <string.h>
-
-struct _GcrMemoryIconPrivate {
- gpointer data;
- gsize n_data;
- goffset offset;
- gchar *image_type;
- GDestroyNotify destroy;
-};
-
-/* Forward declarations */
-static void _gcr_memory_icon_iface_icon (GIconIface *iface);
-static void _gcr_memory_icon_iface_loadable_icon (GLoadableIconIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (GcrMemoryIcon, _gcr_memory_icon, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (G_TYPE_ICON, _gcr_memory_icon_iface_icon);
- G_IMPLEMENT_INTERFACE (G_TYPE_LOADABLE_ICON, _gcr_memory_icon_iface_loadable_icon);
-);
-
-
-static void
-_gcr_memory_icon_init (GcrMemoryIcon *self)
-{
- self->pv = (G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_MEMORY_ICON, GcrMemoryIconPrivate));
-}
-
-static void
-_gcr_memory_icon_finalize (GObject *obj)
-{
- GcrMemoryIcon *self = GCR_MEMORY_ICON (obj);
-
- if (self->pv->destroy)
- (self->pv->destroy) (self->pv->data);
- g_free (self->pv->image_type);
-
- G_OBJECT_CLASS (_gcr_memory_icon_parent_class)->finalize (obj);
-}
-
-static void
-_gcr_memory_icon_class_init (GcrMemoryIconClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- g_type_class_add_private (klass, sizeof (GcrMemoryIconPrivate));
-
- gobject_class->finalize = _gcr_memory_icon_finalize;
-}
-
-static gboolean
-_gcr_memory_icon_equal (GIcon *icon1, GIcon *icon2)
-{
- GcrMemoryIcon *one = GCR_MEMORY_ICON (icon1);
- GcrMemoryIcon *two = GCR_MEMORY_ICON (icon2);
-
- if (icon1 == icon2)
- return TRUE;
- if (!g_str_equal (one->pv->image_type, two->pv->image_type))
- return FALSE;
- if ((one->pv->n_data - one->pv->offset) != (two->pv->n_data - two->pv->offset))
- return FALSE;
- return memcmp ((guchar*)one->pv->data + one->pv->offset,
- (guchar*)two->pv->data + two->pv->offset,
- one->pv->n_data - one->pv->offset) == 0;
-}
-
-static guint
-_gcr_memory_icon_hash (GIcon *icon)
-{
- GcrMemoryIcon *self = GCR_MEMORY_ICON (icon);
- const signed char *p, *end;
- guint32 hash;
-
- hash = g_str_hash (self->pv->image_type);
-
- /* Adapted from g_str_hash */
- p = self->pv->data;
- end = p + self->pv->n_data;
- p += self->pv->offset;
- while (p < end)
- hash = (hash << 5) + hash + *(p++);
-
- return hash;
-}
-
-static void
-_gcr_memory_icon_iface_icon (GIconIface *iface)
-{
- iface->equal = _gcr_memory_icon_equal;
- iface->hash = _gcr_memory_icon_hash;
-}
-
-static GInputStream *
-_gcr_memory_icon_load (GLoadableIcon *icon, int size, gchar **type,
- GCancellable *cancellable, GError **error)
-{
- GcrMemoryIcon *self = GCR_MEMORY_ICON (icon);
- GInputStream *is;
-
- if (type != NULL)
- *type = g_strdup (self->pv->image_type);
-
- is = g_memory_input_stream_new_from_data ((guchar*)self->pv->data + self->pv->offset,
- self->pv->n_data, NULL);
-
- /*
- * Hold a reference to this object from the stream, so that we can rely
- * on the data hanging around.
- */
- g_object_set_data_full (G_OBJECT (is), "back-reference", g_object_ref (self),
- g_object_unref);
-
- return is;
-}
-
-static void
-_gcr_memory_icon_load_async (GLoadableIcon *icon, int size, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- GSimpleAsyncResult *res;
-
- res = g_simple_async_result_new (G_OBJECT (icon), callback, user_data,
- _gcr_memory_icon_load_async);
-
- g_simple_async_result_complete_in_idle (res);
- g_object_unref (res);
-}
-
-static GInputStream*
-_gcr_memory_icon_finish (GLoadableIcon *icon, GAsyncResult *res, char **type,
- GError **error)
-{
- g_return_val_if_fail (g_simple_async_result_is_valid (res, G_OBJECT (icon),
- _gcr_memory_icon_load_async), NULL);
- return _gcr_memory_icon_load (icon, 0, type, NULL, error);
-}
-
-
-static void
-_gcr_memory_icon_iface_loadable_icon (GLoadableIconIface *iface)
-{
- iface->load = _gcr_memory_icon_load;
- iface->load_async = _gcr_memory_icon_load_async;
- iface->load_finish = _gcr_memory_icon_finish;
-}
-
-/**
- * _gcr_memory_icon_new:
- * @image_type: MIME content-type of the image.
- * @data: Data for the image.
- * @n_data: Length of data.
- *
- * Create a new GIcon based on image data in memory. The data will be copied
- * by the new icon.
- *
- * Returns: (transfer full) (type Gcr.MemoryIcon): A newly allocated icon.
- */
-GIcon*
-_gcr_memory_icon_new (const gchar *image_type, gconstpointer data, gsize n_data)
-{
- g_return_val_if_fail (image_type != NULL, NULL);
- g_return_val_if_fail (data != NULL, NULL);
- g_return_val_if_fail (n_data != 0, NULL);
-
- return _gcr_memory_icon_new_full (image_type, g_memdup (data, n_data),
- n_data, 0, g_free);
-}
-
-/**
- * _gcr_memory_icon_new_full:
- * @image_type: MIME content-type of the image.
- * @data: Data for the image.
- * @n_data: Length of data.
- * @offset: Offset of the start of the image in @data.
- * @destroy: Callback to free or release @data when no longer needed.
- *
- * Create a new GIcon based on image data in memory. The data will be used
- * directly from the @data passed. Use @destroy to control the lifetime of
- * the data in memory.
- *
- * Returns: (transfer full): A newly allocated icon.
- */
-GIcon*
-_gcr_memory_icon_new_full (const gchar *image_type, gpointer data, gsize n_data,
- goffset offset, GDestroyNotify destroy)
-{
- GcrMemoryIcon *self;
-
- g_return_val_if_fail (image_type != NULL, NULL);
- g_return_val_if_fail (data != NULL, NULL);
- g_return_val_if_fail (offset < n_data, NULL);
-
- self = g_object_new (GCR_TYPE_MEMORY_ICON, NULL);
- self->pv->data = data;
- self->pv->n_data = n_data;
- self->pv->offset = offset;
- self->pv->destroy = destroy;
- self->pv->image_type = g_strdup (image_type);
-
- return G_ICON (self);
-}
diff --git a/gcr/gcr-memory-icon.h b/gcr/gcr-memory-icon.h
deleted file mode 100644
index 71da9e51..00000000
--- a/gcr/gcr-memory-icon.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#ifndef GCR_MEMORY_ICON_H
-#define GCR_MEMORY_ICON_H
-
-#include <glib-object.h>
-#include <gio/gio.h>
-
-G_BEGIN_DECLS
-
-#define GCR_MEMORY_ICON_COLUMNS (_gcr_memory_icon_get_columns ())
-#define GCR_TYPE_MEMORY_ICON (_gcr_memory_icon_get_type ())
-#define GCR_MEMORY_ICON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_MEMORY_ICON, GcrMemoryIcon))
-#define GCR_MEMORY_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_MEMORY_ICON, GcrMemoryIconClass))
-#define GCR_IS_MEMORY_ICON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_MEMORY_ICON))
-#define GCR_IS_MEMORY_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_MEMORY_ICON))
-#define GCR_MEMORY_ICON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_MEMORY_ICON, GcrMemoryIconClass))
-
-typedef struct _GcrMemoryIcon GcrMemoryIcon;
-typedef struct _GcrMemoryIconClass GcrMemoryIconClass;
-typedef struct _GcrMemoryIconPrivate GcrMemoryIconPrivate;
-
-struct _GcrMemoryIcon {
- /*< private >*/
- GObject parent;
- GcrMemoryIconPrivate *pv;
-};
-
-struct _GcrMemoryIconClass {
- GObjectClass parent_class;
-};
-
-GType _gcr_memory_icon_get_type (void) G_GNUC_CONST;
-
-GIcon* _gcr_memory_icon_new (const gchar *image_type,
- gconstpointer data,
- gsize n_data);
-
-GIcon* _gcr_memory_icon_new_full (const gchar *image_type,
- gpointer data,
- gsize n_data,
- goffset offset,
- GDestroyNotify destroy);
-
-G_END_DECLS
-
-#endif /* __GCR_MEMORY_ICON_H__ */
diff --git a/gcr/gcr-memory.c b/gcr/gcr-memory.c
deleted file mode 100644
index 04d216d9..00000000
--- a/gcr/gcr-memory.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2008 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "egg/egg-secure-memory.h"
-
-#include <glib.h>
-
-/* -----------------------------------------------------------------------------
- * MEMORY
- */
-
-static gboolean do_warning = TRUE;
-#define WARNING "couldn't allocate secure memory to keep passwords " \
- "and or keys from being written to the disk"
-
-#define ABORTMSG "The GNOME_KEYRING_PARANOID environment variable was set. " \
- "Exiting..."
-
-static G_LOCK_DEFINE (memory_lock);
-
-/*
- * These are called from egg-secure-memory.c to provide appropriate
- * locking for memory between threads
- */
-
-void
-egg_memory_lock (void)
-{
- G_LOCK (memory_lock);
-}
-
-void
-egg_memory_unlock (void)
-{
- G_UNLOCK (memory_lock);
-}
-
-void*
-egg_memory_fallback (void *p, size_t sz)
-{
- const gchar *env;
-
- /* We were asked to free memory */
- if (!sz) {
- g_free (p);
- return NULL;
- }
-
- /* We were asked to allocate */
- if (!p) {
- if (do_warning) {
- g_message (WARNING);
- do_warning = FALSE;
- }
-
- env = g_getenv ("GNOME_KEYRING_PARANOID");
- if (env && *env)
- g_error (ABORTMSG);
-
- return g_malloc0 (sz);
- }
-
- /*
- * Reallocation is a bit of a gray area, as we can be asked
- * by external libraries (like libgcrypt) to reallocate a
- * non-secure block into secure memory. We cannot satisfy
- * this request (as we don't know the size of the original
- * block) so we just try our best here.
- */
-
- return g_realloc (p, sz);
-}
diff --git a/gcr/gcr-menu-button.c b/gcr/gcr-menu-button.c
deleted file mode 100644
index 044d6d3b..00000000
--- a/gcr/gcr-menu-button.c
+++ /dev/null
@@ -1,372 +0,0 @@
-/*
- * Copyright (C) 2011 Alexander Larsson <alexl@redhat.com>
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-menu-button.h"
-
-enum {
- PROP_0,
- PROP_LABEL,
- PROP_MENU
-};
-
-struct _GcrMenuButtonPrivate {
- GtkMenu *menu;
- gboolean popup_in_progress;
- gchar *label;
-};
-
-G_DEFINE_TYPE (GcrMenuButton, _gcr_menu_button, GTK_TYPE_TOGGLE_BUTTON);
-
-static void
-_gcr_menu_button_init (GcrMenuButton *self)
-{
- self->pv = (G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_MENU_BUTTON,
- GcrMenuButtonPrivate));
-}
-
-static void
-_gcr_menu_button_constructed (GObject *obj)
-{
- GcrMenuButton *self = GCR_MENU_BUTTON (obj);
- GtkWidget *label_widget;
- GtkWidget *arrow;
- GtkWidget *grid;
-
- G_OBJECT_CLASS (_gcr_menu_button_parent_class)->constructed (obj);
-
- gtk_button_set_focus_on_click (GTK_BUTTON (self), FALSE);
-
- label_widget = gtk_label_new (self->pv->label);
- arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE);
- grid = gtk_grid_new ();
-
- gtk_orientable_set_orientation (GTK_ORIENTABLE (grid), GTK_ORIENTATION_HORIZONTAL);
- gtk_container_add (GTK_CONTAINER (grid), label_widget);
- gtk_container_add (GTK_CONTAINER (grid), arrow);
- gtk_grid_set_row_spacing (GTK_GRID (grid), 3);
- gtk_widget_set_hexpand (grid, TRUE);
- gtk_widget_set_halign (grid, GTK_ALIGN_CENTER);
-
- gtk_container_add (GTK_CONTAINER (self), grid);
-}
-
-static void
-_gcr_menu_button_get_property (GObject *obj,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GcrMenuButton *self = GCR_MENU_BUTTON (obj);
-
- switch (prop_id) {
- case PROP_MENU:
- g_value_set_object (value, _gcr_menu_button_get_menu (self));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-_gcr_menu_button_set_property (GObject *obj,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GcrMenuButton *self = GCR_MENU_BUTTON (obj);
-
- switch (prop_id) {
- case PROP_LABEL:
- self->pv->label = g_value_dup_string (value);
- break;
- case PROP_MENU:
- _gcr_menu_button_set_menu (self, g_value_get_object (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-_gcr_menu_button_finalize (GObject *obj)
-{
- GcrMenuButton *self = GCR_MENU_BUTTON (obj);
-
- _gcr_menu_button_set_menu (self, NULL);
- g_free (self->pv->label);
-
- G_OBJECT_CLASS (_gcr_menu_button_parent_class)->finalize (obj);
-}
-
-
-static void
-on_menu_position (GtkMenu *menu,
- gint *x,
- gint *y,
- gboolean *push_in,
- gpointer user_data)
-{
- GcrMenuButton *self = GCR_MENU_BUTTON (user_data);
- GtkWidget *widget = GTK_WIDGET (self);
- GtkAllocation allocation;
- GtkRequisition menu_req;
- GdkRectangle monitor;
- GdkWindow *window;
- GtkWidget *toplevel;
- GdkScreen *screen;
- gint monitor_num;
- gint sx = 0;
- gint sy = 0;
-
- g_return_if_fail (x != NULL);
- g_return_if_fail (y != NULL);
- g_return_if_fail (push_in != NULL);
-
- gtk_widget_get_allocation (widget, &allocation);
-
- if (!gtk_widget_get_has_window (widget)) {
- sx += allocation.x;
- sy += allocation.y;
- }
-
- window = gtk_widget_get_window (widget);
- gdk_window_get_root_coords (window, sx, sy, &sx, &sy);
-
- gtk_widget_get_preferred_size (GTK_WIDGET (menu), NULL, &menu_req);
- if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR)
- *x = sx;
- else
- *x = sx + allocation.width - menu_req.width;
- *y = sy;
-
- screen = gtk_widget_get_screen (widget);
- monitor_num = gdk_screen_get_monitor_at_window (screen, window);
- if (monitor_num < 0)
- monitor_num = 0;
- gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor);
-
- if (*x < monitor.x)
- *x = monitor.x;
- else if (*x + menu_req.width > monitor.x + monitor.width)
- *x = monitor.x + monitor.width - menu_req.width;
-
- if (monitor.y + monitor.height - *y - allocation.height >= menu_req.height)
- *y += allocation.height;
- else if (*y - monitor.y >= menu_req.height)
- *y -= menu_req.height;
- else if (monitor.y + monitor.height - *y - allocation.height > *y - monitor.y)
- *y += allocation.height;
- else
- *y -= menu_req.height;
-
- gtk_menu_set_monitor (menu, monitor_num);
-
- toplevel = gtk_widget_get_parent (GTK_WIDGET (menu));
- if (GTK_IS_WINDOW (toplevel) && gtk_widget_get_visible (toplevel))
- gtk_window_set_type_hint (GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU);
-
- *push_in = FALSE;
-}
-
-static void
-_gcr_menu_button_toggled (GtkToggleButton *togglebutton)
-{
- GcrMenuButton *self = GCR_MENU_BUTTON (togglebutton);
- GtkStyleContext *context;
-
- context = gtk_widget_get_style_context (GTK_WIDGET (self));
- if (gtk_toggle_button_get_active (togglebutton)) {
- if (!self->pv->popup_in_progress)
- gtk_menu_popup (self->pv->menu, NULL, NULL,
- on_menu_position, self, 1,
- gtk_get_current_event_time ());
- gtk_style_context_add_class (context, GTK_STYLE_CLASS_MENUBAR);
- gtk_style_context_add_class (context, GTK_STYLE_CLASS_MENUITEM);
- } else {
- gtk_style_context_remove_class (context, GTK_STYLE_CLASS_MENUBAR);
- gtk_style_context_remove_class (context, GTK_STYLE_CLASS_MENUITEM);
- gtk_menu_popdown (self->pv->menu);
- }
-
- gtk_widget_reset_style (GTK_WIDGET (self));
-}
-
-static gboolean
-_gcr_menu_button_press_event (GtkWidget *widget,
- GdkEventButton *event)
-{
- GcrMenuButton *self = GCR_MENU_BUTTON (widget);
- GtkWidget *ewidget;
-
- ewidget = gtk_get_event_widget ((GdkEvent *)event);
- if (ewidget != widget || gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
- return FALSE;
-
- gtk_menu_popup (self->pv->menu, NULL, NULL, on_menu_position, self,
- 1, gtk_get_current_event_time ());
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);
- self->pv->popup_in_progress = TRUE;
- return TRUE;
-}
-
-static gboolean
-_gcr_menu_button_release_event (GtkWidget *widget,
- GdkEventButton *event)
-{
- GcrMenuButton *self = GCR_MENU_BUTTON (widget);
- gboolean popup_in_progress_saved;
- GtkWidget *ewidget;
-
- popup_in_progress_saved = self->pv->popup_in_progress;
- self->pv->popup_in_progress = FALSE;
-
- ewidget = gtk_get_event_widget ((GdkEvent *)event);
-
- if (ewidget == widget && !popup_in_progress_saved &&
- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) {
- gtk_menu_popdown (self->pv->menu);
- return TRUE;
- }
-
- if (ewidget != widget) {
- gtk_menu_popdown (self->pv->menu);
- return TRUE;
- }
-
- return FALSE;
-}
-
-static gboolean
-_gcr_menu_button_draw (GtkWidget *widget,
- cairo_t *cr)
-{
- GTK_WIDGET_GET_CLASS (widget)->draw (widget, cr);
- return FALSE;
-}
-
-static void
-_gcr_menu_button_class_init (GcrMenuButtonClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- GtkToggleButtonClass *toggle_class = GTK_TOGGLE_BUTTON_CLASS (klass);
- GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
-
- gobject_class->constructed = _gcr_menu_button_constructed;
- gobject_class->get_property = _gcr_menu_button_get_property;
- gobject_class->set_property = _gcr_menu_button_set_property;
- gobject_class->finalize = _gcr_menu_button_finalize;
-
- widget_class->button_press_event = _gcr_menu_button_press_event;
- widget_class->button_release_event = _gcr_menu_button_release_event;
- widget_class->draw = _gcr_menu_button_draw;
-
- toggle_class->toggled = _gcr_menu_button_toggled;
-
- g_type_class_add_private (klass, sizeof (GcrMenuButtonPrivate));
-
- g_object_class_install_property (gobject_class, PROP_LABEL,
- g_param_spec_string ("label", "Label", "Label for the button",
- "", G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
-
- g_object_class_install_property (gobject_class, PROP_MENU,
- g_param_spec_object ("menu", "Menu", "Menu for the button",
- GTK_TYPE_MENU, G_PARAM_READWRITE));
-
-}
-
-/**
- * _gcr_menu_button_new:
- * @label: (allow-none): the label
- *
- * Returns: (transfer full) (type Gcr.MenuButton): the new menu button
- */
-GtkWidget *
-_gcr_menu_button_new (const gchar *label)
-{
- return g_object_new (GCR_TYPE_MENU_BUTTON,
- "label", label,
- NULL);
-}
-
-static void
-on_menu_show (GtkWidget *menu,
- gpointer user_data)
-{
- GcrMenuButton *self = GCR_MENU_BUTTON (user_data);
- self->pv->popup_in_progress = TRUE;
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self), TRUE);
- self->pv->popup_in_progress = FALSE;
-}
-
-static void
-on_menu_hide (GtkWidget *menu,
- gpointer user_data)
-{
- GcrMenuButton *self = GCR_MENU_BUTTON (user_data);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self), FALSE);
-}
-
-static void
-on_menu_detach (GtkWidget *attach_widget,
- GtkMenu *menu)
-{
-
-}
-
-GtkMenu *
-_gcr_menu_button_get_menu (GcrMenuButton *self)
-{
- g_return_val_if_fail (GCR_IS_MENU_BUTTON (self), NULL);
- return self->pv->menu;
-}
-
-void
-_gcr_menu_button_set_menu (GcrMenuButton *self,
- GtkMenu *menu)
-{
- g_return_if_fail (GCR_IS_MENU_BUTTON (self));
- g_return_if_fail (menu == NULL || GTK_IS_MENU (menu));
-
- if (menu == self->pv->menu)
- return;
-
- if (self->pv->menu != NULL) {
- g_signal_handlers_disconnect_by_func (self->pv->menu, on_menu_show, self);
- g_signal_handlers_disconnect_by_func (self->pv->menu, on_menu_hide, self);
- gtk_menu_detach (self->pv->menu);
- g_object_unref (self->pv->menu);
- }
-
- self->pv->menu = menu;
-
- if (self->pv->menu != NULL) {
- g_object_ref (self->pv->menu);
- g_signal_connect (self->pv->menu, "show", G_CALLBACK (on_menu_show), self);
- g_signal_connect (self->pv->menu, "hide", G_CALLBACK (on_menu_hide), self);
- gtk_menu_attach_to_widget (self->pv->menu, GTK_WIDGET (self), on_menu_detach);
- }
-
- g_object_notify (G_OBJECT (self), "menu");
-}
diff --git a/gcr/gcr-menu-button.h b/gcr/gcr-menu-button.h
deleted file mode 100644
index 02dbb9cf..00000000
--- a/gcr/gcr-menu-button.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#ifndef GCR_MENU_BUTTON_H
-#define GCR_MENU_BUTTON_H
-
-#include <gtk/gtk.h>
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_MENU_BUTTON (_gcr_menu_button_get_type ())
-#define GCR_MENU_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_MENU_BUTTON, GcrMenuButton))
-#define GCR_MENU_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_MENU_BUTTON, GcrMenuButtonClass))
-#define GCR_IS_MENU_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_MENU_BUTTON))
-#define GCR_IS_MENU_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_MENU_BUTTON))
-#define GCR_MENU_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_MENU_BUTTON, GcrMenuButtonClass))
-
-typedef struct _GcrMenuButton GcrMenuButton;
-typedef struct _GcrMenuButtonClass GcrMenuButtonClass;
-typedef struct _GcrMenuButtonPrivate GcrMenuButtonPrivate;
-
-struct _GcrMenuButton {
- GtkToggleButton parent;
- GcrMenuButtonPrivate *pv;
-};
-
-struct _GcrMenuButtonClass {
- GtkToggleButtonClass parent;
-};
-
-GType _gcr_menu_button_get_type (void);
-
-GtkWidget * _gcr_menu_button_new (const gchar *label);
-
-GtkMenu * _gcr_menu_button_get_menu (GcrMenuButton *self);
-
-void _gcr_menu_button_set_menu (GcrMenuButton *self,
- GtkMenu *menu);
-G_END_DECLS
-
-#endif /* GCR_MENU_BUTTON_H */
diff --git a/gcr/gcr-mkoids b/gcr/gcr-mkoids
deleted file mode 100644
index 47d10953..00000000
--- a/gcr/gcr-mkoids
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/bin/sh
-
-set -euf
-
-generate_header ()
-{
- echo "/* WARNING: file is autogenerated */"
- echo ""
- echo "#include <glib.h>"
- echo ""
- echo "#ifndef ${UPPER}_OIDS_"
- echo "#define ${UPPER}_OIDS_"
- echo ""
- echo "void _${LOWER}_oids_init (void);"
-
- while read name oid; do
- if [ -n "$name" ]; then
- echo "GQuark ${UPPER}_OID_${name};"
- fi
- done
-
- echo ""
- echo "#endif /* ${UPPER}_OIDS_ */"
-}
-
-generate_source ()
-{
- echo "/* WARNING: file is autogenerated */"
- echo ""
- echo "#include \"$HEADER\""
- echo ""
-
- echo "void"
- echo "_${LOWER}_oids_init (void)"
- echo "{"
- echo " static volatile gsize initialized = 0;"
- echo " if (g_once_init_enter (&initialized)) {"
-
- while read name oid; do
- if [ -n "$name" ]; then
- echo " ${UPPER}_OID_${name} = g_quark_from_static_string (\"${oid}\");"
- fi
- done
-
- echo " g_once_init_leave (&initialized, 1);"
- echo " }"
- echo "}"
-}
-
-UPPER="PREFIX"
-LOWER="prefix"
-
-while getopts 'c:h:p:' arg; do
- case $arg in
- p)
- UPPER=$(echo "$OPTARG" | tr '[:lower:]' '[:upper:]')
- LOWER=$(echo "$OPTARG" | tr '[:upper:]' '[:lower:]')
- ;;
- c)
- SOURCE="$OPTARG"
- ;;
- h)
- HEADER="$OPTARG"
- ;;
- *)
- echo "gcr-mkoids: invalid argument: $arg" >&2
- exit 2
- ;;
- esac
-done
-
-shift $(expr $OPTIND - 1)
-if [ $# -ne 1 ]; then
- echo "gcr-mkoids: specify input file on command line"
- exit 2
-fi
-
-INPUT="$1"
-
-if [ -n "$HEADER" ]; then
- generate_header < $INPUT > $HEADER
-fi
-if [ -n "$SOURCE" ]; then
- generate_source < $INPUT > $SOURCE
-fi
diff --git a/gcr/gcr-oids.list b/gcr/gcr-oids.list
deleted file mode 100644
index 552c6017..00000000
--- a/gcr/gcr-oids.list
+++ /dev/null
@@ -1,22 +0,0 @@
-BASIC_CONSTRAINTS 2.5.29.19
-EXTENDED_KEY_USAGE 2.5.29.37
-SUBJECT_KEY_IDENTIFIER 2.5.29.14
-KEY_USAGE 2.5.29.15
-SUBJECT_ALT_NAME 2.5.29.17
-
-PKIX1_RSA 1.2.840.113549.1.1.1
-PKIX1_DSA 1.2.840.10040.4.1
-
-PKCS7_DATA 1.2.840.113549.1.7.1
-PKCS7_SIGNED_DATA 1.2.840.113549.1.7.2
-PKCS7_ENCRYPTED_DATA 1.2.840.113549.1.7.6
-PKCS9_ATTRIBUTE_FRIENDLY 1.2.840.113549.1.9.20
-PKCS9_ATTRIBUTE_LOCAL_KEY_ID 1.2.840.113549.1.9.21
-PKCS12_BAG_PKCS8_KEY 1.2.840.113549.1.12.10.1.1
-PKCS12_BAG_PKCS8_ENCRYPTED_KEY 1.2.840.113549.1.12.10.1.2
-PKCS12_BAG_CERTIFICATE 1.2.840.113549.1.12.10.1.3
-PKCS12_BAG_CRL 1.2.840.113549.1.12.10.1.4
-
-
-ALT_NAME_XMPP_ADDR 1.3.6.1.5.5.7.8.5
-ALT_NAME_DNS_SRV 1.3.6.1.5.5.7.8.7
diff --git a/gcr/gcr-openpgp.c b/gcr/gcr-openpgp.c
deleted file mode 100644
index 7ae5c477..00000000
--- a/gcr/gcr-openpgp.c
+++ /dev/null
@@ -1,1304 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-openpgp.h"
-#include "gcr-internal.h"
-#include "gcr-record.h"
-#include "gcr-types.h"
-
-#include "egg/egg-hex.h"
-
-#include <gcrypt.h>
-
-#include <string.h>
-
-typedef enum {
- OPENPGP_PKT_RESERVED = 0,
- OPENPGP_PKT_PUBKEY_ENC = 1,
- OPENPGP_PKT_SIGNATURE = 2,
- OPENPGP_PKT_ONEPASS_SIG = 4,
- OPENPGP_PKT_SECRET_KEY = 5,
- OPENPGP_PKT_PUBLIC_KEY = 6,
- OPENPGP_PKT_SECRET_SUBKEY = 7,
- OPENPGP_PKT_COMPRESSED = 8,
- OPENPGP_PKT_MARKER = 10,
- OPENPGP_PKT_LITERAL = 11,
- OPENPGP_PKT_RING_TRUST = 12,
- OPENPGP_PKT_USER_ID = 13,
- OPENPGP_PKT_PUBLIC_SUBKEY = 14,
- OPENPGP_PKT_OLD_COMMENT = 16,
- OPENPGP_PKT_ATTRIBUTE = 17,
- OPENPGP_PKT_MDC = 19
-} OpenpgpPktType;
-
-typedef enum {
- OPENPGP_SIG_CREATION = 2,
- OPENPGP_SIG_EXPIRY = 3,
- OPENPGP_SIG_EXPORTABLE = 4,
- OPENPGP_SIG_TRUST = 5,
- OPENPGP_SIG_REGULAR_EXPRESSION = 6,
- OPENPGP_SIG_REVOCABLE = 7,
- OPENPGP_SIG_KEY_EXPIRY = 9,
- OPENPGP_SIG_SYMMETRIC_ALGOS = 11,
- OPENPGP_SIG_REVOCATION_KEY = 12,
- OPENPGP_SIG_ISSUER = 16,
- OPENPGP_SIG_NOTATION_DATA = 20,
- OPENPGP_SIG_HASH_ALGOS = 21,
- OPENPGP_SIG_COMPRESSION_ALGOS = 22,
- OPENPGP_SIG_KEYSERVER_PREFS = 23,
- OPENPGP_SIG_PREFERRED_KEYSERVER = 24,
- OPENPGP_SIG_PRIMARY_USERID = 25,
- OPENPGP_SIG_POLICY_URI = 26,
- OPENPGP_SIG_KEY_FLAGS = 27,
- OPENPGP_SIG_SIGNER_USERID = 28,
- OPENPGP_SIG_REVOCATION_REASON = 29,
- OPENPGP_SIG_FEATURES = 30,
- OPENPGP_SIG_TARGET = 31,
- OPENPGP_SIG_EMBEDDED_SIGNATURE = 32,
-} OpenpgpSigPacket;
-
-static gboolean
-read_byte (const guchar **at,
- const guchar *end,
- guint8 *result)
-{
- g_assert (at);
- if (*at == end)
- *at = NULL;
- if (*at == NULL)
- return FALSE;
- if (result)
- *result = *(*at);
- (*at)++;
- return TRUE;
-}
-
-static gboolean
-read_bytes (const guchar **at,
- const guchar *end,
- gpointer buffer,
- gsize length)
-{
- g_assert (at);
- if (*at + length > end)
- *at = NULL;
- if (*at == NULL)
- return FALSE;
- if (buffer != NULL)
- memcpy (buffer, *at, length);
- (*at) += length;
- return TRUE;
-}
-
-static gboolean
-read_uint32 (const guchar **at,
- const guchar *end,
- guint32 *value)
-{
- guchar buf[4];
- g_assert (at);
- if (!read_bytes (at, end, buf, 4))
- return FALSE;
- if (value)
- *value = buf[0] << 24 | buf[1] << 16 | buf[2] << 8 | buf[3];
- return TRUE;
-}
-
-static gboolean
-read_uint16 (const guchar **at,
- const guchar *end,
- guint16 *value)
-{
- guchar buf[2];
- g_assert (at);
- if (!read_bytes (at, end, buf, 2))
- return FALSE;
- if (value)
- *value = buf[0] << 8 | buf[1];
- return TRUE;
-}
-
-static gboolean
-read_mpi (const guchar **at,
- const guchar *end,
- guint16 *bits,
- guchar **value)
-{
- gsize bytes;
- guint16 b;
- g_assert (at);
- if (!bits)
- bits = &b;
- if (!read_uint16 (at, end, bits))
- return FALSE;
- bytes = (*bits + 7) / 8;
- if (bytes == 0)
- return FALSE;
- if (value)
- *value = g_malloc (bytes);
- if (!read_bytes (at, end, value ? *value : NULL, bytes)) {
- if (value)
- g_free (*value);
- return FALSE;
- }
- return TRUE;
-}
-
-static gboolean
-read_new_length (const guchar **at,
- const guchar *end,
- gsize *pkt_len)
-{
- guint8 c, c1;
- guint32 val;
-
- if (!read_byte (at, end, &c))
- return FALSE;
- if (c < 192) {
- *pkt_len = c;
- } else if (c >= 192 && c <= 223) {
- if (!read_byte (at, end, &c1))
- return FALSE;
- *pkt_len = ((c - 192) << 8) + c1 + 192;
- } else if (c == 255) {
- if (!read_uint32 (at, end, &val))
- return FALSE;
- *pkt_len = val;
- } else {
- /* We don't support partial length */
- return FALSE;
- }
-
- return TRUE;
-}
-
-static gboolean
-read_old_length (const guchar **at,
- const guchar *end,
- guchar ctb,
- gsize *pkt_len)
-{
- gsize llen = ctb & 0x03;
- guint16 v16;
- guint32 v32;
- guint8 c;
-
- if (llen == 0) {
- if (!read_byte (at, end, &c))
- return FALSE;
- *pkt_len = c;
- } else if (llen == 1) {
- if (!read_uint16 (at, end, &v16))
- return FALSE;
- *pkt_len = v16;
- } else if (llen == 2) {
- if (!read_uint32 (at, end, &v32))
- return FALSE;
- *pkt_len = v32;
- } else {
- *pkt_len = end - *at;
- }
-
- return TRUE;
-}
-
-static GcrDataError
-read_openpgp_packet (const guchar **at,
- const guchar *end,
- guint8 *pkt_type,
- gsize *length)
-{
- gboolean new_ctb;
- guint8 ctb;
- gboolean ret;
-
- if (!read_byte (at, end, &ctb))
- return GCR_ERROR_UNRECOGNIZED;
- if (!(ctb & 0x80))
- return GCR_ERROR_UNRECOGNIZED;
-
- /* RFC2440 packet format. */
- if (ctb & 0x40) {
- *pkt_type = ctb & 0x3f;
- new_ctb = TRUE;
-
- /* the old RFC1991 packet format. */
- } else {
- *pkt_type = ctb & 0x3f;
- *pkt_type >>= 2;
- new_ctb = FALSE;
- }
-
- if (*pkt_type > 63)
- return GCR_ERROR_UNRECOGNIZED;
-
- if (new_ctb)
- ret = read_new_length (at, end, length);
- else
- ret = read_old_length (at, end, ctb, length);
- if (!ret)
- return GCR_ERROR_UNRECOGNIZED;
-
- if ((*at) + *length > end)
- return GCR_ERROR_FAILURE;
-
- return GCR_SUCCESS;
-}
-
-static gchar *
-hash_user_id_or_attribute (const guchar *beg,
- const guchar *end)
-{
- guint8 digest[20] = { 0, };
-
- g_assert (beg != NULL);
- g_assert (end > beg);
-
- gcry_md_hash_buffer (GCRY_MD_RMD160, digest, beg, end - beg);
- return egg_hex_encode_full (digest, sizeof (digest), TRUE, 0, 0);
-}
-
-static gboolean
-parse_v3_rsa_bits_and_keyid (const guchar **at,
- const guchar *end,
- guint16 *bits,
- gchar **keyid)
-{
- guchar *n;
- gsize bytes;
-
- g_assert (bits);
- g_assert (keyid);
-
- /* Read in the modulus */
- if (!read_mpi (at, end, bits, &n))
- return FALSE;
-
- /* Last 64-bits of modulus are keyid */
- bytes = (*bits + 7) / 8;
- if (bytes < 8) {
- g_free (n);
- return FALSE;
- }
-
- *keyid = egg_hex_encode_full (n + (bytes - 8), 8, TRUE, 0, 0);
- return TRUE;
-}
-
-static gchar *
-hash_v4_keyid (const guchar *data,
- const guchar *end,
- gchar **fingerprint)
-{
- gcry_md_hd_t mdh;
- gcry_error_t gcry;
- guchar header[3];
- guint8 *digest;
- gchar *keyid;
- gsize len;
-
- /*
- * Both primary and subkeys use the public key tag byte
- * 0x99 to construct the hash. So we skip over that here.
- */
-
- g_assert (data != NULL);
- g_assert (end > data);
-
- len = end - data;
- g_return_val_if_fail (len < G_MAXUSHORT, NULL);
-
- header[0] = 0x99;
- header[1] = len >> 8 & 0xff;
- header[2] = len & 0xff;
-
- gcry = gcry_md_open (&mdh, GCRY_MD_SHA1, 0);
- g_return_val_if_fail (gcry == 0, NULL);
-
- gcry_md_write (mdh, header, 3);
- gcry_md_write (mdh, data, len);
-
- digest = gcry_md_read (mdh, 0);
- keyid = egg_hex_encode_full (digest + 12, 8, TRUE, 0, 0);
- if (fingerprint)
- *fingerprint = egg_hex_encode_full (digest, 20, TRUE, 0, 0);
- gcry_md_close (mdh);
-
- return keyid;
-}
-
-static gboolean
-parse_v4_algo_bits (const guchar **at,
- const guchar *end,
- guint8 algo,
- guint16 *bits)
-{
- switch (algo) {
- case GCR_OPENPGP_ALGO_RSA:
- case GCR_OPENPGP_ALGO_RSA_E:
- case GCR_OPENPGP_ALGO_RSA_S:
- if (!read_mpi (at, end, bits, NULL) ||
- !read_mpi (at, end, NULL, NULL))
- return FALSE;
- return TRUE;
- case GCR_OPENPGP_ALGO_DSA:
- if (!read_mpi (at, end, bits, NULL) ||
- !read_mpi (at, end, NULL, NULL) ||
- !read_mpi (at, end, NULL, NULL) ||
- !read_mpi (at, end, NULL, NULL))
- return FALSE;
- return TRUE;
- case GCR_OPENPGP_ALGO_ELG_E:
- if (!read_mpi (at, end, bits, NULL) ||
- !read_mpi (at, end, NULL, NULL) ||
- !read_mpi (at, end, NULL, NULL))
- return FALSE;
- return TRUE;
- default: /* Unsupported key */
- return FALSE;
- }
-}
-
-static const gchar *
-default_caps_for_algo (guint8 algo)
-{
- switch (algo) {
- case GCR_OPENPGP_ALGO_RSA:
- return "cse";
- case GCR_OPENPGP_ALGO_RSA_E:
- return "e";
- case GCR_OPENPGP_ALGO_RSA_S:
- return "s";
- case GCR_OPENPGP_ALGO_ELG_E:
- return "e";
- case GCR_OPENPGP_ALGO_DSA:
- return "sca";
- default:
- return "";
- }
-}
-
-static gboolean
-parse_public_key_or_subkey (GQuark schema,
- guint n_columns,
- const guchar *beg,
- const guchar **at,
- const guchar *end,
- GcrOpenpgpParseFlags flags,
- GPtrArray *records)
-{
- gchar *keyid;
- GcrRecord *record;
- guint8 version;
- guint32 timestamp;
- guint16 ndays = 0;
- guint8 algo;
- guint16 bits;
- gulong expiry;
- gchar *fingerprint;
- const guchar *data;
-
- /* Start of actual key data in packet */
- data = *at;
-
- /* First byte is version */
- if (!read_byte (at, end, &version))
- return FALSE;
- if (version < 2 || version > 4)
- return FALSE;
-
- /* Next a 4 byte create date */
- if (!read_uint32 (at, end, &timestamp))
- return FALSE;
- /* If version 2 or 3, validity days comes next */
- if (version < 4) {
- if (!read_uint16 (at, end, &ndays))
- return FALSE;
- }
-
- /* Algorithm */
- if (!read_byte (at, end, &algo))
- return FALSE;
-
- /* For version 2 and 3, only RSA, keyid is low 64-bits of modulus */
- if (version < 4) {
- if (!parse_v3_rsa_bits_and_keyid (at, end, &bits, &keyid))
- return FALSE;
-
- /* For version 4 */
- } else {
- if (!parse_v4_algo_bits (at, end, algo, &bits))
- return FALSE;
- keyid = hash_v4_keyid (data, *at, &fingerprint);
- }
-
- record = _gcr_record_new (schema, n_columns, ':');
- _gcr_record_set_uint (record, GCR_RECORD_KEY_BITS, bits);
- _gcr_record_set_uint (record, GCR_RECORD_KEY_ALGO, algo);
- _gcr_record_take_raw (record, GCR_RECORD_KEY_KEYID, keyid);
- _gcr_record_set_ulong (record, GCR_RECORD_KEY_TIMESTAMP, timestamp);
- if (schema != GCR_RECORD_SCHEMA_SEC && schema != GCR_RECORD_SCHEMA_SSB)
- _gcr_record_set_raw (record, GCR_RECORD_PUB_CAPS, default_caps_for_algo (algo));
-
- if (ndays > 0) {
- expiry = (gulong)timestamp + ((gulong)ndays * 86400);
- _gcr_record_set_ulong (record, GCR_RECORD_KEY_EXPIRY, expiry);
- }
-
- g_ptr_array_add (records, record);
-
- if (fingerprint && (schema == GCR_RECORD_SCHEMA_PUB || schema == GCR_RECORD_SCHEMA_SEC)) {
- record = _gcr_record_new (GCR_RECORD_SCHEMA_FPR, GCR_RECORD_FPR_MAX, ':');
- _gcr_record_take_raw (record, GCR_RECORD_FPR_FINGERPRINT, fingerprint);
- g_ptr_array_add (records, record);
- fingerprint = NULL;
- }
-
- g_free (fingerprint);
- return TRUE;
-}
-
-static gboolean
-parse_secret_key_or_subkey (GQuark schema,
- const guchar *beg,
- const guchar **at,
- const guchar *end,
- GcrOpenpgpParseFlags flags,
- GPtrArray *records)
-{
- /*
- * Identical to a public key, with extra crap after it. The
- * extra crap is hard to parse and doesn't add anything to
- * the records, so just skip over it.
- *
- * Also don't print out trust, that doesn't make sense for
- * secret keys.
- */
-
- if (!parse_public_key_or_subkey (schema, GCR_RECORD_SEC_MAX,
- beg, at, end, flags, records))
- return FALSE;
-
- *at = end;
- return TRUE;
-}
-
-static gboolean
-parse_user_id (const guchar *beg,
- const guchar **at,
- const guchar *end,
- GcrOpenpgpParseFlags flags,
- GPtrArray *records)
-{
- gchar *string;
- GcrRecord *record;
- gchar *fingerprint;
-
- g_assert (at);
- if (!*at || !end || *at > end)
- return FALSE;
-
- string = g_strndup ((gchar *)*at, end - *at);
-
- fingerprint = hash_user_id_or_attribute (*at, end);
- record = _gcr_record_new (GCR_RECORD_SCHEMA_UID, GCR_RECORD_UID_MAX, ':');
- _gcr_record_take_raw (record, GCR_RECORD_UID_FINGERPRINT, fingerprint);
- _gcr_record_set_string (record, GCR_RECORD_UID_USERID, string);
- g_free (string);
-
- g_ptr_array_add (records, record);
-
- *at = end;
- return TRUE;
-}
-
-static gboolean
-parse_user_attribute_packet (const guchar *beg,
- const guchar **at,
- const guchar *end,
- guchar subpkt_type,
- GPtrArray *records)
-{
- GcrRecord *record;
- gchar *fingerprint;
-
- record = _gcr_record_new (GCR_RECORD_SCHEMA_XA1, GCR_RECORD_XA1_MAX, ':');
- _gcr_record_set_uint (record, GCR_RECORD_XA1_LENGTH, end - *at);
- _gcr_record_set_uint (record, GCR_RECORD_XA1_TYPE, subpkt_type);
- fingerprint = hash_user_id_or_attribute (*at, end);
- _gcr_record_take_raw (record, GCR_RECORD_XA1_FINGERPRINT, fingerprint);
- _gcr_record_set_base64 (record, GCR_RECORD_XA1_DATA, *at, end - *at);
-
- g_ptr_array_add (records, record);
-
- *at = end;
- return TRUE;
-}
-
-static gboolean
-parse_user_attribute (const guchar *beg,
- const guchar **at,
- const guchar *end,
- GcrOpenpgpParseFlags flags,
- GPtrArray *records)
-{
- gsize subpkt_len;
- guint count = 0;
- const guchar *start;
- const guchar *subpkt_beg;
- guint8 subpkt_type;
- gchar *fingerprint;
- gchar *string;
- GcrRecord *record;
-
- start = *at;
- while (*at != end) {
- subpkt_beg = *at;
-
- if (!read_new_length (at, end, &subpkt_len) ||
- !read_byte (at, end, &subpkt_type))
- return FALSE;
-
- count++;
-
- if (flags & GCR_OPENPGP_PARSE_ATTRIBUTES) {
- if (!parse_user_attribute_packet (subpkt_beg, at,
- *at + (subpkt_len - 1),
- subpkt_type, records))
- return FALSE;
-
- /* We already progressed one extra byte for the subpkt_type */
- } else {
- *at += (subpkt_len - 1);
- }
- }
-
- fingerprint = hash_user_id_or_attribute (start, end);
- string = g_strdup_printf ("%d %d", count, (guint)(*at - start));
- record = _gcr_record_new (GCR_RECORD_SCHEMA_UAT, GCR_RECORD_UAT_MAX, ':');
- _gcr_record_take_raw (record, GCR_RECORD_UAT_FINGERPRINT, fingerprint);
- _gcr_record_take_raw (record, GCR_RECORD_UAT_COUNT_SIZE, string);
-
- g_ptr_array_add (records, record);
- return TRUE;
-}
-
-static gboolean
-skip_signature_mpis (const guchar **at,
- const guchar *end,
- guint8 algo)
-{
- switch (algo) {
-
- /* RSA signature value */
- case GCR_OPENPGP_ALGO_RSA:
- return read_mpi (at, end, NULL, NULL);
-
- /* DSA values r and s */
- case GCR_OPENPGP_ALGO_DSA:
- return read_mpi (at, end, NULL, NULL) &&
- read_mpi (at, end, NULL, NULL);
- default:
- return FALSE;
- }
-}
-
-static gboolean
-parse_v3_signature (const guchar **at,
- const guchar *end,
- GcrOpenpgpParseFlags flags,
- GPtrArray *records)
-{
- guchar keyid[8];
- guint8 sig_type;
- guint8 sig_len;
- guint32 sig_time;
- guint8 key_algo;
- guint8 hash_algo;
- guint16 left_bits;
- GcrRecord *record;
- gchar *value;
-
- if (!read_byte (at, end, &sig_len) || sig_len != 5)
- return FALSE;
-
- if (!read_byte (at, end, &sig_type) ||
- !read_uint32 (at, end, &sig_time) ||
- !read_bytes (at, end, keyid, 8) ||
- !read_byte (at, end, &key_algo) ||
- !read_byte (at, end, &hash_algo) ||
- !read_uint16 (at, end, &left_bits) ||
- !skip_signature_mpis (at, end, key_algo))
- return FALSE;
-
- if (flags & GCR_OPENPGP_PARSE_SIGNATURES) {
- record = _gcr_record_new (GCR_RECORD_SCHEMA_SIG, GCR_RECORD_SIG_MAX, ':');
- _gcr_record_set_uint (record, GCR_RECORD_SIG_ALGO, key_algo);
- value = egg_hex_encode_full (keyid, sizeof (keyid), TRUE, 0, 0);
- _gcr_record_take_raw (record, GCR_RECORD_SIG_KEYID, value);
- _gcr_record_set_ulong (record, GCR_RECORD_SIG_TIMESTAMP, sig_time);
- value = g_strdup_printf ("%02xx", (guint)sig_type);
- _gcr_record_take_raw (record, GCR_RECORD_SIG_CLASS, value);
- g_ptr_array_add (records, record);
- }
-
- return TRUE;
-}
-
-typedef struct {
- gulong key_expiry;
- gboolean exportable;
- gboolean primary;
- guint8 key_flags;
- GcrRecord *revocation;
-} SigSubpacket;
-
-static gboolean
-parse_v4_signature_revocation (const guchar **at,
- const guchar *end,
- GcrRecord *revocation)
-{
- guchar fingerprint[20];
- gchar *value;
- guint8 klass;
- guint8 algo;
-
- if (!read_byte (at, end, &klass) ||
- !read_byte (at, end, &algo) ||
- !read_bytes (at, end, fingerprint, 20))
- return FALSE;
-
- _gcr_record_set_uint (revocation, GCR_RECORD_RVK_ALGO, algo);
- value = egg_hex_encode_full (fingerprint, 20, TRUE, 0, 0);
- _gcr_record_take_raw (revocation, GCR_RECORD_RVK_FINGERPRINT, value);
- value = g_strdup_printf ("%02X", (guint)klass);
- _gcr_record_take_raw (revocation, GCR_RECORD_RVK_CLASS, value);
-
- return TRUE;
-}
-
-static gboolean
-parse_v4_signature_subpacket (const guchar **at,
- const guchar *end,
- guint8 sub_type,
- GcrRecord *record,
- SigSubpacket *subpkt)
-{
- guchar keyid[8];
- guint32 when;
- guint8 byte;
- gboolean critical;
- gchar *value;
-
- critical = (sub_type & 0x80) ? TRUE : FALSE;
- sub_type &= ~0xC0;
-
- switch (sub_type) {
- case OPENPGP_SIG_CREATION:
- if (!read_uint32 (at, end, &when))
- return FALSE;
- _gcr_record_set_ulong (record, GCR_RECORD_SIG_TIMESTAMP, when);
- return TRUE;
- case OPENPGP_SIG_ISSUER:
- if (!read_bytes (at, end, keyid, 8))
- return FALSE;
- value = egg_hex_encode_full (keyid, 8, TRUE, 0, 0);
- _gcr_record_take_raw (record, GCR_RECORD_SIG_KEYID, value);
- return TRUE;
- case OPENPGP_SIG_KEY_EXPIRY:
- if (!read_uint32 (at, end, &when))
- return FALSE;
- subpkt->key_expiry = when;
- return TRUE;
- case OPENPGP_SIG_EXPIRY:
- if (!read_uint32 (at, end, &when))
- return FALSE;
- _gcr_record_set_ulong (record, GCR_RECORD_SIG_EXPIRY, when);
- return TRUE;
- case OPENPGP_SIG_EXPORTABLE:
- if (!read_byte (at, end, &byte))
- return FALSE;
- if (byte != 0 && byte != 1)
- return FALSE;
- subpkt->exportable = (byte == 0 ? FALSE : TRUE);
- return TRUE;
-
- case OPENPGP_SIG_PRIMARY_USERID:
- if (!read_byte (at, end, &byte))
- return FALSE;
- if (byte != 0 && byte != 1)
- return FALSE;
- subpkt->primary = byte;
- return TRUE;
-
- case OPENPGP_SIG_KEY_FLAGS:
- if (!read_byte (at, end, &byte))
- return FALSE;
- *at = end; /* N octets of flags */
- subpkt->key_flags = byte;
- return TRUE;
-
- case OPENPGP_SIG_SIGNER_USERID:
- value = g_strndup ((gchar *)*at, end - *at);
- _gcr_record_set_string (record, GCR_RECORD_SIG_USERID, value);
- g_free (value);
- return TRUE;
-
- case OPENPGP_SIG_REVOCATION_KEY:
- _gcr_record_free (subpkt->revocation);
- subpkt->revocation = _gcr_record_new (GCR_RECORD_SCHEMA_RVK, GCR_RECORD_RVK_MAX, ':');
- return parse_v4_signature_revocation (at, end, subpkt->revocation);
-
- /* Ignored */
- case OPENPGP_SIG_SYMMETRIC_ALGOS:
- case OPENPGP_SIG_HASH_ALGOS:
- case OPENPGP_SIG_COMPRESSION_ALGOS:
- case OPENPGP_SIG_REVOCABLE:
- case OPENPGP_SIG_TRUST:
- case OPENPGP_SIG_REGULAR_EXPRESSION:
- case OPENPGP_SIG_NOTATION_DATA:
- case OPENPGP_SIG_KEYSERVER_PREFS:
- case OPENPGP_SIG_PREFERRED_KEYSERVER:
- case OPENPGP_SIG_POLICY_URI:
- case OPENPGP_SIG_REVOCATION_REASON:
- case OPENPGP_SIG_FEATURES:
- case OPENPGP_SIG_TARGET:
- case OPENPGP_SIG_EMBEDDED_SIGNATURE:
- *at = end;
- return TRUE;
-
- /* Unrecognized */
- default:
- /* Critical, but not recognized */
- if (critical)
- return FALSE;
- *at = end;
- return TRUE;
- }
-
-}
-
-static gboolean
-parse_v4_signature_subpackets (const guchar **at,
- const guchar *end,
- GcrRecord *record,
- SigSubpacket *subpkt)
-{
- gsize length;
- guint8 sub_type;
- const guchar *stop;
-
- while (*at != end) {
- if (!read_new_length (at, end, &length) ||
- !read_byte (at, end, &sub_type) ||
- length == 0)
- return FALSE;
-
- /* The length includes the sub_type */
- length--;
- stop = *at + length;
- if (stop > end)
- return FALSE;
-
- /* Actually parse the sub packets */
- if (!parse_v4_signature_subpacket (at, stop, sub_type, record, subpkt))
- return FALSE;
- if (*at != stop)
- return FALSE;
- }
-
- return TRUE;
-}
-
-static GcrRecord *
-uid_or_uat_find_for_self_signature (GPtrArray *records,
- guint8 sig_type)
-{
- GcrRecord *record;
- GQuark schema;
-
- if (records->len == 0)
- return NULL;
-
- switch (sig_type) {
- /* Generic certification of a key or userid */
- case 0x10: case 0x11: case 0x12: case 0x13:
- record = records->pdata[records->len - 1];
- schema = _gcr_record_get_schema (record);
- if (schema == GCR_RECORD_SCHEMA_UID ||
- schema == GCR_RECORD_SCHEMA_UAT)
- return record;
- return NULL;
-
- default:
- return NULL;
- }
-
-}
-
-static GcrRecord *
-key_or_sub_find_for_self_signature (GPtrArray *records,
- guint8 sig_type,
- const gchar *keyid)
-{
- GcrRecord *record;
- const gchar *check;
- GQuark schema;
- gint i;
-
- if (records->len == 0)
- return NULL;
-
- switch (sig_type) {
- /* Generic certification of a key or userid */
- case 0x10: case 0x11: case 0x12: case 0x13:
- for (i = records->len - 1; i >= 0; i--) {
- record = records->pdata[i];
- schema = _gcr_record_get_schema (record);
- if (schema == GCR_RECORD_SCHEMA_PUB || schema == GCR_RECORD_SCHEMA_SEC) {
- check = _gcr_record_get_raw (record, GCR_RECORD_KEY_KEYID);
- return (check != NULL && g_str_equal (check, keyid)) ? record : NULL;
- }
- }
- return NULL;
-
- /* (Primary) Subkey Binding Signature */
- case 0x18: case 0x19:
- record = records->pdata[records->len - 1];
- schema = _gcr_record_get_schema (record);
- if (schema == GCR_RECORD_SCHEMA_SUB)
- return record;
- return NULL;
-
- default:
- return NULL;
- }
-}
-
-static void
-pub_or_sub_set_key_caps (GcrRecord *record,
- guint8 key_flags)
-{
- GString *string;
- GQuark schema;
-
- schema = _gcr_record_get_schema (record);
- if (schema == GCR_RECORD_SCHEMA_SEC || schema == GCR_RECORD_SCHEMA_SSB)
- return;
-
- string = g_string_sized_new (8);
- if (key_flags & 0x02)
- g_string_append_c (string, 's');
- if (key_flags & 0x01)
- g_string_append_c (string, 'c');
- if (key_flags & 0x04 || key_flags & 0x08)
- g_string_append_c (string, 'e');
- if (key_flags & 0x20)
- g_string_append_c (string, 'a');
-
- _gcr_record_take_raw (record, GCR_RECORD_PUB_CAPS,
- g_string_free (string, FALSE));
-}
-
-static gboolean
-parse_v4_signature (const guchar **at,
- const guchar *end,
- GcrOpenpgpParseFlags flags,
- GPtrArray *records)
-{
- guint8 sig_type;
- guint8 key_algo;
- guint8 hash_algo;
- guint16 hashed_len;
- guint16 unhashed_len;
- guint16 left_bits;
- GcrRecord *record;
- GcrRecord *key, *uid;
- const gchar *keyid;
- gchar *value;
- const guchar *stop;
- gulong timestamp;
-
- /* Information to transfer back onto the key record */
- SigSubpacket subpkt = { 0, };
- subpkt.exportable = 1;
-
- if (!read_byte (at, end, &sig_type) ||
- !read_byte (at, end, &key_algo) ||
- !read_byte (at, end, &hash_algo) ||
- !read_uint16 (at, end, &hashed_len))
- return FALSE;
-
- /* Hashed subpackets which we use */
- record = _gcr_record_new (GCR_RECORD_SCHEMA_SIG, GCR_RECORD_SIG_MAX, ':');
- stop = *at + hashed_len;
- if (stop > end ||
- !parse_v4_signature_subpackets (at, stop, record, &subpkt)) {
- _gcr_record_free (record);
- _gcr_record_free (subpkt.revocation);
- return FALSE;
- }
-
- /* Includes unhashed subpackets, which we skip over */
- if (!read_uint16 (at, end, &unhashed_len)) {
- _gcr_record_free (record);
- _gcr_record_free (subpkt.revocation);
- return FALSE;
- }
-
- stop = *at + unhashed_len;
- if (stop > end ||
- !parse_v4_signature_subpackets (at, stop, record, &subpkt) ||
- !read_uint16 (at, end, &left_bits) ||
- !skip_signature_mpis (at, end, key_algo)) {
- _gcr_record_free (record);
- _gcr_record_free (subpkt.revocation);
- return FALSE;
- }
-
- if (subpkt.revocation) {
- g_ptr_array_add (records, subpkt.revocation);
- subpkt.revocation = NULL;
- }
-
- /* Fill in information on previous key or subkey */
- keyid = _gcr_record_get_raw (record, GCR_RECORD_SIG_KEYID);
- key = key_or_sub_find_for_self_signature (records, sig_type, keyid);
- if (key != NULL) {
- if (subpkt.key_expiry != 0) {
- if (_gcr_record_get_ulong (key, GCR_RECORD_KEY_TIMESTAMP, &timestamp))
- _gcr_record_set_ulong (key, GCR_RECORD_KEY_EXPIRY, timestamp + subpkt.key_expiry);
- }
- if (subpkt.key_flags != 0)
- pub_or_sub_set_key_caps (key, subpkt.key_flags);
- }
-
- if (key && _gcr_record_get_schema (key) == GCR_RECORD_SCHEMA_PUB) {
- uid = uid_or_uat_find_for_self_signature (records, sig_type);
- if (uid != NULL) {
- if (_gcr_record_get_ulong (record, GCR_RECORD_SIG_TIMESTAMP, &timestamp))
- _gcr_record_set_ulong (uid, GCR_RECORD_UID_TIMESTAMP, timestamp);
- }
- }
-
- if (flags & GCR_OPENPGP_PARSE_SIGNATURES) {
- _gcr_record_set_uint (record, GCR_RECORD_SIG_ALGO, key_algo);
- value = g_strdup_printf ("%02x%s", (guint)sig_type,
- subpkt.exportable ? "x" : "l");
- _gcr_record_take_raw (record, GCR_RECORD_SIG_CLASS, value);
- g_ptr_array_add (records, record);
- } else {
- _gcr_record_free (record);
- }
-
- return TRUE;
-}
-
-static gboolean
-parse_signature (const guchar *beg,
- const guchar **at,
- const guchar *end,
- GcrOpenpgpParseFlags flags,
- GPtrArray *records)
-{
- guint8 version;
-
- if (!read_byte (at, end, &version))
- return FALSE;
-
- if (version == 3)
- return parse_v3_signature (at, end, flags, records);
- else if (version == 4)
- return parse_v4_signature (at, end, flags, records);
- else
- return FALSE;
-}
-
-static GcrDataFormat
-parse_openpgp_packet (const guchar *beg,
- const guchar *at,
- const guchar *end,
- guint8 pkt_type,
- GcrOpenpgpParseFlags flags,
- GPtrArray *records)
-{
- gboolean ret;
-
- switch (pkt_type) {
- case OPENPGP_PKT_PUBLIC_KEY:
- ret = parse_public_key_or_subkey (GCR_RECORD_SCHEMA_PUB, GCR_RECORD_PUB_MAX,
- beg, &at, end, flags, records);
- break;
- case OPENPGP_PKT_PUBLIC_SUBKEY:
- ret = parse_public_key_or_subkey (GCR_RECORD_SCHEMA_SUB, GCR_RECORD_PUB_MAX,
- beg, &at, end, flags, records);
- break;
- case OPENPGP_PKT_USER_ID:
- ret = parse_user_id (beg, &at, end, flags, records);
- break;
- case OPENPGP_PKT_ATTRIBUTE:
- ret = parse_user_attribute (beg, &at, end, flags, records);
- break;
- case OPENPGP_PKT_SIGNATURE:
- ret = parse_signature (beg, &at, end, flags, records);
- break;
- case OPENPGP_PKT_SECRET_KEY:
- ret = parse_secret_key_or_subkey (GCR_RECORD_SCHEMA_SEC,
- beg, &at, end, flags, records);
- break;
- case OPENPGP_PKT_SECRET_SUBKEY:
- ret = parse_secret_key_or_subkey (GCR_RECORD_SCHEMA_SSB,
- beg, &at, end, flags, records);
- break;
-
- /* Stuff we don't want to be meddling with right now */
- case OPENPGP_PKT_RING_TRUST:
- return GCR_SUCCESS;
-
- /* Ignore packets we don't understand */
- default:
- return GCR_SUCCESS;
- }
-
- /* Key packet had extra data */
- if (ret == TRUE && at != end)
- ret = FALSE;
-
- return ret ? GCR_SUCCESS : GCR_ERROR_FAILURE;
-}
-
-static void
-append_key_capabilities (GString *string,
- const gchar *caps)
-{
- guint i;
- gchar cap;
-
- for (i = 0; caps[i] != 0; i++) {
- cap = g_ascii_toupper (caps[i]);
- if (!strchr (string->str, cap))
- g_string_append_c (string, cap);
- }
-}
-
-static void
-normalize_capabilities (GPtrArray *records)
-{
- GString *string;
- GQuark schema;
- const gchar *caps;
- guint i;
-
- /* Gather the capabilities of all subkeys into the primary key */
- string = g_string_new (_gcr_record_get_raw (records->pdata[0], GCR_RECORD_PUB_CAPS));
- for (i = 0; i < records->len; i++) {
- schema = _gcr_record_get_schema (records->pdata[i]);
- if (schema == GCR_RECORD_SCHEMA_PUB || schema == GCR_RECORD_SCHEMA_SUB) {
- caps = _gcr_record_get_raw (records->pdata[i], GCR_RECORD_PUB_CAPS);
- append_key_capabilities (string, caps);
- }
- }
- _gcr_record_take_raw (records->pdata[0], GCR_RECORD_PUB_CAPS,
- g_string_free (string, FALSE));
-}
-
-static gboolean
-check_key_expiry (GcrRecord *record)
-{
- gulong expiry;
- time_t current;
-
- if (_gcr_record_get_ulong (record, GCR_RECORD_KEY_EXPIRY, &expiry)) {
- if (expiry == 0)
- return FALSE;
- current = time (NULL);
- if (current > expiry)
- return TRUE;
- }
-
- return FALSE;
-}
-
-static void
-normalize_key_records (GPtrArray *records)
-{
- GQuark schema;
- guchar trust = 0;
- const gchar *prev;
- gboolean force = FALSE;
- guint i;
-
- if (records->len == 0)
- return;
-
- schema = _gcr_record_get_schema (records->pdata[0]);
- if (schema == GCR_RECORD_SCHEMA_PUB) {
-
- if (check_key_expiry (records->pdata[0])) {
- trust = 'e';
- force = TRUE;
-
- /* Mark public keys as unknown trust */
- } else {
- normalize_capabilities (records);
- trust = 'o';
- force = FALSE;
- }
-
- /* Ownertrust unknown, new to system */
- _gcr_record_set_char (records->pdata[0], GCR_RECORD_KEY_OWNERTRUST, 'o');
-
- } else if (schema == GCR_RECORD_SCHEMA_SEC) {
-
- /* Trust doesn't make sense for secret keys */
- trust = 0;
- force = FALSE;
- }
-
-
- /* Setup default trust if necessary */
- if (trust != 0) {
- for (i = 0; i < records->len; i++) {
- if (!force) {
- prev = _gcr_record_get_raw (records->pdata[i], GCR_RECORD_TRUST);
- if (prev != NULL && prev[0])
- continue;
- }
- schema = _gcr_record_get_schema (records->pdata[i]);
- if (schema != GCR_RECORD_SCHEMA_SIG && schema != GCR_RECORD_SCHEMA_FPR)
- _gcr_record_set_char (records->pdata[i], GCR_RECORD_TRUST, trust);
- }
- }
-}
-
-typedef struct {
- GcrOpenpgpCallback callback;
- gpointer user_data;
- guint count;
- GPtrArray *records;
-} openpgp_parse_closure;
-
-static void
-openpgp_parse_free (gpointer data)
-{
- openpgp_parse_closure *closure = data;
- g_ptr_array_unref (closure->records);
- g_free (closure);
-}
-
-static void
-maybe_emit_openpgp_block (openpgp_parse_closure *closure,
- const guchar *block,
- const guchar *end)
-{
- gsize length;
- GPtrArray *records;
-
- if (block == NULL || block == end)
- return;
-
- g_assert (end != NULL);
- g_assert (end > block);
-
- length = end - block;
- closure->count++;
-
- records = closure->records;
- closure->records = g_ptr_array_new_with_free_func (_gcr_record_free);
-
- if (closure->callback)
- (closure->callback) (records, block, length, closure->user_data);
-
- g_ptr_array_unref (records);
-}
-
-guint
-_gcr_openpgp_parse (gconstpointer data,
- gsize n_data,
- GcrOpenpgpParseFlags flags,
- GcrOpenpgpCallback callback,
- gpointer user_data)
-{
- openpgp_parse_closure *closure;
- const guchar *at;
- const guchar *beg;
- const guchar *end;
- const guchar *block;
- guint8 pkt_type;
- GcrDataError res;
- gsize length;
- gboolean new_key;
- guint ret;
-
- g_return_val_if_fail (data != NULL, 0);
-
- /* For libgcrypt */
- _gcr_initialize_library ();
-
- at = data;
- end = at + n_data;
- block = NULL;
-
- closure = g_new0 (openpgp_parse_closure, 1);
- closure->callback = callback;
- closure->user_data = user_data;
- closure->records = g_ptr_array_new_with_free_func (_gcr_record_free);
-
- while (at != NULL && at != end) {
- beg = at;
- res = read_openpgp_packet (&at, end, &pkt_type, &length);
-
- if (res == GCR_SUCCESS) {
- new_key = (pkt_type == OPENPGP_PKT_PUBLIC_KEY ||
- pkt_type == OPENPGP_PKT_SECRET_KEY);
- if (flags & GCR_OPENPGP_PARSE_KEYS && new_key)
- normalize_key_records (closure->records);
- /* Start of a new set of packets, per key */
- if (!(flags & GCR_OPENPGP_PARSE_KEYS) || new_key) {
- maybe_emit_openpgp_block (closure, block, beg);
- block = beg;
- }
- if (!(flags & GCR_OPENPGP_PARSE_NO_RECORDS))
- parse_openpgp_packet (beg, at, at + length, pkt_type,
- flags, closure->records);
- }
-
- if (res != GCR_SUCCESS) {
- if (block != NULL && block != beg)
- maybe_emit_openpgp_block (closure, block, beg);
- block = NULL;
- break;
- }
-
- at += length;
- }
-
- if (flags & GCR_OPENPGP_PARSE_KEYS)
- normalize_key_records (closure->records);
- maybe_emit_openpgp_block (closure, block, at);
- ret = closure->count;
- openpgp_parse_free (closure);
- return ret;
-}
diff --git a/gcr/gcr-openpgp.h b/gcr/gcr-openpgp.h
deleted file mode 100644
index 31fd2956..00000000
--- a/gcr/gcr-openpgp.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_H_INSIDE__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> can be included directly."
-#endif
-
-#ifndef __GCR_OPENPGP_H__
-#define __GCR_OPENPGP_H__
-
-#include <glib.h>
-
-#include <gck/gck.h>
-
-typedef enum {
- GCR_OPENPGP_ALGO_RSA = 1,
- GCR_OPENPGP_ALGO_RSA_E = 2,
- GCR_OPENPGP_ALGO_RSA_S = 3,
- GCR_OPENPGP_ALGO_ELG_E = 16,
- GCR_OPENPGP_ALGO_DSA = 17
-} GcrOpenpgpAlgo;
-
-typedef enum {
- GCR_OPENPGP_PARSE_NONE = 0,
- GCR_OPENPGP_PARSE_KEYS = 1 << 1,
- GCR_OPENPGP_PARSE_NO_RECORDS = 1 << 2,
- GCR_OPENPGP_PARSE_SIGNATURES = 1 << 3,
- GCR_OPENPGP_PARSE_ATTRIBUTES = 1 << 4,
-} GcrOpenpgpParseFlags;
-
-G_BEGIN_DECLS
-
-typedef void (*GcrOpenpgpCallback) (GPtrArray *records,
- const guchar *outer,
- gsize n_outer,
- gpointer user_data);
-
-guint _gcr_openpgp_parse (gconstpointer data,
- gsize n_data,
- GcrOpenpgpParseFlags flags,
- GcrOpenpgpCallback callback,
- gpointer user_data);
-
-G_END_DECLS
-
-#endif /* __GCR_OPENPGP_H__ */
diff --git a/gcr/gcr-openssh.c b/gcr/gcr-openssh.c
deleted file mode 100644
index e285465c..00000000
--- a/gcr/gcr-openssh.c
+++ /dev/null
@@ -1,491 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-openssh.h"
-#include "gcr-internal.h"
-#include "gcr-types.h"
-
-#include "egg/egg-buffer.h"
-#include "egg/egg-decimal.h"
-
-#include "pkcs11/pkcs11.h"
-
-#include <string.h>
-
-typedef struct {
- GcrOpensshPubCallback callback;
- gpointer user_data;
-} OpensshPubClosure;
-
-static void
-skip_spaces (const gchar ** line,
- gsize *n_line)
-{
- while (*n_line > 0 && (*line)[0] == ' ') {
- (*line)++;
- (*n_line)--;
- }
-}
-
-static gboolean
-next_word (const gchar **line,
- gsize *n_line,
- const gchar **word,
- gsize *n_word)
-{
- const gchar *beg;
- const gchar *end;
- const gchar *at;
- gboolean quotes;
-
- skip_spaces (line, n_line);
-
- if (!*n_line) {
- *word = NULL;
- *n_word = 0;
- return FALSE;
- }
-
- beg = at = *line;
- end = beg + *n_line;
- quotes = FALSE;
-
- do {
- switch (*at) {
- case '"':
- quotes = !quotes;
- at++;
- break;
- case ' ':
- if (!quotes)
- end = at;
- else
- at++;
- break;
- default:
- at++;
- break;
- }
- } while (at < end);
-
- *word = beg;
- *n_word = end - beg;
- (*line) += *n_word;
- (*n_line) -= *n_word;
- return TRUE;
-}
-
-static gboolean
-match_word (const gchar *word,
- gsize n_word,
- const gchar *matches)
-{
- gsize len = strlen (matches);
- if (len != n_word)
- return FALSE;
- return memcmp (word, matches, n_word) == 0;
-}
-
-static gulong
-keytype_to_algo (const gchar *algo,
- gsize length)
-{
- if (!algo)
- return G_MAXULONG;
- else if (match_word (algo, length, "ssh-rsa"))
- return CKK_RSA;
- else if (match_word (algo, length, "ssh-dss"))
- return CKK_DSA;
- return G_MAXULONG;
-}
-
-static gboolean
-read_decimal_mpi (const gchar *decimal,
- gsize n_decimal,
- GckAttributes *attrs,
- gulong attribute_type)
-{
- gpointer data;
- gsize n_data;
-
- data = egg_decimal_decode (decimal, n_decimal, &n_data);
- if (data == NULL)
- return FALSE;
-
- gck_attributes_add_data (attrs, attribute_type, data, n_data);
- return TRUE;
-}
-
-static gint
-atoin (const char *p, gint digits)
-{
- gint ret = 0, base = 1;
- while(--digits >= 0) {
- if (p[digits] < '0' || p[digits] > '9')
- return -1;
- ret += (p[digits] - '0') * base;
- base *= 10;
- }
- return ret;
-}
-
-static GcrDataError
-parse_v1_public_line (const gchar *line,
- gsize length,
- GcrOpensshPubCallback callback,
- gpointer user_data)
-{
- const gchar *word_bits, *word_exponent, *word_modulus, *word_options, *outer;
- gsize len_bits, len_exponent, len_modulus, len_options, n_outer;
- GckAttributes *attrs;
- gchar *label, *options;
- gint bits;
-
- g_assert (line);
-
- outer = line;
- n_outer = length;
- options = NULL;
- label = NULL;
-
- /* Eat space at the front */
- skip_spaces (&line, &length);
-
- /* Blank line or comment */
- if (length == 0 || line[0] == '#')
- return GCR_ERROR_UNRECOGNIZED;
-
- /*
- * If the line starts with a digit, then no options:
- *
- * 2048 35 25213680043....93533757 Label
- *
- * If the line doesn't start with a digit, then have options:
- *
- * option,option 2048 35 25213680043....93533757 Label
- */
- if (g_ascii_isdigit (line[0])) {
- word_options = NULL;
- len_options = 0;
- } else {
- if (!next_word (&line, &length, &word_options, &len_options))
- return GCR_ERROR_UNRECOGNIZED;
- }
-
- if (!next_word (&line, &length, &word_bits, &len_bits) ||
- !next_word (&line, &length, &word_exponent, &len_exponent) ||
- !next_word (&line, &length, &word_modulus, &len_modulus))
- return GCR_ERROR_UNRECOGNIZED;
-
- bits = atoin (word_bits, len_bits);
- if (bits <= 0)
- return GCR_ERROR_UNRECOGNIZED;
-
- attrs = gck_attributes_new ();
-
- if (!read_decimal_mpi (word_exponent, len_exponent, attrs, CKA_PUBLIC_EXPONENT) ||
- !read_decimal_mpi (word_modulus, len_modulus, attrs, CKA_MODULUS)) {
- gck_attributes_unref (attrs);
- return GCR_ERROR_UNRECOGNIZED;
- }
-
- gck_attributes_add_ulong (attrs, CKA_KEY_TYPE, CKK_RSA);
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_PUBLIC_KEY);
-
- skip_spaces (&line, &length);
- if (length > 0) {
- label = g_strndup (line, length);
- g_strstrip (label);
- gck_attributes_add_string (attrs, CKA_LABEL, label);
- }
-
- if (word_options)
- options = g_strndup (word_options, len_options);
-
- if (callback != NULL)
- (callback) (attrs, label, options, outer, n_outer, user_data);
-
- gck_attributes_unref (attrs);
- g_free (options);
- g_free (label);
- return GCR_SUCCESS;
-}
-
-static gboolean
-read_buffer_mpi (EggBuffer *buffer,
- gsize *offset,
- GckAttributes *attrs,
- gulong attribute_type)
-{
- const guchar *data;
- gsize len;
-
- if (!egg_buffer_get_byte_array (buffer, *offset, offset, &data, &len))
- return FALSE;
-
- gck_attributes_add_data (attrs, attribute_type, data, len);
- return TRUE;
-}
-
-static GckAttributes *
-read_v2_public_dsa (EggBuffer *buffer,
- gsize *offset)
-{
- GckAttributes *attrs;
-
- attrs = gck_attributes_new ();
-
- if (!read_buffer_mpi (buffer, offset, attrs, CKA_PRIME) ||
- !read_buffer_mpi (buffer, offset, attrs, CKA_SUBPRIME) ||
- !read_buffer_mpi (buffer, offset, attrs, CKA_BASE) ||
- !read_buffer_mpi (buffer, offset, attrs, CKA_VALUE)) {
- gck_attributes_unref (attrs);
- return NULL;
- }
-
- gck_attributes_add_ulong (attrs, CKA_KEY_TYPE, CKK_DSA);
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_PUBLIC_KEY);
-
- return attrs;
-}
-
-static GckAttributes *
-read_v2_public_rsa (EggBuffer *buffer,
- gsize *offset)
-{
- GckAttributes *attrs;
-
- attrs = gck_attributes_new ();
-
- if (!read_buffer_mpi (buffer, offset, attrs, CKA_PUBLIC_EXPONENT) ||
- !read_buffer_mpi (buffer, offset, attrs, CKA_MODULUS)) {
- gck_attributes_unref (attrs);
- return NULL;
- }
-
- gck_attributes_add_ulong (attrs, CKA_KEY_TYPE, CKK_RSA);
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_PUBLIC_KEY);
-
- return attrs;
-}
-
-static GckAttributes *
-read_v2_public_key (gulong algo,
- gconstpointer data,
- gsize n_data)
-{
- GckAttributes *attrs;
- EggBuffer buffer;
- gsize offset;
- gchar *stype;
- int alg;
-
- egg_buffer_init_static (&buffer, data, n_data);
- offset = 0;
-
- /* The string algorithm */
- if (!egg_buffer_get_string (&buffer, offset, &offset,
- &stype, (EggBufferAllocator)g_realloc))
- return NULL;
-
- alg = keytype_to_algo (stype, stype ? strlen (stype) : 0);
- g_free (stype);
-
- if (alg != algo) {
- g_message ("invalid or mis-matched algorithm in ssh public key: %s", stype);
- egg_buffer_uninit (&buffer);
- return NULL;
- }
-
- switch (algo) {
- case CKK_RSA:
- attrs = read_v2_public_rsa (&buffer, &offset);
- break;
- case CKK_DSA:
- attrs = read_v2_public_dsa (&buffer, &offset);
- break;
- default:
- g_assert_not_reached ();
- break;
- }
-
- egg_buffer_uninit (&buffer);
- return attrs;
-}
-
-static GckAttributes *
-decode_v2_public_key (gulong algo,
- const gchar *data,
- gsize n_data)
-{
- GckAttributes *attrs;
- gpointer decoded;
- gsize n_decoded;
- guint save;
- gint state;
-
- /* Decode the base64 key */
- save = state = 0;
- decoded = g_malloc (n_data * 3 / 4);
- n_decoded = g_base64_decode_step ((gchar*)data, n_data, decoded, &state, &save);
-
- if (!n_decoded) {
- g_free (decoded);
- return NULL;
- }
-
- /* Parse the actual key */
- attrs = read_v2_public_key (algo, decoded, n_decoded);
-
- g_free (decoded);
-
- return attrs;
-}
-
-static GcrDataError
-parse_v2_public_line (const gchar *line,
- gsize length,
- GcrOpensshPubCallback callback,
- gpointer user_data)
-{
- const gchar *word_options, *word_algo, *word_key;
- gsize len_options, len_algo, len_key;
- GckAttributes *attrs;
- gchar *options;
- gchar *label = NULL;
- const gchar *outer = line;
- gsize n_outer = length;
- gulong algo;
-
- g_assert (line);
-
- /* Eat space at the front */
- skip_spaces (&line, &length);
-
- /* Blank line or comment */
- if (length == 0 || line[0] == '#')
- return GCR_ERROR_UNRECOGNIZED;
-
- if (!next_word (&line, &length, &word_algo, &len_algo))
- return GCR_ERROR_UNRECOGNIZED;
-
- /*
- * If the first word is not the algorithm, then we have options:
- *
- * option,option ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAI...EAz8Ji= Label here
- *
- * If the first word is the algorithm, then we have no options:
- *
- * ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAI...EAz8Ji= Label here
- */
- algo = keytype_to_algo (word_algo, len_algo);
- if (algo == G_MAXULONG) {
- word_options = word_algo;
- len_options = len_algo;
- if (!next_word (&line, &length, &word_algo, &len_algo))
- return GCR_ERROR_UNRECOGNIZED;
- algo = keytype_to_algo (word_algo, len_algo);
- if (algo == G_MAXULONG)
- return GCR_ERROR_UNRECOGNIZED;
- } else {
- word_options = NULL;
- len_options = 0;
- }
-
- /* Must have at least two words */
- if (!next_word (&line, &length, &word_key, &len_key))
- return GCR_ERROR_FAILURE;
-
- attrs = decode_v2_public_key (algo, word_key, len_key);
- if (attrs == NULL)
- return GCR_ERROR_FAILURE;
-
- if (word_options)
- options = g_strndup (word_options, len_options);
- else
- options = NULL;
-
- /* The remainder of the line is the label */
- skip_spaces (&line, &length);
- if (length > 0) {
- label = g_strndup (line, length);
- g_strstrip (label);
- gck_attributes_add_string (attrs, CKA_LABEL, label);
- }
-
- if (callback != NULL)
- (callback) (attrs, label, options, outer, n_outer, user_data);
-
- gck_attributes_unref (attrs);
- g_free (options);
- g_free (label);
- return GCR_SUCCESS;
-}
-
-guint
-_gcr_openssh_pub_parse (gconstpointer data,
- gsize n_data,
- GcrOpensshPubCallback callback,
- gpointer user_data)
-{
- const gchar *line;
- const gchar *end;
- gsize length;
- gboolean last;
- GcrDataError res;
- guint num_parsed;
-
- g_return_val_if_fail (data, FALSE);
-
- line = data;
- length = n_data;
- last = FALSE;
- num_parsed = 0;
-
- for (;;) {
- end = memchr (line, '\n', length);
- if (end == NULL) {
- end = line + length;
- last = TRUE;
- }
-
- if (line != end) {
- res = parse_v2_public_line (line, end - line, callback, user_data);
- if (res == GCR_ERROR_UNRECOGNIZED)
- res = parse_v1_public_line (line, end - line, callback, user_data);
- if (res == GCR_SUCCESS)
- num_parsed++;
- }
-
- if (last)
- break;
-
- end++;
- length -= (end - line);
- line = end;
- }
-
- return num_parsed;
-}
diff --git a/gcr/gcr-openssh.h b/gcr/gcr-openssh.h
deleted file mode 100644
index 2fdac2a1..00000000
--- a/gcr/gcr-openssh.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_H_INSIDE__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> can be included directly."
-#endif
-
-#ifndef __GCR_OPENSSH_H__
-#define __GCR_OPENSSH_H__
-
-#include <glib.h>
-
-#include <gck/gck.h>
-
-G_BEGIN_DECLS
-
-typedef void (*GcrOpensshPubCallback) (GckAttributes *attrs,
- const gchar *label,
- const gchar *options,
- const gchar *outer,
- gsize n_outer,
- gpointer user_data);
-
-guint _gcr_openssh_pub_parse (gconstpointer data,
- gsize n_data,
- GcrOpensshPubCallback callback,
- gpointer user_data);
-
-G_END_DECLS
-
-#endif /* __GCR_OPENSSH_H__ */
diff --git a/gcr/gcr-parser.c b/gcr/gcr-parser.c
deleted file mode 100644
index ffcdd091..00000000
--- a/gcr/gcr-parser.c
+++ /dev/null
@@ -1,2934 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2008 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gck/gck.h"
-
-#include "gcr-internal.h"
-#include "gcr-marshal.h"
-#include "gcr-oids.h"
-#include "gcr-openpgp.h"
-#include "gcr-openssh.h"
-#include "gcr-parser.h"
-#include "gcr-record.h"
-#include "gcr-types.h"
-
-#include "egg/egg-armor.h"
-#include "egg/egg-asn1x.h"
-#include "egg/egg-asn1-defs.h"
-#include "egg/egg-dn.h"
-#include "egg/egg-openssl.h"
-#include "egg/egg-secure-memory.h"
-#include "egg/egg-symkey.h"
-
-#include <glib/gi18n-lib.h>
-
-#include <stdlib.h>
-#include <gcrypt.h>
-
-/**
- * SECTION:gcr-parser
- * @title: GcrParser
- * @short_description: Parser for certificate and key files
- *
- * A #GcrParser can parse various certificate and key files such as OpenSSL
- * PEM files, DER encoded certifictes, PKCS\#8 keys and so on. Each various
- * format is identified by a value in the #GcrDataFormat enumeration.
- *
- * In order to parse data, a new parser is created with gcr_parser_new() and
- * then the GcrParser::authenticate and GcrParser::parsed signals should be
- * connected to. Data is then fed to the parser via gcr_parser_parse_data()
- * or gcr_parser_parse_stream().
- *
- * During the GcrParsed::parsed signal the attributes that make up the currently
- * parsed item can be retrieved using the gcr_parser_get_parsed_attributes()
- * function.
- */
-
-/**
- * GcrParser:
- *
- * A parser for parsing various types of files or data.
- */
-
-/**
- * GcrParsed:
- *
- * A parsed item parsed by a #GcrParser.
- */
-
-/**
- * GcrParserClass:
- * @parent_class: The parent class
- * @authenticate: The default handler for the authenticate signal.
- * @parsed: The default handler for the parsed signal.
- *
- * The class for #GcrParser
- */
-
-/**
- * GCR_DATA_ERROR:
- *
- * A domain for data errors with codes from #GcrDataError
- */
-
-/**
- * GcrDataError
- * @GCR_ERROR_FAILURE: Failed to parse or serialize the data
- * @GCR_ERROR_UNRECOGNIZED: The data was unrecognized or unsupported
- * @GCR_ERROR_CANCELLED: The operation was cancelled
- * @GCR_ERROR_LOCKED: The data was encrypted or locked and could not be unlocked.
- *
- * Values responding to error codes for parsing and serializing data.
- */
-
-enum {
- PROP_0,
- PROP_PARSED_LABEL,
- PROP_PARSED_ATTRIBUTES,
- PROP_PARSED_DESCRIPTION
-};
-
-enum {
- AUTHENTICATE,
- PARSED,
- LAST_SIGNAL
-};
-
-#define SUCCESS 0
-
-static guint signals[LAST_SIGNAL] = { 0 };
-
-struct _GcrParsed {
- gint refs;
- GckAttributes *attrs;
- const gchar *description;
- gchar *label;
- gpointer data;
- gsize n_data;
- gboolean sensitive;
- GDestroyNotify destroy_func;
- GcrDataFormat format;
- struct _GcrParsed *next;
-};
-
-struct _GcrParserPrivate {
- GTree *specific_formats;
- gboolean normal_formats;
- GPtrArray *passwords;
- GcrParsed *parsed;
-};
-
-G_DEFINE_TYPE (GcrParser, gcr_parser, G_TYPE_OBJECT);
-
-typedef struct {
- gint ask_state;
- gint seen;
-} PasswordState;
-
-#define PASSWORD_STATE_INIT { 0, 0 }
-
-typedef struct _ParserFormat {
- gint format_id;
- gint (*function) (GcrParser *self, const guchar *data, gsize n_data);
-} ParserFormat;
-
-/* Forward declarations */
-static const ParserFormat parser_normal[];
-static const ParserFormat parser_formats[];
-static ParserFormat* parser_format_lookup (gint format_id);
-
-EGG_SECURE_DECLARE (parser);
-
-/* -----------------------------------------------------------------------------
- * QUARK DEFINITIONS
- */
-
-/*
- * PEM STRINGS
- * The xxxxx in: ----- BEGIN xxxxx ------
- */
-
-static GQuark PEM_CERTIFICATE;
-static GQuark PEM_RSA_PRIVATE_KEY;
-static GQuark PEM_DSA_PRIVATE_KEY;
-static GQuark PEM_ANY_PRIVATE_KEY;
-static GQuark PEM_ENCRYPTED_PRIVATE_KEY;
-static GQuark PEM_PRIVATE_KEY;
-static GQuark PEM_PKCS7;
-static GQuark PEM_PKCS12;
-
-static GQuark ARMOR_PGP_PUBLIC_KEY_BLOCK;
-static GQuark ARMOR_PGP_PRIVATE_KEY_BLOCK;
-
-static void
-init_quarks (void)
-{
- static volatile gsize quarks_inited = 0;
-
- _gcr_oids_init ();
-
- if (g_once_init_enter (&quarks_inited)) {
-
- #define QUARK(name, value) \
- name = g_quark_from_static_string(value)
-
- QUARK (PEM_CERTIFICATE, "CERTIFICATE");
- QUARK (PEM_PRIVATE_KEY, "PRIVATE KEY");
- QUARK (PEM_RSA_PRIVATE_KEY, "RSA PRIVATE KEY");
- QUARK (PEM_DSA_PRIVATE_KEY, "DSA PRIVATE KEY");
- QUARK (PEM_ANY_PRIVATE_KEY, "ANY PRIVATE KEY");
- QUARK (PEM_ENCRYPTED_PRIVATE_KEY, "ENCRYPTED PRIVATE KEY");
- QUARK (PEM_PKCS7, "PKCS7");
- QUARK (PEM_PKCS12, "PKCS12");
- QUARK (ARMOR_PGP_PRIVATE_KEY_BLOCK, "PGP PRIVATE KEY BLOCK");
- QUARK (ARMOR_PGP_PUBLIC_KEY_BLOCK, "PGP PUBLIC KEY BLOCK");
-
- #undef QUARK
-
- g_once_init_leave (&quarks_inited, 1);
- }
-}
-
-/* -----------------------------------------------------------------------------
- * INTERNAL
- */
-
-static void
-parsed_attribute (GcrParsed *parsed,
- CK_ATTRIBUTE_TYPE type,
- gconstpointer data,
- gsize n_data)
-{
- g_assert (parsed != NULL);
- g_assert (parsed->attrs != NULL);
- gck_attributes_add_data (parsed->attrs, type, data, n_data);
-}
-
-static gboolean
-parsed_asn1_number (GcrParsed *parsed,
- GNode *asn,
- const gchar *part,
- CK_ATTRIBUTE_TYPE type)
-{
- const guchar *value;
- gsize n_value;
-
- g_assert (asn);
- g_assert (parsed);
-
- value = egg_asn1x_get_integer_as_usg (egg_asn1x_node (asn, part, NULL), &n_value);
- if (value == NULL)
- return FALSE;
-
- parsed_attribute (parsed, type, value, n_value);
- return TRUE;
-}
-
-static gboolean
-parsed_asn1_element (GcrParsed *parsed,
- GNode *asn,
- const gchar *part,
- CK_ATTRIBUTE_TYPE type)
-{
- const guchar *value;
- gsize n_value;
-
- g_assert (asn);
- g_assert (parsed);
-
- value = egg_asn1x_get_raw_element (egg_asn1x_node (asn, part, NULL), &n_value);
- if (value == NULL)
- return FALSE;
-
- parsed_attribute (parsed, type, value, n_value);
- return TRUE;
-}
-
-static void
-parsed_ulong_attribute (GcrParsed *parsed,
- CK_ATTRIBUTE_TYPE type,
- gulong value)
-{
- g_assert (parsed != NULL);
- g_assert (parsed->attrs != NULL);
- gck_attributes_add_ulong (parsed->attrs, type, value);
-}
-
-static void
-parsed_boolean_attribute (GcrParsed *parsed,
- CK_ATTRIBUTE_TYPE type,
- gboolean value)
-{
- g_assert (parsed != NULL);
- g_assert (parsed->attrs != NULL);
- gck_attributes_add_boolean (parsed->attrs, type, value);
-}
-
-
-static void
-parsing_block (GcrParsed *parsed,
- gint format,
- gconstpointer data,
- gsize n_data)
-{
- g_assert (parsed != NULL);
- g_assert (data != NULL);
- g_assert (n_data != 0);
- g_assert (format);
- g_assert (parsed->data == NULL);
- g_assert (parsed->destroy_func == NULL);
-
- parsed->format = format;
- parsed->data = (gpointer)data;
- parsed->n_data = n_data;
-}
-
-static void
-parsed_description (GcrParsed *parsed,
- CK_OBJECT_CLASS klass)
-{
- g_assert (parsed != NULL);
- switch (klass) {
- case CKO_PRIVATE_KEY:
- parsed->description = _("Private Key");
- break;
- case CKO_CERTIFICATE:
- parsed->description = _("Certificate");
- break;
- case CKO_PUBLIC_KEY:
- parsed->description = _("Public Key");
- break;
- case CKO_GCR_GNUPG_RECORDS:
- parsed->description = _("PGP Key");
- break;
- default:
- parsed->description = NULL;
- break;
- }
-}
-
-static void
-parsing_object (GcrParsed *parsed,
- CK_OBJECT_CLASS klass)
-{
- g_assert (parsed != NULL);
- g_assert (parsed->attrs == NULL);
-
- if (parsed->sensitive)
- parsed->attrs = gck_attributes_new_full ((GckAllocator)egg_secure_realloc);
- else
- parsed->attrs = gck_attributes_new ();
- gck_attributes_add_ulong (parsed->attrs, CKA_CLASS, klass);
- parsed_description (parsed, klass);
-}
-
-static void
-parsed_attributes (GcrParsed *parsed,
- GckAttributes *attrs)
-{
- gulong klass;
-
- g_assert (parsed != NULL);
- g_assert (attrs != NULL);
- g_assert (parsed->attrs == NULL);
-
- parsed->attrs = gck_attributes_ref (attrs);
- if (gck_attributes_find_ulong (attrs, CKA_CLASS, &klass))
- parsed_description (parsed, klass);
-}
-
-static void
-parsed_label (GcrParsed *parsed,
- const gchar *label)
-{
- g_assert (parsed != NULL);
- g_assert (parsed->label == NULL);
- parsed->label = g_strdup (label);
-}
-
-static GcrParsed *
-push_parsed (GcrParser *self,
- gboolean sensitive)
-{
- GcrParsed *parsed = g_new0 (GcrParsed, 1);
- parsed->refs = 0;
- parsed->sensitive = sensitive;
- parsed->next = self->pv->parsed;
- self->pv->parsed = parsed;
- return parsed;
-}
-
-static void
-pop_parsed (GcrParser *self,
- GcrParsed *parsed)
-{
- g_assert (parsed == self->pv->parsed);
-
- self->pv->parsed = parsed->next;
-
- gck_attributes_unref (parsed->attrs);
- g_free (parsed->label);
- g_free (parsed);
-}
-
-static gint
-enum_next_password (GcrParser *self, PasswordState *state, const gchar **password)
-{
- gboolean result;
-
- /*
- * Next passes we look through all the passwords that the parser
- * has seen so far. This is because different parts of a encrypted
- * container (such as PKCS#12) often use the same password even
- * if with different algorithms.
- *
- * If we didn't do this and the user chooses enters a password,
- * but doesn't save it, they would get prompted for the same thing
- * over and over, dumb.
- */
-
- /* Look in our list of passwords */
- if (state->seen < self->pv->passwords->len) {
- g_assert (state->seen >= 0);
- *password = g_ptr_array_index (self->pv->passwords, state->seen);
- ++state->seen;
- return SUCCESS;
- }
-
- /* Fire off all the parsed property signals so anyone watching can update their state */
- g_object_notify (G_OBJECT (self), "parsed-description");
- g_object_notify (G_OBJECT (self), "parsed-attributes");
- g_object_notify (G_OBJECT (self), "parsed-label");
-
- g_signal_emit (self, signals[AUTHENTICATE], 0, state->ask_state, &result);
- ++state->ask_state;
-
- if (!result)
- return GCR_ERROR_CANCELLED;
-
- /* Return any passwords added */
- if (state->seen < self->pv->passwords->len) {
- g_assert (state->seen >= 0);
- *password = g_ptr_array_index (self->pv->passwords, state->seen);
- ++state->seen;
- return SUCCESS;
- }
-
- return GCR_ERROR_LOCKED;
-}
-
-static void
-parsed_fire (GcrParser *self,
- GcrParsed *parsed)
-{
- g_assert (GCR_IS_PARSER (self));
- g_assert (parsed != NULL);
- g_assert (parsed == self->pv->parsed);
-
- g_object_notify (G_OBJECT (self), "parsed-description");
- g_object_notify (G_OBJECT (self), "parsed-attributes");
- g_object_notify (G_OBJECT (self), "parsed-label");
-
- g_signal_emit (self, signals[PARSED], 0);
-}
-
-/* -----------------------------------------------------------------------------
- * RSA PRIVATE KEY
- */
-
-static gint
-parse_der_private_key_rsa (GcrParser *self, const guchar *data, gsize n_data)
-{
- gint res = GCR_ERROR_UNRECOGNIZED;
- GNode *asn = NULL;
- gulong version;
- GcrParsed *parsed;
-
- parsed = push_parsed (self, TRUE);
-
- asn = egg_asn1x_create_and_decode (pk_asn1_tab, "RSAPrivateKey", data, n_data);
- if (!asn)
- goto done;
-
- parsing_block (parsed, GCR_FORMAT_DER_PRIVATE_KEY_RSA, data, n_data);
- parsing_object (parsed, CKO_PRIVATE_KEY);
- parsed_ulong_attribute (parsed, CKA_KEY_TYPE, CKK_RSA);
- parsed_boolean_attribute (parsed, CKA_PRIVATE, CK_TRUE);
- res = GCR_ERROR_FAILURE;
-
- if (!egg_asn1x_get_integer_as_ulong (egg_asn1x_node (asn, "version", NULL), &version))
- goto done;
-
- /* We only support simple version */
- if (version != 0) {
- res = GCR_ERROR_UNRECOGNIZED;
- g_message ("unsupported version of RSA key: %lu", version);
- goto done;
- }
-
- if (!parsed_asn1_number (parsed, asn, "modulus", CKA_MODULUS) ||
- !parsed_asn1_number (parsed, asn, "publicExponent", CKA_PUBLIC_EXPONENT) ||
- !parsed_asn1_number (parsed, asn, "privateExponent", CKA_PRIVATE_EXPONENT) ||
- !parsed_asn1_number (parsed, asn, "prime1", CKA_PRIME_1) ||
- !parsed_asn1_number (parsed, asn, "prime2", CKA_PRIME_2) ||
- !parsed_asn1_number (parsed, asn, "coefficient", CKA_COEFFICIENT))
- goto done;
-
- parsed_fire (self, parsed);
- res = SUCCESS;
-
-done:
- egg_asn1x_destroy (asn);
- if (res == GCR_ERROR_FAILURE)
- g_message ("invalid RSA key");
-
- pop_parsed (self, parsed);
- return res;
-}
-
-/* -----------------------------------------------------------------------------
- * DSA PRIVATE KEY
- */
-
-static gint
-parse_der_private_key_dsa (GcrParser *self, const guchar *data, gsize n_data)
-{
- gint ret = GCR_ERROR_UNRECOGNIZED;
- GNode *asn = NULL;
- GcrParsed *parsed;
-
- parsed = push_parsed (self, TRUE);
-
- asn = egg_asn1x_create_and_decode (pk_asn1_tab, "DSAPrivateKey", data, n_data);
- if (!asn)
- goto done;
-
- parsing_block (parsed, GCR_FORMAT_DER_PRIVATE_KEY_DSA, data, n_data);
- parsing_object (parsed, CKO_PRIVATE_KEY);
- parsed_ulong_attribute (parsed, CKA_KEY_TYPE, CKK_DSA);
- parsed_boolean_attribute (parsed, CKA_PRIVATE, CK_TRUE);
- ret = GCR_ERROR_FAILURE;
-
- if (!parsed_asn1_number (parsed, asn, "p", CKA_PRIME) ||
- !parsed_asn1_number (parsed, asn, "q", CKA_SUBPRIME) ||
- !parsed_asn1_number (parsed, asn, "g", CKA_BASE) ||
- !parsed_asn1_number (parsed, asn, "priv", CKA_VALUE))
- goto done;
-
- parsed_fire (self, parsed);
- ret = SUCCESS;
-
-done:
- egg_asn1x_destroy (asn);
- if (ret == GCR_ERROR_FAILURE)
- g_message ("invalid DSA key");
-
- pop_parsed (self, parsed);
- return ret;
-}
-
-static gint
-parse_der_private_key_dsa_parts (GcrParser *self, const guchar *keydata, gsize n_keydata,
- const guchar *params, gsize n_params)
-{
- gint ret = GCR_ERROR_UNRECOGNIZED;
- GNode *asn_params = NULL;
- GNode *asn_key = NULL;
- GcrParsed *parsed;
-
- parsed = push_parsed (self, TRUE);
-
- asn_params = egg_asn1x_create_and_decode (pk_asn1_tab, "DSAParameters", params, n_params);
- asn_key = egg_asn1x_create_and_decode (pk_asn1_tab, "DSAPrivatePart", keydata, n_keydata);
- if (!asn_params || !asn_key)
- goto done;
-
- parsing_object (parsed, CKO_PRIVATE_KEY);
- parsed_ulong_attribute (parsed, CKA_KEY_TYPE, CKK_DSA);
- parsed_boolean_attribute (parsed, CKA_PRIVATE, CK_TRUE);
- ret = GCR_ERROR_FAILURE;
-
- if (!parsed_asn1_number (parsed, asn_params, "p", CKA_PRIME) ||
- !parsed_asn1_number (parsed, asn_params, "q", CKA_SUBPRIME) ||
- !parsed_asn1_number (parsed, asn_params, "g", CKA_BASE) ||
- !parsed_asn1_number (parsed, asn_key, NULL, CKA_VALUE))
- goto done;
-
- parsed_fire (self, parsed);
- ret = SUCCESS;
-
-done:
- egg_asn1x_destroy (asn_key);
- egg_asn1x_destroy (asn_params);
- if (ret == GCR_ERROR_FAILURE)
- g_message ("invalid DSA key");
-
- pop_parsed (self, parsed);
- return ret;
-}
-
-/* -----------------------------------------------------------------------------
- * PRIVATE KEY
- */
-
-static gint
-parse_der_private_key (GcrParser *self, const guchar *data, gsize n_data)
-{
- gint res;
-
- res = parse_der_private_key_rsa (self, data, n_data);
- if (res == GCR_ERROR_UNRECOGNIZED)
- res = parse_der_private_key_dsa (self, data, n_data);
-
- return res;
-}
-
-/* -----------------------------------------------------------------------------
- * PKCS8
- */
-
-static gint
-parse_der_pkcs8_plain (GcrParser *self, const guchar *data, gsize n_data)
-{
- gint ret;
- CK_KEY_TYPE key_type;
- GQuark key_algo;
- const guchar *keydata;
- gsize n_keydata;
- const guchar *params;
- gsize n_params;
- GNode *asn = NULL;
- GcrParsed *parsed;
-
- parsed = push_parsed (self, TRUE);
- ret = GCR_ERROR_UNRECOGNIZED;
-
- asn = egg_asn1x_create_and_decode (pkix_asn1_tab, "pkcs-8-PrivateKeyInfo", data, n_data);
- if (!asn)
- goto done;
-
- parsing_block (parsed, GCR_FORMAT_DER_PKCS8_PLAIN, data, n_data);
- ret = GCR_ERROR_FAILURE;
- key_type = GCK_INVALID;
-
- key_algo = egg_asn1x_get_oid_as_quark (egg_asn1x_node (asn, "privateKeyAlgorithm", "algorithm", NULL));
- if (!key_algo)
- goto done;
- else if (key_algo == GCR_OID_PKIX1_RSA)
- key_type = CKK_RSA;
- else if (key_algo == GCR_OID_PKIX1_DSA)
- key_type = CKK_DSA;
-
- if (key_type == GCK_INVALID) {
- ret = GCR_ERROR_UNRECOGNIZED;
- goto done;
- }
-
- keydata = egg_asn1x_get_raw_value (egg_asn1x_node (asn, "privateKey", NULL), &n_keydata);
- if (!keydata)
- goto done;
-
- params = egg_asn1x_get_raw_element (egg_asn1x_node (asn, "privateKeyAlgorithm", "parameters", NULL), &n_params);
-
- ret = SUCCESS;
-
-done:
- if (ret == SUCCESS) {
- switch (key_type) {
- case CKK_RSA:
- ret = parse_der_private_key_rsa (self, keydata, n_keydata);
- break;
- case CKK_DSA:
- /* Try the normal sane format */
- ret = parse_der_private_key_dsa (self, keydata, n_keydata);
-
- /* Otherwise try the two part format that everyone seems to like */
- if (ret == GCR_ERROR_UNRECOGNIZED && params && n_params)
- ret = parse_der_private_key_dsa_parts (self, keydata, n_keydata,
- params, n_params);
- break;
- default:
- g_message ("invalid or unsupported key type in PKCS#8 key");
- ret = GCR_ERROR_UNRECOGNIZED;
- break;
- };
-
- } else if (ret == GCR_ERROR_FAILURE) {
- g_message ("invalid PKCS#8 key");
- }
-
- egg_asn1x_destroy (asn);
- pop_parsed (self, parsed);
- return ret;
-}
-
-static gint
-parse_der_pkcs8_encrypted (GcrParser *self, const guchar *data, gsize n_data)
-{
- PasswordState pstate = PASSWORD_STATE_INIT;
- GNode *asn = NULL;
- gcry_cipher_hd_t cih = NULL;
- gcry_error_t gcry;
- gint ret, r;
- GQuark scheme;
- guchar *crypted = NULL;
- const guchar *params;
- gsize n_crypted, n_params;
- const gchar *password;
- GcrParsed *parsed;
- gint l;
-
- parsed = push_parsed (self, FALSE);
- ret = GCR_ERROR_UNRECOGNIZED;
-
- asn = egg_asn1x_create_and_decode (pkix_asn1_tab, "pkcs-8-EncryptedPrivateKeyInfo", data, n_data);
- if (!asn)
- goto done;
-
- parsing_block (parsed, GCR_FORMAT_DER_PKCS8_ENCRYPTED, data, n_data);
- ret = GCR_ERROR_FAILURE;
-
- /* Figure out the type of encryption */
- scheme = egg_asn1x_get_oid_as_quark (egg_asn1x_node (asn, "encryptionAlgorithm", "algorithm", NULL));
- if (!scheme)
- goto done;
-
- params = egg_asn1x_get_raw_element (egg_asn1x_node (asn, "encryptionAlgorithm", "parameters", NULL), &n_params);
-
- /* Loop to try different passwords */
- for (;;) {
-
- g_assert (cih == NULL);
-
- r = enum_next_password (self, &pstate, &password);
- if (r != SUCCESS) {
- ret = r;
- break;
- }
-
- /* Parse the encryption stuff into a cipher. */
- if (!egg_symkey_read_cipher (scheme, password, -1, params, n_params, &cih))
- break;
-
- crypted = egg_asn1x_get_string_as_raw (egg_asn1x_node (asn, "encryptedData", NULL), egg_secure_realloc, &n_crypted);
- if (!crypted)
- break;
-
- gcry = gcry_cipher_decrypt (cih, crypted, n_crypted, NULL, 0);
- gcry_cipher_close (cih);
- cih = NULL;
-
- if (gcry != 0) {
- g_warning ("couldn't decrypt pkcs8 data: %s", gcry_strerror (gcry));
- break;
- }
-
- /* Unpad the DER data */
- l = egg_asn1x_element_length (crypted, n_crypted);
- if (l > 0)
- n_crypted = l;
-
- /* Try to parse the resulting key */
- r = parse_der_pkcs8_plain (self, crypted, n_crypted);
- egg_secure_free (crypted);
- crypted = NULL;
-
- if (r != GCR_ERROR_UNRECOGNIZED) {
- ret = r;
- break;
- }
-
- /* We assume unrecognized data, is a bad encryption key */
- }
-
-done:
- if (cih)
- gcry_cipher_close (cih);
- egg_asn1x_destroy (asn);
- egg_secure_free (crypted);
-
- pop_parsed (self, parsed);
- return ret;
-}
-
-static gint
-parse_der_pkcs8 (GcrParser *self, const guchar *data, gsize n_data)
-{
- gint ret;
-
- ret = parse_der_pkcs8_plain (self, data, n_data);
- if (ret == GCR_ERROR_UNRECOGNIZED)
- ret = parse_der_pkcs8_encrypted (self, data, n_data);
-
- return ret;
-}
-
-/* -----------------------------------------------------------------------------
- * CERTIFICATE
- */
-
-static gint
-parse_der_certificate (GcrParser *self, const guchar *data, gsize n_data)
-{
- gchar *name = NULL;
- GcrParsed *parsed;
- GNode *node;
- GNode *asn;
-
- asn = egg_asn1x_create_and_decode (pkix_asn1_tab, "Certificate", data, n_data);
- if (asn == NULL)
- return GCR_ERROR_UNRECOGNIZED;
-
- parsed = push_parsed (self, FALSE);
-
- parsing_block (parsed, GCR_FORMAT_DER_CERTIFICATE_X509, data, n_data);
- parsing_object (parsed, CKO_CERTIFICATE);
- parsed_ulong_attribute (parsed, CKA_CERTIFICATE_TYPE, CKC_X_509);
-
- node = egg_asn1x_node (asn, "tbsCertificate", NULL);
- g_return_val_if_fail (node != NULL, GCR_ERROR_FAILURE);
-
- if (gcr_parser_get_parsed_label (self) == NULL)
- name = egg_dn_read_part (egg_asn1x_node (node, "subject", "rdnSequence", NULL), "CN");
-
- if (name != NULL) {
- parsed_label (parsed, name);
- g_free (name);
- }
-
- parsed_attribute (parsed, CKA_VALUE, data, n_data);
- parsed_asn1_element (parsed, node, "subject", CKA_SUBJECT);
- parsed_asn1_element (parsed, node, "issuer", CKA_ISSUER);
- parsed_asn1_number (parsed, node, "serialNumber", CKA_SERIAL_NUMBER);
- parsed_fire (self, parsed);
-
- egg_asn1x_destroy (asn);
-
- pop_parsed (self, parsed);
- return SUCCESS;
-}
-
-/* -----------------------------------------------------------------------------
- * PKCS7
- */
-
-static gint
-handle_pkcs7_signed_data (GcrParser *self, const guchar *data, gsize n_data)
-{
- GNode *asn = NULL;
- GNode *node;
- gint ret;
- const guchar *certificate;
- gsize n_certificate;
- int i;
-
- ret = GCR_ERROR_UNRECOGNIZED;
-
- asn = egg_asn1x_create_and_decode (pkix_asn1_tab, "pkcs-7-SignedData", data, n_data);
- if (!asn)
- goto done;
-
- ret = GCR_ERROR_FAILURE;
-
- for (i = 0; TRUE; ++i) {
-
- node = egg_asn1x_node (asn, "certificates", i + 1, NULL);
-
- /* No more certificates? */
- if (node == NULL)
- break;
-
- certificate = egg_asn1x_get_raw_element (node, &n_certificate);
-
- ret = parse_der_certificate (self, certificate, n_certificate);
- if (ret != SUCCESS)
- goto done;
- }
-
- /* TODO: Parse out all the CRLs */
-
- ret = SUCCESS;
-
-done:
- egg_asn1x_destroy (asn);
- return ret;
-}
-
-static gint
-parse_der_pkcs7 (GcrParser *self, const guchar *data, gsize n_data)
-{
- GNode *asn = NULL;
- GNode *node;
- gint ret;
- const guchar* content = NULL;
- gsize n_content;
- GQuark oid;
- GcrParsed *parsed;
-
- parsed = push_parsed (self, FALSE);
- ret = GCR_ERROR_UNRECOGNIZED;
-
- asn = egg_asn1x_create_and_decode (pkix_asn1_tab, "pkcs-7-ContentInfo", data, n_data);
- if (!asn)
- goto done;
-
- parsing_block (parsed, GCR_FORMAT_DER_PKCS7, data, n_data);
- ret = GCR_ERROR_FAILURE;
-
- node = egg_asn1x_node (asn, "contentType", NULL);
- if (!node)
- goto done;
-
- oid = egg_asn1x_get_oid_as_quark (node);
- g_return_val_if_fail (oid, GCR_ERROR_FAILURE);
-
- /* Outer most one must just be plain data */
- if (oid != GCR_OID_PKCS7_SIGNED_DATA) {
- g_message ("unsupported outer content type in pkcs7: %s", g_quark_to_string (oid));
- goto done;
- }
-
- content = egg_asn1x_get_raw_element (egg_asn1x_node (asn, "content", NULL), &n_content);
- if (!content)
- goto done;
-
- ret = handle_pkcs7_signed_data (self, content, n_content);
-
-done:
- egg_asn1x_destroy (asn);
- pop_parsed (self, parsed);
- return ret;
-}
-
-/* -----------------------------------------------------------------------------
- * PKCS12
- */
-
-static GNode *
-decode_pkcs12_asn1_accepting_invalid_crap (const ASN1_ARRAY_TYPE *defs,
- const gchar *identifier,
- gconstpointer data,
- gsize n_data)
-{
- GNode *asn;
-
- /*
- * Because PKCS#12 files, the bags specifically, are notorious for
- * being crappily constructed and are often break rules such as DER
- * sorting order etc.. we parse the DER in a non-strict fashion.
- *
- * The rules in DER are designed for X.509 certificates, so there is
- * only one way to represent a given certificate (although they fail
- * at that as well). But with PKCS#12 we don't have such high
- * requirements, and we can slack off on our validation.
- */
-
- asn = egg_asn1x_create (defs, identifier);
- g_return_val_if_fail (asn != NULL, NULL);
-
- /* Passing FALSE as the strictness argument */
- if (!egg_asn1x_decode_no_validate (asn, data, n_data) ||
- !egg_asn1x_validate (asn, FALSE)) {
- egg_asn1x_destroy (asn);
- asn = NULL;
- }
-
- return asn;
-}
-
-static gint
-handle_pkcs12_cert_bag (GcrParser *self, const guchar *data, gsize n_data)
-{
- GNode *asn = NULL;
- GNode *asn_content = NULL;
- guchar *certificate = NULL;
- const guchar *element;
- gsize n_certificate, n_element;
- gint ret;
-
- ret = GCR_ERROR_UNRECOGNIZED;
- asn = decode_pkcs12_asn1_accepting_invalid_crap (pkix_asn1_tab,
- "pkcs-12-CertBag",
- data, n_data);
- if (!asn)
- goto done;
-
- ret = GCR_ERROR_FAILURE;
-
- element = egg_asn1x_get_raw_element (egg_asn1x_node (asn, "certValue", NULL), &n_element);
- if (!element)
- goto done;
-
- asn_content = egg_asn1x_create_and_decode (pkix_asn1_tab, "pkcs-7-Data", element, n_element);
- if (!asn_content)
- goto done;
-
- certificate = egg_asn1x_get_string_as_raw (asn_content, NULL, &n_certificate);
- if (!certificate)
- goto done;
-
- ret = parse_der_certificate (self, certificate, n_certificate);
-
-done:
- egg_asn1x_destroy (asn_content);
- egg_asn1x_destroy (asn);
- g_free (certificate);
- return ret;
-}
-
-static gchar *
-parse_pkcs12_bag_friendly_name (GNode *asn)
-{
- guint count, i;
- GQuark oid;
- GNode *node;
- gconstpointer element;
- gsize n_element;
- GNode *asn_str;
- gchar *result;
-
- if (asn == NULL)
- return NULL;
-
- count = egg_asn1x_count (asn);
- for (i = 1; i <= count; i++) {
- oid = egg_asn1x_get_oid_as_quark (egg_asn1x_node (asn, i, "type", NULL));
- if (oid == GCR_OID_PKCS9_ATTRIBUTE_FRIENDLY) {
- node = egg_asn1x_node (asn, i, "values", 1, NULL);
- if (node != NULL) {
- element = egg_asn1x_get_raw_element (node, &n_element);
- asn_str = egg_asn1x_create_and_decode (pkix_asn1_tab, "BMPString",
- element, n_element);
- if (asn_str) {
- result = egg_asn1x_get_bmpstring_as_utf8 (asn_str);
- egg_asn1x_destroy (asn_str);
- return result;
- }
- }
- }
- }
-
- return NULL;
-}
-
-static gint
-handle_pkcs12_bag (GcrParser *self, const guchar *data, gsize n_data)
-{
- GNode *asn = NULL;
- gint ret, r;
- guint count = 0;
- GQuark oid;
- const guchar *element;
- gchar *friendly;
- gsize n_element;
- guint i;
- GcrParsed *parsed;
-
- ret = GCR_ERROR_UNRECOGNIZED;
-
- asn = decode_pkcs12_asn1_accepting_invalid_crap (pkix_asn1_tab,
- "pkcs-12-SafeContents",
- data, n_data);
- if (!asn)
- goto done;
-
- ret = GCR_ERROR_FAILURE;
-
- /* Get the number of elements in this bag */
- count = egg_asn1x_count (asn);
-
- /*
- * Now inside each bag are multiple elements. Who comes up
- * with this stuff?
- */
- for (i = 1; i <= count; i++) {
-
- oid = egg_asn1x_get_oid_as_quark (egg_asn1x_node (asn, i, "bagId", NULL));
- if (!oid)
- goto done;
-
- element = egg_asn1x_get_raw_element (egg_asn1x_node (asn, i, "bagValue", NULL), &n_element);
- if (!element)
- goto done;
-
- parsed = push_parsed (self, FALSE);
-
- friendly = parse_pkcs12_bag_friendly_name (egg_asn1x_node (asn, i, "bagAttributes", NULL));
- if (friendly != NULL)
- parsed_label (parsed, friendly);
-
- /* A normal unencrypted key */
- if (oid == GCR_OID_PKCS12_BAG_PKCS8_KEY) {
- r = parse_der_pkcs8_plain (self, element, n_element);
-
- /* A properly encrypted key */
- } else if (oid == GCR_OID_PKCS12_BAG_PKCS8_ENCRYPTED_KEY) {
- r = parse_der_pkcs8_encrypted (self, element, n_element);
-
- /* A certificate */
- } else if (oid == GCR_OID_PKCS12_BAG_CERTIFICATE) {
- r = handle_pkcs12_cert_bag (self, element, n_element);
-
- /* TODO: GCR_OID_PKCS12_BAG_CRL */
- } else {
- r = GCR_ERROR_UNRECOGNIZED;
- }
-
- pop_parsed (self, parsed);
-
- if (r == GCR_ERROR_FAILURE ||
- r == GCR_ERROR_CANCELLED ||
- r == GCR_ERROR_LOCKED) {
- ret = r;
- goto done;
- }
- }
-
- ret = SUCCESS;
-
-done:
- egg_asn1x_destroy (asn);
- return ret;
-}
-
-static gint
-handle_pkcs12_encrypted_bag (GcrParser *self, const guchar *data, gsize n_data)
-{
- PasswordState pstate = PASSWORD_STATE_INIT;
- GNode *asn = NULL;
- gcry_cipher_hd_t cih = NULL;
- gcry_error_t gcry;
- guchar *crypted = NULL;
- const guchar *params;
- gsize n_params, n_crypted;
- const gchar *password;
- GQuark scheme;
- gint ret, r;
- gint l;
-
- ret = GCR_ERROR_UNRECOGNIZED;
-
- asn = decode_pkcs12_asn1_accepting_invalid_crap (pkix_asn1_tab,
- "pkcs-7-EncryptedData",
- data, n_data);
- if (!asn)
- goto done;
-
- ret = GCR_ERROR_FAILURE;
-
- /* Check the encryption schema OID */
- scheme = egg_asn1x_get_oid_as_quark (egg_asn1x_node (asn, "encryptedContentInfo", "contentEncryptionAlgorithm", "algorithm", NULL));
- if (!scheme)
- goto done;
-
- params = egg_asn1x_get_raw_element (egg_asn1x_node (asn, "encryptedContentInfo", "contentEncryptionAlgorithm", "parameters", NULL), &n_params);
- if (!params)
- goto done;
-
- /* Loop to try different passwords */
- for (;;) {
-
- g_assert (cih == NULL);
-
- r = enum_next_password (self, &pstate, &password);
- if (r != SUCCESS) {
- ret = r;
- goto done;
- }
-
- /* Parse the encryption stuff into a cipher. */
- if (!egg_symkey_read_cipher (scheme, password, -1, params, n_params, &cih)) {
- ret = GCR_ERROR_FAILURE;
- goto done;
- }
-
- crypted = egg_asn1x_get_string_as_raw (egg_asn1x_node (asn, "encryptedContentInfo", "encryptedContent", NULL),
- egg_secure_realloc, &n_crypted);
- if (!crypted)
- goto done;
-
- gcry = gcry_cipher_decrypt (cih, crypted, n_crypted, NULL, 0);
- gcry_cipher_close (cih);
- cih = NULL;
-
- if (gcry != 0) {
- g_warning ("couldn't decrypt pkcs7 data: %s", gcry_strerror (gcry));
- goto done;
- }
-
- /* Unpad the DER data */
- l = egg_asn1x_element_length (crypted, n_crypted);
- if (l > 0)
- n_crypted = l;
-
- /* Try to parse the resulting key */
- r = handle_pkcs12_bag (self, crypted, n_crypted);
- egg_secure_free (crypted);
- crypted = NULL;
-
- if (r != GCR_ERROR_UNRECOGNIZED) {
- ret = r;
- break;
- }
-
- /* We assume unrecognized data is a bad encryption key */
- }
-
-done:
- if (cih)
- gcry_cipher_close (cih);
- egg_asn1x_destroy (asn);
- egg_secure_free (crypted);
- return ret;
-}
-
-static gint
-handle_pkcs12_safe (GcrParser *self, const guchar *data, gsize n_data)
-{
- GNode *asn = NULL;
- GNode *asn_content = NULL;
- gint ret, r;
- const guchar *bag;
- guchar *content = NULL;
- gsize n_bag, n_content;
- GQuark oid;
- guint i;
- GNode *node;
-
- ret = GCR_ERROR_UNRECOGNIZED;
-
- asn = decode_pkcs12_asn1_accepting_invalid_crap (pkix_asn1_tab,
- "pkcs-12-AuthenticatedSafe",
- data, n_data);
- if (!asn)
- goto done;
-
- ret = GCR_ERROR_FAILURE;
-
- /*
- * Inside each PKCS12 safe there are multiple bags.
- */
- for (i = 0; TRUE; ++i) {
- node = egg_asn1x_node (asn, i + 1, "contentType", NULL);
-
- /* All done? no more bags */
- if (!node)
- break;
-
- oid = egg_asn1x_get_oid_as_quark (node);
-
- node = egg_asn1x_node (asn, i + 1, "content", NULL);
- if (!node)
- goto done;
-
- bag = egg_asn1x_get_raw_element (node, &n_bag);
- g_return_val_if_fail (bag, ret);
-
- /* A non encrypted bag, just parse */
- if (oid == GCR_OID_PKCS7_DATA) {
-
- egg_asn1x_destroy (asn_content);
- asn_content = decode_pkcs12_asn1_accepting_invalid_crap (pkix_asn1_tab,
- "pkcs-7-Data",
- bag, n_bag);
- if (!asn_content)
- goto done;
-
- g_free (content);
- content = egg_asn1x_get_string_as_raw (asn_content, NULL, &n_content);
- if (!content)
- goto done;
-
- r = handle_pkcs12_bag (self, content, n_content);
-
- /* Encrypted data first needs decryption */
- } else if (oid == GCR_OID_PKCS7_ENCRYPTED_DATA) {
- r = handle_pkcs12_encrypted_bag (self, bag, n_bag);
-
- /* Hmmmm, not sure what this is */
- } else {
- g_warning ("unrecognized type of safe content in pkcs12: %s", g_quark_to_string (oid));
- r = GCR_ERROR_UNRECOGNIZED;
- }
-
- if (r == GCR_ERROR_FAILURE ||
- r == GCR_ERROR_CANCELLED ||
- r == GCR_ERROR_LOCKED) {
- ret = r;
- goto done;
- }
- }
-
- ret = SUCCESS;
-
-done:
- egg_asn1x_destroy (asn);
- egg_asn1x_destroy (asn_content);
- g_free (content);
- return ret;
-}
-
-static gint
-verify_pkcs12_safe (GcrParser *self,
- GNode *asn,
- gconstpointer content,
- gsize n_content)
-{
- PasswordState pstate = PASSWORD_STATE_INIT;
- const gchar *password;
- gcry_md_hd_t mdh = NULL;
- const guchar *mac_digest;
- gsize mac_len;
- guchar *digest = NULL;
- gsize n_digest;
- GQuark algorithm;
- GNode *mac_data;
- gconstpointer params;
- gsize n_params;
- int ret, r;
-
- ret = GCR_ERROR_FAILURE;
-
- /*
- * The MAC is optional (and outside the encryption no less). I wonder
- * what the designers (ha) of PKCS#12 were trying to achieve
- */
-
- mac_data = egg_asn1x_node (asn, "macData", NULL);
- if (mac_data == NULL)
- return SUCCESS;
-
- algorithm = egg_asn1x_get_oid_as_quark (egg_asn1x_node (mac_data, "mac",
- "digestAlgorithm", "algorithm", NULL));
- if (!algorithm)
- goto done;
-
- params = egg_asn1x_get_raw_element (mac_data, &n_params);
- if (!params)
- goto done;
-
- digest = egg_asn1x_get_string_as_raw (egg_asn1x_node (mac_data, "mac", "digest", NULL), NULL, &n_digest);
- if (!digest)
- goto done;
-
- /* Loop to try different passwords */
- for (;;) {
- g_assert (mdh == NULL);
-
- r = enum_next_password (self, &pstate, &password);
- if (r != SUCCESS) {
- ret = r;
- goto done;
- }
-
- /* Parse the encryption stuff into a cipher. */
- if (!egg_symkey_read_mac (algorithm, password, -1, params, n_params,
- &mdh, &mac_len)) {
- ret = GCR_ERROR_FAILURE;
- goto done;
- }
-
- /* If not the right length, then that's really broken */
- if (mac_len != n_digest) {
- r = GCR_ERROR_FAILURE;
-
- } else {
- gcry_md_write (mdh, content, n_content);
- mac_digest = gcry_md_read (mdh, 0);
- g_return_val_if_fail (mac_digest, GCR_ERROR_FAILURE);
- r = memcmp (mac_digest, digest, n_digest) == 0 ? SUCCESS : GCR_ERROR_LOCKED;
- }
-
- gcry_md_close (mdh);
- mdh = NULL;
-
- if (r != GCR_ERROR_LOCKED) {
- ret = r;
- break;
- }
- }
-
-done:
- if (mdh)
- gcry_md_close (mdh);
- g_free (digest);
- return ret;
-
-}
-
-static gint
-parse_der_pkcs12 (GcrParser *self, const guchar *data, gsize n_data)
-{
- GNode *asn = NULL;
- GNode *asn_content = NULL;
- gint ret;
- const guchar* element = NULL;
- guchar *content = NULL;
- gsize n_element, n_content;
- GQuark oid;
- GcrParsed *parsed;
-
- parsed = push_parsed (self, FALSE);
- ret = GCR_ERROR_UNRECOGNIZED;
-
- asn = decode_pkcs12_asn1_accepting_invalid_crap (pkix_asn1_tab, "pkcs-12-PFX",
- data, n_data);
- if (!asn)
- goto done;
-
- parsing_block (parsed, GCR_FORMAT_DER_PKCS12, data, n_data);
-
- oid = egg_asn1x_get_oid_as_quark (egg_asn1x_node (asn, "authSafe", "contentType", NULL));
- if (!oid)
- goto done;
-
- /* Outer most one must just be plain data */
- if (oid != GCR_OID_PKCS7_DATA) {
- g_message ("unsupported safe content type in pkcs12: %s", g_quark_to_string (oid));
- goto done;
- }
-
- element = egg_asn1x_get_raw_element (egg_asn1x_node (asn, "authSafe", "content", NULL), &n_element);
- if (!element)
- goto done;
-
- asn_content = decode_pkcs12_asn1_accepting_invalid_crap (pkix_asn1_tab, "pkcs-7-Data",
- element, n_element);
- if (!asn_content)
- goto done;
-
- content = egg_asn1x_get_string_as_raw (asn_content, g_realloc, &n_content);
- if (!content)
- goto done;
-
- ret = verify_pkcs12_safe (self, asn, content, n_content);
- if (ret == SUCCESS)
- ret = handle_pkcs12_safe (self, content, n_content);
-
-done:
- g_free (content);
- egg_asn1x_destroy (asn_content);
- egg_asn1x_destroy (asn);
- pop_parsed (self, parsed);
- return ret;
-}
-
-
-/* -----------------------------------------------------------------------------
- * OPENPGP
- */
-
-static void
-on_openpgp_packet (GPtrArray *records,
- const guchar *outer,
- gsize n_outer,
- gpointer user_data)
-{
- GcrParser *self = GCR_PARSER (user_data);
- GcrParsed *parsed;
- gchar *string;
-
- /*
- * If it's an openpgp packet that doesn't contain a key, then
- * just ignore it here.
- */
- if (records->len == 0)
- return;
-
- parsed = push_parsed (self, FALSE);
-
- /* All we can do is the packet bounds */
- parsing_block (parsed, GCR_FORMAT_OPENPGP_PACKET, outer, n_outer);
- parsing_object (parsed, CKO_GCR_GNUPG_RECORDS);
- string = _gcr_records_format (records);
- parsed_attribute (parsed, CKA_VALUE, string, strlen (string));
- parsed_fire (self, parsed);
- pop_parsed (self, parsed);
-
- g_free (string);
-}
-
-static gint
-parse_openpgp_packets (GcrParser *self,
- const guchar *data,
- gsize n_data)
-{
- gint num_parsed;
-
- num_parsed = _gcr_openpgp_parse (data, n_data,
- GCR_OPENPGP_PARSE_KEYS |
- GCR_OPENPGP_PARSE_ATTRIBUTES |
- GCR_OPENPGP_PARSE_SIGNATURES,
- on_openpgp_packet, self);
-
- if (num_parsed == 0)
- return GCR_ERROR_UNRECOGNIZED;
- return SUCCESS;
-}
-
-/* -----------------------------------------------------------------------------
- * ARMOR PARSING
- */
-
-static gboolean
-formats_for_armor_type (GQuark armor_type,
- gint *inner_format,
- gint *outer_format)
-{
- gint dummy;
- if (!inner_format)
- inner_format = &dummy;
- if (!outer_format)
- outer_format = &dummy;
-
- if (armor_type == PEM_RSA_PRIVATE_KEY) {
- *inner_format = GCR_FORMAT_DER_PRIVATE_KEY_RSA;
- *outer_format = GCR_FORMAT_PEM_PRIVATE_KEY_RSA;
- } else if (armor_type == PEM_DSA_PRIVATE_KEY) {
- *inner_format = GCR_FORMAT_DER_PRIVATE_KEY_DSA;
- *outer_format = GCR_FORMAT_PEM_PRIVATE_KEY_DSA;
- } else if (armor_type == PEM_ANY_PRIVATE_KEY) {
- *inner_format = GCR_FORMAT_DER_PRIVATE_KEY;
- *outer_format = GCR_FORMAT_PEM_PRIVATE_KEY;
- } else if (armor_type == PEM_PRIVATE_KEY) {
- *inner_format = GCR_FORMAT_DER_PKCS8_PLAIN;
- *outer_format = GCR_FORMAT_PEM_PKCS8_PLAIN;
- } else if (armor_type == PEM_ENCRYPTED_PRIVATE_KEY) {
- *inner_format = GCR_FORMAT_DER_PKCS8_ENCRYPTED;
- *outer_format = GCR_FORMAT_PEM_PKCS8_ENCRYPTED;
- } else if (armor_type == PEM_CERTIFICATE) {
- *inner_format = GCR_FORMAT_DER_CERTIFICATE_X509;
- *outer_format = GCR_FORMAT_PEM_CERTIFICATE_X509;
- } else if (armor_type == PEM_PKCS7) {
- *inner_format = GCR_FORMAT_DER_PKCS7;
- *outer_format = GCR_FORMAT_PEM_PKCS7;
- } else if (armor_type == PEM_PKCS12) {
- *inner_format = GCR_FORMAT_DER_PKCS12;
- *outer_format = GCR_FORMAT_PEM_PKCS12;
- } else if (armor_type == ARMOR_PGP_PRIVATE_KEY_BLOCK) {
- *inner_format = GCR_FORMAT_OPENPGP_PACKET;
- *outer_format = GCR_FORMAT_OPENPGP_ARMOR;
- } else if (armor_type == ARMOR_PGP_PUBLIC_KEY_BLOCK) {
- *inner_format = GCR_FORMAT_OPENPGP_PACKET;
- *outer_format = GCR_FORMAT_OPENPGP_ARMOR;
- } else {
- return FALSE;
- }
-
- return TRUE;
-}
-
-static gint
-handle_plain_pem (GcrParser *self,
- gint format_id,
- gint want_format,
- const guchar *data,
- gsize n_data)
-{
- ParserFormat *format;
-
- if (want_format != 0 && want_format != format_id)
- return GCR_ERROR_UNRECOGNIZED;
-
- format = parser_format_lookup (format_id);
- if (format == NULL)
- return GCR_ERROR_UNRECOGNIZED;
-
- return (format->function) (self, data, n_data);
-}
-
-static gint
-handle_encrypted_pem (GcrParser *self,
- gint format_id,
- gint want_format,
- GHashTable *headers,
- const guchar *data,
- gsize n_data)
-{
- PasswordState pstate = PASSWORD_STATE_INIT;
- const gchar *password;
- guchar *decrypted;
- gsize n_decrypted;
- const gchar *val;
- gboolean ret;
- gint res;
- gint l;
-
- g_assert (GCR_IS_PARSER (self));
- g_assert (headers);
-
- val = g_hash_table_lookup (headers, "DEK-Info");
- if (!val) {
- g_message ("missing encryption header");
- return GCR_ERROR_FAILURE;
- }
-
- res = GCR_ERROR_FAILURE;
- for (;;) {
-
- res = enum_next_password (self, &pstate, &password);
- if (res != SUCCESS)
- break;
-
- decrypted = NULL;
- n_decrypted = 0;
-
- /* Decrypt, this will result in garble if invalid password */
- ret = egg_openssl_decrypt_block (val, password, -1, data, n_data,
- &decrypted, &n_decrypted);
- if (!ret) {
- res = GCR_ERROR_FAILURE;
- break;
- }
-
- g_assert (decrypted);
-
- /* Unpad the DER data */
- l = egg_asn1x_element_length (decrypted, n_decrypted);
- if (l > 0)
- n_decrypted = l;
-
- /* Try to parse */
- res = handle_plain_pem (self, format_id, want_format,
- decrypted, n_decrypted);
- egg_secure_free (decrypted);
-
- /* Unrecognized is a bad password */
- if (res != GCR_ERROR_UNRECOGNIZED)
- break;
- }
-
- return res;
-}
-
-typedef struct {
- GcrParser *parser;
- gint result;
- gint want_format;
-} HandlePemArgs;
-
-static void
-handle_pem_data (GQuark type,
- const guchar *data,
- gsize n_data,
- const gchar *outer,
- gsize n_outer,
- GHashTable *headers,
- gpointer user_data)
-{
- HandlePemArgs *args = (HandlePemArgs*)user_data;
- gint res = GCR_ERROR_FAILURE;
- gboolean encrypted = FALSE;
- const gchar *val;
- gint inner_format;
- gint outer_format;
- GcrParsed *parsed;
-
- /* Something already failed to parse */
- if (args->result == GCR_ERROR_FAILURE)
- return;
-
- if (!formats_for_armor_type (type, &inner_format, &outer_format))
- return;
-
- parsed = push_parsed (args->parser, FALSE);
-
- /* Fill in information necessary for prompting */
- parsing_block (parsed, outer_format, outer, n_outer);
-
- /* See if it's encrypted PEM all openssl like*/
- if (headers) {
- val = g_hash_table_lookup (headers, "Proc-Type");
- if (val && strcmp (val, "4,ENCRYPTED") == 0)
- encrypted = TRUE;
- }
-
- if (encrypted)
- res = handle_encrypted_pem (args->parser, inner_format,
- args->want_format, headers,
- data, n_data);
- else
- res = handle_plain_pem (args->parser, inner_format,
- args->want_format, data, n_data);
-
- pop_parsed (args->parser, parsed);
-
- if (res != GCR_ERROR_UNRECOGNIZED) {
- if (args->result == GCR_ERROR_UNRECOGNIZED)
- args->result = res;
- else if (res > args->result)
- args->result = res;
- }
-}
-
-static gint
-handle_pem_format (GcrParser *self, gint subformat, const guchar *data, gsize n_data)
-{
- HandlePemArgs ctx = { self, GCR_ERROR_UNRECOGNIZED, subformat };
- guint found;
-
- if (n_data == 0)
- return GCR_ERROR_UNRECOGNIZED;
-
- found = egg_armor_parse (data, n_data, handle_pem_data, &ctx);
-
- if (found == 0)
- return GCR_ERROR_UNRECOGNIZED;
-
- return ctx.result;
-}
-
-
-static gint
-parse_pem (GcrParser *self, const guchar *data, gsize n_data)
-{
- return handle_pem_format (self, 0, data, n_data);
-}
-
-static gint
-parse_pem_private_key_rsa (GcrParser *self, const guchar *data, gsize n_data)
-{
- return handle_pem_format (self, GCR_FORMAT_DER_PRIVATE_KEY_RSA, data, n_data);
-}
-
-static gint
-parse_pem_private_key_dsa (GcrParser *self, const guchar *data, gsize n_data)
-{
- return handle_pem_format (self, GCR_FORMAT_DER_PRIVATE_KEY_DSA, data, n_data);
-}
-
-static gint
-parse_pem_certificate (GcrParser *self, const guchar *data, gsize n_data)
-{
- return handle_pem_format (self, GCR_FORMAT_DER_CERTIFICATE_X509, data, n_data);
-}
-
-static gint
-parse_pem_pkcs8_plain (GcrParser *self, const guchar *data, gsize n_data)
-{
- return handle_pem_format (self, GCR_FORMAT_DER_PKCS8_PLAIN, data, n_data);
-}
-
-static gint
-parse_pem_pkcs8_encrypted (GcrParser *self, const guchar *data, gsize n_data)
-{
- return handle_pem_format (self, GCR_FORMAT_DER_PKCS8_ENCRYPTED, data, n_data);
-}
-
-static gint
-parse_pem_pkcs7 (GcrParser *self, const guchar *data, gsize n_data)
-{
- return handle_pem_format (self, GCR_FORMAT_DER_PKCS7, data, n_data);
-}
-
-static gint
-parse_pem_pkcs12 (GcrParser *self, const guchar *data, gsize n_data)
-{
- return handle_pem_format (self, GCR_FORMAT_DER_PKCS12, data, n_data);
-}
-
-static gint
-parse_openpgp_armor (GcrParser *self,
- const guchar *data,
- gsize n_data)
-{
- return handle_pem_format (self, GCR_FORMAT_OPENPGP_PACKET, data, n_data);
-}
-
-/* -----------------------------------------------------------------------------
- * OPENSSH
- */
-
-static void
-on_openssh_public_key_parsed (GckAttributes *attrs,
- const gchar *label,
- const gchar *options,
- const gchar *outer,
- gsize n_outer,
- gpointer user_data)
-{
- GcrParser *self = GCR_PARSER (user_data);
- GcrParsed *parsed;
-
- parsed = push_parsed (self, FALSE);
- parsing_block (parsed, GCR_FORMAT_OPENSSH_PUBLIC, outer, n_outer);
- parsed_attributes (parsed, attrs);
- parsed_label (parsed, label);
- parsed_fire (self, parsed);
- pop_parsed (self, parsed);
-}
-
-static gint
-parse_openssh_public (GcrParser *self,
- const guchar *data,
- gsize n_data)
-{
- guint num_parsed;
-
- num_parsed = _gcr_openssh_pub_parse (data, n_data,
- on_openssh_public_key_parsed, self);
-
- if (num_parsed == 0)
- return GCR_ERROR_UNRECOGNIZED;
- return SUCCESS;
-}
-
-/* -----------------------------------------------------------------------------
- * FORMATS
- */
-
-/**
- * GcrDataFormat:
- * @GCR_FORMAT_ALL: Represents all the formats, when enabling or disabling
- * @GCR_FORMAT_INVALID: Not a valid format
- * @GCR_FORMAT_DER_PRIVATE_KEY: DER encoded private key
- * @GCR_FORMAT_DER_PRIVATE_KEY_RSA: DER encoded RSA private key
- * @GCR_FORMAT_DER_PRIVATE_KEY_DSA: DER encoded DSA private key
- * @GCR_FORMAT_DER_CERTIFICATE_X509: DER encoded X.509 certificate
- * @GCR_FORMAT_DER_PKCS7: DER encoded PKCS\#7 container file which can contain certificates
- * @GCR_FORMAT_DER_PKCS8: DER encoded PKCS\#8 file which can contain a key
- * @GCR_FORMAT_DER_PKCS8_PLAIN: Unencrypted DER encoded PKCS\#8 file which can contain a key
- * @GCR_FORMAT_DER_PKCS8_ENCRYPTED: Encrypted DER encoded PKCS\#8 file which can contain a key
- * @GCR_FORMAT_DER_PKCS12: DER encoded PKCS\#12 file which can contain certificates and/or keys
- * @GCR_FORMAT_OPENSSH_PUBLIC: OpenSSH v1 or v2 public key
- * @GCR_FORMAT_OPENPGP_PACKET: OpenPGP key packet(s)
- * @GCR_FORMAT_OPENPGP_ARMOR: OpenPGP public or private key armor encoded data
- * @GCR_FORMAT_PEM: An OpenSSL style PEM file with unspecified contents
- * @GCR_FORMAT_PEM_PRIVATE_KEY: An OpenSSL style PEM file with a private key
- * @GCR_FORMAT_PEM_PRIVATE_KEY_RSA: An OpenSSL style PEM file with a private RSA key
- * @GCR_FORMAT_PEM_PRIVATE_KEY_DSA: An OpenSSL style PEM file with a private DSA key
- * @GCR_FORMAT_PEM_CERTIFICATE_X509: An OpenSSL style PEM file with an X.509 certificate
- * @GCR_FORMAT_PEM_PKCS7: An OpenSSL style PEM file containing PKCS\#7
- * @GCR_FORMAT_PEM_PKCS8_PLAIN: Unencrypted OpenSSL style PEM file containing PKCS\#8
- * @GCR_FORMAT_PEM_PKCS8_ENCRYPTED: Encrypted OpenSSL style PEM file containing PKCS\#8
- * @GCR_FORMAT_PEM_PKCS12: An OpenSSL style PEM file containing PKCS\#12
- *
- * The various format identifiers.
- */
-
-/* In order of parsing when no formats specified */
-static const ParserFormat parser_normal[] = {
- { GCR_FORMAT_PEM, parse_pem },
- { GCR_FORMAT_DER_PRIVATE_KEY_RSA, parse_der_private_key_rsa },
- { GCR_FORMAT_DER_PRIVATE_KEY_DSA, parse_der_private_key_dsa },
- { GCR_FORMAT_DER_CERTIFICATE_X509, parse_der_certificate },
- { GCR_FORMAT_DER_PKCS7, parse_der_pkcs7 },
- { GCR_FORMAT_DER_PKCS8_PLAIN, parse_der_pkcs8_plain },
- { GCR_FORMAT_DER_PKCS8_ENCRYPTED, parse_der_pkcs8_encrypted },
- { GCR_FORMAT_DER_PKCS12, parse_der_pkcs12 },
- { GCR_FORMAT_OPENSSH_PUBLIC, parse_openssh_public },
- { GCR_FORMAT_OPENPGP_PACKET, parse_openpgp_packets },
- { GCR_FORMAT_OPENPGP_ARMOR, parse_openpgp_armor },
-};
-
-/* Must be in format_id numeric order */
-static const ParserFormat parser_formats[] = {
- { GCR_FORMAT_DER_PRIVATE_KEY, parse_der_private_key },
- { GCR_FORMAT_DER_PRIVATE_KEY_RSA, parse_der_private_key_rsa },
- { GCR_FORMAT_DER_PRIVATE_KEY_DSA, parse_der_private_key_dsa },
- { GCR_FORMAT_DER_CERTIFICATE_X509, parse_der_certificate },
- { GCR_FORMAT_DER_PKCS7, parse_der_pkcs7 },
- { GCR_FORMAT_DER_PKCS8, parse_der_pkcs8 },
- { GCR_FORMAT_DER_PKCS8_PLAIN, parse_der_pkcs8_plain },
- { GCR_FORMAT_DER_PKCS8_ENCRYPTED, parse_der_pkcs8_encrypted },
- { GCR_FORMAT_DER_PKCS12, parse_der_pkcs12 },
- { GCR_FORMAT_OPENSSH_PUBLIC, parse_openssh_public },
- { GCR_FORMAT_OPENPGP_PACKET, parse_openpgp_packets },
- { GCR_FORMAT_OPENPGP_ARMOR, parse_openpgp_armor },
- { GCR_FORMAT_PEM, parse_pem },
- { GCR_FORMAT_PEM_PRIVATE_KEY_RSA, parse_pem_private_key_rsa },
- { GCR_FORMAT_PEM_PRIVATE_KEY_DSA, parse_pem_private_key_dsa },
- { GCR_FORMAT_PEM_CERTIFICATE_X509, parse_pem_certificate },
- { GCR_FORMAT_PEM_PKCS7, parse_pem_pkcs7 },
- { GCR_FORMAT_PEM_PKCS8_PLAIN, parse_pem_pkcs8_plain },
- { GCR_FORMAT_PEM_PKCS8_ENCRYPTED, parse_pem_pkcs8_encrypted },
- { GCR_FORMAT_PEM_PKCS12, parse_pem_pkcs12 },
-};
-
-static int
-compar_id_to_parser_format (const void *a, const void *b)
-{
- const gint *format_id = a;
- const ParserFormat *format = b;
-
- g_assert (format_id);
- g_assert (format);
-
- if (format->format_id == *format_id)
- return 0;
- return (*format_id < format->format_id) ? -1 : 1;
-}
-
-static ParserFormat*
-parser_format_lookup (gint format_id)
-{
- return bsearch (&format_id, parser_formats, G_N_ELEMENTS (parser_formats),
- sizeof (parser_formats[0]), compar_id_to_parser_format);
-}
-
-static gint
-compare_pointers (gconstpointer a, gconstpointer b)
-{
- if (a == b)
- return 0;
- return a < b ? -1 : 1;
-}
-
-typedef struct _ForeachArgs {
- GcrParser *parser;
- const guchar *data;
- gsize n_data;
- gint result;
-} ForeachArgs;
-
-static gboolean
-parser_format_foreach (gpointer key, gpointer value, gpointer data)
-{
- ForeachArgs *args = data;
- ParserFormat *format = key;
- gint result;
-
- g_assert (format);
- g_assert (format->function);
- g_assert (GCR_IS_PARSER (args->parser));
-
- result = (format->function) (args->parser, args->data, args->n_data);
- if (result != GCR_ERROR_UNRECOGNIZED) {
- args->result = result;
- return TRUE;
- }
-
- /* Keep going */
- return FALSE;
-}
-
-/* -----------------------------------------------------------------------------
- * OBJECT
- */
-
-
-static GObject*
-gcr_parser_constructor (GType type, guint n_props, GObjectConstructParam *props)
-{
- GcrParser *self = GCR_PARSER (G_OBJECT_CLASS (gcr_parser_parent_class)->constructor(type, n_props, props));
- g_return_val_if_fail (self, NULL);
-
- /* Always try to parse with NULL and empty passwords first */
- gcr_parser_add_password (self, NULL);
- gcr_parser_add_password (self, "");
-
- return G_OBJECT (self);
-}
-
-static void
-gcr_parser_init (GcrParser *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_PARSER, GcrParserPrivate);
- self->pv->passwords = g_ptr_array_new ();
- self->pv->normal_formats = TRUE;
-}
-
-static void
-gcr_parser_dispose (GObject *obj)
-{
- GcrParser *self = GCR_PARSER (obj);
- gsize i;
-
- g_assert (!self->pv->parsed);
-
- for (i = 0; i < self->pv->passwords->len; ++i)
- egg_secure_strfree (g_ptr_array_index (self->pv->passwords, i));
- g_ptr_array_set_size (self->pv->passwords, 0);
-
- G_OBJECT_CLASS (gcr_parser_parent_class)->dispose (obj);
-}
-
-static void
-gcr_parser_finalize (GObject *obj)
-{
- GcrParser *self = GCR_PARSER (obj);
-
- g_assert (!self->pv->parsed);
-
- g_ptr_array_free (self->pv->passwords, TRUE);
- self->pv->passwords = NULL;
-
- G_OBJECT_CLASS (gcr_parser_parent_class)->finalize (obj);
-}
-
-static void
-gcr_parser_set_property (GObject *obj, guint prop_id, const GValue *value,
- GParamSpec *pspec)
-{
- switch (prop_id) {
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_parser_get_property (GObject *obj, guint prop_id, GValue *value,
- GParamSpec *pspec)
-{
- GcrParser *self = GCR_PARSER (obj);
-
- switch (prop_id) {
- case PROP_PARSED_ATTRIBUTES:
- g_value_set_boxed (value, gcr_parser_get_parsed_attributes (self));
- break;
- case PROP_PARSED_LABEL:
- g_value_set_string (value, gcr_parser_get_parsed_label (self));
- break;
- case PROP_PARSED_DESCRIPTION:
- g_value_set_string (value, gcr_parser_get_parsed_description (self));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_parser_class_init (GcrParserClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- gint i;
-
- gobject_class->constructor = gcr_parser_constructor;
- gobject_class->dispose = gcr_parser_dispose;
- gobject_class->finalize = gcr_parser_finalize;
- gobject_class->set_property = gcr_parser_set_property;
- gobject_class->get_property = gcr_parser_get_property;
-
- /**
- * GcrParser:parsed-attributes:
- *
- * Get the attributes that make up the currently parsed item. This is
- * generally only valid during a #GcrParser::parsed signal.
- */
- g_type_class_add_private (gobject_class, sizeof (GcrParserPrivate));
-
- g_object_class_install_property (gobject_class, PROP_PARSED_ATTRIBUTES,
- g_param_spec_boxed ("parsed-attributes", "Parsed Attributes", "Parsed PKCS#11 attributes",
- GCK_TYPE_ATTRIBUTES, G_PARAM_READABLE));
-
- /**
- * GcrParser:parsed-label:
- *
- * The label of the currently parsed item. This is generally
- * only valid during a #GcrParser::parsed signal.
- */
- g_object_class_install_property (gobject_class, PROP_PARSED_LABEL,
- g_param_spec_string ("parsed-label", "Parsed Label", "Parsed item label",
- "", G_PARAM_READABLE));
-
- /**
- * GcrParser:parsed-description:
- *
- * The description of the type of the currently parsed item. This is generally
- * only valid during a #GcrParser::parsed signal.
- */
- g_object_class_install_property (gobject_class, PROP_PARSED_DESCRIPTION,
- g_param_spec_string ("parsed-description", "Parsed Description", "Parsed item description",
- "", G_PARAM_READABLE));
-
- /**
- * GcrParser::authenticate:
- * @count: The number of times this item has been authenticated.
- *
- * This signal is emitted when an item needs to be unlocked or decrypted before
- * it can be parsed. The @count argument specifies the number of times
- * the signal has been emitted for a given item. This can be used to
- * display a message saying the previous password was incorrect.
- *
- * Typically the gcr_parser_add_password() function is called in
- * response to this signal.
- *
- * If %FALSE is returned, then the authentication was not handled. If
- * no handlers return %TRUE then the item is not parsed and an error
- * with the code %GCR_ERROR_CANCELLED will be raised.
- *
- * Returns: Whether the authentication was handled.
- */
- signals[AUTHENTICATE] = g_signal_new ("authenticate", GCR_TYPE_PARSER,
- G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GcrParserClass, authenticate),
- g_signal_accumulator_true_handled, NULL, _gcr_marshal_BOOLEAN__INT,
- G_TYPE_BOOLEAN, 1, G_TYPE_POINTER);
-
- /**
- * GcrParser::parsed:
- *
- * This signal is emitted when an item is sucessfully parsed. To access
- * the information about the item use the gcr_parser_get_parsed_label(),
- * gcr_parser_get_parsed_attributes() and gcr_parser_get_parsed_description()
- * functions.
- */
- signals[PARSED] = g_signal_new ("parsed", GCR_TYPE_PARSER,
- G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GcrParserClass, parsed),
- NULL, NULL, g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
-
- init_quarks ();
- _gcr_initialize_library ();
-
- /* Check that the format tables are in order */
- for (i = 1; i < G_N_ELEMENTS (parser_formats); ++i)
- g_assert (parser_formats[i].format_id >= parser_formats[i - 1].format_id);
-}
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-/**
- * gcr_parser_new:
- *
- * Create a new #GcrParser
- *
- * Returns: (transfer full): a newly allocated #GcrParser
- */
-GcrParser *
-gcr_parser_new (void)
-{
- return g_object_new (GCR_TYPE_PARSER, NULL);
-}
-
-/**
- * gcr_parser_add_password:
- * @self: The parser
- * @password: (allow-none): a password to try
- *
- * Add a password to the set of passwords to try when parsing locked or encrypted
- * items. This is usually called from the GcrParser::authenticate signal.
- */
-void
-gcr_parser_add_password (GcrParser *self, const gchar *password)
-{
- g_return_if_fail (GCR_IS_PARSER (self));
- g_ptr_array_add (self->pv->passwords, egg_secure_strdup (password));
-}
-
-/**
- * gcr_parser_parse_data:
- * @self: The parser
- * @data: (array length=n_data): the data to parse
- * @n_data: The length of the data
- * @error: A location to raise an error on failure.
- *
- * Parse the data. The GcrParser::parsed and GcrParser::authenticate signals
- * may fire during the parsing.
- *
- * Returns: Whether the data was parsed successfully or not.
- */
-gboolean
-gcr_parser_parse_data (GcrParser *self,
- const guchar *data,
- gsize n_data,
- GError **error)
-{
- ForeachArgs args = { self, data, n_data, GCR_ERROR_UNRECOGNIZED };
- const gchar *message = NULL;
- gint i;
-
- g_return_val_if_fail (GCR_IS_PARSER (self), FALSE);
- g_return_val_if_fail (data || !n_data, FALSE);
- g_return_val_if_fail (!error || !*error, FALSE);
-
- if (data && n_data) {
- /* Just the specific formats requested */
- if (self->pv->specific_formats) {
- g_tree_foreach (self->pv->specific_formats, parser_format_foreach, &args);
-
- /* All the 'normal' formats */
- } else if (self->pv->normal_formats) {
- for (i = 0; i < G_N_ELEMENTS (parser_normal); ++i) {
- if (parser_format_foreach ((gpointer)(parser_normal + i),
- (gpointer)(parser_normal + i), &args))
- break;
- }
- }
- }
-
- switch (args.result) {
- case SUCCESS:
- return TRUE;
- case GCR_ERROR_CANCELLED:
- message = _("The operation was cancelled");
- break;
- case GCR_ERROR_UNRECOGNIZED:
- message = _("Unrecognized or unsupported data.");
- break;
- case GCR_ERROR_FAILURE:
- message = _("Could not parse invalid or corrupted data.");
- break;
- case GCR_ERROR_LOCKED:
- message = _("The data is locked");
- break;
- default:
- g_assert_not_reached ();
- break;
- };
-
- g_set_error_literal (error, GCR_DATA_ERROR, args.result, message);
- return FALSE;
-}
-
-/**
- * gcr_parser_format_enable:
- * @self: The parser
- * @format: The format identifier
- *
- * Enable parsing of the given format. Use %GCR_FORMAT_ALL to enable all the formats.
- */
-void
-gcr_parser_format_enable (GcrParser *self,
- GcrDataFormat format)
-{
- const ParserFormat *form;
- guint i;
-
- g_return_if_fail (GCR_IS_PARSER (self));
-
- if (!self->pv->specific_formats)
- self->pv->specific_formats = g_tree_new (compare_pointers);
-
- if (format != -1) {
- form = parser_format_lookup (format);
- g_return_if_fail (form);
- g_tree_insert (self->pv->specific_formats,
- (gpointer)form, (gpointer)form);
- } else {
- for (i = 0; i < G_N_ELEMENTS (parser_formats); i++) {
- form = &parser_formats[i];
- g_tree_insert (self->pv->specific_formats, (gpointer)form,
- (gpointer)form);
- }
- }
-}
-
-/**
- * gcr_parser_format_disable:
- * @self: The parser
- * @format: The format identifier
- *
- * Disable parsing of the given format. Use %GCR_FORMAT_ALL to disable all the formats.
- */
-void
-gcr_parser_format_disable (GcrParser *self,
- GcrDataFormat format)
-{
- ParserFormat *form;
-
- g_return_if_fail (GCR_IS_PARSER (self));
-
- if (format == -1) {
- if (self->pv->specific_formats)
- g_tree_destroy (self->pv->specific_formats);
- self->pv->specific_formats = NULL;
- self->pv->normal_formats = FALSE;
- }
-
- if (!self->pv->specific_formats)
- return;
-
- form = parser_format_lookup (format);
- g_return_if_fail (form);
-
- g_tree_remove (self->pv->specific_formats, form);
-}
-
-/**
- * gcr_parser_format_supported:
- * @self: The parser
- * @format: The format identifier
- *
- * Check whether the given format is supported by the parser.
- *
- * Returns: Whether the format is supported.
- */
-gboolean
-gcr_parser_format_supported (GcrParser *self,
- GcrDataFormat format)
-{
- g_return_val_if_fail (GCR_IS_PARSER (self), FALSE);
- g_return_val_if_fail (format != GCR_FORMAT_ALL, FALSE);
- g_return_val_if_fail (format != GCR_FORMAT_INVALID, FALSE);
- return parser_format_lookup (format) ? TRUE : FALSE;
-}
-
-/**
- * gcr_parser_get_parsed:
- * @self: a parser
- *
- * Get the currently parsed item
- *
- * Returns: (transfer none): the currently parsed item
- */
-GcrParsed *
-gcr_parser_get_parsed (GcrParser *self)
-{
- g_return_val_if_fail (GCR_IS_PARSER (self), NULL);
- return self->pv->parsed;
-}
-
-GType
-gcr_parsed_get_type (void)
-{
- static volatile gsize initialized = 0;
- static GType type = 0;
- if (g_once_init_enter (&initialized)) {
- type = g_boxed_type_register_static ("GcrParsed",
- (GBoxedCopyFunc)gcr_parsed_ref,
- (GBoxedFreeFunc)gcr_parsed_unref);
- g_once_init_leave (&initialized, 1);
- }
- return type;
-}
-
-/**
- * gcr_parsed_ref:
- * @parsed: a parsed item
- *
- * Add a reference to a parsed item. An item may not be shared across threads
- * until it has been referenced at least once.
- *
- * Returns: (transfer full): the parsed item
- */
-GcrParsed *
-gcr_parsed_ref (GcrParsed *parsed)
-{
- GcrParsed *copy;
-
- g_return_val_if_fail (parsed != NULL, NULL);
-
- /* Already had a reference */
-#if GLIB_CHECK_VERSION (2,29,90)
- if (g_atomic_int_add (&parsed->refs, 1) >= 1)
-#else
- if (g_atomic_int_exchange_and_add (&parsed->refs, 1) >= 1)
-#endif
- return parsed;
-
- /* If this is the first reference, flatten the stack of parsed */
- copy = g_new0 (GcrParsed, 1);
- copy->refs = 1;
- copy->label = g_strdup (gcr_parsed_get_label (parsed));
- copy->attrs = gcr_parsed_get_attributes (parsed);
- if (copy->attrs)
- gck_attributes_ref (copy->attrs);
- copy->description = gcr_parsed_get_description (parsed);
- copy->next = NULL;
-
- /* Find the block of data to copy */
- while (parsed != NULL) {
- if (parsed->data != NULL) {
- if (parsed->sensitive) {
- copy->data = egg_secure_alloc (parsed->n_data);
- memcpy (copy->data, parsed->data, parsed->n_data);
- copy->destroy_func = egg_secure_free;
- } else {
- copy->data = g_memdup (parsed->data, parsed->n_data);
- copy->destroy_func = g_free;
- }
- copy->n_data = parsed->n_data;
- break;
- }
- parsed = parsed->next;
- }
-
- return copy;
-}
-
-/**
- * gcr_parsed_unref:
- * @parsed: a parsed item
- *
- * Unreferences a parsed item which was referenced with gcr_parsed_ref()
- */
-void
-gcr_parsed_unref (gpointer parsed)
-{
- GcrParsed *par = parsed;
-
- g_return_if_fail (parsed != NULL);
-
- if (g_atomic_int_dec_and_test (&par->refs)) {
- if (par->attrs)
- gck_attributes_unref (par->attrs);
- g_free (par->label);
- if (par->destroy_func)
- (par->destroy_func) (par->data);
- g_free (par);
- }
-}
-
-/**
- * gcr_parser_get_parsed_description:
- * @self: The parser
- *
- * Get a description for the type of the currently parsed item. This is generally
- * only valid during the GcrParser::parsed signal.
- *
- * Returns: (allow-none): the description for the current item; this is owned by
- * the parser and should not be freed
- */
-const gchar*
-gcr_parser_get_parsed_description (GcrParser *self)
-{
- g_return_val_if_fail (GCR_IS_PARSER (self), NULL);
- g_return_val_if_fail (self->pv->parsed != NULL, NULL);
-
- return gcr_parsed_get_description (self->pv->parsed);
-}
-
-/**
- * gcr_parsed_get_description:
- * @parsed: a parsed item
- *
- * Get the descirption for a parsed item.
- *
- * Returns: (allow-none): the description
- */
-const gchar*
-gcr_parsed_get_description (GcrParsed *parsed)
-{
- while (parsed != NULL) {
- if (parsed->description != NULL)
- return parsed->description;
- parsed = parsed->next;
- }
-
- return NULL;
-}
-
-/**
- * gcr_parser_get_parsed_attributes:
- * @self: The parser
- *
- * Get the attributes which make up the currently parsed item. This is generally
- * only valid during the GcrParser::parsed signal.
- *
- * Returns: (transfer none) (allow-none): the attributes for the current item,
- * which are owned by the parser and should not be freed
- */
-GckAttributes *
-gcr_parser_get_parsed_attributes (GcrParser *self)
-{
- g_return_val_if_fail (GCR_IS_PARSER (self), NULL);
- g_return_val_if_fail (self->pv->parsed != NULL, NULL);
-
- return gcr_parsed_get_attributes (self->pv->parsed);
-}
-
-/**
- * gcr_parsed_get_attributes:
- * @parsed: a parsed item
- *
- * Get the attributes which make up the parsed item.
- *
- * Returns: (transfer none) (allow-none): the attributes for the item; these
- * are owned by the parsed item and should not be freed
- */
-GckAttributes *
-gcr_parsed_get_attributes (GcrParsed *parsed)
-{
- while (parsed != NULL) {
- if (parsed->attrs != NULL)
- return parsed->attrs;
- parsed = parsed->next;
- }
-
- return NULL;
-}
-
-/**
- * gcr_parser_get_parsed_label:
- * @self: The parser
- *
- * Get the label of the currently parsed item. This is generally only valid
- * during the GcrParser::parsed signal.
- *
- * Returns: (allow-none): the label of the currently parsed item. The value is
- * owned by the parser and should not be freed.
- */
-const gchar*
-gcr_parser_get_parsed_label (GcrParser *self)
-{
- g_return_val_if_fail (GCR_IS_PARSER (self), NULL);
- g_return_val_if_fail (self->pv->parsed != NULL, NULL);
-
- return gcr_parsed_get_label (self->pv->parsed);
-}
-
-/**
- * gcr_parsed_get_label:
- * @parsed: a parsed item
- *
- * Get the label for the parsed item.
- *
- * Returns: (allow-none): the label for the item
- */
-const gchar*
-gcr_parsed_get_label (GcrParsed *parsed)
-{
- while (parsed != NULL) {
- if (parsed->label != NULL)
- return parsed->label;
- parsed = parsed->next;
- }
-
- return NULL;
-}
-
-/**
- * gcr_parser_get_parsed_block:
- * @self: a parser
- * @n_block: a location to place the size of the block
- *
- * Get the raw data block that represents this parsed object. This is only
- * valid during the GcrParser::parsed signal.
- *
- * Returns: (transfer none) (array length=n_block) (allow-none): the raw data
- * block of the currently parsed item; the value is owned by the parser
- * and should not be freed
- */
-const guchar *
-gcr_parser_get_parsed_block (GcrParser *self,
- gsize *n_block)
-{
- g_return_val_if_fail (GCR_IS_PARSER (self), NULL);
- g_return_val_if_fail (n_block != NULL, NULL);
- g_return_val_if_fail (self->pv->parsed != NULL, NULL);
-
- return gcr_parsed_get_data (self->pv->parsed, n_block);
-}
-
-/**
- * gcr_parsed_get_data:
- * @parsed: a parsed item
- * @n_data: location to store size of returned data
- *
- * Get the raw data block for the parsed item.
- *
- * Returns: (transfer full) (array length=n_data) (allow-none): the raw data of
- * the parsed item, or %NULL
- */
-const guchar *
-gcr_parsed_get_data (GcrParsed *parsed,
- gsize *n_data)
-{
- g_return_val_if_fail (n_data != NULL, NULL);
-
- while (parsed != NULL) {
- if (parsed->data != NULL) {
- *n_data = parsed->n_data;
- return parsed->data;
- }
- parsed = parsed->next;
- }
-
- *n_data = 0;
- return NULL;
-}
-
-/**
- * gcr_parser_get_parsed_format:
- * @self: a parser
- *
- * Get the format of the raw data block that represents this parsed object.
- * This corresponds with the data returned from gcr_parser_get_parsed_block().
- *
- * This is only valid during the GcrParser::parsed signal.
- *
- * Returns: the data format of the currently parsed item
- */
-GcrDataFormat
-gcr_parser_get_parsed_format (GcrParser *self)
-{
- g_return_val_if_fail (GCR_IS_PARSER (self), 0);
- g_return_val_if_fail (self->pv->parsed != NULL, 0);
-
- return gcr_parsed_get_format (self->pv->parsed);
-}
-
-/**
- * gcr_parsed_get_format:
- * @parsed: a parsed item
- *
- * Get the format of the parsed item.
- *
- * Returns: the data format of the item
- */
-GcrDataFormat
-gcr_parsed_get_format (GcrParsed *parsed)
-{
- while (parsed != NULL) {
- if (parsed->data != NULL)
- return parsed->format;
- parsed = parsed->next;
- }
-
- return 0;
-}
-/* ---------------------------------------------------------------------------------
- * STREAM PARSING
- */
-
-#define GCR_TYPE_PARSING (gcr_parsing_get_type ())
-#define GCR_PARSING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_PARSING, GcrParsing))
-#define GCR_IS_PARSING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_PARSING))
-
-typedef struct _GcrParsing {
- GObjectClass parent;
-
- GcrParser *parser;
- gboolean async;
- GCancellable *cancel;
-
- /* Failure information */
- GError *error;
- gboolean complete;
-
- /* Operation state */
- GInputStream *input;
- GByteArray *buffer;
-
- /* Async callback stuff */
- GAsyncReadyCallback callback;
- gpointer user_data;
-
-} GcrParsing;
-
-typedef struct _GcrParsingClass {
- GObjectClass parent_class;
-} GcrParsingClass;
-
-/* State forward declarations */
-static void state_cancelled (GcrParsing *self, gboolean async);
-static void state_failure (GcrParsing *self, gboolean async);
-static void state_complete (GcrParsing *self, gboolean async);
-static void state_parse_buffer (GcrParsing *self, gboolean async);
-static void state_read_buffer (GcrParsing *self, gboolean async);
-
-/* Other forward declarations */
-static GType gcr_parsing_get_type (void) G_GNUC_CONST;
-static void gcr_parsing_async_result_init (GAsyncResultIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (GcrParsing, gcr_parsing, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (G_TYPE_ASYNC_RESULT, gcr_parsing_async_result_init));
-
-#define BLOCK 4096
-
-static void
-next_state (GcrParsing *self, void (*state) (GcrParsing*, gboolean))
-{
- g_assert (GCR_IS_PARSING (self));
- g_assert (state);
-
- if (self->cancel && g_cancellable_is_cancelled (self->cancel))
- state = state_cancelled;
-
- (state) (self, self->async);
-}
-
-static void
-state_complete (GcrParsing *self, gboolean async)
-{
- g_assert (GCR_IS_PARSING (self));
- g_assert (!self->complete);
- self->complete = TRUE;
- if (async && self->callback != NULL)
- (self->callback) (G_OBJECT (self->parser), G_ASYNC_RESULT (self), self->user_data);
-}
-
-static void
-state_failure (GcrParsing *self, gboolean async)
-{
- g_assert (GCR_IS_PARSING (self));
- g_assert (self->error);
- next_state (self, state_complete);
-}
-
-static void
-state_cancelled (GcrParsing *self, gboolean async)
-{
- g_assert (GCR_IS_PARSING (self));
- if (self->cancel && g_cancellable_is_cancelled (self->cancel))
- g_cancellable_cancel (self->cancel);
- if (self->error)
- g_error_free (self->error);
- self->error = g_error_new_literal (GCR_DATA_ERROR, GCR_ERROR_CANCELLED, _("The operation was cancelled"));
- next_state (self, state_failure);
-}
-
-static void
-state_parse_buffer (GcrParsing *self, gboolean async)
-{
- GError *error = NULL;
- gboolean ret;
-
- g_assert (GCR_IS_PARSING (self));
- g_assert (self->buffer);
-
- ret = gcr_parser_parse_data (self->parser, self->buffer->data, self->buffer->len, &error);
-
- if (ret == TRUE) {
- next_state (self, state_complete);
- } else {
- g_propagate_error (&self->error, error);
- next_state (self, state_failure);
- }
-}
-
-static void
-complete_read_buffer (GcrParsing *self, gssize count, GError *error)
-{
- g_assert (GCR_IS_PARSING (self));
- g_assert (self->buffer);
-
- /* A failure */
- if (count == -1) {
- g_propagate_error (&self->error, error);
- next_state (self, state_failure);
- } else {
-
- g_return_if_fail (count >= 0 && count <= BLOCK);
- g_byte_array_set_size (self->buffer, self->buffer->len - (BLOCK - count));
-
- /* Finished reading */
- if (count == 0)
- next_state (self, state_parse_buffer);
-
- /* Read the next block */
- else
- next_state (self, state_read_buffer);
- }
-
-}
-
-static void
-on_read_buffer (GObject *obj, GAsyncResult *res, gpointer user_data)
-{
- GError *error = NULL;
- gssize count;
-
- count = g_input_stream_read_finish (G_INPUT_STREAM (obj), res, &error);
- complete_read_buffer (user_data, count, error);
-}
-
-static void
-state_read_buffer (GcrParsing *self, gboolean async)
-{
- GError *error = NULL;
- gssize count;
- gsize at;
-
- g_assert (GCR_IS_PARSING (self));
- g_assert (G_IS_INPUT_STREAM (self->input));
-
- if (!self->buffer)
- self->buffer = g_byte_array_sized_new (BLOCK);
-
- at = self->buffer->len;
- g_byte_array_set_size (self->buffer, at + BLOCK);
-
- if (async) {
- g_input_stream_read_async (self->input, self->buffer->data + at,
- BLOCK, G_PRIORITY_DEFAULT, self->cancel,
- on_read_buffer, self);
- } else {
- count = g_input_stream_read (self->input, self->buffer->data + at,
- BLOCK, self->cancel, &error);
- complete_read_buffer (self, count, error);
- }
-}
-
-static void
-gcr_parsing_init (GcrParsing *self)
-{
-
-}
-
-static void
-gcr_parsing_finalize (GObject *obj)
-{
- GcrParsing *self = GCR_PARSING (obj);
-
- g_object_unref (self->parser);
- self->parser = NULL;
-
- g_object_unref (self->input);
- self->input = NULL;
-
- if (self->cancel)
- g_object_unref (self->cancel);
- self->cancel = NULL;
-
- g_clear_error (&self->error);
-
- if (self->buffer)
- g_byte_array_free (self->buffer, TRUE);
- self->buffer = NULL;
-
- G_OBJECT_CLASS (gcr_parsing_parent_class)->finalize (obj);
-}
-
-static void
-gcr_parsing_class_init (GcrParsingClass *klass)
-{
- G_OBJECT_CLASS (klass)->finalize = gcr_parsing_finalize;
-}
-
-static gpointer
-gcr_parsing_real_get_user_data (GAsyncResult *base)
-{
- g_return_val_if_fail (GCR_IS_PARSING (base), NULL);
- return GCR_PARSING (base)->user_data;
-}
-
-static GObject*
-gcr_parsing_real_get_source_object (GAsyncResult *base)
-{
- g_return_val_if_fail (GCR_IS_PARSING (base), NULL);
- return G_OBJECT (GCR_PARSING (base)->parser);
-}
-
-static void
-gcr_parsing_async_result_init (GAsyncResultIface *iface)
-{
- iface->get_source_object = gcr_parsing_real_get_source_object;
- iface->get_user_data = gcr_parsing_real_get_user_data;
-}
-
-static GcrParsing*
-gcr_parsing_new (GcrParser *parser, GInputStream *input, GCancellable *cancel)
-{
- GcrParsing *self;
-
- g_assert (GCR_IS_PARSER (parser));
- g_assert (G_IS_INPUT_STREAM (input));
-
- self = g_object_new (GCR_TYPE_PARSING, NULL);
- self->parser = g_object_ref (parser);
- self->input = g_object_ref (input);
- if (cancel)
- self->cancel = g_object_ref (cancel);
-
- return self;
-}
-
-/**
- * gcr_parser_parse_stream:
- * @self: The parser
- * @input: The input stream
- * @cancellable: An optional cancellation object
- * @error: A location to raise an error on failure
- *
- * Parse items from the data in a #GInputStream. This function may block while
- * reading from the input stream. Use gcr_parser_parse_stream_async() for
- * a non-blocking variant.
- *
- * The GcrParser::parsed and GcrParser::authenticate signals
- * may fire during the parsing.
- *
- * Returns: Whether the parsing completed successfully or not.
- */
-gboolean
-gcr_parser_parse_stream (GcrParser *self, GInputStream *input, GCancellable *cancellable,
- GError **error)
-{
- GcrParsing *parsing;
-
- g_return_val_if_fail (GCR_IS_PARSER (self), FALSE);
- g_return_val_if_fail (G_IS_INPUT_STREAM (input), FALSE);
- g_return_val_if_fail (!error || !*error, FALSE);
-
- parsing = gcr_parsing_new (self, input, cancellable);
- parsing->async = FALSE;
-
- next_state (parsing, state_read_buffer);
- g_assert (parsing->complete);
-
- return gcr_parser_parse_stream_finish (self, G_ASYNC_RESULT (parsing), error);
-}
-
-/**
- * gcr_parser_parse_stream_async:
- * @self: The parser
- * @input: The input stream
- * @cancellable: An optional cancellation object
- * @callback: Called when the operation result is ready.
- * @user_data: Data to pass to callback
- *
- * Parse items from the data in a #GInputStream. This function completes
- * asyncronously and doesn't block.
- *
- * The GcrParser::parsed and GcrParser::authenticate signals
- * may fire during the parsing.
- */
-void
-gcr_parser_parse_stream_async (GcrParser *self, GInputStream *input, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- GcrParsing *parsing;
-
- g_return_if_fail (GCR_IS_PARSER (self));
- g_return_if_fail (G_IS_INPUT_STREAM (input));
-
- parsing = gcr_parsing_new (self, input, cancellable);
- parsing->async = TRUE;
- parsing->callback = callback;
- parsing->user_data = user_data;
-
- next_state (parsing, state_read_buffer);
-}
-
-/**
- * gcr_parser_parse_stream_finish:
- * @self: The parser
- * @result:The operation result
- * @error: A location to raise an error on failure
- *
- * Complete an operation to parse a stream.
- *
- * Returns: Whether the parsing completed successfully or not.
- */
-gboolean
-gcr_parser_parse_stream_finish (GcrParser *self, GAsyncResult *result, GError **error)
-{
- GcrParsing *parsing;
-
- g_return_val_if_fail (GCR_IS_PARSING (result), FALSE);
- g_return_val_if_fail (!error || !*error, FALSE);
-
- parsing = GCR_PARSING (result);
- g_return_val_if_fail (parsing->complete, FALSE);
-
- if (parsing->error) {
- g_propagate_error (error, parsing->error);
- return FALSE;
- }
-
- return TRUE;
-}
diff --git a/gcr/gcr-parser.h b/gcr/gcr-parser.h
deleted file mode 100644
index 99a7e872..00000000
--- a/gcr/gcr-parser.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2008 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef __GCR_PARSER_H__
-#define __GCR_PARSER_H__
-
-#include <glib-object.h>
-#include <gio/gio.h>
-
-#include "gcr-types.h"
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_PARSER (gcr_parser_get_type ())
-#define GCR_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_PARSER, GcrParser))
-#define GCR_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_PARSER, GcrParserClass))
-#define GCR_IS_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_PARSER))
-#define GCR_IS_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_PARSER))
-#define GCR_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_PARSER, GcrParserClass))
-
-typedef struct _GcrParser GcrParser;
-typedef struct _GcrParserClass GcrParserClass;
-typedef struct _GcrParserPrivate GcrParserPrivate;
-typedef struct _GcrParsed GcrParsed;
-
-struct _GcrParser {
- GObject parent;
-
- /*< private >*/
- GcrParserPrivate *pv;
-};
-
-struct _GcrParserClass {
- GObjectClass parent_class;
-
- /* signals --------------------------------------------------------- */
-
- /* A callback for each password needed */
- gboolean (*authenticate) (GcrParser *self, gint count);
-
- void (*parsed) (GcrParser *self);
-};
-
-GType gcr_parser_get_type (void);
-
-GcrParser* gcr_parser_new (void);
-
-void gcr_parser_format_enable (GcrParser *self,
- GcrDataFormat format);
-
-void gcr_parser_format_disable (GcrParser *self,
- GcrDataFormat format);
-
-gboolean gcr_parser_format_supported (GcrParser *self,
- GcrDataFormat format);
-
-gboolean gcr_parser_parse_data (GcrParser *self,
- const guchar *data,
- gsize n_data,
- GError **error);
-
-gboolean gcr_parser_parse_stream (GcrParser *self,
- GInputStream *input,
- GCancellable *cancellable,
- GError **error);
-
-void gcr_parser_parse_stream_async (GcrParser *self,
- GInputStream *input,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean gcr_parser_parse_stream_finish (GcrParser *self,
- GAsyncResult *result,
- GError **error);
-
-void gcr_parser_add_password (GcrParser *self,
- const gchar *password);
-
-GcrParsed * gcr_parser_get_parsed (GcrParser *self);
-
-const gchar* gcr_parser_get_parsed_label (GcrParser *self);
-
-const gchar* gcr_parser_get_parsed_description (GcrParser *self);
-
-GckAttributes* gcr_parser_get_parsed_attributes (GcrParser *self);
-
-const guchar * gcr_parser_get_parsed_block (GcrParser *self,
- gsize *n_block);
-
-GcrDataFormat gcr_parser_get_parsed_format (GcrParser *self);
-
-#define GCR_TYPE_PARSED (gcr_parsed_get_type ())
-
-GType gcr_parsed_get_type (void) G_GNUC_CONST;
-
-GcrParsed * gcr_parsed_ref (GcrParsed *parsed);
-
-void gcr_parsed_unref (gpointer parsed);
-
-const gchar* gcr_parsed_get_label (GcrParsed *parsed);
-
-const gchar* gcr_parsed_get_description (GcrParsed *parsed);
-
-GckAttributes* gcr_parsed_get_attributes (GcrParsed *parsed);
-
-const guchar * gcr_parsed_get_data (GcrParsed *parsed,
- gsize *n_data);
-
-GcrDataFormat gcr_parsed_get_format (GcrParsed *parsed);
-
-G_END_DECLS
-
-#endif /* __GCR_PARSER_H__ */
diff --git a/gcr/gcr-pkcs11-certificate.c b/gcr/gcr-pkcs11-certificate.c
deleted file mode 100644
index 25c22079..00000000
--- a/gcr/gcr-pkcs11-certificate.c
+++ /dev/null
@@ -1,452 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Collabora Ltd
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-pkcs11-certificate.h"
-
-#include <gck/gck.h>
-#include <string.h>
-
-#include "gcr-certificate.h"
-#include "gcr-internal.h"
-#include "gcr-library.h"
-
-#include "pkcs11/pkcs11.h"
-
-/**
- * SECTION:gcr-pkcs11-certificate
- * @title: GcrPkcs11Certificate
- * @short_description: A certificate loaded from PKCS\#11 storage
- *
- * A #GcrPkcs11Certificate is a certificate loaded from a PKCS\#11 storage.
- * It is also a valid #GckObject and can be used as such.
- *
- * Use gcr_pkcs11_certificate_lookup_issuer() to lookup the issuer of a given
- * certificate in the PKCS\#11 store.
- *
- * Various common PKCS\#11 certificate attributes are automatically loaded and
- * are available via gcr_pkcs11_certificate_get_attributes().
- */
-
-/**
- * GcrPkcs11Certificate:
- *
- * A certificate loaded from PKCS\#11 storage.
- */
-
-/**
- * GcrPkcs11CertificateClass:
- *
- * The class for #GcrPkcs11Certificate.
- */
-
-enum {
- PROP_0,
- PROP_ATTRIBUTES
-};
-
-struct _GcrPkcs11CertificatePrivate {
- GckAttributes *attrs;
-};
-
-static void gcr_certificate_iface (GcrCertificateIface *iface);
-G_DEFINE_TYPE_WITH_CODE (GcrPkcs11Certificate, gcr_pkcs11_certificate, GCK_TYPE_OBJECT,
- GCR_CERTIFICATE_MIXIN_IMPLEMENT_COMPARABLE ();
- G_IMPLEMENT_INTERFACE (GCR_TYPE_CERTIFICATE, gcr_certificate_iface);
-);
-
-typedef struct {
- GckAttributes *search;
- GcrCertificate *result;
-} lookup_issuer_closure;
-
-static void
-lookup_issuer_free (gpointer data)
-{
- lookup_issuer_closure *closure = data;
- gck_attributes_unref (closure->search);
- g_clear_object (&closure->result);
- g_free (closure);
-}
-
-static GckAttributes *
-prepare_lookup_certificate_issuer (GcrCertificate *cert)
-{
- GckAttributes *search;
- gpointer data;
- gsize n_data;
-
- search = gck_attributes_new ();
- gck_attributes_add_ulong (search, CKA_CLASS, CKO_CERTIFICATE);
- gck_attributes_add_ulong (search, CKA_CERTIFICATE_TYPE, CKC_X_509);
-
- data = gcr_certificate_get_issuer_raw (cert, &n_data);
- gck_attributes_add_data (search, CKA_SUBJECT, data, n_data);
- g_free (data);
-
- return search;
-}
-
-static GcrCertificate*
-perform_lookup_certificate (GckAttributes *search,
- GCancellable *cancellable,
- GError **error)
-{
- GcrCertificate *cert;
- GckObject *object;
- GckAttributes *attrs;
- GckModule *module;
- GckSession *session;
- GckEnumerator *en;
- GList *modules;
-
- if (!gcr_pkcs11_initialize (cancellable, error))
- return NULL;
-
- modules = gcr_pkcs11_get_modules ();
- en = gck_modules_enumerate_objects (modules, search, 0);
- gck_list_unref_free (modules);
-
- object = gck_enumerator_next (en, cancellable, error);
- g_object_unref (en);
-
- if (object == NULL)
- return NULL;
-
- /*
- * Only the CKA_VALUE, CKA_CLASS and CKA_CERTIFICATE_TYPE
- * is strictly necessary here, but we get more attrs.
- */
- attrs = gck_object_get (object, cancellable, error,
- CKA_VALUE, CKA_LABEL,
- CKA_ID, CKA_CLASS,
- CKA_CERTIFICATE_TYPE,
- CKA_ISSUER,
- CKA_SERIAL_NUMBER,
- GCK_INVALID);
-
- if (attrs == NULL) {
- g_object_unref (object);
- return NULL;
- }
-
- module = gck_object_get_module (object);
- session = gck_object_get_session (object);
-
- cert = g_object_new (GCR_TYPE_PKCS11_CERTIFICATE,
- "module", module,
- "handle", gck_object_get_handle (object),
- "session", session,
- "attributes", attrs,
- NULL);
-
- g_object_unref (module);
- g_object_unref (session);
- g_object_unref (object);
-
- gck_attributes_unref (attrs);
-
- return cert;
-}
-
-static void
-thread_lookup_certificate (GSimpleAsyncResult *res, GObject *object, GCancellable *cancel)
-{
- lookup_issuer_closure *closure;
- GError *error = NULL;
-
- closure = g_simple_async_result_get_op_res_gpointer (res);
- closure->result = perform_lookup_certificate (closure->search, cancel, &error);
-
- if (error != NULL) {
- g_simple_async_result_set_from_error (res, error);
- g_clear_error (&error);
- }
-}
-
-/* ----------------------------------------------------------------------------
- * OBJECT
- */
-
-static GObject*
-gcr_pkcs11_certificate_constructor (GType type, guint n_props, GObjectConstructParam *props)
-{
- gpointer obj = G_OBJECT_CLASS (gcr_pkcs11_certificate_parent_class)->constructor (type, n_props, props);
- GckAttributes *attrs;
- GckAttribute *attr;
- gulong value;
-
- attrs = gcr_pkcs11_certificate_get_attributes (obj);
- g_return_val_if_fail (attrs, NULL);
-
- if (!gck_attributes_find_ulong (attrs, CKA_CLASS, &value) ||
- value != CKO_CERTIFICATE) {
- g_warning ("attributes don't contain a certificate with: %s",
- "CKA_CLASS == CKO_CERTIFICATE");
- return NULL;
- }
-
- if (!gck_attributes_find_ulong (attrs, CKA_CERTIFICATE_TYPE, &value) ||
- value != CKC_X_509) {
- g_warning ("attributes don't contain a certificate with: %s",
- "CKA_CERTIFICATE_TYPE == CKC_X_509");
- return NULL;
- }
-
- attr = gck_attributes_find (attrs, CKA_VALUE);
- if (!attr || !attr->value || attr->length == 0 || attr->length == G_MAXULONG) {
- g_warning ("attributes don't contain a valid: CKA_VALUE");
- return NULL;
- }
-
- return obj;
-}
-
-static void
-gcr_pkcs11_certificate_init (GcrPkcs11Certificate *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_PKCS11_CERTIFICATE, GcrPkcs11CertificatePrivate);
-}
-
-static void
-gcr_pkcs11_certificate_set_property (GObject *obj, guint prop_id, const GValue *value,
- GParamSpec *pspec)
-{
- GcrPkcs11Certificate *self = GCR_PKCS11_CERTIFICATE (obj);
-
- switch (prop_id) {
- case PROP_ATTRIBUTES:
- g_return_if_fail (self->pv->attrs == NULL);
- self->pv->attrs = g_value_dup_boxed (value);
- g_return_if_fail (self->pv->attrs != NULL);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_pkcs11_certificate_get_property (GObject *obj, guint prop_id, GValue *value,
- GParamSpec *pspec)
-{
- GcrPkcs11Certificate *self = GCR_PKCS11_CERTIFICATE (obj);
-
- switch (prop_id) {
- case PROP_ATTRIBUTES:
- g_value_set_boxed (value, gcr_pkcs11_certificate_get_attributes (self));
- break;
- default:
- gcr_certificate_mixin_get_property (obj, prop_id, value, pspec);
- break;
- }
-}
-
-static void
-gcr_pkcs11_certificate_finalize (GObject *obj)
-{
- GcrPkcs11Certificate *self = GCR_PKCS11_CERTIFICATE (obj);
-
- gck_attributes_unref (self->pv->attrs);
-
- G_OBJECT_CLASS (gcr_pkcs11_certificate_parent_class)->finalize (obj);
-}
-
-static void
-gcr_pkcs11_certificate_class_init (GcrPkcs11CertificateClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- gobject_class->constructor = gcr_pkcs11_certificate_constructor;
- gobject_class->get_property = gcr_pkcs11_certificate_get_property;
- gobject_class->set_property = gcr_pkcs11_certificate_set_property;
- gobject_class->finalize = gcr_pkcs11_certificate_finalize;
-
- /**
- * GcrPkcs11Certificate:attributes:
- *
- * Automatically loaded attributes for this certificate.
- */
- g_object_class_install_property (gobject_class, PROP_ATTRIBUTES,
- g_param_spec_boxed ("attributes", "Attributes", "The data displayed in the renderer",
- GCK_TYPE_ATTRIBUTES, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- g_type_class_add_private (gobject_class, sizeof (GcrPkcs11CertificatePrivate));
-
- gcr_certificate_mixin_class_init (gobject_class);
- _gcr_initialize_library ();
-}
-
-static const guchar *
-gcr_pkcs11_certificate_get_der_data (GcrCertificate *cert,
- gsize *n_data)
-{
- GcrPkcs11Certificate *self = GCR_PKCS11_CERTIFICATE (cert);
- GckAttribute *attr;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (self), NULL);
- g_return_val_if_fail (n_data, NULL);
- g_return_val_if_fail (self->pv->attrs, NULL);
-
- attr = gck_attributes_find (self->pv->attrs, CKA_VALUE);
- g_return_val_if_fail (attr && attr->length != 0 && attr->length != G_MAXULONG, NULL);
- *n_data = attr->length;
- return attr->value;
-}
-
-static void
-gcr_certificate_iface (GcrCertificateIface *iface)
-{
- iface->get_der_data = gcr_pkcs11_certificate_get_der_data;
-}
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-/**
- * gcr_pkcs11_certificate_get_attributes:
- * @self: A #GcrPkcs11Certificate
- *
- * Access the automatically loaded attributes for this certificate.
- *
- * Returns: (transfer none): the certificate attributes
- */
-GckAttributes *
-gcr_pkcs11_certificate_get_attributes (GcrPkcs11Certificate *self)
-{
- g_return_val_if_fail (GCR_IS_PKCS11_CERTIFICATE (self), NULL);
- return self->pv->attrs;
-}
-
-/**
- * gcr_pkcs11_certificate_lookup_issuer:
- * @certificate: a #GcrCertificate
- * @cancellable: a #GCancellable
- * @error: a #GError, or NULL
- *
- * Lookup a the issuer of a @certificate in the PKCS\#11 storage. The
- * lookup is done using the issuer DN of the certificate. No certificate chain
- * verification is done. Use a crypto library to make trust decisions.
- *
- * This call may block, see gcr_pkcs11_certificate_lookup_issuer() for the
- * non-blocking version.
- *
- * Will return %NULL if no issuer certificate is found. Use @error to determine
- * if an error occurred.
- *
- * Returns: (transfer full): a new #GcrPkcs11Certificate, or %NULL
- */
-GcrCertificate *
-gcr_pkcs11_certificate_lookup_issuer (GcrCertificate *certificate, GCancellable *cancellable,
- GError **error)
-{
- GckAttributes *search;
- GcrCertificate *issuer;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (certificate), NULL);
-
- if (!gcr_pkcs11_initialize (cancellable, error))
- return NULL;
-
- search = prepare_lookup_certificate_issuer (certificate);
- g_return_val_if_fail (search, FALSE);
-
- issuer = perform_lookup_certificate (search, cancellable, error);
- gck_attributes_unref (search);
-
- return issuer;
-}
-
-/**
- * gcr_pkcs11_certificate_lookup_issuer_async:
- * @certificate: a #GcrCertificate
- * @cancellable: a #GCancellable
- * @callback: a #GAsyncReadyCallback to call when the operation completes
- * @user_data: the data to pass to callback function
- *
- * Lookup a the issuer of a @certificate in the PKCS\#11 storage. The
- * lookup is done using the issuer DN of the certificate. No certificate chain
- * verification is done. Use a crypto library to make trust decisions.
- *
- * When the operation is finished, callback will be called. You can then call
- * gcr_pkcs11_certificate_lookup_issuer_finish() to get the result of the
- * operation.
- */
-void
-gcr_pkcs11_certificate_lookup_issuer_async (GcrCertificate *certificate, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- GSimpleAsyncResult *async;
- lookup_issuer_closure *closure;
-
- g_return_if_fail (GCR_IS_CERTIFICATE (certificate));
-
- async = g_simple_async_result_new (G_OBJECT (certificate), callback, user_data,
- gcr_pkcs11_certificate_lookup_issuer_async);
- closure = g_new0 (lookup_issuer_closure, 1);
- closure->search = prepare_lookup_certificate_issuer (certificate);
- g_return_if_fail (closure->search);
- g_simple_async_result_set_op_res_gpointer (async, closure, lookup_issuer_free);
-
- g_simple_async_result_run_in_thread (async, thread_lookup_certificate,
- G_PRIORITY_DEFAULT, cancellable);
-
- g_object_unref (async);
-}
-
-/**
- * gcr_pkcs11_certificate_lookup_issuer_finish:
- * @result: the #GAsyncResult passed to the callback
- * @error: a #GError, or NULL
- *
- * Finishes an asynchronous operation started by
- * gcr_pkcs11_certificate_lookup_issuer_async().
- *
- * Will return %NULL if no issuer certificate is found. Use @error to determine
- * if an error occurred.
- *
- * Returns: (transfer full): a new #GcrPkcs11Certificate, or %NULL
- */
-GcrCertificate *
-gcr_pkcs11_certificate_lookup_issuer_finish (GAsyncResult *result, GError **error)
-{
- lookup_issuer_closure *closure;
- GObject *source;
-
- g_return_val_if_fail (G_IS_ASYNC_RESULT (result), NULL);
-
- source = g_async_result_get_source_object (result);
- g_return_val_if_fail (g_simple_async_result_is_valid (result, source,
- gcr_pkcs11_certificate_lookup_issuer_async), NULL);
- g_object_unref (source);
-
- if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error))
- return NULL;
-
- closure = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (result));
- if (closure->result != NULL)
- g_object_ref (closure->result);
- return closure->result;
-}
diff --git a/gcr/gcr-pkcs11-certificate.h b/gcr/gcr-pkcs11-certificate.h
deleted file mode 100644
index 04c15b36..00000000
--- a/gcr/gcr-pkcs11-certificate.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Collabora Ltd
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef __GCR_PKCS11_CERTIFICATE_H__
-#define __GCR_PKCS11_CERTIFICATE_H__
-
-#include "gcr-types.h"
-#include "gcr-certificate.h"
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_PKCS11_CERTIFICATE (gcr_pkcs11_certificate_get_type ())
-#define GCR_PKCS11_CERTIFICATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_PKCS11_CERTIFICATE, GcrPkcs11Certificate))
-#define GCR_PKCS11_CERTIFICATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_PKCS11_CERTIFICATE, GcrPkcs11CertificateClass))
-#define GCR_IS_PKCS11_CERTIFICATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_PKCS11_CERTIFICATE))
-#define GCR_IS_PKCS11_CERTIFICATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_PKCS11_CERTIFICATE))
-#define GCR_PKCS11_CERTIFICATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_PKCS11_CERTIFICATE, GcrPkcs11CertificateClass))
-
-typedef struct _GcrPkcs11Certificate GcrPkcs11Certificate;
-typedef struct _GcrPkcs11CertificateClass GcrPkcs11CertificateClass;
-typedef struct _GcrPkcs11CertificatePrivate GcrPkcs11CertificatePrivate;
-
-struct _GcrPkcs11Certificate {
- GckObject parent;
-
- /*< private >*/
- GcrPkcs11CertificatePrivate *pv;
-};
-
-struct _GcrPkcs11CertificateClass {
- /*< private >*/
- GckObjectClass parent_class;
-};
-
-GType gcr_pkcs11_certificate_get_type (void);
-
-GckAttributes* gcr_pkcs11_certificate_get_attributes (GcrPkcs11Certificate *self);
-
-GcrCertificate* gcr_pkcs11_certificate_lookup_issuer (GcrCertificate *certificate,
- GCancellable *cancellable,
- GError **error);
-
-void gcr_pkcs11_certificate_lookup_issuer_async (GcrCertificate *certificate,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-GcrCertificate* gcr_pkcs11_certificate_lookup_issuer_finish (GAsyncResult *result,
- GError **error);
-
-G_END_DECLS
-
-#endif /* __GCR_PKCS11_CERTIFICATE_H__ */
diff --git a/gcr/gcr-pkcs11-import-dialog.c b/gcr/gcr-pkcs11-import-dialog.c
deleted file mode 100644
index e33d624a..00000000
--- a/gcr/gcr-pkcs11-import-dialog.c
+++ /dev/null
@@ -1,278 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2008 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-dialog-util.h"
-#include "gcr-pkcs11-import-dialog.h"
-
-#include "egg/egg-entry-buffer.h"
-#include "egg/egg-secure-memory.h"
-
-#include <gtk/gtk.h>
-
-#include <glib/gi18n-lib.h>
-
-EGG_SECURE_DECLARE (import_dialog);
-
-#define GCR_PKCS11_IMPORT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_PKCS11_IMPORT_DIALOG, GcrPkcs11ImportDialogClass))
-#define GCR_IS_PKCS11_IMPORT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_PKCS11_IMPORT_DIALOG))
-#define GCR_PKCS11_IMPORT_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_PKCS11_IMPORT_DIALOG, GcrPkcs11ImportDialogClass))
-
-enum {
- PROP_0,
- PROP_IMPORTER
-};
-
-struct _GcrPkcs11ImportDialog {
- GtkDialog parent;
- GtkBuilder *builder;
- GtkWidget *password_area;
- GtkLabel *token_label;
- GtkImage *token_image;
- GtkEntry *password_entry;
- GtkEntry *label_entry;
- gboolean label_changed;
-};
-
-typedef struct _GcrPkcs11ImportDialogClass GcrPkcs11ImportDialogClass;
-
-struct _GcrPkcs11ImportDialogClass {
- GtkDialogClass parent;
-};
-
-G_DEFINE_TYPE (GcrPkcs11ImportDialog, _gcr_pkcs11_import_dialog, GTK_TYPE_DIALOG);
-
-static void
-on_label_changed (GtkEditable *editable,
- gpointer user_data)
-{
- GcrPkcs11ImportDialog *self = GCR_PKCS11_IMPORT_DIALOG (user_data);
- self->label_changed = TRUE;
-}
-
-static void
-_gcr_pkcs11_import_dialog_constructed (GObject *obj)
-{
- GcrPkcs11ImportDialog *self = GCR_PKCS11_IMPORT_DIALOG (obj);
- GError *error = NULL;
- GtkEntryBuffer *buffer;
- GtkWidget *widget;
- GtkBox *contents;
-
- G_OBJECT_CLASS (_gcr_pkcs11_import_dialog_parent_class)->constructed (obj);
-
- if (!gtk_builder_add_from_file (self->builder, UIDIR "gcr-pkcs11-import-dialog.ui", &error)) {
- g_warning ("couldn't load ui builder file: %s", error->message);
- return;
- }
-
- /* Fill in the dialog from builder */
- widget = GTK_WIDGET (gtk_builder_get_object (self->builder, "pkcs11-import-dialog"));
- contents = GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self)));
- gtk_box_pack_start (contents, widget, TRUE, TRUE, 0);
-
- /* The password area */
- self->password_area = GTK_WIDGET (gtk_builder_get_object (self->builder, "unlock-area"));
- gtk_widget_hide (self->password_area);
-
- /* Add a secure entry */
- buffer = egg_entry_buffer_new ();
- self->password_entry = GTK_ENTRY (gtk_builder_get_object (self->builder, "password-entry"));
- gtk_entry_set_buffer (self->password_entry, buffer);
- gtk_entry_set_activates_default (self->password_entry, TRUE);
- g_object_unref (buffer);
-
- self->token_label = GTK_LABEL (gtk_builder_get_object (self->builder, "token-description"));
- self->token_image = GTK_IMAGE (gtk_builder_get_object (self->builder, "token-image"));
-
- /* Setup the label */
- self->label_entry = GTK_ENTRY (gtk_builder_get_object (self->builder, "label-entry"));
- g_signal_connect (self->label_entry, "changed", G_CALLBACK (on_label_changed), self);
- gtk_entry_set_activates_default (self->label_entry, TRUE);
-
- /* Add our various buttons */
- gtk_dialog_add_button (GTK_DIALOG (self), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
- gtk_dialog_add_button (GTK_DIALOG (self), GTK_STOCK_OK, GTK_RESPONSE_OK);
- gtk_dialog_set_default_response (GTK_DIALOG (self), GTK_RESPONSE_OK);
-
- gtk_window_set_modal (GTK_WINDOW (self), TRUE);
-}
-
-static void
-_gcr_pkcs11_import_dialog_init (GcrPkcs11ImportDialog *self)
-{
- self->builder = gtk_builder_new ();
-}
-
-static void
-_gcr_pkcs11_import_dialog_finalize (GObject *obj)
-{
- GcrPkcs11ImportDialog *self = GCR_PKCS11_IMPORT_DIALOG (obj);
-
- g_object_unref (self->builder);
-
- G_OBJECT_CLASS (_gcr_pkcs11_import_dialog_parent_class)->finalize (obj);
-}
-
-static void
-_gcr_pkcs11_import_dialog_class_init (GcrPkcs11ImportDialogClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- gobject_class->constructed = _gcr_pkcs11_import_dialog_constructed;
- gobject_class->finalize = _gcr_pkcs11_import_dialog_finalize;
-}
-
-GcrPkcs11ImportDialog *
-_gcr_pkcs11_import_dialog_new (GtkWindow *parent)
-{
- GcrPkcs11ImportDialog *dialog;
-
- g_return_val_if_fail (parent == NULL || GTK_IS_WINDOW (parent), NULL);
-
- dialog = g_object_new (GCR_TYPE_PKCS11_IMPORT_DIALOG,
- "transient-for", parent,
- NULL);
-
- return g_object_ref_sink (dialog);
-}
-
-void
-_gcr_pkcs11_import_dialog_get_supplements (GcrPkcs11ImportDialog *self,
- GckAttributes *attributes)
-{
- const gchar *label;
-
- g_return_if_fail (GCR_IS_PKCS11_IMPORT_DIALOG (self));
- g_return_if_fail (attributes != NULL);
-
- label = gtk_entry_get_text (self->label_entry);
- if (self->label_changed && label != NULL && label[0])
- gck_attributes_set_string (attributes, CKA_LABEL, label);
-}
-
-void
-_gcr_pkcs11_import_dialog_set_supplements (GcrPkcs11ImportDialog *self,
- GckAttributes *attributes)
-{
- gchar *label;
-
- g_return_if_fail (GCR_IS_PKCS11_IMPORT_DIALOG (self));
- g_return_if_fail (attributes != NULL);
-
- if (!gck_attributes_find_string (attributes, CKA_LABEL, &label))
- label = NULL;
-
- if (label == NULL)
- gtk_entry_set_placeholder_text (self->label_entry, _("Automatically chosen"));
- gtk_entry_set_text (self->label_entry, label == NULL ? "" : label);
- g_free (label);
-
- self->label_changed = FALSE;
-}
-
-gboolean
-_gcr_pkcs11_import_dialog_run (GcrPkcs11ImportDialog *self)
-{
- gboolean ret = FALSE;
-
- g_return_val_if_fail (GCR_IS_PKCS11_IMPORT_DIALOG (self), FALSE);
-
- if (gtk_dialog_run (GTK_DIALOG (self)) == GTK_RESPONSE_OK) {
- ret = TRUE;
- }
-
- gtk_widget_hide (GTK_WIDGET (self));
-
- return ret;
-}
-
-void
-_gcr_pkcs11_import_dialog_run_async (GcrPkcs11ImportDialog *self,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- g_return_if_fail (GCR_IS_PKCS11_IMPORT_DIALOG (self));
-
- _gcr_dialog_util_run_async (GTK_DIALOG (self), cancellable, callback, user_data);
-}
-
-gboolean
-_gcr_pkcs11_import_dialog_run_finish (GcrPkcs11ImportDialog *self,
- GAsyncResult *result)
-{
- gint response;
-
- g_return_val_if_fail (GCR_IS_PKCS11_IMPORT_DIALOG (self), FALSE);
-
- response = _gcr_dialog_util_run_finish (GTK_DIALOG (self), result);
-
- gtk_widget_hide (GTK_WIDGET (self));
-
- return (response == GTK_RESPONSE_OK) ? TRUE : FALSE;
-}
-
-GTlsInteractionResult
-_gcr_pkcs11_import_dialog_run_ask_password (GcrPkcs11ImportDialog *self,
- GTlsPassword *password,
- GCancellable *cancellable,
- GError **error)
-{
- GckTokenInfo *token_info;
- const gchar *value;
- GckSlot *slot;
- GIcon *icon;
- gboolean ret;
-
- g_return_val_if_fail (GCR_IS_PKCS11_IMPORT_DIALOG (self), G_TLS_INTERACTION_UNHANDLED);
- g_return_val_if_fail (G_IS_TLS_PASSWORD (password), G_TLS_INTERACTION_UNHANDLED);
- g_return_val_if_fail (error == NULL || *error == NULL, G_TLS_INTERACTION_UNHANDLED);
-
- if (GCK_IS_PASSWORD (password)) {
- slot = gck_password_get_token (GCK_PASSWORD (password));
- token_info = gck_slot_get_token_info (slot);
- icon = gcr_icon_for_token (token_info);
- gtk_image_set_from_gicon (self->token_image, icon, GTK_ICON_SIZE_BUTTON);
- gck_token_info_free (token_info);
- g_object_unref (icon);
- }
-
- gtk_label_set_text (self->token_label, g_tls_password_get_description (password));
-
- gtk_widget_show (self->password_area);
-
- ret = _gcr_pkcs11_import_dialog_run (self);
-
- gtk_widget_hide (self->password_area);
-
- if (!ret) {
- g_set_error (error, G_IO_ERROR, G_IO_ERROR_CANCELLED,
- _("The user cancelled the operation"));
- return G_TLS_INTERACTION_FAILED;
- }
-
- value = gtk_entry_get_text (self->password_entry);
- g_tls_password_set_value_full (password, egg_secure_strdup (value),
- -1, egg_secure_free);
- return G_TLS_INTERACTION_HANDLED;
-}
diff --git a/gcr/gcr-pkcs11-import-dialog.h b/gcr/gcr-pkcs11-import-dialog.h
deleted file mode 100644
index 38a1dd4c..00000000
--- a/gcr/gcr-pkcs11-import-dialog.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2008 Stefan Walter
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#ifndef __GCR_PKCS11_IMPORT_DIALOG_H__
-#define __GCR_PKCS11_IMPORT_DIALOG_H__
-
-#include "gcr.h"
-
-#include <gtk/gtk.h>
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_PKCS11_IMPORT_DIALOG (_gcr_pkcs11_import_dialog_get_type ())
-#define GCR_PKCS11_IMPORT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_PKCS11_IMPORT_DIALOG, GcrPkcs11ImportDialog))
-#define GCR_IS_PKCS11_IMPORT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_PKCS11_IMPORT_DIALOG))
-
-typedef struct _GcrPkcs11ImportDialog GcrPkcs11ImportDialog;
-
-GType _gcr_pkcs11_import_dialog_get_type (void) G_GNUC_CONST;
-
-GcrPkcs11ImportDialog * _gcr_pkcs11_import_dialog_new (GtkWindow *parent);
-
-void _gcr_pkcs11_import_dialog_get_supplements (GcrPkcs11ImportDialog *self,
- GckAttributes *attributes);
-
-void _gcr_pkcs11_import_dialog_set_supplements (GcrPkcs11ImportDialog *self,
- GckAttributes *attributes);
-
-gboolean _gcr_pkcs11_import_dialog_run (GcrPkcs11ImportDialog *self);
-
-void _gcr_pkcs11_import_dialog_run_async (GcrPkcs11ImportDialog *self,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean _gcr_pkcs11_import_dialog_run_finish (GcrPkcs11ImportDialog *self,
- GAsyncResult *result);
-
-GTlsInteractionResult _gcr_pkcs11_import_dialog_run_ask_password (GcrPkcs11ImportDialog *self,
- GTlsPassword *password,
- GCancellable *cancellable,
- GError **error);
-
-G_END_DECLS
-
-#endif /* __GCR_PKCS11_IMPORT_DIALOG_H__ */
diff --git a/gcr/gcr-pkcs11-import-dialog.ui b/gcr/gcr-pkcs11-import-dialog.ui
deleted file mode 100644
index a565cf1f..00000000
--- a/gcr/gcr-pkcs11-import-dialog.ui
+++ /dev/null
@@ -1,251 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<interface>
- <!-- interface-requires gtk+ 2.12 -->
- <object class="GtkVBox" id="pkcs11-import-dialog">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">6</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkFrame" id="unlock-area">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
- <child>
- <object class="GtkAlignment" id="alignment2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="left_padding">12</property>
- <child>
- <object class="GtkBox" id="box1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel" id="password-description">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">In order to import, please enter the password.</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkGrid" id="grid2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
- <child>
- <object class="GtkEntry" id="password-entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="invisible_char">â—</property>
- <property name="visibility">False</property>
- <property name="width_chars">20</property>
- <property name="invisible_char_set">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="password-label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Password:</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="token-label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Token:</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="box2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkImage" id="token-image">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="stock">gtk-missing-image</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="token-description">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Label</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="label5">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">&lt;b&gt;Unlock&lt;/b&gt;</property>
- <property name="use_markup">True</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkFrame" id="settings-area">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
- <child>
- <object class="GtkAlignment" id="alignment1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="left_padding">12</property>
- <child>
- <object class="GtkGrid" id="grid1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">12</property>
- <child>
- <object class="GtkLabel" id="label-label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Label:</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="label-entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="invisible_char">â—</property>
- <property name="width_chars">20</property>
- <property name="invisible_char_set">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- </object>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="label4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_bottom">6</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">&lt;b&gt;Import settings&lt;/b&gt;</property>
- <property name="use_markup">True</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <object class="GtkSizeGroup" id="entry-size-group">
- <property name="mode">GTK_SIZE_GROUP_HORIZONTAL</property>
- <widgets>
- <widget name="password-label"/>
- <widget name="token-label"/>
- <widget name="label-label"/>
- </widgets>
- </object>
-</interface>
diff --git a/gcr/gcr-pkcs11-import-interaction.c b/gcr/gcr-pkcs11-import-interaction.c
deleted file mode 100644
index e9a18335..00000000
--- a/gcr/gcr-pkcs11-import-interaction.c
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2008 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-dialog-util.h"
-#include "gcr-import-interaction.h"
-#include "gcr-pkcs11-import-interaction.h"
-
-#include <glib/gi18n-lib.h>
-
-#define GCR_PKCS11_IMPORT_INTERACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_PKCS11_IMPORT_INTERACTION, GcrPkcs11ImportInteractionClass))
-#define GCR_IS_PKCS11_IMPORT_INTERACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_PKCS11_IMPORT_INTERACTION))
-#define GCR_PKCS11_IMPORT_INTERACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_PKCS11_IMPORT_INTERACTION, GcrPkcs11ImportInteractionClass))
-
-enum {
- PROP_0,
- PROP_PARENT_WINDOW
-};
-
-typedef struct _GcrPkcs11ImportInteractionClass GcrPkcs11ImportInteractionClass;
-
-struct _GcrPkcs11ImportInteraction {
- GTlsInteraction parent;
- gboolean supplemented;
- GtkWindow *parent_window;
- GcrPkcs11ImportDialog *dialog;
-};
-
-struct _GcrPkcs11ImportInteractionClass {
- GTlsInteractionClass parent_class;
-};
-
-static void _gcr_pkcs11_import_interaction_iface_init (GcrImportInteractionIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE(GcrPkcs11ImportInteraction, _gcr_pkcs11_import_interaction, G_TYPE_TLS_INTERACTION,
- G_IMPLEMENT_INTERFACE (GCR_TYPE_IMPORT_INTERACTION, _gcr_pkcs11_import_interaction_iface_init));
-
-static void
-_gcr_pkcs11_import_interaction_init (GcrPkcs11ImportInteraction *self)
-{
- self->dialog = _gcr_pkcs11_import_dialog_new (self->parent_window);
-}
-
-static void
-_gcr_pkcs11_import_interaction_dispose (GObject *obj)
-{
- GcrPkcs11ImportInteraction *self = GCR_PKCS11_IMPORT_INTERACTION (obj);
-
- g_clear_object (&self->dialog);
-
- G_OBJECT_CLASS (_gcr_pkcs11_import_interaction_parent_class)->dispose (obj);
-}
-
-static void
-_gcr_pkcs11_import_interaction_set_property (GObject *obj,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GcrPkcs11ImportInteraction *self = GCR_PKCS11_IMPORT_INTERACTION (obj);
-
- switch (prop_id) {
- case PROP_PARENT_WINDOW:
- gtk_window_set_transient_for (GTK_WINDOW (self->dialog),
- g_value_get_object (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-_gcr_pkcs11_import_interaction_get_property (GObject *obj,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GcrPkcs11ImportInteraction *self = GCR_PKCS11_IMPORT_INTERACTION (obj);
-
- switch (prop_id) {
- case PROP_PARENT_WINDOW:
- g_value_set_object (value, gtk_window_get_transient_for (GTK_WINDOW (self->dialog)));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static GTlsInteractionResult
-_gcr_pkcs11_import_interaction_ask_password (GTlsInteraction *interaction,
- GTlsPassword *password,
- GCancellable *cancellable,
- GError **error)
-{
- GcrPkcs11ImportInteraction *self = GCR_PKCS11_IMPORT_INTERACTION (interaction);
-
- g_return_val_if_fail (self->dialog != NULL, G_TLS_INTERACTION_UNHANDLED);
-
- self->supplemented = TRUE;
- return _gcr_pkcs11_import_dialog_run_ask_password (self->dialog, password, cancellable, error);
-}
-
-static void
-_gcr_pkcs11_import_interaction_supplement_prep (GcrImportInteraction *interaction,
- GckAttributes *attributes)
-{
- GcrPkcs11ImportInteraction *self = GCR_PKCS11_IMPORT_INTERACTION (interaction);
-
- self->supplemented = FALSE;
- _gcr_pkcs11_import_dialog_set_supplements (self->dialog, attributes);
-}
-
-static GTlsInteractionResult
-_gcr_pkcs11_import_interaction_supplement (GcrImportInteraction *interaction,
- GckAttributes *attributes,
- GCancellable *cancellable,
- GError **error)
-{
- GcrPkcs11ImportInteraction *self = GCR_PKCS11_IMPORT_INTERACTION (interaction);
-
- g_return_val_if_fail (self->dialog != NULL, G_TLS_INTERACTION_UNHANDLED);
-
- if (self->supplemented)
- return G_TLS_INTERACTION_HANDLED;
-
- self->supplemented = TRUE;
- if (_gcr_pkcs11_import_dialog_run (self->dialog)) {
- _gcr_pkcs11_import_dialog_get_supplements (self->dialog, attributes);
- return G_TLS_INTERACTION_HANDLED;
-
- } else {
- g_set_error (error, G_IO_ERROR, G_IO_ERROR_CANCELLED, _("The user cancelled the operation"));
- return G_TLS_INTERACTION_FAILED;
- }
-}
-
-static void
-on_dialog_run_async (GObject *source,
- GAsyncResult *result,
- gpointer user_data)
-{
- GSimpleAsyncResult *res = G_SIMPLE_ASYNC_RESULT (user_data);
- GckAttributes *attributes = g_simple_async_result_get_op_res_gpointer (res);
-
- if (_gcr_pkcs11_import_dialog_run_finish (GCR_PKCS11_IMPORT_DIALOG (source), result)) {
- _gcr_pkcs11_import_dialog_get_supplements (GCR_PKCS11_IMPORT_DIALOG (source), attributes);
-
- } else {
- g_simple_async_result_set_error (res, G_IO_ERROR, G_IO_ERROR_CANCELLED,
- _("The user cancelled the operation"));
- }
-
- g_simple_async_result_complete (res);
- g_object_unref (res);
-}
-
-static void
-_gcr_pkcs11_import_interaction_supplement_async (GcrImportInteraction *interaction,
- GckAttributes *attributes,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- GcrPkcs11ImportInteraction *self = GCR_PKCS11_IMPORT_INTERACTION (interaction);
- GSimpleAsyncResult *res;
-
- g_return_if_fail (self->dialog != NULL);
-
- res = g_simple_async_result_new (G_OBJECT (interaction), callback, user_data,
- _gcr_pkcs11_import_interaction_supplement_async);
-
- /* If dialog was already shown, then short circuit */
- if (self->supplemented) {
- g_simple_async_result_complete_in_idle (res);
-
- } else {
- self->supplemented = TRUE;
- g_simple_async_result_set_op_res_gpointer (res, gck_attributes_ref (attributes),
- (GDestroyNotify)gck_attributes_unref);
- _gcr_pkcs11_import_dialog_run_async (self->dialog, cancellable,
- on_dialog_run_async, g_object_ref (res));
- }
-
- g_object_unref (res);
-}
-
-static GTlsInteractionResult
-_gcr_pkcs11_import_interaction_supplement_finish (GcrImportInteraction *interaction,
- GAsyncResult *result,
- GError **error)
-{
- GcrPkcs11ImportInteraction *self = GCR_PKCS11_IMPORT_INTERACTION (interaction);
-
- g_return_val_if_fail (self->dialog != NULL, G_TLS_INTERACTION_UNHANDLED);
- g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (interaction),
- _gcr_pkcs11_import_interaction_supplement_async), G_TLS_INTERACTION_UNHANDLED);
-
- if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error))
- return G_TLS_INTERACTION_FAILED;
-
- return G_TLS_INTERACTION_HANDLED;
-
-}
-
-static void
-_gcr_pkcs11_import_interaction_iface_init (GcrImportInteractionIface *iface)
-{
- iface->supplement_prep = _gcr_pkcs11_import_interaction_supplement_prep;
- iface->supplement = _gcr_pkcs11_import_interaction_supplement;
- iface->supplement_async = _gcr_pkcs11_import_interaction_supplement_async;
- iface->supplement_finish = _gcr_pkcs11_import_interaction_supplement_finish;
-}
-
-static void
-_gcr_pkcs11_import_interaction_class_init (GcrPkcs11ImportInteractionClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- GTlsInteractionClass *interaction_class = G_TLS_INTERACTION_CLASS (klass);
-
- gobject_class->dispose = _gcr_pkcs11_import_interaction_dispose;
- gobject_class->set_property = _gcr_pkcs11_import_interaction_set_property;
- gobject_class->get_property = _gcr_pkcs11_import_interaction_get_property;
-
- interaction_class->ask_password = _gcr_pkcs11_import_interaction_ask_password;
-
- g_object_class_install_property (gobject_class, PROP_PARENT_WINDOW,
- g_param_spec_object ("parent-window", "Parent Window", "Prompt Parent Window",
- GTK_TYPE_WINDOW, G_PARAM_READWRITE));
-}
-
-GTlsInteraction *
-_gcr_pkcs11_import_interaction_new (GtkWindow *parent_window)
-{
- g_return_val_if_fail (parent_window == NULL || GTK_IS_WINDOW (parent_window), NULL);
- return g_object_new (GCR_TYPE_PKCS11_IMPORT_INTERACTION,
- "parent-window", parent_window,
- NULL);
-}
diff --git a/gcr/gcr-pkcs11-import-interaction.h b/gcr/gcr-pkcs11-import-interaction.h
deleted file mode 100644
index 97027ba9..00000000
--- a/gcr/gcr-pkcs11-import-interaction.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#ifndef __GCR_PKCS11_IMPORT_INTERACTION_H__
-#define __GCR_PKCS11_IMPORT_INTERACTION_H__
-
-#include "gcr.h"
-
-#include "gcr-pkcs11-import-dialog.h"
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_PKCS11_IMPORT_INTERACTION (_gcr_pkcs11_import_interaction_get_type ())
-#define GCR_PKCS11_IMPORT_INTERACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_PKCS11_IMPORT_INTERACTION, GcrPkcs11ImportInteraction))
-#define GCR_IS_PKCS11_IMPORT_INTERACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_PKCS11_IMPORT_INTERACTION))
-
-typedef struct _GcrPkcs11ImportInteraction GcrPkcs11ImportInteraction;
-
-GType _gcr_pkcs11_import_interaction_get_type (void) G_GNUC_CONST;
-
-GTlsInteraction * _gcr_pkcs11_import_interaction_new (GtkWindow *parent_window);
-
-G_END_DECLS
-
-#endif /* __GCR_PKCS11_IMPORT_INTERACTION_H__ */
diff --git a/gcr/gcr-pkcs11-importer.c b/gcr/gcr-pkcs11-importer.c
deleted file mode 100644
index 5cc60b62..00000000
--- a/gcr/gcr-pkcs11-importer.c
+++ /dev/null
@@ -1,910 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2008 Stefan Walter
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#define DEBUG_FLAG GCR_DEBUG_IMPORT
-#include "gcr-debug.h"
-#include "gcr-fingerprint.h"
-#include "gcr-icons.h"
-#include "gcr-internal.h"
-#include "gcr-library.h"
-#include "gcr-import-interaction.h"
-#include "gcr-internal.h"
-#include "gcr-parser.h"
-#include "gcr-pkcs11-importer.h"
-
-#include "egg/egg-hex.h"
-
-#include <gck/gck.h>
-
-#include <gcrypt.h>
-
-#include <glib/gi18n-lib.h>
-
-enum {
- PROP_0,
- PROP_LABEL,
- PROP_ICON,
- PROP_INTERACTION,
- PROP_SLOT,
- PROP_IMPORTED,
- PROP_QUEUED
-};
-
-typedef struct _GcrPkcs11ImporterClass GcrPkcs11ImporterClass;
-
-struct _GcrPkcs11Importer {
- GObject parent;
- GckSlot *slot;
- GList *objects;
- GckSession *session;
- GQueue *queue;
- GTlsInteraction *interaction;
- gboolean any_private;
-};
-
-struct _GcrPkcs11ImporterClass {
- GObjectClass parent_class;
-};
-
-typedef struct {
- GcrPkcs11Importer *importer;
- GCancellable *cancellable;
- gboolean prompted;
- gboolean async;
- GckAttributes *supplement;
-} GcrImporterData;
-
-/* State forward declarations */
-static void state_cancelled (GSimpleAsyncResult *res,
- gboolean async);
-
-static void state_complete (GSimpleAsyncResult *res,
- gboolean async);
-
-static void state_create_object (GSimpleAsyncResult *res,
- gboolean async);
-
-static void state_supplement (GSimpleAsyncResult *res,
- gboolean async);
-
-static void state_open_session (GSimpleAsyncResult *res,
- gboolean async);
-
-static void _gcr_pkcs11_importer_init_iface (GcrImporterIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (GcrPkcs11Importer, _gcr_pkcs11_importer, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (GCR_TYPE_IMPORTER, _gcr_pkcs11_importer_init_iface);
-);
-
-#define BLOCK 4096
-
-static void
-gcr_importer_data_free (gpointer data)
-{
- GcrImporterData *state = data;
-
- g_clear_object (&state->cancellable);
- g_clear_object (&state->importer);
- g_free (state);
-}
-
-static void
-next_state (GSimpleAsyncResult *res,
- void (*state) (GSimpleAsyncResult *, gboolean))
-{
- GcrImporterData *data = g_simple_async_result_get_op_res_gpointer (res);
-
- g_assert (state);
-
- if (g_cancellable_is_cancelled (data->cancellable))
- state = state_cancelled;
-
- (state) (res, data->async);
-}
-
-/* ---------------------------------------------------------------------------------
- * COMPLETE
- */
-
-static void
-state_complete (GSimpleAsyncResult *res,
- gboolean async)
-{
- g_simple_async_result_complete (res);
-}
-
-static void
-state_cancelled (GSimpleAsyncResult *res,
- gboolean async)
-{
- GcrImporterData *data = g_simple_async_result_get_op_res_gpointer (res);
- GError *error = NULL;
-
- if (data->cancellable && !g_cancellable_is_cancelled (data->cancellable))
- g_cancellable_cancel (data->cancellable);
-
- g_cancellable_set_error_if_cancelled (data->cancellable, &error);
- g_simple_async_result_take_error (res, error);
- next_state (res, state_complete);
-}
-
-/* ---------------------------------------------------------------------------------
- * CREATE OBJECTS
- */
-
-static void
-complete_create_object (GSimpleAsyncResult *res,
- GckObject *object,
- GError *error)
-{
- GcrImporterData *data = g_simple_async_result_get_op_res_gpointer (res);
- GcrPkcs11Importer *self = data->importer;
-
- if (object == NULL) {
- g_simple_async_result_take_error (res, error);
- next_state (res, state_complete);
-
- } else {
- self->objects = g_list_append (self->objects, object);
- next_state (res, state_create_object);
- }
-}
-
-static void
-on_create_object (GObject *source,
- GAsyncResult *result,
- gpointer user_data)
-{
- GSimpleAsyncResult *res = G_SIMPLE_ASYNC_RESULT (user_data);
- GError *error = NULL;
- GckObject *object;
-
- object = gck_session_create_object_finish (GCK_SESSION (source), result, &error);
- complete_create_object (res, object, error);
- g_object_unref (res);
-}
-
-static void
-state_create_object (GSimpleAsyncResult *res,
- gboolean async)
-{
- GcrImporterData *data = g_simple_async_result_get_op_res_gpointer (res);
- GcrPkcs11Importer *self = data->importer;
- GckAttributes *attrs;
- GckObject *object;
- GError *error = NULL;
-
- /* No more objects */
- if (g_queue_is_empty (self->queue)) {
- next_state (res, state_complete);
-
- } else {
-
- /* Pop first one off the list */
- attrs = g_queue_pop_head (self->queue);
- g_assert (attrs != NULL);
-
- if (async) {
- gck_session_create_object_async (self->session, attrs,
- data->cancellable, on_create_object,
- g_object_ref (res));
- } else {
- object = gck_session_create_object (self->session, attrs,
- data->cancellable, &error);
- complete_create_object (res, object, error);
- }
-
- gck_attributes_unref (attrs);
- }
-}
-
-/* ---------------------------------------------------------------------------------
- * SUPPLEMENTING and FIXING UP
- */
-
-typedef struct {
- GckAttributes *certificate;
- GckAttributes *private_key;
-} CertificateKeyPair;
-
-static void
-supplement_with_attributes (GckAttributes *attrs,
- GckAttributes *supplements)
-{
- GckAttribute *supplement;
- gint i;
-
- for (i = 0; i < gck_attributes_count (supplements); i++) {
- supplement = gck_attributes_at (supplements, i);
- if (!gck_attribute_is_invalid (supplement) && supplement->length != 0)
- gck_attributes_add (attrs, supplement);
- }
-}
-
-static void
-supplement_id_for_data (GckAttributes *attrs,
- guchar *nonce,
- gsize n_once,
- gpointer data,
- gsize n_data)
-{
- gcry_md_hd_t mdh;
- gcry_error_t gcry;
-
- if (gck_attributes_find (attrs, CKA_ID) != NULL)
- return;
-
- gcry = gcry_md_open (&mdh, GCRY_MD_SHA1, 0);
- g_return_if_fail (gcry == 0);
-
- gcry_md_write (mdh, nonce, n_once);
- gcry_md_write (mdh, data, n_data);
-
- gck_attributes_add_data (attrs, CKA_ID,
- gcry_md_read (mdh, 0),
- gcry_md_get_algo_dlen (GCRY_MD_SHA1));
-
- gcry_md_close (mdh);
-}
-
-static void
-supplement_attributes (GcrPkcs11Importer *self,
- GckAttributes *supplements)
-{
- GHashTable *pairs;
- GHashTable *paired;
- CertificateKeyPair *pair;
- gboolean supplemented = FALSE;
- GckAttributes *attrs;
- gulong klass;
- guchar *finger;
- gchar *fingerprint;
- guchar nonce[20];
- GHashTableIter iter;
- gsize n_finger;
- GQueue *queue;
- GList *l;
-
- /* A table of certificate/key pairs by fingerprint */
- pairs = g_hash_table_new_full (g_str_hash, g_str_equal,
- g_free, g_free);
-
- for (l = self->queue->head; l != NULL; l = g_list_next (l)) {
- attrs = l->data;
- if (!gck_attributes_find_ulong (attrs, CKA_CLASS, &klass))
- g_return_if_reached ();
-
- /* Make a string fingerprint for this guy */
- finger = gcr_fingerprint_from_attributes (attrs, G_CHECKSUM_SHA1,
- &n_finger);
- if (finger) {
- fingerprint = egg_hex_encode (finger, n_finger);
- g_free (finger);
-
- pair = g_hash_table_lookup (pairs, fingerprint);
- if (pair == NULL) {
- pair = g_new0 (CertificateKeyPair, 1);
- g_hash_table_insert (pairs, fingerprint, pair);
- } else {
- g_free (fingerprint);
- }
- } else {
- pair = NULL;
- }
-
- fingerprint = NULL;
-
- gck_attributes_set_boolean (attrs, CKA_TOKEN, CK_TRUE);
-
- switch (klass) {
- case CKO_CERTIFICATE:
- gck_attributes_set_boolean (attrs, CKA_PRIVATE, FALSE);
- if (pair != NULL && pair->certificate == NULL)
- pair->certificate = attrs;
- break;
- case CKO_PRIVATE_KEY:
- gck_attributes_set_boolean (attrs, CKA_PRIVATE, TRUE);
- gck_attributes_add_boolean (attrs, CKA_DECRYPT, TRUE);
- gck_attributes_add_boolean (attrs, CKA_SIGN, TRUE);
- gck_attributes_add_boolean (attrs, CKA_SIGN_RECOVER, TRUE);
- gck_attributes_add_boolean (attrs, CKA_UNWRAP, TRUE);
- gck_attributes_add_boolean (attrs, CKA_SENSITIVE, TRUE);
- if (pair != NULL && pair->private_key == NULL)
- pair->private_key = attrs;
- break;
- }
- }
-
- /* For generation of CKA_ID's */
- gcry_create_nonce (nonce, sizeof (nonce));
-
- /* A table for marking which attributes are in the pairs table */
- paired = g_hash_table_new (g_direct_hash, g_direct_equal);
-
- /* Now move everything in pairs to the front */
- queue = g_queue_new ();
- g_hash_table_iter_init (&iter, pairs);
- while (g_hash_table_iter_next (&iter, (gpointer *)&fingerprint, (gpointer *)&pair)) {
- if (pair->certificate != NULL && pair->private_key != NULL) {
- /*
- * Generate a CKA_ID based on the fingerprint and nonce,
- * and do the same CKA_ID for both private key and certificate.
- */
-
- supplement_with_attributes (pair->private_key, supplements);
- supplement_id_for_data (pair->private_key, nonce, sizeof (nonce),
- fingerprint, strlen (fingerprint));
- g_queue_push_tail (queue, pair->private_key);
- g_hash_table_insert (paired, pair->private_key, "present");
-
- supplement_with_attributes (pair->private_key, supplements);
- supplement_id_for_data (pair->certificate, nonce, sizeof (nonce),
- fingerprint, strlen (fingerprint));
- g_queue_push_tail (queue, pair->certificate);
- g_hash_table_insert (paired, pair->certificate, "present");
-
- /* Used the suplements for the pairs, don't use for unpaired stuff */
- supplemented = TRUE;
- }
- }
-
- /* Go through the old queue, and look for anything not paired */
- for (l = self->queue->head; l != NULL; l = g_list_next (l)) {
- attrs = l->data;
- if (!g_hash_table_lookup (paired, attrs)) {
- if (!supplemented)
- supplement_with_attributes (attrs, supplements);
-
- /*
- * Generate a CKA_ID based on the location of attrs in,
- * memory, since this together with the nonce should
- * be unique.
- */
- supplement_id_for_data (attrs, nonce, sizeof (nonce),
- &attrs, sizeof (gpointer));
-
- g_queue_push_tail (queue, l->data);
- }
- }
-
- /* And swap the new queue into place */
- g_queue_free (self->queue);
- self->queue = queue;
-
- g_hash_table_destroy (paired);
- g_hash_table_destroy (pairs);
-}
-
-static void
-complete_supplement (GSimpleAsyncResult *res,
- GError *error)
-{
- GcrImporterData *data = g_simple_async_result_get_op_res_gpointer (res);
-
- if (error == NULL) {
- supplement_attributes (data->importer, data->supplement);
- next_state (res, state_create_object);
- } else {
- g_simple_async_result_take_error (res, error);
- next_state (res, state_complete);
- }
-}
-
-static void
-on_supplement_done (GObject *source,
- GAsyncResult *result,
- gpointer user_data)
-{
- GSimpleAsyncResult *res = G_SIMPLE_ASYNC_RESULT (user_data);
- GcrImporterData *data = g_simple_async_result_get_op_res_gpointer (res);
- GcrPkcs11Importer *self = data->importer;
- GError *error = NULL;
-
- gcr_import_interaction_supplement_finish (GCR_IMPORT_INTERACTION (self->interaction),
- result, &error);
- complete_supplement (res, error);
- g_object_unref (res);
-}
-
-static void
-state_supplement (GSimpleAsyncResult *res,
- gboolean async)
-{
- GcrImporterData *data = g_simple_async_result_get_op_res_gpointer (res);
- GcrPkcs11Importer *self = data->importer;
- GError *error = NULL;
-
- if (self->interaction == NULL || !GCR_IS_IMPORT_INTERACTION (self->interaction)) {
- complete_supplement (res, NULL);
-
- } else if (async) {
- gcr_import_interaction_supplement_async (GCR_IMPORT_INTERACTION (self->interaction),
- data->supplement, data->cancellable,
- on_supplement_done, g_object_ref (res));
-
- } else {
- gcr_import_interaction_supplement (GCR_IMPORT_INTERACTION (self->interaction),
- data->supplement, data->cancellable, &error);
- complete_supplement (res, error);
- }
-}
-
-static void
-supplement_prep (GSimpleAsyncResult *res)
-{
- GcrImporterData *data = g_simple_async_result_get_op_res_gpointer (res);
- GcrPkcs11Importer *self = data->importer;
- GckAttribute *the_label = NULL;
- GckAttribute *attr;
- gboolean first = TRUE;
- GList *l;
-
- if (data->supplement)
- gck_attributes_unref (data->supplement);
- data->supplement = gck_attributes_new ();
-
- /* Do we have a consistent label across all objects? */
- for (l = self->queue->head; l != NULL; l = g_list_next (l)) {
- attr = gck_attributes_find (l->data, CKA_LABEL);
- if (first)
- the_label = attr;
- else if (!gck_attribute_equal (the_label, attr))
- the_label = NULL;
- first = FALSE;
- }
-
- /* If consistent label, set that in supplement data */
- if (the_label != NULL)
- gck_attributes_add (data->supplement, the_label);
- else
- gck_attributes_add_empty (data->supplement, CKA_LABEL);
-
- if (GCR_IS_IMPORT_INTERACTION (self->interaction))
- gcr_import_interaction_supplement_prep (GCR_IMPORT_INTERACTION (self->interaction),
- data->supplement);
-}
-
-/* ---------------------------------------------------------------------------------
- * OPEN SESSION
- */
-
-static void
-complete_open_session (GSimpleAsyncResult *res,
- GckSession *session,
- GError *error)
-{
- GcrImporterData *data = g_simple_async_result_get_op_res_gpointer (res);
- GcrPkcs11Importer *self = data->importer;
-
- if (!session) {
- g_simple_async_result_take_error (res, error);
- next_state (res, state_complete);
-
- } else {
- g_clear_object (&self->session);
- self->session = session;
- next_state (res, state_supplement);
- }
-}
-
-static void
-on_open_session (GObject *source,
- GAsyncResult *result,
- gpointer user_data)
-{
- GSimpleAsyncResult *res = G_SIMPLE_ASYNC_RESULT (user_data);
- GError *error = NULL;
- GckSession *session;
-
- session = gck_slot_open_session_finish (GCK_SLOT (source), result, &error);
- complete_open_session (res, session, error);
- g_object_unref (res);
-}
-
-static void
-state_open_session (GSimpleAsyncResult *res,
- gboolean async)
-{
- GcrImporterData *data = g_simple_async_result_get_op_res_gpointer (res);
- GcrPkcs11Importer *self = data->importer;
- guint options = GCK_SESSION_READ_WRITE | GCK_SESSION_LOGIN_USER;
- GckSession *session;
- GError *error = NULL;
-
- if (async) {
- gck_slot_open_session_async (self->slot, options,
- data->cancellable, on_open_session,
- g_object_ref (res));
- } else {
- session = gck_slot_open_session_full (self->slot, options, 0,
- NULL, NULL, data->cancellable, &error);
- complete_open_session (res, session, error);
- }
-}
-
-static void
-_gcr_pkcs11_importer_init (GcrPkcs11Importer *self)
-{
- self->queue = g_queue_new ();
-}
-
-static void
-_gcr_pkcs11_importer_dispose (GObject *obj)
-{
- GcrPkcs11Importer *self = GCR_PKCS11_IMPORTER (obj);
-
- gck_list_unref_free (self->objects);
- self->objects = NULL;
- g_clear_object (&self->session);
- g_clear_object (&self->interaction);
-
- while (!g_queue_is_empty (self->queue))
- gck_attributes_unref (g_queue_pop_head (self->queue));
-
- G_OBJECT_CLASS (_gcr_pkcs11_importer_parent_class)->dispose (obj);
-}
-
-static void
-_gcr_pkcs11_importer_finalize (GObject *obj)
-{
- GcrPkcs11Importer *self = GCR_PKCS11_IMPORTER (obj);
-
- g_clear_object (&self->slot);
-
- G_OBJECT_CLASS (_gcr_pkcs11_importer_parent_class)->finalize (obj);
-}
-
-static void
-_gcr_pkcs11_importer_set_property (GObject *obj,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GcrPkcs11Importer *self = GCR_PKCS11_IMPORTER (obj);
-
- switch (prop_id) {
- case PROP_SLOT:
- self->slot = g_value_dup_object (value);
- g_return_if_fail (self->slot);
- break;
- case PROP_INTERACTION:
- g_clear_object (&self->interaction);
- self->interaction = g_value_dup_object (value);
- g_object_notify (G_OBJECT (self), "interaction");
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static gchar *
-calculate_label (GcrPkcs11Importer *self)
-{
- GckTokenInfo *info;
- gchar *result;
-
- info = gck_slot_get_token_info (self->slot);
- result = g_strdup (info->label);
- gck_token_info_free (info);
-
- return result;
-}
-
-static GIcon *
-calculate_icon (GcrPkcs11Importer *self,
- GckTokenInfo *token_info)
-{
- GckTokenInfo *info = NULL;
- GIcon *result;
-
- if (token_info == NULL)
- info = token_info = gck_slot_get_token_info (self->slot);
- result = gcr_icon_for_token (token_info);
- gck_token_info_free (info);
-
- return result;
-}
-
-static void
-_gcr_pkcs11_importer_get_property (GObject *obj,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GcrPkcs11Importer *self = GCR_PKCS11_IMPORTER (obj);
-
- switch (prop_id) {
- case PROP_LABEL:
- g_value_take_string (value, calculate_label (self));
- break;
- case PROP_ICON:
- g_value_take_object (value, calculate_icon (self, NULL));
- break;
- case PROP_SLOT:
- g_value_set_object (value, _gcr_pkcs11_importer_get_slot (self));
- break;
- case PROP_IMPORTED:
- g_value_take_boxed (value, _gcr_pkcs11_importer_get_imported (self));
- break;
- case PROP_QUEUED:
- g_value_set_pointer (value, _gcr_pkcs11_importer_get_queued (self));
- break;
- case PROP_INTERACTION:
- g_value_set_object (value, self->interaction);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-_gcr_pkcs11_importer_class_init (GcrPkcs11ImporterClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- GckAttributes *registered;
-
- gobject_class->dispose = _gcr_pkcs11_importer_dispose;
- gobject_class->finalize = _gcr_pkcs11_importer_finalize;
- gobject_class->set_property = _gcr_pkcs11_importer_set_property;
- gobject_class->get_property = _gcr_pkcs11_importer_get_property;
-
- g_object_class_override_property (gobject_class, PROP_LABEL, "label");
-
- g_object_class_override_property (gobject_class, PROP_ICON, "icon");
-
- g_object_class_override_property (gobject_class, PROP_INTERACTION, "interaction");
-
- g_object_class_install_property (gobject_class, PROP_SLOT,
- g_param_spec_object ("slot", "Slot", "PKCS#11 slot to import data into",
- GCK_TYPE_SLOT, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- g_object_class_install_property (gobject_class, PROP_IMPORTED,
- g_param_spec_boxed ("imported", "Imported", "Imported objects",
- GCK_TYPE_LIST, G_PARAM_READABLE));
-
- g_object_class_install_property (gobject_class, PROP_QUEUED,
- g_param_spec_pointer ("queued", "Queued", "Queued attributes",
- G_PARAM_READABLE));
-
- registered = gck_attributes_new ();
- gck_attributes_add_ulong (registered, CKA_CLASS, CKO_CERTIFICATE);
- gck_attributes_add_ulong (registered, CKA_CERTIFICATE_TYPE, CKC_X_509);
- gcr_importer_register (GCR_TYPE_PKCS11_IMPORTER, registered);
- gck_attributes_unref (registered);
-
- registered = gck_attributes_new ();
- gck_attributes_add_ulong (registered, CKA_CLASS, CKO_PRIVATE_KEY);
- gcr_importer_register (GCR_TYPE_PKCS11_IMPORTER, registered);
- gck_attributes_unref (registered);
-
- _gcr_initialize_library ();
-}
-
-static GList *
-list_all_slots (void)
-{
- GList *modules;
- GList *results;
-
- modules = gcr_pkcs11_get_modules ();
- results = gck_modules_get_slots (modules, TRUE);
- gck_list_unref_free (modules);
-
- return results;
-}
-
-static const char *token_blacklist[] = {
- "pkcs11:manufacturer=Gnome%20Keyring;serial=1:SECRET:MAIN",
- "pkcs11:manufacturer=Gnome%20Keyring;serial=1:USER:DEFAULT",
- NULL
-};
-
-static gboolean
-is_slot_importable (GckSlot *slot,
- GckTokenInfo *token)
-{
- GError *error = NULL;
- GckUriData *uri;
- gboolean match;
- guint i;
-
- if (token->flags & CKF_WRITE_PROTECTED) {
- _gcr_debug ("token is not importable: %s: write protected", token->label);
- return FALSE;
- }
- if (!(token->flags & CKF_TOKEN_INITIALIZED)) {
- _gcr_debug ("token is not importable: %s: not initialized", token->label);
- return FALSE;
- }
- if ((token->flags & CKF_LOGIN_REQUIRED) &&
- !(token->flags & CKF_USER_PIN_INITIALIZED)) {
- _gcr_debug ("token is not importable: %s: user pin not initialized", token->label);
- return FALSE;
- }
-
- for (i = 0; token_blacklist[i] != NULL; i++) {
- uri = gck_uri_parse (token_blacklist[i], GCK_URI_FOR_TOKEN | GCK_URI_FOR_MODULE, &error);
- if (uri == NULL) {
- g_warning ("couldn't parse pkcs11 blacklist uri: %s", error->message);
- g_clear_error (&error);
- continue;
- }
-
- match = gck_slot_match (slot, uri);
- gck_uri_data_free (uri);
-
- if (match) {
- _gcr_debug ("token is not importable: %s: on the black list", token->label);
- return FALSE;
- }
- }
-
- return TRUE;
-}
-
-static GList *
-_gcr_pkcs11_importer_create_for_parsed (GcrParsed *parsed)
-{
- GcrImporter *self;
- GList *slots, *l;
- GList *results = NULL;
- GckTokenInfo *token_info;
- gboolean importable;
-
- slots = list_all_slots ();
- for (l = slots; l != NULL; l = g_list_next (l)) {
- token_info = gck_slot_get_token_info (l->data);
- importable = is_slot_importable (l->data, token_info);
-
- if (importable) {
- _gcr_debug ("creating importer for token: %s", token_info->label);
- self = _gcr_pkcs11_importer_new (l->data);
- if (!gcr_importer_queue_for_parsed (self, parsed))
- g_assert_not_reached ();
- results = g_list_prepend (results, self);
- }
-
- gck_token_info_free (token_info);
- }
- gck_list_unref_free (slots);
-
- return g_list_reverse (results);
-}
-
-static gboolean
-_gcr_pkcs11_importer_queue_for_parsed (GcrImporter *importer,
- GcrParsed *parsed)
-{
- GcrPkcs11Importer *self = GCR_PKCS11_IMPORTER (importer);
- GckAttributes *attrs;
- const gchar *label;
-
- attrs = gcr_parsed_get_attributes (parsed);
- label = gcr_parsed_get_label (parsed);
- _gcr_pkcs11_importer_queue (self, label, attrs);
-
- return TRUE;
-}
-
-static void
-_gcr_pkcs11_importer_import_async (GcrImporter *importer,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- GcrPkcs11Importer *self = GCR_PKCS11_IMPORTER (importer);
- GSimpleAsyncResult *res;
- GcrImporterData *data;
-
- res = g_simple_async_result_new (G_OBJECT (importer), callback, user_data,
- _gcr_pkcs11_importer_import_async);
- data = g_new0 (GcrImporterData, 1);
- data->async = TRUE;
- data->importer = g_object_ref (importer);
- data->cancellable = cancellable ? g_object_ref (cancellable) : NULL;
- g_simple_async_result_set_op_res_gpointer (res, data, gcr_importer_data_free);
-
- supplement_prep (res);
- gck_slot_set_interaction (self->slot, self->interaction);
-
- next_state (res, state_open_session);
- g_object_unref (res);
-}
-
-static gboolean
-_gcr_pkcs11_importer_import_finish (GcrImporter *importer,
- GAsyncResult *result,
- GError **error)
-{
- g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (importer),
- _gcr_pkcs11_importer_import_async), FALSE);
-
- if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error))
- return FALSE;
-
- return TRUE;
-}
-
-static void
-_gcr_pkcs11_importer_init_iface (GcrImporterIface *iface)
-{
- iface->create_for_parsed = _gcr_pkcs11_importer_create_for_parsed;
- iface->queue_for_parsed = _gcr_pkcs11_importer_queue_for_parsed;
- iface->import_async = _gcr_pkcs11_importer_import_async;
- iface->import_finish = _gcr_pkcs11_importer_import_finish;
-}
-
-/**
- * _gcr_pkcs11_importer_new:
- *
- * Returns: (transfer full) (type Gcr.Pkcs11Importer): the new importer
- */
-GcrImporter *
-_gcr_pkcs11_importer_new (GckSlot *slot)
-{
- g_return_val_if_fail (GCK_IS_SLOT (slot), NULL);
-
- return g_object_new (GCR_TYPE_PKCS11_IMPORTER,
- "slot", slot,
- NULL);
-}
-
-GckSlot *
-_gcr_pkcs11_importer_get_slot (GcrPkcs11Importer *self)
-{
- g_return_val_if_fail (GCR_IS_PKCS11_IMPORTER (self), NULL);
- return self->slot;
-}
-
-GList *
-_gcr_pkcs11_importer_get_imported (GcrPkcs11Importer *self)
-{
- g_return_val_if_fail (GCR_IS_PKCS11_IMPORTER (self), NULL);
- return g_list_copy (self->objects);
-}
-
-GList *
-_gcr_pkcs11_importer_get_queued (GcrPkcs11Importer *self)
-{
- g_return_val_if_fail (GCR_IS_PKCS11_IMPORTER (self), NULL);
- return g_list_copy (self->queue->head);
-}
-
-void
-_gcr_pkcs11_importer_queue (GcrPkcs11Importer *self,
- const gchar *label,
- GckAttributes *attrs)
-{
- g_return_if_fail (GCR_IS_PKCS11_IMPORTER (self));
- g_return_if_fail (attrs != NULL);
-
- if (label != NULL && !gck_attributes_find (attrs, CKA_LABEL))
- gck_attributes_add_string (attrs, CKA_LABEL, label);
-
- g_queue_push_tail (self->queue, gck_attributes_ref (attrs));
-}
diff --git a/gcr/gcr-pkcs11-importer.h b/gcr/gcr-pkcs11-importer.h
deleted file mode 100644
index 5f66f7b3..00000000
--- a/gcr/gcr-pkcs11-importer.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2008 Stefan Walter
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_H_INSIDE__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> can be included directly."
-#endif
-
-#ifndef __GCR_PKCS11_IMPORTER_H__
-#define __GCR_PKCS11_IMPORTER_H__
-
-#include "gcr-importer.h"
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_PKCS11_IMPORTER (_gcr_pkcs11_importer_get_type ())
-#define GCR_PKCS11_IMPORTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_PKCS11_IMPORTER, GcrPkcs11Importer))
-#define GCR_PKCS11_IMPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_PKCS11_IMPORTER, GcrPkcs11ImporterClass))
-#define GCR_IS_PKCS11_IMPORTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_PKCS11_IMPORTER))
-#define GCR_IS_PKCS11_IMPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_PKCS11_IMPORTER))
-#define GCR_PKCS11_IMPORTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_PKCS11_IMPORTER, GcrPkcs11ImporterClass))
-
-typedef struct _GcrPkcs11Importer GcrPkcs11Importer;
-
-
-GType _gcr_pkcs11_importer_get_type (void);
-
-GcrImporter * _gcr_pkcs11_importer_new (GckSlot *slot);
-
-void _gcr_pkcs11_importer_queue (GcrPkcs11Importer *self,
- const gchar *label,
- GckAttributes *attrs);
-
-GckSlot * _gcr_pkcs11_importer_get_slot (GcrPkcs11Importer *self);
-
-GList * _gcr_pkcs11_importer_get_queued (GcrPkcs11Importer *self);
-
-GList * _gcr_pkcs11_importer_get_imported (GcrPkcs11Importer *self);
-
-G_END_DECLS
-
-#endif /* __GCR_PKCS11_IMPORTER_H__ */
diff --git a/gcr/gcr-record.c b/gcr/gcr-record.c
deleted file mode 100644
index 7b065eb0..00000000
--- a/gcr/gcr-record.c
+++ /dev/null
@@ -1,811 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-record.h"
-#define DEBUG_FLAG GCR_DEBUG_PARSE
-#include "gcr-debug.h"
-
-#include "egg/egg-timegm.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-#define MAX_COLUMNS 32
-
-typedef struct {
- gpointer next;
- gsize n_value;
- gchar value[1];
- /* Hangs off the end */
-} GcrRecordBlock;
-
-struct _GcrRecord {
- GcrRecordBlock *block;
- const gchar *columns[MAX_COLUMNS];
- guint n_columns;
- gchar delimiter;
-};
-
-G_DEFINE_BOXED_TYPE (GcrRecord, _gcr_record, _gcr_record_copy, _gcr_record_free);
-
-static GcrRecordBlock *
-record_block_new (const gchar *value,
- gsize length)
-{
- GcrRecordBlock *block;
-
- block = g_malloc (sizeof (GcrRecordBlock) + length);
- block->next = NULL;
- block->n_value = length;
-
- if (value != NULL) {
- memcpy (block->value, value, length);
- block->value[length] = 0;
- } else {
- block->value[0] = 0;
- }
-
- return block;
-}
-
-static GcrRecordBlock *
-record_block_take (gchar *value,
- gsize length)
-{
- GcrRecordBlock *block;
-
- g_assert (value);
-
- block = g_realloc (value, sizeof (GcrRecordBlock) + length);
- memmove (((gchar*)block) + G_STRUCT_OFFSET (GcrRecordBlock, value),
- block, length);
- block->next = NULL;
- block->n_value = length;
- block->value[length] = 0;
-
- return block;
-}
-
-static GcrRecord *
-record_flatten (GcrRecord *record)
-{
- GcrRecord *result;
- GcrRecordBlock *block;
- gsize total;
- gsize at;
- gsize len;
- guint i;
-
- /* Calculate the length of what we need */
- total = 0;
- for (i = 0; i < record->n_columns; i++)
- total += strlen (record->columns[i]) + 1;
-
- /* Allocate a new GcrRecordData which will hold all that */
- result = g_slice_new0 (GcrRecord);
- result->block = block = record_block_new (NULL, total);
-
- at = 0;
- for (i = 0; i < record->n_columns; i++) {
- len = strlen (record->columns[i]);
- result->columns[i] = block->value + at;
- memcpy ((gchar *)result->columns[i], record->columns[i], len + 1);
- at += len + 1;
- }
-
- result->n_columns = record->n_columns;
- result->delimiter = record->delimiter;
- g_assert (at == total);
-
- return result;
-}
-
-static void
-print_record_to_string (GcrRecord *record,
- GString *string)
-{
- guint i;
-
- for (i = 0; i < record->n_columns; i++) {
- g_string_append (string, record->columns[i]);
- g_string_append_c (string, record->delimiter);
- }
-}
-
-gchar *
-_gcr_record_format (GcrRecord *record)
-{
- GString *string;
-
- g_return_val_if_fail (record, NULL);
-
- string = g_string_new ("");
- print_record_to_string (record, string);
- return g_string_free (string, FALSE);
-}
-
-GcrRecord *
-_gcr_record_new (GQuark schema,
- guint n_columns,
- gchar delimiter)
-{
- GcrRecord *result;
- guint i;
-
- result = g_slice_new0 (GcrRecord);
- result->block = NULL;
- result->delimiter = delimiter;
-
- for (i = 0; i < n_columns; i++)
- result->columns[i] = "";
- result->columns[0] = g_quark_to_string (schema);
- result->n_columns = n_columns;
-
- return result;
-}
-
-GcrRecord *
-_gcr_record_copy (GcrRecord *record)
-{
- return record_flatten (record);
-}
-
-static GcrRecord *
-take_and_parse_internal (GcrRecordBlock *block,
- gchar delimiter,
- gboolean allow_empty)
-{
- GcrRecord *result;
- gchar *at, *beg, *end;
-
- g_assert (block);
-
- result = g_slice_new0 (GcrRecord);
- result->block = block;
- result->delimiter = delimiter;
-
- _gcr_debug ("parsing line %s", block->value);
-
- at = block->value;
- for (;;) {
- if (result->n_columns >= MAX_COLUMNS) {
- _gcr_debug ("too many record (%d) in gnupg line", MAX_COLUMNS);
- _gcr_record_free (result);
- return NULL;
- }
-
- beg = at;
- result->columns[result->n_columns] = beg;
-
- at = strchr (beg, delimiter);
- if (at == NULL) {
- end = (block->value + block->n_value) - 1;
- } else {
- at[0] = '\0';
- end = at;
- at++;
- }
-
- if (allow_empty || end > beg)
- result->n_columns++;
-
- if (at == NULL)
- break;
- }
-
- return result;
-}
-
-GcrRecord*
-_gcr_record_parse_colons (const gchar *line, gssize n_line)
-{
- g_return_val_if_fail (line, NULL);
- if (n_line < 0)
- n_line = strlen (line);
- return take_and_parse_internal (record_block_new (line, n_line), ':', TRUE);
-}
-
-GcrRecord*
-_gcr_record_parse_spaces (const gchar *line, gssize n_line)
-{
- g_return_val_if_fail (line, NULL);
- if (n_line < 0)
- n_line = strlen (line);
- return take_and_parse_internal (record_block_new (line, n_line), ' ', FALSE);
-}
-
-guint
-_gcr_record_get_count (GcrRecord *record)
-{
- g_return_val_if_fail (record, 0);
- return record->n_columns;
-}
-
-static void
-record_take_column (GcrRecord *record,
- guint column,
- GcrRecordBlock *block)
-{
- g_assert (block->next == NULL);
- block->next = record->block;
- record->block = block;
-
- g_assert (column < record->n_columns);
- record->columns[column] = block->value;
-}
-
-static const char HEXC_LOWER[] = "0123456789abcdef";
-
-/* Will return NULL if unescaping failed or not needed */
-static gchar *
-c_colons_unescape (const gchar *source,
- gsize *length)
-{
- const gchar *p = source, *octal, *hex;
- gchar *dest = NULL;
- gchar *q = dest;
- gchar *pos;
-
- while (*p) {
- if (*p == '\\') {
- if (dest == NULL) {
- dest = g_malloc (strlen (source) + 1);
- memcpy (dest, source, (p - source));
- q = dest + (p - source);
- }
-
- p++;
- switch (*p) {
- case '\0': /* invalid trailing backslash */
- g_free (dest);
- return NULL;
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7':
- *q = 0;
- octal = p;
- while ((p < octal + 3) && (*p >= '0') && (*p <= '7')) {
- *q = (*q * 8) + (*p - '0');
- p++;
- }
- q++;
- p--;
- break;
- case 'x':
- *q = 0;
- hex = p;
- while (p < hex + 2) {
- pos = strchr (HEXC_LOWER, g_ascii_tolower (*p));
- if (pos == 0) { /* invalid bad hex character */
- g_free (dest);
- return NULL;
- }
- *q = (*q * 16) + (pos - HEXC_LOWER);
- p++;
- }
- q++;
- p--;
- break;
- case 'b':
- *q++ = '\b';
- break;
- case 'f':
- *q++ = '\f';
- break;
- case 'n':
- *q++ = '\n';
- break;
- case 'r':
- *q++ = '\r';
- break;
- case 't':
- *q++ = '\t';
- break;
- default: /* Also handles \" and \\ */
- *q++ = *p;
- break;
- }
- } else if (q != NULL) {
- *q++ = *p;
- }
- p++;
- }
-
- if (q != NULL) {
- *q = 0;
- if (length)
- *length = q - dest;
- }
-
- return dest;
-}
-
-/* Will return NULL if no escaping needed */
-static gchar *
-c_colons_escape (const gchar *source,
- const gchar extra,
- gsize *length)
-{
- const guchar *p;
- gchar *dest = NULL;
- gchar *q = NULL;
- gchar escape;
- gsize off;
-
- g_return_val_if_fail (source != NULL, NULL);
-
- p = (guchar *) source;
-
- while (*p) {
- escape = 0;
- switch (*p) {
- case '\b':
- escape = 'b';
- break;
- case '\f':
- escape = 'f';
- break;
- case '\n':
- escape = 'n';
- break;
- case '\r':
- escape = 'r';
- break;
- case '\t':
- escape = 't';
- break;
- case '\\':
- escape = '\\';
- break;
- case '"':
- escape = '"';
- break;
- }
-
- if (escape != 0 || *p < ' ' || *p >= 0x127 || *p == extra) {
- if (dest == NULL) {
- /* Each source byte needs maximally four destination chars (\xff) */
- dest = g_malloc (strlen (source) * 4 + 1);
- off = (gchar *)p - source;
- memcpy (dest, source, off);
- q = dest + off;
- }
-
- if (escape) {
- *q++ = '\\';
- *q++ = escape;
- } else {
- *q++ = '\\';
- *q++ = 'x';
- *q++ = HEXC_LOWER[*p >> 4 & 0xf];
- *q++ = HEXC_LOWER[*p & 0xf];
- }
- } else if (q != NULL) {
- *q++ = *p;
- }
- p++;
- }
-
- if (q != NULL) {
- *q = 0;
- if (length)
- *length = q - dest;
- }
-
- return dest;
-}
-
-gchar*
-_gcr_record_get_string (GcrRecord *record, guint column)
-{
- const gchar *value;
- gchar *text = NULL;
-
- g_return_val_if_fail (record, NULL);
-
- value = _gcr_record_get_raw (record, column);
- if (!value)
- return NULL;
-
- text = c_colons_unescape (value, NULL);
- if (text != NULL)
- value = text;
-
- /* If it's not UTF-8, we guess that it's latin1 */
- if (!g_utf8_validate (value, -1, NULL)) {
- gchar *conv = g_convert (value, -1, "UTF-8", "ISO-8859-1", NULL, NULL, NULL);
- g_free (text);
- value = text = conv;
- }
-
- /*
- * latin1 to utf-8 conversion can't really fail, just produce
- * garbage... so there's no need to check here.
- */
-
- return (text == value) ? text : g_strdup (value);
-}
-
-void
-_gcr_record_set_string (GcrRecord *record,
- guint column,
- const gchar *string)
-{
- GcrRecordBlock *block;
- gchar *escaped;
-
- g_return_if_fail (record != NULL);
- g_return_if_fail (string != NULL);
- g_return_if_fail (column < record->n_columns);
-
- escaped = c_colons_escape (string, record->delimiter, NULL);
- if (escaped != NULL)
- block = record_block_take (escaped, strlen (escaped));
- else
- block = record_block_new (string, strlen (string));
-
- record_take_column (record, column, block);
-}
-
-gchar
-_gcr_record_get_char (GcrRecord *record,
- guint column)
-{
- const gchar *value;
-
- g_return_val_if_fail (record, 0);
-
- value = _gcr_record_get_raw (record, column);
- if (!value)
- return 0;
-
- if (value[0] != 0 && value[1] == 0)
- return value[0];
-
- return 0;
-}
-
-void
-_gcr_record_set_char (GcrRecord *record,
- guint column,
- gchar value)
-{
- g_return_if_fail (record != NULL);
- g_return_if_fail (column < record->n_columns);
- g_return_if_fail (value != 0);
-
- record_take_column (record, column, record_block_new (&value, 1));
-}
-
-gboolean
-_gcr_record_get_uint (GcrRecord *record, guint column, guint *value)
-{
- const gchar *raw;
- gint64 result;
- gchar *end = NULL;
-
- g_return_val_if_fail (record, FALSE);
-
- raw = _gcr_record_get_raw (record, column);
- if (raw == NULL)
- return FALSE;
-
- result = g_ascii_strtoll (raw, &end, 10);
- if (!end || end[0]) {
- _gcr_debug ("invalid unsigned integer value: %s", raw);
- return FALSE;
- }
-
- if (result < 0 || result > G_MAXUINT32) {
- _gcr_debug ("unsigned integer value is out of range: %s", raw);
- return FALSE;
- }
-
- if (value)
- *value = (guint)result;
- return TRUE;
-}
-
-void
-_gcr_record_set_uint (GcrRecord *record,
- guint column,
- guint value)
-{
- gchar *escaped;
-
- g_return_if_fail (record != NULL);
- g_return_if_fail (column < record->n_columns);
-
- escaped = g_strdup_printf ("%u", value);
- record_take_column (record, column,
- record_block_take (escaped, strlen (escaped)));
-}
-
-gboolean
-_gcr_record_get_ulong (GcrRecord *record,
- guint column,
- gulong *value)
-{
- const gchar *raw;
- gint64 result;
- gchar *end = NULL;
-
- g_return_val_if_fail (record, FALSE);
-
- raw = _gcr_record_get_raw (record, column);
- if (raw == NULL)
- return FALSE;
-
- result = g_ascii_strtoull (raw, &end, 10);
- if (!end || end[0]) {
- _gcr_debug ("invalid unsigned long value: %s", raw);
- return FALSE;
- }
-
- if (result < 0 || result > G_MAXULONG) {
- _gcr_debug ("unsigned long value is out of range: %s", raw);
- return FALSE;
- }
-
- if (value)
- *value = (guint)result;
- return TRUE;
-
-}
-
-void
-_gcr_record_set_ulong (GcrRecord *record,
- guint column,
- gulong value)
-{
- gchar *escaped;
-
- g_return_if_fail (record != NULL);
- g_return_if_fail (column < record->n_columns);
-
- escaped = g_strdup_printf ("%lu", value);
- record_take_column (record, column,
- record_block_take (escaped, strlen (escaped)));
-}
-
-GDateTime *
-_gcr_record_get_date (GcrRecord *record,
- guint column)
-{
- const gchar *raw;
- gulong result;
- gchar *end = NULL;
- struct tm tm;
-
- g_return_val_if_fail (record, NULL);
-
- raw = _gcr_record_get_raw (record, column);
- if (raw == NULL)
- return NULL;
-
- /* Try to parse as a number */
- result = strtoul (raw, &end, 10);
- if (end != NULL && end[0] == '\0')
- return g_date_time_new_from_unix_utc (result);
-
- /* Try to parse as a date */
- memset (&tm, 0, sizeof (tm));
- end = strptime (raw, "%Y-%m-%d", &tm);
- if (!end || end[0]) {
- _gcr_debug ("invalid date value: %s", raw);
- return NULL;
- }
-
- return g_date_time_new_utc (tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, 0, 0, 0);
-}
-
-/**
- * _gcr_record_get_base64:
- * @record: The record
- * @column: The column to decode.
- * @n_data: Location to return size of returned data.
- *
- * Decode a column of a record as base64 data.
- *
- * Returns: (transfer full): The decoded value, or %NULL if not found.
- */
-gpointer
-_gcr_record_get_base64 (GcrRecord *record, guint column, gsize *n_data)
-{
- const gchar *raw;
-
- g_return_val_if_fail (record, NULL);
-
- raw = _gcr_record_get_raw (record, column);
- if (raw == NULL)
- return NULL;
-
- return g_base64_decode (raw, n_data);
-}
-
-void
-_gcr_record_set_base64 (GcrRecord *record,
- guint column,
- gconstpointer data,
- gsize n_data)
-{
- GcrRecordBlock *block;
- gint state, save;
- gsize estimate;
- gsize length;
-
- g_return_if_fail (record != NULL);
- g_return_if_fail (column < record->n_columns);
-
- estimate = n_data * 4 / 3 + n_data * 4 / (3 * 65) + 7;
- block = record_block_new (NULL, estimate);
-
- /* The actual base64 data, without line breaks */
- state = save = 0;
- length = g_base64_encode_step ((guchar *)data, n_data, FALSE,
- block->value, &state, &save);
- length += g_base64_encode_close (TRUE, block->value + length,
- &state, &save);
- block->value[length] = 0;
- g_assert (length < estimate);
-
- g_strchomp (block->value);
- record_take_column (record, column, block);
-}
-
-const gchar*
-_gcr_record_get_raw (GcrRecord *record, guint column)
-{
- g_return_val_if_fail (record, NULL);
-
- if (column >= record->n_columns) {
- _gcr_debug ("only %d columns exist, tried to access %d",
- record->n_columns, column);
- return NULL;
- }
-
- return record->columns[column];
-}
-
-void
-_gcr_record_set_raw (GcrRecord *record,
- guint column,
- const gchar *value)
-{
- g_return_if_fail (record != NULL);
- g_return_if_fail (value != NULL);
- g_return_if_fail (column < record->n_columns);
-
- record_take_column (record, column,
- record_block_new (value, strlen (value)));
-}
-
-void
-_gcr_record_take_raw (GcrRecord *record,
- guint column,
- gchar *value)
-{
- g_return_if_fail (record != NULL);
- g_return_if_fail (value != NULL);
- g_return_if_fail (column < record->n_columns);
-
- record_take_column (record, column,
- record_block_take (value, strlen (value)));
-}
-
-void
-_gcr_record_free (gpointer record)
-{
- GcrRecordBlock *block, *next;
- GcrRecord *rec = record;
-
- if (!record)
- return;
-
- for (block = rec->block; block != NULL; block = next) {
- next = block->next;
- g_free (block);
- }
-
- g_slice_free (GcrRecord, record);
-}
-
-GQuark
-_gcr_record_get_schema (GcrRecord *record)
-{
- const gchar *value;
-
- value = _gcr_record_get_raw (record, GCR_RECORD_SCHEMA);
- if (value != NULL)
- return g_quark_try_string (value);
- return 0;
-}
-
-GcrRecord *
-_gcr_records_find (GPtrArray *records,
- GQuark schema)
-{
- guint i;
-
- g_return_val_if_fail (records, NULL);
- g_return_val_if_fail (schema, NULL);
-
- for (i = 0; i < records->len; i++) {
- if (schema == _gcr_record_get_schema (records->pdata[i]))
- return records->pdata[i];
- }
-
- return NULL;
-}
-
-gchar *
-_gcr_records_format (GPtrArray *records)
-{
- GString *string;
- guint i;
-
- g_return_val_if_fail (records, NULL);
-
- string = g_string_new ("");
- for (i = 0; i < records->len; i++) {
- print_record_to_string (records->pdata[i], string);
- g_string_append_c (string, '\n');
- }
- return g_string_free (string, FALSE);
-}
-
-GPtrArray *
-_gcr_records_parse_colons (gconstpointer data,
- gssize n_data)
-{
- GPtrArray *result = NULL;
- GcrRecordBlock *block;
- GcrRecord *record;
- gchar **lines;
- guint i;
-
- lines = g_strsplit (data, "\n", n_data);
- result = g_ptr_array_new_with_free_func (_gcr_record_free);
-
- for (i = 0; lines[i] != NULL; i++) {
- block = record_block_take (lines[i], strlen (lines[i]));
- record = take_and_parse_internal (block, ':', TRUE);
- if (record == NULL) {
- g_ptr_array_unref (result);
- result = NULL;
- break;
- }
- g_ptr_array_add (result, record);
- }
-
- /* Free any not done */
- for (; lines[i] != NULL; i++)
- g_free (lines[i]);
-
- /* Individual lines already freed */
- g_free (lines);
-
- return result;
-}
diff --git a/gcr/gcr-record.h b/gcr/gcr-record.h
deleted file mode 100644
index 37201cef..00000000
--- a/gcr/gcr-record.h
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef GCR_RECORD_H
-#define GCR_RECORD_H
-
-#include <glib.h>
-#include <glib-object.h>
-
-/*
- * Gnupg's official format for listing keys is in the '--with-colons' format.
- * This is documented in doc/DETAILS in the gnupg distribution. Looks like:
- *
- * pub:f:1024:17:6C7EE1B8621CC013:899817715:1055898235::m:::scESC:
- * fpr:::::::::ECAF7590EB3443B5C7CF3ACB6C7EE1B8621CC013:
- * uid:f::::::::Werner Koch <wk@g10code.com>:
- * uid:f::::::::Werner Koch <wk@gnupg.org>:
- * sub:f:1536:16:06AD222CADF6A6E1:919537416:1036177416:::::e:
- * fpr:::::::::CF8BCC4B18DE08FCD8A1615906AD222CADF6A6E1:
- * sub:r:1536:20:5CE086B5B5A18FF4:899817788:1025961788:::::esc:
- * fpr:::::::::AB059359A3B81F410FCFF97F5CE086B5B5A18FF4:
- *
- * Each row is colon delimeted, and has a certain 'schema'. The first item
- * in the row tells us the schema. Then the various columns are numbered,
- * (schema is zero).
- */
-
-G_BEGIN_DECLS
-
-#define GCR_RECORD_SCHEMA_ATTRIBUTE (g_quark_from_static_string ("ATTRIBUTE"))
-#define GCR_RECORD_SCHEMA_IMPORT_OK (g_quark_from_static_string ("IMPORT_OK"))
-#define GCR_RECORD_SCHEMA_FPR (g_quark_from_static_string ("fpr"))
-#define GCR_RECORD_SCHEMA_PUB (g_quark_from_static_string ("pub"))
-#define GCR_RECORD_SCHEMA_SUB (g_quark_from_static_string ("sub"))
-#define GCR_RECORD_SCHEMA_SEC (g_quark_from_static_string ("sec"))
-#define GCR_RECORD_SCHEMA_SSB (g_quark_from_static_string ("ssb"))
-#define GCR_RECORD_SCHEMA_UID (g_quark_from_static_string ("uid"))
-#define GCR_RECORD_SCHEMA_UAT (g_quark_from_static_string ("uat"))
-#define GCR_RECORD_SCHEMA_XA1 (g_quark_from_static_string ("xa1"))
-#define GCR_RECORD_SCHEMA_SIG (g_quark_from_static_string ("sig"))
-#define GCR_RECORD_SCHEMA_RVK (g_quark_from_static_string ("rvk"))
-
-/* Common columns for schemas */
-typedef enum {
- GCR_RECORD_SCHEMA = 0,
- GCR_RECORD_TRUST = 1,
-} GcrRecordColumns;
-
-/*
- * Columns for ATTRIBUTE status message. eg:
- * [GNUPG:] ATTRIBUTE FBAFC70D60AE13D560764062B547B5580EEB5A80 10604 1 1 1 1227936754 0 1
- */
-typedef enum {
- GCR_RECORD_ATTRIBUTE_KEY_FINGERPRINT = 1,
- GCR_RECORD_ATTRIBUTE_LENGTH = 2,
- GCR_RECORD_ATTRIBUTE_TYPE = 3,
- GCR_RECORD_ATTRIBUTE_TIMESTAMP = 6,
- GCR_RECORD_ATTRIBUTE_EXPIRY = 7,
- GCR_RECORD_ATTRIBUTE_FLAGS = 8
-} GcrRecordAttributeColumns;
-
-/*
- * Columns for IMPORT_OK and IMPORT_PROBLEM status message. eg:
- * [GNUPG:] IMPORT_OK 1 6BD9050FD8FC941B43412DCC68B7AB8957548DCD
- * [GNUPG:] IMPORT_PROBLEM 1
- */
-typedef enum {
- GCR_RECORD_IMPORT_REASON = 1,
- GCR_RECORD_IMPORT_FINGERPRINT
-} GcrRecordImportColumns;
-
-/*
- * Columns for fpr schema, add them as they're used. eg:
- * fpr:::::::::ECAF7590EB3443B5C7CF3ACB6C7EE1B8621CC013:
- */
-typedef enum {
- GCR_RECORD_FPR_FINGERPRINT = 9,
- GCR_RECORD_FPR_MAX = 10
-} GcrRecordFprColumns;
-
-/*
- * Columns for pub, sec, sub, and ssb schemas. eg:
- * pub:f:1024:17:6C7EE1B8621CC013:899817715:1055898235::m:::scESC:
- */
-typedef enum {
- GCR_RECORD_KEY_BITS = 2,
- GCR_RECORD_KEY_ALGO = 3,
- GCR_RECORD_KEY_KEYID = 4,
- GCR_RECORD_KEY_TIMESTAMP = 5,
- GCR_RECORD_KEY_EXPIRY = 6,
- GCR_RECORD_KEY_OWNERTRUST = 8,
-} GcrRecordKeyColumns;
-
-typedef enum {
- GCR_RECORD_PUB_CAPS = 11,
- GCR_RECORD_PUB_MAX = 12
-} GcrRecordPubColumns;
-
-typedef enum {
- GCR_RECORD_SEC_MAX = 15
-} GcrRecordSecColumns;
-
-/*
- * Columns for uid schema, add them as they're used. eg:
- * uid:u::::1024442705::7A5C6648DAA1F5D12BD80BBED538439ABAFEE203::Test <test@example.com>:
- */
-typedef enum {
- GCR_RECORD_UID_TIMESTAMP = 5,
- GCR_RECORD_UID_EXPIRY = 6,
- GCR_RECORD_UID_FINGERPRINT = 7,
- GCR_RECORD_UID_USERID = 9,
- GCR_RECORD_UID_MAX = 10,
-} GcrRecordUidColumns;
-
-/*
- * Columns for sig schema. eg:
- * sig:::17:FAD3A86D2505A4D5:1291829838::::Stef Walter <stefw@servingtfi.com>:10x:
- */
-typedef enum {
- GCR_RECORD_SIG_STATUS = 1,
- GCR_RECORD_SIG_ALGO = 3,
- GCR_RECORD_SIG_KEYID = 4,
- GCR_RECORD_SIG_TIMESTAMP = 5,
- GCR_RECORD_SIG_EXPIRY = 6,
- GCR_RECORD_SIG_USERID = 9,
- GCR_RECORD_SIG_CLASS = 10,
- GCR_RECORD_SIG_MAX = 11,
-} GcrRecordSigColumns;
-
-/*
- * Columns for rvk schema. eg:
- * rvk:::17::::::3FC732041D23E9EA66DDB5009C9DBC21DF74DC61:80:
- */
-typedef enum {
- GCR_RECORD_RVK_ALGO = 3,
- GCR_RECORD_RVK_FINGERPRINT = 9,
- GCR_RECORD_RVK_CLASS = 10,
- GCR_RECORD_RVK_MAX = 11,
-} GcrRecordRvkColumns;
-
-/*
- * Columns for uat schema, add them as they're used. eg:
- * uat:u::::1024442705::7A5C6648DAA1F5D12BD80BBED538439ABAFEE203::1 3233:
- */
-typedef enum {
- GCR_RECORD_UAT_TRUST = 1,
- GCR_RECORD_UAT_FINGERPRINT = 7,
- GCR_RECORD_UAT_COUNT_SIZE = 9,
- GCR_RECORD_UAT_MAX = 10,
-} GcrRecordUatColumns;
-
-/*
- * Columns for xa1 schema. This is a schema that we've invented ourselves
- * for representing the actual data of openpgp attribute packets. eg:
- * xa1:e:10838:1:::1998-02-02:0:ECAF7590EB3443B5C7CF3ACB6C7EE1B8621CC013::...
- */
-typedef enum {
- GCR_RECORD_XA1_TRUST = 1,
- GCR_RECORD_XA1_LENGTH = 2,
- GCR_RECORD_XA1_TYPE = 3,
- GCR_RECORD_XA1_TIMESTAMP = 5,
- GCR_RECORD_XA1_EXPIRY = 6,
- GCR_RECORD_XA1_FINGERPRINT = 7,
- GCR_RECORD_XA1_DATA = 9,
- GCR_RECORD_XA1_MAX = 11,
-} GcrRecordXa1Columns;
-
-typedef struct _GcrRecord GcrRecord;
-
-#define GCR_TYPE_RECORD (_gcr_record_get_type ())
-
-GType _gcr_record_get_type (void) G_GNUC_CONST;
-
-GcrRecord * _gcr_record_new (GQuark schema,
- guint n_columns,
- gchar delimiter);
-
-GcrRecord* _gcr_record_copy (GcrRecord *record);
-
-GcrRecord* _gcr_record_parse_colons (const gchar *line,
- gssize n_line);
-
-GcrRecord* _gcr_record_parse_spaces (const gchar *line,
- gssize n_line);
-
-gchar * _gcr_record_format (GcrRecord *record);
-
-void _gcr_record_free (gpointer record);
-
-guint _gcr_record_get_count (GcrRecord *record);
-
-gchar _gcr_record_get_char (GcrRecord *record,
- guint column);
-
-void _gcr_record_set_char (GcrRecord *record,
- guint column,
- gchar value);
-
-gchar* _gcr_record_get_string (GcrRecord *record,
- guint column);
-
-void _gcr_record_set_string (GcrRecord *record,
- guint column,
- const gchar *value);
-
-gboolean _gcr_record_get_uint (GcrRecord *record,
- guint column,
- guint *value);
-
-void _gcr_record_set_uint (GcrRecord *record,
- guint column,
- guint value);
-
-gboolean _gcr_record_get_ulong (GcrRecord *record,
- guint column,
- gulong *value);
-
-void _gcr_record_set_ulong (GcrRecord *record,
- guint column,
- gulong value);
-
-GDateTime * _gcr_record_get_date (GcrRecord *record,
- guint column);
-
-gpointer _gcr_record_get_base64 (GcrRecord *record,
- guint column,
- gsize *n_data);
-
-void _gcr_record_set_base64 (GcrRecord *record,
- guint column,
- gconstpointer data,
- gsize n_data);
-
-const gchar* _gcr_record_get_raw (GcrRecord *record,
- guint column);
-
-void _gcr_record_set_raw (GcrRecord *record,
- guint column,
- const gchar *value);
-
-void _gcr_record_take_raw (GcrRecord *record,
- guint column,
- gchar *value);
-
-GQuark _gcr_record_get_schema (GcrRecord *record);
-
-GPtrArray * _gcr_records_parse_colons (gconstpointer data,
- gssize n_data);
-
-gchar * _gcr_records_format (GPtrArray *records);
-
-GcrRecord * _gcr_records_find (GPtrArray *records,
- GQuark schema);
-
-G_END_DECLS
-
-#endif /* GCR_RECORD_H */
diff --git a/gcr/gcr-renderer.c b/gcr/gcr-renderer.c
deleted file mode 100644
index c98376b5..00000000
--- a/gcr/gcr-renderer.c
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-deprecated.h"
-#include "gcr-renderer.h"
-
-#include "gcr-certificate-renderer.h"
-#include "gcr-gnupg-renderer.h"
-#include "gcr-key-renderer.h"
-
-#include "gck/gck.h"
-
-#include <gtk/gtk.h>
-
-/**
- * SECTION:gcr-renderer
- * @title: GcrRenderer
- * @short_description: An interface implemented by renderers.
- *
- * A #GcrRenderer is an interface that's implemented by renderers which wish
- * to render data to a #GcrViewer.
- *
- * The interaction between #GcrRenderer and #GcrViewer is not stable yet, and
- * so new renderers cannot be implemented outside the Gcr library at this time.
- *
- * To lookup a renderer for a given set of attributes, use the gcr_renderer_create()
- * function. This will create and initialize a renderer that's capable of viewing
- * the data in those attributes.
- */
-
-/**
- * GcrRenderer:
- *
- * A renderer.
- */
-
-/**
- * GcrRendererIface:
- * @parent: the parent interface type
- * @data_changed: signal emitted when data being rendered changes
- * @render_view: method invoked to render the data into a viewer
- * @populate_popup: method invoked to populate a popup menu with additional
- * renderer options
- *
- * The interface for #GcrRenderer
- */
-
-enum {
- DATA_CHANGED,
- LAST_SIGNAL
-};
-
-static guint signals[LAST_SIGNAL] = { 0 };
-
-typedef struct _GcrRegistered {
- GckAttributes *attrs;
- GType renderer_type;
-} GcrRegistered;
-
-static GArray *registered_renderers = NULL;
-static gboolean registered_sorted = FALSE;
-
-static void
-gcr_renderer_default_init (GcrRendererIface *iface)
-{
- static gboolean initialized = FALSE;
- if (!initialized) {
-
- /**
- * GcrRenderer:label:
- *
- * The label to display.
- */
- g_object_interface_install_property (iface,
- g_param_spec_string ("label", "Label", "The label for the renderer",
- "", G_PARAM_READWRITE));
-
- /**
- * GcrRenderer:attributes:
- *
- * The attributes to display.
- */
- g_object_interface_install_property (iface,
- g_param_spec_boxed ("attributes", "Attributes", "The data displayed in the renderer",
- GCK_TYPE_ATTRIBUTES, G_PARAM_READWRITE));
-
- /**
- * GcrRenderer::data-changed:
- *
- * A signal that is emitted by the renderer when it's data
- * changed and should be rerendered.
- */
- signals[DATA_CHANGED] = g_signal_new ("data-changed", GCR_TYPE_RENDERER, G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GcrRendererIface, data_changed),
- NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
-
- initialized = TRUE;
- }
-}
-
-typedef GcrRendererIface GcrRendererInterface;
-
-G_DEFINE_INTERFACE (GcrRenderer, gcr_renderer, G_TYPE_OBJECT);
-
-/**
- * gcr_renderer_render_view:
- * @self: The renderer
- * @viewer: The viewer to render to.
- *
- * Render the contents of the renderer to the given viewer.
- */
-void
-gcr_renderer_render_view (GcrRenderer *self, GcrViewer *viewer)
-{
- g_return_if_fail (GCR_IS_RENDERER (self));
- g_return_if_fail (GCR_RENDERER_GET_INTERFACE (self)->render_view);
- GCR_RENDERER_GET_INTERFACE (self)->render_view (self, viewer);
-}
-
-/**
- * gcr_renderer_render:
- * @self: the renderer
- * @viewer: the viewer to render to
- *
- * Render a renderer to the viewer.
- *
- * Deprecated: 3.2: Use gcr_renderer_render_view() instead
- */
-void
-gcr_renderer_render (GcrRenderer *self,
- GcrViewer *viewer)
-{
- gcr_renderer_render_view (self, viewer);
-}
-
-/**
- * gcr_renderer_popuplate_popup:
- * @self: The renderer
- * @viewer: The viewer that is displaying a popup
- * @menu: The popup menu being displayed
- *
- * Called by #GcrViewer when about to display a popup menu for the content
- * displayed by the renderer. The renderer can add a menu item if desired.
- */
-void
-gcr_renderer_popuplate_popup (GcrRenderer *self, GcrViewer *viewer,
- GtkMenu *menu)
-{
- g_return_if_fail (GCR_IS_RENDERER (self));
- if (GCR_RENDERER_GET_INTERFACE (self)->populate_popup)
- GCR_RENDERER_GET_INTERFACE (self)->populate_popup (self, viewer, menu);
-}
-
-/**
- * gcr_renderer_emit_data_changed:
- * @self: The renderer
- *
- * Emit the GcrRenderer::data-changed signal on the renderer. This is used by
- * renderer implementations.
- */
-void
-gcr_renderer_emit_data_changed (GcrRenderer *self)
-{
- g_return_if_fail (GCR_IS_RENDERER (self));
- g_signal_emit (self, signals[DATA_CHANGED], 0);
-}
-
-static gint
-sort_registered_by_n_attrs (gconstpointer a, gconstpointer b)
-{
- const GcrRegistered *ra = a;
- const GcrRegistered *rb = b;
- gulong na, nb;
-
- g_assert (a);
- g_assert (b);
-
- na = gck_attributes_count (ra->attrs);
- nb = gck_attributes_count (rb->attrs);
-
- /* Note we're sorting in reverse order */
- if (na < nb)
- return 1;
- return (na == nb) ? 0 : -1;
-}
-
-/**
- * gcr_renderer_create:
- * @label: (allow-none): The label for the renderer
- * @attrs: The attributes to render
- *
- * Create and initialize a renderer for the given attributes and label. These
- * renderers should have been preregistered via gcr_renderer_register().
- *
- * Returns: (transfer full) (allow-none): a new renderer, or %NULL if no renderer
- * matched the attributes; the render should be released with g_object_unref()
- */
-GcrRenderer *
-gcr_renderer_create (const gchar *label, GckAttributes *attrs)
-{
- GcrRegistered *registered;
- gboolean matched;
- gulong n_attrs;
- gulong j;
- gsize i;
-
- g_return_val_if_fail (attrs, NULL);
-
- gcr_renderer_register_well_known ();
-
- if (!registered_renderers)
- return NULL;
-
- if (!registered_sorted) {
- g_array_sort (registered_renderers, sort_registered_by_n_attrs);
- registered_sorted = TRUE;
- }
-
- for (i = 0; i < registered_renderers->len; ++i) {
- registered = &(g_array_index (registered_renderers, GcrRegistered, i));
- n_attrs = gck_attributes_count (registered->attrs);
-
- matched = TRUE;
-
- for (j = 0; j < n_attrs; ++j) {
- if (!gck_attributes_contains (attrs, gck_attributes_at (registered->attrs, j))) {
- matched = FALSE;
- break;
- }
- }
-
- if (matched)
- return g_object_new (registered->renderer_type, "label", label,
- "attributes", attrs, NULL);
- }
-
- return NULL;
-}
-
-/**
- * gcr_renderer_register:
- * @renderer_type: The renderer class type
- * @attrs: The attributes to match
- *
- * Register a renderer to be created when matching attributes are passed to
- * gcr_renderer_create().
- */
-void
-gcr_renderer_register (GType renderer_type, GckAttributes *attrs)
-{
- GcrRegistered registered;
-
- if (!registered_renderers)
- registered_renderers = g_array_new (FALSE, FALSE, sizeof (GcrRegistered));
-
- registered.renderer_type = renderer_type;
- registered.attrs = gck_attributes_ref (attrs);
- g_array_append_val (registered_renderers, registered);
- registered_sorted = FALSE;
-}
-
-/**
- * gcr_renderer_register_well_known:
- *
- * Register all the well known renderers for certificates and keys known to the
- * Gcr library.
- */
-void
-gcr_renderer_register_well_known (void)
-{
- g_type_class_unref (g_type_class_ref (GCR_TYPE_CERTIFICATE_RENDERER));
- g_type_class_unref (g_type_class_ref (GCR_TYPE_KEY_RENDERER));
- g_type_class_unref (g_type_class_ref (GCR_TYPE_GNUPG_RENDERER));
-}
diff --git a/gcr/gcr-renderer.h b/gcr/gcr-renderer.h
deleted file mode 100644
index 4223ce66..00000000
--- a/gcr/gcr-renderer.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#ifndef __GCR_RENDERER_H__
-#define __GCR_RENDERER_H__
-
-#include <glib-object.h>
-
-#include "gcr-column.h"
-#include "gcr-types.h"
-#include "gcr-viewer.h"
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_RENDERER (gcr_renderer_get_type())
-#define GCR_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_RENDERER, GcrRenderer))
-#define GCR_IS_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_RENDERER))
-#define GCR_RENDERER_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GCR_TYPE_RENDERER, GcrRendererIface))
-
-typedef struct _GcrRenderer GcrRenderer;
-typedef struct _GcrRendererIface GcrRendererIface;
-
-struct _GcrRendererIface {
- GTypeInterface parent;
-
- /* signals */
- void (*data_changed) (GcrRenderer *self);
-
- /* virtual */
- void (*render_view) (GcrRenderer *self, GcrViewer *viewer);
-
- void (*populate_popup) (GcrRenderer *self, GcrViewer *viewer, GtkMenu *menu);
-
- /*< private >*/
- gpointer dummy1;
-
- gpointer dummy2;
- gpointer dummy3;
- gpointer dummy4;
- gpointer dummy5;
- gpointer dummy6;
- gpointer dummy7;
-
-};
-
-GType gcr_renderer_get_type (void) G_GNUC_CONST;
-
-void gcr_renderer_render_view (GcrRenderer *self,
- GcrViewer *viewer);
-
-void gcr_renderer_popuplate_popup (GcrRenderer *self,
- GcrViewer *viewer,
- GtkMenu *menu);
-
-void gcr_renderer_emit_data_changed (GcrRenderer *self);
-
-GcrRenderer* gcr_renderer_create (const gchar *label,
- GckAttributes *attrs);
-
-void gcr_renderer_register (GType renderer_type,
- GckAttributes *attrs);
-
-void gcr_renderer_register_well_known (void);
-
-G_END_DECLS
-
-#endif /* __GCR_RENDERER_H__ */
diff --git a/gcr/gcr-secret-exchange.c b/gcr/gcr-secret-exchange.c
deleted file mode 100644
index 92899ad4..00000000
--- a/gcr/gcr-secret-exchange.c
+++ /dev/null
@@ -1,848 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-secret-exchange.h"
-
-#include "egg/egg-dh.h"
-#include "egg/egg-hkdf.h"
-#include "egg/egg-libgcrypt.h"
-#include "egg/egg-padding.h"
-#include "egg/egg-secure-memory.h"
-
-#include <string.h>
-#include <gcrypt.h>
-
-EGG_SECURE_DECLARE (secret_exchange);
-
-/**
- * SECTION:gcr-secret-exchange
- * @title: GcrSecretExchange
- * @short_description: Exchange secrets between processes in an unexposed way.
- *
- * Allows exchange of secrets between two processes on the same system without
- * exposing those secrets to things like loggers, non-pageable memory etc.
- *
- * This does not protect against active attacks like MITM attacks.
- *
- * Each side creates a #GcrSecretExchange object, and one of the sides calls
- * gcr_secret_exchange_begin(). This creates a string, which should be passed
- * to the other side. Each side passes the strings it receives into
- * gcr_secret_exchange_receive().
- *
- * In order to send a reply (either with or without a secret) use
- * gcr_secret_exchange_send(). A side must have had gcr_secret_exchange_receive()
- * successfully called before it can use gcr_secret_exchange_send().
- *
- * The #GcrSecretExchange objects can be used for multiple iterations of the
- * conversation, or for just one request/reply. The only limitation being that
- * the initial request cannot contain a secret.
- *
- * Caveat: Information about the approximate length (rounded up to the nearest
- * 16 bytes) may be leaked. If this is considered inacceptable, do not use
- * #GcrSecretExchange.
- */
-
-/**
- * GcrSecretExchange:
- *
- * An object representing one side of a secret exchange.
- */
-
-/**
- * GcrSecretExchangeClass:
- *
- * The class for #GcrSecretExchange
- */
-
-/**
- * GCR_SECRET_EXCHANGE_PROTOCOL_1:
- *
- * The current secret exchange protocol. Key agreement is done using DH with the
- * 1536 bit IKE parameter group. Keys are derived using SHA256 with HKDF. The
- * transport encryption is done with 128 bit AES.
- */
-
-#define SECRET_EXCHANGE_PROTOCOL_1_PREFIX "[" GCR_SECRET_EXCHANGE_PROTOCOL_1 "]\n"
-
-enum {
- PROP_0,
- PROP_PROTOCOL
-};
-
-typedef struct _GcrSecretExchangeDefault GcrSecretExchangeDefault;
-
-struct _GcrSecretExchangePrivate {
- GcrSecretExchangeDefault *default_exchange;
- GDestroyNotify destroy_exchange;
- gboolean explicit_protocol;
- gboolean generated;
- guchar *publi;
- gsize n_publi;
- gboolean derived;
- gchar *secret;
- gsize n_secret;
-};
-
-G_DEFINE_TYPE (GcrSecretExchange, gcr_secret_exchange, G_TYPE_OBJECT);
-
-static void
-key_file_set_base64 (GKeyFile *key_file, const gchar *section,
- const gchar *field, gconstpointer data, gsize n_data)
-{
- gchar *value;
-
- value = g_base64_encode (data, n_data);
- g_key_file_set_value (key_file, section, field, value);
- g_free (value);
-}
-
-static gpointer
-key_file_get_base64 (GKeyFile *key_file, const gchar *section,
- const gchar *field, gsize *n_result)
-{
- gpointer result = NULL;
- gchar *data;
-
- g_return_val_if_fail (key_file, NULL);
- g_return_val_if_fail (section, NULL);
- g_return_val_if_fail (field, NULL);
- g_return_val_if_fail (n_result, NULL);
-
- data = g_key_file_get_value (key_file, section, field, NULL);
- if (data != NULL)
- result = g_base64_decode (data, n_result);
- g_free (data);
- return result;
-}
-
-static void
-gcr_secret_exchange_init (GcrSecretExchange *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_SECRET_EXCHANGE,
- GcrSecretExchangePrivate);
-}
-
-
-static void
-gcr_secret_exchange_set_property (GObject *obj,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GcrSecretExchange *self = GCR_SECRET_EXCHANGE (obj);
- const gchar *protocol;
-
- switch (prop_id) {
- case PROP_PROTOCOL:
- protocol = g_value_get_string (value);
- if (protocol != NULL) {
- if (g_str_equal (protocol, GCR_SECRET_EXCHANGE_PROTOCOL_1))
- self->pv->explicit_protocol = TRUE;
- else
- g_warning ("the GcrSecretExchange protocol %s is unsupported defaulting to %s",
- protocol, GCR_SECRET_EXCHANGE_PROTOCOL_1);
- }
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_secret_exchange_get_property (GObject *obj,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GcrSecretExchange *self = GCR_SECRET_EXCHANGE (obj);
-
- switch (prop_id) {
- case PROP_PROTOCOL:
- g_value_set_string (value, gcr_secret_exchange_get_protocol (self));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-clear_secret_exchange (GcrSecretExchange *self)
-{
- g_free (self->pv->publi);
- self->pv->publi = NULL;
- self->pv->n_publi = 0;
- self->pv->derived = FALSE;
- self->pv->generated = TRUE;
- egg_secure_free (self->pv->secret);
- self->pv->secret = NULL;
- self->pv->n_secret = 0;
-}
-
-static void
-gcr_secret_exchange_finalize (GObject *obj)
-{
- GcrSecretExchange *self = GCR_SECRET_EXCHANGE (obj);
-
- if (self->pv->destroy_exchange)
- (self->pv->destroy_exchange) (self->pv->default_exchange);
-
- clear_secret_exchange (self);
-
- G_OBJECT_CLASS (gcr_secret_exchange_parent_class)->finalize (obj);
-}
-
-/**
- * gcr_secret_exchange_new:
- * @protocol: (allow-none): the exchange protocol to use
- *
- * Create a new secret exchange object.
- *
- * Specify a protocol of %NULL to allow any protocol. This is especially
- * relevant on the side of the exchange that does not call
- * gcr_secret_exchange_begin(), that is the originator. Currently the only
- * protocol supported is %GCR_SECRET_EXCHANGE_PROTOCOL_1.
- *
- * Returns: (transfer full): A new #GcrSecretExchange object
- */
-GcrSecretExchange *
-gcr_secret_exchange_new (const gchar *protocol)
-{
- return g_object_new (GCR_TYPE_SECRET_EXCHANGE,
- "protocol", protocol,
- NULL);
-}
-
-/**
- * gcr_secret_exchange_get_protocol:
- * @self: a #GcrSecretExchange object
- * Get the secret exchange protocol.
- *
- * Will return %NULL if no protocol was specified, and either
- * gcr_secret_exchange_begin() or gcr_secret_exchange_receive() have not been
- * called successfully.
- *
- * Returns: the protocol or %NULL
- */
-const gchar *
-gcr_secret_exchange_get_protocol (GcrSecretExchange *self)
-{
- g_return_val_if_fail (GCR_IS_SECRET_EXCHANGE (self), NULL);
- if (self->pv->explicit_protocol || self->pv->generated)
- return GCR_SECRET_EXCHANGE_PROTOCOL_1;
- return NULL;
-}
-
-/**
- * gcr_secret_exchange_begin:
- * @self: a #GcrSecretExchange object
- *
- * Begin the secret exchange. The resulting string should be sent to the other
- * side of the exchange. The other side should use gcr_secret_exchange_receive()
- * to process the string.
- *
- * Returns: (transfer full): A newly allocated string to be sent to the other
- * side of the secret exchange
- */
-gchar *
-gcr_secret_exchange_begin (GcrSecretExchange *self)
-{
- GcrSecretExchangeClass *klass;
- GKeyFile *output;
- gchar *result;
-
- g_return_val_if_fail (GCR_IS_SECRET_EXCHANGE (self), NULL);
-
- klass = GCR_SECRET_EXCHANGE_GET_CLASS (self);
- g_return_val_if_fail (klass->generate_exchange_key, NULL);
-
- clear_secret_exchange (self);
-
- output = g_key_file_new ();
-
- if (!(klass->generate_exchange_key) (self, GCR_SECRET_EXCHANGE_PROTOCOL_1,
- &self->pv->publi, &self->pv->n_publi))
- g_return_val_if_reached (NULL);
- self->pv->generated = TRUE;
-
- key_file_set_base64 (output, GCR_SECRET_EXCHANGE_PROTOCOL_1, "public",
- self->pv->publi, self->pv->n_publi);
-
- result = g_key_file_to_data (output, NULL, NULL);
- g_return_val_if_fail (result != NULL, NULL);
-
- g_strchomp (result);
-
- if (g_str_has_prefix (result, SECRET_EXCHANGE_PROTOCOL_1_PREFIX))
- g_warning ("the prepared data does not have the correct protocol prefix");
-
- g_key_file_free (output);
-
- return result;
-}
-
-static gboolean
-derive_key (GcrSecretExchange *self,
- GKeyFile *input)
-{
- GcrSecretExchangeClass *klass;
- gboolean ret;
- guchar *peer;
- gsize n_peer;
-
- klass = GCR_SECRET_EXCHANGE_GET_CLASS (self);
- g_return_val_if_fail (klass->derive_transport_key, FALSE);
-
- peer = key_file_get_base64 (input, GCR_SECRET_EXCHANGE_PROTOCOL_1, "public", &n_peer);
- if (peer == NULL) {
- g_message ("secret-exchange: invalid or missing 'public' argument");
- return FALSE;
- }
-
- ret = (klass->derive_transport_key) (self, peer, n_peer);
- self->pv->derived = ret;
-
- g_free (peer);
- return ret;
-}
-
-static gboolean
-perform_decrypt (GcrSecretExchange *self,
- GKeyFile *input,
- guchar **secret,
- gsize *n_secret)
-{
- GcrSecretExchangeClass *klass;
- gpointer iv, value;
- guchar *result;
- gsize n_result, n_iv, n_value;
- gboolean ret;
-
- klass = GCR_SECRET_EXCHANGE_GET_CLASS (self);
- g_return_val_if_fail (klass->decrypt_transport_data, FALSE);
-
- iv = key_file_get_base64 (input, GCR_SECRET_EXCHANGE_PROTOCOL_1, "iv", &n_iv);
-
- value = key_file_get_base64 (input, GCR_SECRET_EXCHANGE_PROTOCOL_1, "secret", &n_value);
- if (value == NULL) {
- g_message ("secret-exchange: invalid or missing value");
- g_free (iv);
- return FALSE;
- }
-
- ret = (klass->decrypt_transport_data) (self, egg_secure_realloc, value, n_value,
- iv, n_iv, &result, &n_result);
-
- g_free (value);
- g_free (iv);
-
- if (!ret)
- return FALSE;
-
- /* Reallocate a null terminator */
- if (result) {
- result = egg_secure_realloc (result, n_result + 1);
- result[n_result] = 0;
- }
-
- *secret = result;
- *n_secret = n_result;
-
- return TRUE;
-}
-
-/**
- * gcr_secret_exchange_receive:
- * @self: a #GcrSecretExchange object
- * @exchange: the string received
- *
- * Receive a string from the other side of secret exchange. This string will
- * have been created by gcr_secret_exchange_begin() or gcr_secret_exchange_send()
- *
- * Returns: whether the string was successfully parsed and received
- */
-gboolean
-gcr_secret_exchange_receive (GcrSecretExchange *self,
- const gchar *exchange)
-{
- GcrSecretExchangeClass *klass;
- GKeyFile *input;
- gchar *secret;
- gsize n_secret;
- gboolean ret;
-
- g_return_val_if_fail (GCR_IS_SECRET_EXCHANGE (self), FALSE);
- g_return_val_if_fail (exchange != NULL, FALSE);
-
- klass = GCR_SECRET_EXCHANGE_GET_CLASS (self);
- g_return_val_if_fail (klass->generate_exchange_key, FALSE);
- g_return_val_if_fail (klass->derive_transport_key, FALSE);
-
- /* Parse the input */
- input = g_key_file_new ();
- if (!g_key_file_load_from_data (input, exchange, strlen (exchange),
- G_KEY_FILE_NONE, NULL)) {
- g_key_file_free (input);
- g_message ("couldn't parse secret exchange data");
- return FALSE;
- }
-
- if (!self->pv->generated) {
- if (!(klass->generate_exchange_key) (self, GCR_SECRET_EXCHANGE_PROTOCOL_1,
- &self->pv->publi, &self->pv->n_publi))
- g_return_val_if_reached (FALSE);
- self->pv->generated = TRUE;
- }
-
- if (!self->pv->derived) {
- if (!derive_key (self, input))
- return FALSE;
- }
-
- ret = TRUE;
-
- if (g_key_file_has_key (input, GCR_SECRET_EXCHANGE_PROTOCOL_1, "secret", NULL)) {
-
- /* Remember that this can return a NULL secret */
- if (!perform_decrypt (self, input, (guchar **)&secret, &n_secret)) {
- ret = FALSE;
- } else {
- egg_secure_free (self->pv->secret);
- self->pv->secret = secret;
- self->pv->n_secret = n_secret;
- }
- }
-
- return ret;
-}
-
-/**
- * gcr_secret_exchange_get_secret:
- * @self: a #GcrSecretExchange object
- * @secret_len: (allow-none): optionally, a location to store the length of returned secret
- *
- * Returns the last secret received. If no secret has yet been received this
- * will return %NULL. The string is owned by the #GcrSecretExchange object
- * and will be valid until the next time that gcr_secret_exchange_receive()
- * is called on this object, or the object is destroyed.
- *
- * Depending on the secret passed into the other side of the secret exchange,
- * the resurt may be a binary string. It does however have a null terminator,
- * so if you're certain that it is does not contain arbitrary binary data,
- * it can be used as a string.
- *
- * Returns: (transfer none) (array length=secret_len): the last secret received
- */
-const gchar *
-gcr_secret_exchange_get_secret (GcrSecretExchange *self,
- gsize *secret_len)
-{
- g_return_val_if_fail (GCR_IS_SECRET_EXCHANGE (self), NULL);
-
- if (secret_len)
- *secret_len = self->pv->n_secret;
- return self->pv->secret;
-}
-
-static gboolean
-perform_encrypt (GcrSecretExchange *self,
- GKeyFile *output,
- const gchar *secret,
- gsize n_secret)
-{
- GcrSecretExchangeClass *klass;
- guchar *result, *iv;
- gsize n_result, n_iv;
-
- klass = GCR_SECRET_EXCHANGE_GET_CLASS (self);
- g_return_val_if_fail (klass->encrypt_transport_data, FALSE);
-
- if (!(klass->encrypt_transport_data) (self, g_realloc, (const guchar *)secret,
- n_secret, &iv, &n_iv, &result, &n_result))
- return FALSE;
-
- key_file_set_base64 (output, GCR_SECRET_EXCHANGE_PROTOCOL_1, "secret", result, n_result);
- key_file_set_base64 (output, GCR_SECRET_EXCHANGE_PROTOCOL_1, "iv", iv, n_iv);
-
- g_free (result);
- g_free (iv);
-
- return TRUE;
-}
-
-/**
- * gcr_secret_exchange_send:
- * @self: a #GcrSecretExchange object
- * @secret: (allow-none): optionally, a secret to send to the other side
- * @secret_len: length of @secret, or -1 if null terminated
- *
- * Send a reply to the other side of the secret exchange, optionally sending a
- * secret.
- *
- * gcr_secret_exchange_receive() must have been successfully called at least
- * once on this object. In other words this object must have received data
- * from the other side of the secret exchange, before we can send a secret.
- *
- * Returns: (transfer full): a newly allocated string to be sent to the other
- * side of the secret exchange
- */
-gchar *
-gcr_secret_exchange_send (GcrSecretExchange *self,
- const gchar *secret,
- gssize secret_len)
-{
- GKeyFile *output;
- gchar *result;
-
- g_return_val_if_fail (GCR_IS_SECRET_EXCHANGE (self), NULL);
-
- if (!self->pv->derived) {
- g_warning ("gcr_secret_exchange_receive() must be called "
- "before calling this function");
- return NULL;
- }
-
- output = g_key_file_new ();
- key_file_set_base64 (output, GCR_SECRET_EXCHANGE_PROTOCOL_1, "public", self->pv->publi,
- self->pv->n_publi);
-
- if (secret != NULL) {
- if (secret_len < 0)
- secret_len = strlen (secret);
- if (!perform_encrypt (self, output, secret, secret_len)) {
- g_key_file_free (output);
- return NULL;
- }
- }
-
- result = g_key_file_to_data (output, NULL, NULL);
- g_return_val_if_fail (result != NULL, NULL);
-
- g_strchomp (result);
-
- if (g_str_has_prefix (result, SECRET_EXCHANGE_PROTOCOL_1_PREFIX))
- g_warning ("the prepared data does not have the correct protocol prefix");
-
- g_key_file_free (output);
- return result;
-}
-
-/*
- * This is the only set we support so far. It includes:
- * - DH with the 1536 ike modp group for key exchange
- * - HKDF SHA256 for hashing of the key to appropriate size
- * - AES 128 CBC for encryption
- * - PKCS#7 style padding
- */
-
-#define EXCHANGE_1_IKE_NAME "ietf-ike-grp-modp-1536"
-#define EXCHANGE_1_KEY_LENGTH 16
-#define EXCHANGE_1_IV_LENGTH 16
-#define EXCHANGE_1_HASH_ALGO "sha256"
-#define EXCHANGE_1_CIPHER_ALGO GCRY_CIPHER_AES128
-#define EXCHANGE_1_CIPHER_MODE GCRY_CIPHER_MODE_CBC
-
-struct _GcrSecretExchangeDefault {
- gcry_mpi_t prime;
- gcry_mpi_t base;
- gcry_mpi_t pub;
- gcry_mpi_t priv;
- gpointer key;
-};
-
-static guchar *
-mpi_to_data (gcry_mpi_t mpi,
- gsize *n_data)
-{
- gcry_error_t gcry;
- guchar *data;
-
- /* Get the size */
- gcry = gcry_mpi_print (GCRYMPI_FMT_USG, NULL, 0, n_data, mpi);
- g_return_val_if_fail (gcry == 0, NULL);
-
- data = g_malloc0 (*n_data);
-
- /* Write into buffer */
- gcry = gcry_mpi_print (GCRYMPI_FMT_USG, data, *n_data, n_data, mpi);
- g_return_val_if_fail (gcry == 0, NULL);
-
- return data;
-}
-
-static gcry_mpi_t
-mpi_from_data (const guchar *data,
- gsize n_data)
-{
- gcry_mpi_t mpi;
- gcry_error_t gcry;
-
- gcry = gcry_mpi_scan (&mpi, GCRYMPI_FMT_USG, data, n_data, NULL);
- return (gcry == 0) ? mpi : NULL;
-}
-
-static void
-gcr_secret_exchange_default_free (gpointer to_free)
-{
- GcrSecretExchangeDefault *data = to_free;
- gcry_mpi_release (data->prime);
- gcry_mpi_release (data->base);
- gcry_mpi_release (data->pub);
- gcry_mpi_release (data->priv);
- if (data->key) {
- egg_secure_clear (data->key, EXCHANGE_1_KEY_LENGTH);
- egg_secure_free (data->key);
- }
- g_free (data);
-}
-
-static gboolean
-gcr_secret_exchange_default_generate_exchange_key (GcrSecretExchange *exchange,
- const gchar *scheme,
- guchar **public_key,
- gsize *n_public_key)
-{
- GcrSecretExchangeDefault *data = exchange->pv->default_exchange;
-
- if (data == NULL) {
- data = g_new0 (GcrSecretExchangeDefault, 1);
- if (!egg_dh_default_params (EXCHANGE_1_IKE_NAME, &data->prime, &data->base))
- g_return_val_if_reached (FALSE);
-
- exchange->pv->default_exchange = data;
- exchange->pv->destroy_exchange = gcr_secret_exchange_default_free;
- }
-
- gcry_mpi_release (data->priv);
- data->priv = NULL;
- gcry_mpi_release (data->pub);
- data->pub = NULL;
- egg_secure_free (data->key);
- data->key = NULL;
-
- if (!egg_dh_gen_pair (data->prime, data->base, 0,
- &data->pub, &data->priv))
- g_return_val_if_reached (FALSE);
-
- *public_key = mpi_to_data (data->pub, n_public_key);
- return *public_key != NULL;
-}
-
-static gboolean
-gcr_secret_exchange_default_derive_transport_key (GcrSecretExchange *exchange,
- const guchar *peer,
- gsize n_peer)
-{
- GcrSecretExchangeDefault *data = exchange->pv->default_exchange;
- gpointer ikm;
- gsize n_ikm;
- gcry_mpi_t mpi;
-
- g_return_val_if_fail (data != NULL, FALSE);
- g_return_val_if_fail (data->priv != NULL, FALSE);
-
- mpi = mpi_from_data (peer, n_peer);
- if (mpi == NULL)
- return FALSE;
-
- /* Build up a key we can use */
- ikm = egg_dh_gen_secret (mpi, data->priv, data->prime, &n_ikm);
- g_return_val_if_fail (ikm != NULL, FALSE);
-
- if (data->key == NULL)
- data->key = egg_secure_alloc (EXCHANGE_1_KEY_LENGTH);
-
- if (!egg_hkdf_perform (EXCHANGE_1_HASH_ALGO, ikm, n_ikm, NULL, 0,
- NULL, 0, data->key, EXCHANGE_1_KEY_LENGTH))
- g_return_val_if_reached (FALSE);
-
- egg_secure_free (ikm);
- gcry_mpi_release (mpi);
-
- return TRUE;
-}
-
-static gboolean
-gcr_secret_exchange_default_encrypt_transport_data (GcrSecretExchange *exchange,
- GckAllocator allocator,
- const guchar *plain_text,
- gsize n_plain_text,
- guchar **iv,
- gsize *n_iv,
- guchar **cipher_text,
- gsize *n_cipher_text)
-{
- GcrSecretExchangeDefault *data = exchange->pv->default_exchange;
- gcry_cipher_hd_t cih;
- gcry_error_t gcry;
- guchar *padded;
- gsize n_result;
- guchar *result;
- gsize pos;
-
- g_return_val_if_fail (data != NULL, FALSE);
- g_return_val_if_fail (data->key != NULL, FALSE);
-
- gcry = gcry_cipher_open (&cih, EXCHANGE_1_CIPHER_ALGO, EXCHANGE_1_CIPHER_MODE, 0);
- if (gcry != 0) {
- g_warning ("couldn't create aes cipher context: %s", gcry_strerror (gcry));
- g_free (iv);
- return FALSE;
- }
-
- *iv = (allocator) (NULL, EXCHANGE_1_IV_LENGTH);
- g_return_val_if_fail (*iv != NULL, FALSE);
- gcry_create_nonce (*iv, EXCHANGE_1_IV_LENGTH);
- *n_iv = EXCHANGE_1_IV_LENGTH;
-
- /* 16 = 128 bits */
- gcry = gcry_cipher_setkey (cih, data->key, EXCHANGE_1_KEY_LENGTH);
- g_return_val_if_fail (gcry == 0, FALSE);
-
- /* 16 = 128 bits */
- gcry = gcry_cipher_setiv (cih, *iv, EXCHANGE_1_IV_LENGTH);
- g_return_val_if_fail (gcry == 0, FALSE);
-
- /* Pad the text properly */
- if (!egg_padding_pkcs7_pad (egg_secure_realloc, 16, plain_text, n_plain_text,
- (gpointer*)&padded, &n_result))
- g_return_val_if_reached (FALSE);
- result = (allocator) (NULL, n_result);
- g_return_val_if_fail (result != NULL, FALSE);
-
- for (pos = 0; pos < n_result; pos += 16) {
- gcry = gcry_cipher_encrypt (cih, result + pos, 16, padded + pos, 16);
- g_return_val_if_fail (gcry == 0, FALSE);
- }
-
- gcry_cipher_close (cih);
-
- egg_secure_clear (padded, n_result);
- egg_secure_free (padded);
-
- *cipher_text = result;
- *n_cipher_text = n_result;
- return TRUE;
-}
-
-static gboolean
-gcr_secret_exchange_default_decrypt_transport_data (GcrSecretExchange *exchange,
- GckAllocator allocator,
- const guchar *cipher_text,
- gsize n_cipher_text,
- const guchar *iv,
- gsize n_iv,
- guchar **plain_text,
- gsize *n_plain_text)
-{
- GcrSecretExchangeDefault *data = exchange->pv->default_exchange;
- guchar* padded;
- guchar* result;
- gsize n_result;
- gsize pos;
- gcry_cipher_hd_t cih;
- gcry_error_t gcry;
-
- g_return_val_if_fail (data != NULL, FALSE);
- g_return_val_if_fail (data->key != NULL, FALSE);
-
- if (iv == NULL || n_iv != EXCHANGE_1_IV_LENGTH) {
- g_message ("secret-exchange: invalid or missing iv");
- return FALSE;
- }
-
- if (n_cipher_text % 16 != 0) {
- g_message ("secret-message: invalid length for cipher text");
- return FALSE;
- }
-
- gcry = gcry_cipher_open (&cih, EXCHANGE_1_CIPHER_ALGO, EXCHANGE_1_CIPHER_MODE, 0);
- if (gcry != 0) {
- g_warning ("couldn't create aes cipher context: %s", gcry_strerror (gcry));
- return FALSE;
- }
-
- /* 16 = 128 bits */
- gcry = gcry_cipher_setkey (cih, data->key, EXCHANGE_1_KEY_LENGTH);
- g_return_val_if_fail (gcry == 0, FALSE);
-
- /* 16 = 128 bits */
- gcry = gcry_cipher_setiv (cih, iv, n_iv);
- g_return_val_if_fail (gcry == 0, FALSE);
-
- /* Allocate memory for the result */
- padded = (allocator) (NULL, n_cipher_text);
- g_return_val_if_fail (padded != NULL, FALSE);
-
- for (pos = 0; pos < n_cipher_text; pos += 16) {
- gcry = gcry_cipher_decrypt (cih, padded + pos, 16, (guchar *)cipher_text + pos, 16);
- g_return_val_if_fail (gcry == 0, FALSE);
- }
-
- gcry_cipher_close (cih);
-
- if (!egg_padding_pkcs7_unpad (allocator, 16, padded, n_cipher_text,
- (gpointer*)&result, &n_result))
- result = NULL;
-
- /* Free the padded text */
- (allocator) (padded, 0);
-
- *plain_text = result;
- *n_plain_text = n_result;
- return TRUE;
-}
-
-static void
-gcr_secret_exchange_class_init (GcrSecretExchangeClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- gobject_class->get_property = gcr_secret_exchange_get_property;
- gobject_class->set_property = gcr_secret_exchange_set_property;
- gobject_class->finalize = gcr_secret_exchange_finalize;
-
- klass->generate_exchange_key = gcr_secret_exchange_default_generate_exchange_key;
- klass->derive_transport_key = gcr_secret_exchange_default_derive_transport_key;
- klass->decrypt_transport_data = gcr_secret_exchange_default_decrypt_transport_data;
- klass->encrypt_transport_data = gcr_secret_exchange_default_encrypt_transport_data;
-
- g_type_class_add_private (gobject_class, sizeof (GcrSecretExchangePrivate));
-
- egg_libgcrypt_initialize ();
-
- /**
- * GcrSecretExchange:protocol:
- *
- * The protocol being used for the exchange.
- *
- * Will be %NULL if no protocol was specified when creating this object,
- * and either gcr_secret_exchange_begin() or gcr_secret_exchange_receive()
- * have not been called successfully.
- */
- g_object_class_install_property (gobject_class, PROP_PROTOCOL,
- g_param_spec_string ("protocol", "Protocol", "Exchange protocol",
- GCR_SECRET_EXCHANGE_PROTOCOL_1,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-}
diff --git a/gcr/gcr-secret-exchange.h b/gcr/gcr-secret-exchange.h
deleted file mode 100644
index 5608f632..00000000
--- a/gcr/gcr-secret-exchange.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#ifndef __GCR_SECRET_EXCHANGE_H__
-#define __GCR_SECRET_EXCHANGE_H__
-
-#include "gcr-base.h"
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define GCR_SECRET_EXCHANGE_PROTOCOL_1 "sx-aes-1"
-
-#define GCR_TYPE_SECRET_EXCHANGE (gcr_secret_exchange_get_type ())
-#define GCR_SECRET_EXCHANGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_SECRET_EXCHANGE, GcrSecretExchange))
-#define GCR_SECRET_EXCHANGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_SECRET_EXCHANGE, GcrSecretExchangeClass))
-#define GCR_IS_SECRET_EXCHANGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_SECRET_EXCHANGE))
-#define GCR_IS_SECRET_EXCHANGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_SECRET_EXCHANGE))
-#define GCR_SECRET_EXCHANGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_SECRET_EXCHANGE, GcrSecretExchangeClass))
-
-typedef struct _GcrSecretExchange GcrSecretExchange;
-typedef struct _GcrSecretExchangeClass GcrSecretExchangeClass;
-typedef struct _GcrSecretExchangePrivate GcrSecretExchangePrivate;
-
-struct _GcrSecretExchange {
- /*< private >*/
- GObject parent;
- GcrSecretExchangePrivate *pv;
-};
-
-struct _GcrSecretExchangeClass {
- /*< private >*/
- GObjectClass parent_class;
-
- /* virtual methods, not used publicly */
- gboolean (*generate_exchange_key) (GcrSecretExchange *exchange,
- const gchar *scheme,
- guchar **public_key,
- gsize *n_public_key);
-
- gboolean (*derive_transport_key) (GcrSecretExchange *exchange,
- const guchar *peer,
- gsize n_peer);
-
- gboolean (*encrypt_transport_data) (GcrSecretExchange *exchange,
- GckAllocator allocator,
- const guchar *plain_text,
- gsize n_plain_text,
- guchar **parameter,
- gsize *n_parameter,
- guchar **cipher_text,
- gsize *n_cipher_text);
-
- gboolean (*decrypt_transport_data) (GcrSecretExchange *exchange,
- GckAllocator allocator,
- const guchar *cipher_text,
- gsize n_cipher_text,
- const guchar *parameter,
- gsize n_parameter,
- guchar **plain_text,
- gsize *n_plain_text);
-
- gpointer dummy[6];
-};
-
-/* Caller side functions */
-
-GType gcr_secret_exchange_get_type (void);
-
-GcrSecretExchange * gcr_secret_exchange_new (const gchar *protocol);
-
-const gchar * gcr_secret_exchange_get_protocol (GcrSecretExchange *self);
-
-gchar * gcr_secret_exchange_begin (GcrSecretExchange *self);
-
-gboolean gcr_secret_exchange_receive (GcrSecretExchange *self,
- const gchar *exchange);
-
-gchar * gcr_secret_exchange_send (GcrSecretExchange *self,
- const gchar *secret,
- gssize secret_len);
-
-const gchar * gcr_secret_exchange_get_secret (GcrSecretExchange *self,
- gsize *secret_len);
-
-G_END_DECLS
-
-#endif /* __GCR_SECRET_EXCHANGE_H__ */
diff --git a/gcr/gcr-simple-certificate.c b/gcr/gcr-simple-certificate.c
deleted file mode 100644
index 03e3e763..00000000
--- a/gcr/gcr-simple-certificate.c
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2008 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-certificate.h"
-#include "gcr-comparable.h"
-#include "gcr-internal.h"
-#include "gcr-simple-certificate.h"
-
-#include <string.h>
-
-/**
- * SECTION:gcr-simple-certificate
- * @title: GcrSimpleCertificate
- * @short_description: A certificate loaded from a memory buffer
- *
- * An implementation of #GcrCertificate which loads a certificate from DER
- * data already located in memory.
- *
- * To create a #GcrSimpleCertificate object use the
- * gcr_simple_certificate_new() or gcr_simple_certificate_new_static()
- * functions.
- */
-
-/**
- * GcrSimpleCertificate:
- *
- * A #GcrCertificate which represents a certificate already in memory.
- */
-
-/**
- * GcrSimpleCertificateClass:
- * @parent_class: The parent class
- *
- * The class for #GcrSimpleCertificate.
- */
-
-struct _GcrSimpleCertificatePrivate {
- const guchar *data;
- gsize n_data;
- guchar *owned;
-};
-
-/* Forward declarations */
-static void gcr_simple_certificate_iface_init (GcrCertificateIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (GcrSimpleCertificate, gcr_simple_certificate, G_TYPE_OBJECT,
- GCR_CERTIFICATE_MIXIN_IMPLEMENT_COMPARABLE ();
- G_IMPLEMENT_INTERFACE (GCR_TYPE_CERTIFICATE, gcr_simple_certificate_iface_init);
-);
-
-/* -----------------------------------------------------------------------------
- * OBJECT
- */
-
-static void
-gcr_simple_certificate_init (GcrSimpleCertificate *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_SIMPLE_CERTIFICATE, GcrSimpleCertificatePrivate);
-}
-
-static void
-gcr_simple_certificate_real_finalize (GObject *obj)
-{
- GcrSimpleCertificate *self = GCR_SIMPLE_CERTIFICATE (obj);
-
- g_free (self->pv->owned);
- self->pv->owned = NULL;
- self->pv->data = NULL;
- self->pv->n_data = 0;
-
- G_OBJECT_CLASS (gcr_simple_certificate_parent_class)->finalize (obj);
-}
-
-static void
-gcr_simple_certificate_class_init (GcrSimpleCertificateClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- gobject_class->finalize = gcr_simple_certificate_real_finalize;
- gobject_class->get_property = gcr_certificate_mixin_get_property;
-
- g_type_class_add_private (gobject_class, sizeof (GcrSimpleCertificatePrivate));
-
- gcr_certificate_mixin_class_init (gobject_class);
- _gcr_initialize_library ();
-}
-
-static const guchar *
-gcr_simple_certificate_get_der_data (GcrCertificate *cert,
- gsize *n_data)
-{
- GcrSimpleCertificate *self = GCR_SIMPLE_CERTIFICATE (cert);
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (self), NULL);
- g_return_val_if_fail (n_data, NULL);
- g_return_val_if_fail (self->pv->data, NULL);
-
- /* This is called when we're not a base class */
- *n_data = self->pv->n_data;
- return self->pv->data;
-}
-
-static void
-gcr_simple_certificate_iface_init (GcrCertificateIface *iface)
-{
- iface->get_der_data = gcr_simple_certificate_get_der_data;
-}
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-/**
- * gcr_simple_certificate_new:
- * @data: (array length=n_data): the raw DER certificate data
- * @n_data: The length of @data
- *
- * Create a new #GcrSimpleCertificate for the raw DER data. The @data memory is
- * copied so you can dispose of it after this function returns.
- *
- * Returns: (transfer full) (type Gcr.SimpleCertificate): a new #GcrSimpleCertificate
- */
-GcrCertificate *
-gcr_simple_certificate_new (const guchar *data,
- gsize n_data)
-{
- GcrSimpleCertificate *cert;
-
- g_return_val_if_fail (data, NULL);
- g_return_val_if_fail (n_data, NULL);
-
- cert = g_object_new (GCR_TYPE_SIMPLE_CERTIFICATE, NULL);
-
- cert->pv->data = cert->pv->owned = g_memdup (data, n_data);
- cert->pv->n_data = n_data;
- return GCR_CERTIFICATE (cert);
-}
-
-/**
- * gcr_simple_certificate_new_static: (skip)
- * @data: (array length=n_data): The raw DER certificate data
- * @n_data: The length of @data
- *
- * Create a new #GcrSimpleCertificate for the raw DER data. The @data memory is
- * not copied and must persist until the #GcrSimpleCertificate object is
- * destroyed.
- *
- * Returns: (transfer full) (type Gcr.SimpleCertificate): a new #GcrSimpleCertificate
- */
-GcrCertificate *
-gcr_simple_certificate_new_static (const guchar *data,
- gsize n_data)
-{
- GcrSimpleCertificate *cert;
-
- g_return_val_if_fail (data, NULL);
- g_return_val_if_fail (n_data, NULL);
-
- cert = g_object_new (GCR_TYPE_SIMPLE_CERTIFICATE, NULL);
-
- cert->pv->owned = NULL;
- cert->pv->data = data;
- cert->pv->n_data = n_data;
- return GCR_CERTIFICATE (cert);
-}
diff --git a/gcr/gcr-simple-certificate.h b/gcr/gcr-simple-certificate.h
deleted file mode 100644
index d95aaae8..00000000
--- a/gcr/gcr-simple-certificate.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2008 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef __GCR_SIMPLE_CERTIFICATE_H__
-#define __GCR_SIMPLE_CERTIFICATE_H__
-
-#include "gcr-base.h"
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_SIMPLE_CERTIFICATE (gcr_simple_certificate_get_type ())
-#define GCR_SIMPLE_CERTIFICATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_SIMPLE_CERTIFICATE, GcrSimpleCertificate))
-#define GCR_SIMPLE_CERTIFICATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_SIMPLE_CERTIFICATE, GcrSimpleCertificateClass))
-#define GCR_IS_SIMPLE_CERTIFICATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_SIMPLE_CERTIFICATE))
-#define GCR_IS_SIMPLE_CERTIFICATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_SIMPLE_CERTIFICATE))
-#define GCR_SIMPLE_CERTIFICATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_SIMPLE_CERTIFICATE, GcrSimpleCertificateClass))
-
-typedef struct _GcrSimpleCertificate GcrSimpleCertificate;
-typedef struct _GcrSimpleCertificateClass GcrSimpleCertificateClass;
-typedef struct _GcrSimpleCertificatePrivate GcrSimpleCertificatePrivate;
-
-struct _GcrSimpleCertificate {
- GObject parent;
-
- /*< private >*/
- GcrSimpleCertificatePrivate *pv;
-};
-
-struct _GcrSimpleCertificateClass {
- GObjectClass parent_class;
-};
-
-GType gcr_simple_certificate_get_type (void);
-
-GcrCertificate * gcr_simple_certificate_new (const guchar *data,
- gsize n_data);
-
-GcrCertificate * gcr_simple_certificate_new_static (const guchar *data,
- gsize n_data);
-
-G_END_DECLS
-
-#endif /* __GCR_SIMPLE_CERTIFICATE_H__ */
diff --git a/gcr/gcr-simple-collection.c b/gcr/gcr-simple-collection.c
deleted file mode 100644
index f843a7c3..00000000
--- a/gcr/gcr-simple-collection.c
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-collection.h"
-#include "gcr-deprecated-base.h"
-#include "gcr-internal.h"
-#include "gcr-simple-collection.h"
-
-#include <string.h>
-
-/**
- * SECTION:gcr-simple-collection
- * @title: GcrSimpleCollection
- * @short_description: A simple implementation of GcrCollection
- *
- * A simple implementation of #GcrCollection, which you can add and remove
- * objects from. Use gcr_simple_collection_add() to do this
- * gcr_simple_collection_remove().
- */
-
-/**
- * GcrSimpleCollection:
- *
- * A simple implementation of #GcrCollection.
- */
-
-/**
- * GcrSimpleCollectionClass:
- * @parent_class: The parent class
- *
- * The class for #GcrSimpleCollection.
- */
-
-struct _GcrSimpleCollectionPrivate {
- GHashTable *items;
-};
-
-static void gcr_collection_iface (GcrCollectionIface *iface);
-G_DEFINE_TYPE_WITH_CODE (GcrSimpleCollection, gcr_simple_collection, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (GCR_TYPE_COLLECTION, gcr_collection_iface));
-
-#define UNUSED_VALUE GUINT_TO_POINTER (1)
-
-/* -----------------------------------------------------------------------------
- * OBJECT
- */
-
-static void
-gcr_simple_collection_init (GcrSimpleCollection *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_SIMPLE_COLLECTION, GcrSimpleCollectionPrivate);
- self->pv->items = g_hash_table_new_full (g_direct_hash, g_direct_equal, g_object_unref, NULL);
-}
-
-static void
-gcr_simple_collection_dispose (GObject *obj)
-{
- GcrSimpleCollection *self = GCR_SIMPLE_COLLECTION (obj);
-
- g_hash_table_remove_all (self->pv->items);
-
- G_OBJECT_CLASS (gcr_simple_collection_parent_class)->dispose (obj);
-}
-
-static void
-gcr_simple_collection_finalize (GObject *obj)
-{
- GcrSimpleCollection *self = GCR_SIMPLE_COLLECTION (obj);
-
- g_assert (self->pv->items);
- g_assert (g_hash_table_size (self->pv->items) == 0);
- g_hash_table_destroy (self->pv->items);
- self->pv->items = NULL;
-
- G_OBJECT_CLASS (gcr_simple_collection_parent_class)->finalize (obj);
-}
-
-static void
-gcr_simple_collection_class_init (GcrSimpleCollectionClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- gobject_class->dispose = gcr_simple_collection_dispose;
- gobject_class->finalize = gcr_simple_collection_finalize;
- g_type_class_add_private (gobject_class, sizeof (GcrSimpleCollectionPrivate));
-}
-
-static guint
-gcr_simple_collection_real_get_length (GcrCollection *coll)
-{
- GcrSimpleCollection *self = GCR_SIMPLE_COLLECTION (coll);
- return g_hash_table_size (self->pv->items);
-}
-
-static GList*
-gcr_simple_collection_real_get_objects (GcrCollection *coll)
-{
- GcrSimpleCollection *self = GCR_SIMPLE_COLLECTION (coll);
- return g_hash_table_get_keys (self->pv->items);
-}
-
-static gboolean
-gcr_simple_collection_real_contains (GcrCollection *collection,
- GObject *object)
-{
- GcrSimpleCollection *self = GCR_SIMPLE_COLLECTION (collection);
- return g_hash_table_lookup (self->pv->items, object) ? TRUE : FALSE;
-}
-
-static void
-gcr_collection_iface (GcrCollectionIface *iface)
-{
- iface->get_length = gcr_simple_collection_real_get_length;
- iface->get_objects = gcr_simple_collection_real_get_objects;
- iface->contains = gcr_simple_collection_real_contains;
-}
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-/**
- * gcr_simple_collection_new:
- *
- * Create a new #GcrSimpleCollection.
- *
- * Returns: (transfer full) (type Gcr.SimpleCollection): a newly allocated
- * collection, which should be freed with g_object_unref()
- */
-GcrCollection *
-gcr_simple_collection_new (void)
-{
- return g_object_new (GCR_TYPE_SIMPLE_COLLECTION, NULL);
-}
-
-/**
- * gcr_simple_collection_add:
- * @self: The collection
- * @object: The object to add
- *
- * Add an object to this collection
- */
-void
-gcr_simple_collection_add (GcrSimpleCollection *self, GObject *object)
-{
- g_return_if_fail (GCR_IS_SIMPLE_COLLECTION (self));
- g_return_if_fail (G_IS_OBJECT (object));
- g_return_if_fail (!g_hash_table_lookup (self->pv->items, object));
- g_hash_table_insert (self->pv->items, g_object_ref (object), UNUSED_VALUE);
- gcr_collection_emit_added (GCR_COLLECTION (self), object);
-}
-
-/**
- * gcr_simple_collection_remove:
- * @self: The collection
- * @object: The object to remove from the collection
- *
- * Remove an object from the collection.
- */
-void
-gcr_simple_collection_remove (GcrSimpleCollection *self, GObject *object)
-{
- g_return_if_fail (GCR_IS_SIMPLE_COLLECTION (self));
- g_return_if_fail (G_IS_OBJECT (object));
- g_return_if_fail (g_hash_table_lookup (self->pv->items, object));
- g_object_ref (object);
- g_hash_table_remove (self->pv->items, object);
- gcr_collection_emit_removed (GCR_COLLECTION (self), object);
- g_object_unref (object);
-}
-
-/**
- * gcr_simple_collection_contains:
- * @self: The collection
- * @object: The object to check
- *
- * Check if the collection contains a certain object.
- *
- * Deprecated: use gcr_collection_contains() instead
- *
- * Returns: %TRUE if the collection contains the object.
- */
-gboolean
-gcr_simple_collection_contains (GcrSimpleCollection *self, GObject *object)
-{
- g_return_val_if_fail (GCR_IS_SIMPLE_COLLECTION (self), FALSE);
- g_return_val_if_fail (G_IS_OBJECT (object), FALSE);
- return gcr_collection_contains (GCR_COLLECTION (self), object);
-}
diff --git a/gcr/gcr-simple-collection.h b/gcr/gcr-simple-collection.h
deleted file mode 100644
index e78c48c9..00000000
--- a/gcr/gcr-simple-collection.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#ifndef __GCR_SIMPLE_COLLECTION_H__
-#define __GCR_SIMPLE_COLLECTION_H__
-
-#include "gcr-base.h"
-#include "gcr-collection.h"
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_SIMPLE_COLLECTION (gcr_simple_collection_get_type ())
-#define GCR_SIMPLE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_COLLECTION, GcrSimpleCollection))
-#define GCR_SIMPLE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_COLLECTION, GcrSimpleCollectionClass))
-#define GCR_IS_SIMPLE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_COLLECTION))
-#define GCR_IS_SIMPLE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_COLLECTION))
-#define GCR_SIMPLE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_COLLECTION, GcrSimpleCollectionClass))
-
-typedef struct _GcrSimpleCollection GcrSimpleCollection;
-typedef struct _GcrSimpleCollectionClass GcrSimpleCollectionClass;
-typedef struct _GcrSimpleCollectionPrivate GcrSimpleCollectionPrivate;
-
-struct _GcrSimpleCollection {
- GObject parent;
-
- /*< private >*/
- GcrSimpleCollectionPrivate *pv;
-};
-
-struct _GcrSimpleCollectionClass {
- GObjectClass parent_class;
-};
-
-GType gcr_simple_collection_get_type (void);
-
-GcrCollection* gcr_simple_collection_new (void);
-
-void gcr_simple_collection_add (GcrSimpleCollection *self,
- GObject *object);
-
-void gcr_simple_collection_remove (GcrSimpleCollection *self,
- GObject *object);
-
-G_END_DECLS
-
-#endif /* __GCR_SIMPLE_COLLECTION_H__ */
diff --git a/gcr/gcr-single-collection.c b/gcr/gcr-single-collection.c
deleted file mode 100644
index 942d47de..00000000
--- a/gcr/gcr-single-collection.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-collection.h"
-#include "gcr-single-collection.h"
-
-#include <string.h>
-
-/**
- * GcrSingleCollection:
- *
- * A single implementation of #GcrCollection.
- */
-
-struct _GcrSingleCollection {
- GObject parent;
- GObject *object;
-};
-
-/**
- * GcrSingleCollectionClass:
- * @parent_class: The parent class
- *
- * The class for #GcrSingleCollection.
- */
-
-struct _GcrSingleCollectionClass {
- GObjectClass parent_class;
-};
-
-static void _gcr_single_collection_iface (GcrCollectionIface *iface);
-G_DEFINE_TYPE_WITH_CODE (GcrSingleCollection, _gcr_single_collection, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (GCR_TYPE_COLLECTION, _gcr_single_collection_iface));
-
-/* -----------------------------------------------------------------------------
- * OBJECT
- */
-
-static void
-_gcr_single_collection_init (GcrSingleCollection *self)
-{
-
-}
-
-static void
-_gcr_single_collection_dispose (GObject *obj)
-{
- GcrSingleCollection *self = GCR_SINGLE_COLLECTION (obj);
-
- _gcr_single_collection_set_object (self, NULL);
-
- G_OBJECT_CLASS (_gcr_single_collection_parent_class)->dispose (obj);
-}
-
-static void
-_gcr_single_collection_class_init (GcrSingleCollectionClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- gobject_class->dispose = _gcr_single_collection_dispose;
-}
-
-static guint
-_gcr_single_collection_real_get_length (GcrCollection *coll)
-{
- GcrSingleCollection *self = GCR_SINGLE_COLLECTION (coll);
- return self->object == NULL ? 0 : 1;
-}
-
-static GList*
-_gcr_single_collection_real_get_objects (GcrCollection *coll)
-{
- GcrSingleCollection *self = GCR_SINGLE_COLLECTION (coll);
- return self->object == NULL ? NULL : g_list_append (NULL, self->object);
-}
-
-static gboolean
-_gcr_single_collection_real_contains (GcrCollection *collection,
- GObject *object)
-{
- GcrSingleCollection *self = GCR_SINGLE_COLLECTION (collection);
- return self->object == object;
-}
-
-static void
-_gcr_single_collection_iface (GcrCollectionIface *iface)
-{
- iface->get_length = _gcr_single_collection_real_get_length;
- iface->get_objects = _gcr_single_collection_real_get_objects;
- iface->contains = _gcr_single_collection_real_contains;
-}
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-GcrCollection *
-_gcr_single_collection_new (GObject *object)
-{
- GcrSingleCollection *self;
-
- self = g_object_new (GCR_TYPE_SINGLE_COLLECTION, NULL);
- _gcr_single_collection_set_object (self, object);
-
- return GCR_COLLECTION (self);
-}
-
-GObject *
-_gcr_single_collection_get_object (GcrSingleCollection *self)
-{
- g_return_val_if_fail (GCR_IS_SINGLE_COLLECTION (self), NULL);
- return self->object;
-}
-
-void
-_gcr_single_collection_set_object (GcrSingleCollection *self,
- GObject *object)
-{
- GObject *obj;
-
- g_return_if_fail (GCR_IS_SINGLE_COLLECTION (self));
- g_return_if_fail (object == NULL || G_IS_OBJECT (object));
-
- if (object == self->object)
- return;
-
- if (self->object) {
- obj = self->object;
- self->object = NULL;
- gcr_collection_emit_removed (GCR_COLLECTION (self), obj);
- g_object_unref (obj);
- }
-
- if (object) {
- self->object = g_object_ref (object);
- gcr_collection_emit_added (GCR_COLLECTION (self), self->object);
- }
-}
diff --git a/gcr/gcr-single-collection.h b/gcr/gcr-single-collection.h
deleted file mode 100644
index 9bd598ff..00000000
--- a/gcr/gcr-single-collection.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#ifndef __GCR_SINGLE_COLLECTION_H__
-#define __GCR_SINGLE_COLLECTION_H__
-
-#include "gcr-base.h"
-#include "gcr-collection.h"
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_SINGLE_COLLECTION (_gcr_single_collection_get_type ())
-#define GCR_SINGLE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_COLLECTION, GcrSingleCollection))
-#define GCR_SINGLE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_COLLECTION, GcrSingleCollectionClass))
-#define GCR_IS_SINGLE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_COLLECTION))
-#define GCR_IS_SINGLE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_COLLECTION))
-#define GCR_SINGLE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_COLLECTION, GcrSingleCollectionClass))
-
-typedef struct _GcrSingleCollection GcrSingleCollection;
-typedef struct _GcrSingleCollectionClass GcrSingleCollectionClass;
-
-GType _gcr_single_collection_get_type (void);
-
-GcrCollection * _gcr_single_collection_new (GObject *object);
-
-GObject * _gcr_single_collection_get_object (GcrSingleCollection *self);
-
-void _gcr_single_collection_set_object (GcrSingleCollection *self,
- GObject *object);
-
-G_END_DECLS
-
-#endif /* __GCR_SINGLE_COLLECTION_H__ */
diff --git a/gcr/gcr-tree-selector.c b/gcr/gcr-tree-selector.c
deleted file mode 100644
index fb5261fe..00000000
--- a/gcr/gcr-tree-selector.c
+++ /dev/null
@@ -1,361 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-collection-model.h"
-#include "gcr-internal.h"
-#include "gcr-tree-selector.h"
-
-#include <glib/gi18n-lib.h>
-
-#include <string.h>
-
-/**
- * SECTION:gcr-tree-selector
- * @title: GcrTreeSelector
- * @short_description: A selector widget to select certificates or keys.
- *
- * The #GcrTreeSelector can be used to select certificates or keys. It allows
- * the user to select multiple objects from a tree.
- */
-
-/**
- * GcrTreeSelector:
- *
- * A tree selector widget.
- */
-
-/**
- * GcrTreeSelectorClass:
- *
- * The class for #GcrTreeSelector.
- */
-
-enum {
- PROP_0,
- PROP_COLLECTION,
- PROP_COLUMNS
-};
-
-struct _GcrTreeSelectorPrivate {
- GcrCollection *collection;
- const GcrColumn *columns;
- GcrCollectionModel *model;
-};
-
-G_DEFINE_TYPE (GcrTreeSelector, gcr_tree_selector, GTK_TYPE_TREE_VIEW);
-
-/* -----------------------------------------------------------------------------
- * INTERNAL
- */
-
-static void
-on_check_column_toggled (GtkCellRendererToggle *cell, gchar *path, GcrCollectionModel *model)
-{
- GtkTreeIter iter;
-
- g_assert (path != NULL);
-
- if (gtk_tree_model_get_iter_from_string (GTK_TREE_MODEL (model), &iter, path))
- gcr_collection_model_toggle_selected (model, &iter);
-}
-
-static void
-add_string_column (GcrTreeSelector *self, const GcrColumn *column, gint column_id)
-{
- GtkCellRenderer *cell;
- GtkTreeViewColumn *col;
- const gchar *label;
-
- g_assert (column->column_type == G_TYPE_STRING);
- g_assert (!(column->flags & GCR_COLUMN_HIDDEN));
-
- cell = gtk_cell_renderer_text_new ();
- g_object_set (G_OBJECT (cell), "ellipsize", PANGO_ELLIPSIZE_END, NULL);
- label = column->label ? g_dpgettext2 (NULL, "column", column->label) : "";
- col = gtk_tree_view_column_new_with_attributes (label, cell, "text", column_id, NULL);
- gtk_tree_view_column_set_resizable (col, TRUE);
- if (column->flags & GCR_COLUMN_SORTABLE)
- gtk_tree_view_column_set_sort_column_id (col, column_id);
- gtk_tree_view_append_column (GTK_TREE_VIEW (self), col);
-}
-
-static void
-add_icon_column (GcrTreeSelector *self, const GcrColumn *column, gint column_id)
-{
- GtkCellRenderer *cell;
- GtkTreeViewColumn *col;
- const gchar *label;
-
- g_assert (column->column_type == G_TYPE_ICON);
- g_assert (!(column->flags & GCR_COLUMN_HIDDEN));
-
- cell = gtk_cell_renderer_pixbuf_new ();
- g_object_set (cell, "stock-size", GTK_ICON_SIZE_BUTTON, NULL);
- label = column->label ? g_dpgettext2 (NULL, "column", column->label) : "";
- col = gtk_tree_view_column_new_with_attributes (label, cell, "gicon", column_id, NULL);
- gtk_tree_view_column_set_resizable (col, TRUE);
- if (column->flags & GCR_COLUMN_SORTABLE)
- gtk_tree_view_column_set_sort_column_id (col, column_id);
- gtk_tree_view_append_column (GTK_TREE_VIEW (self), col);
-}
-
-static void
-add_check_column (GcrTreeSelector *self, guint column_id)
-{
- GtkCellRenderer *cell;
- GtkTreeViewColumn *col;
-
- cell = gtk_cell_renderer_toggle_new ();
- g_signal_connect (cell, "toggled", G_CALLBACK (on_check_column_toggled), self->pv->model);
-
- col = gtk_tree_view_column_new_with_attributes ("", cell, "active", column_id, NULL);
- gtk_tree_view_column_set_resizable (col, FALSE);
- gtk_tree_view_append_column (GTK_TREE_VIEW (self), col);
-}
-
-/* -----------------------------------------------------------------------------
- * OBJECT
- */
-
-static GObject*
-gcr_tree_selector_constructor (GType type, guint n_props, GObjectConstructParam *props)
-{
- GcrTreeSelector *self = GCR_TREE_SELECTOR (G_OBJECT_CLASS (gcr_tree_selector_parent_class)->constructor(type, n_props, props));
- const GcrColumn *column;
- guint i;
-
- g_return_val_if_fail (self, NULL);
- g_return_val_if_fail (self->pv->columns, NULL);
-
- self->pv->model = gcr_collection_model_new_full (self->pv->collection,
- self->pv->columns);
-
- gtk_tree_view_set_model (GTK_TREE_VIEW (self), GTK_TREE_MODEL (self->pv->model));
-
- /* First add the check mark column */
- add_check_column (self, gcr_collection_model_column_for_selected (self->pv->model));
-
- for (column = self->pv->columns, i = 0; column->property_name; ++column, ++i) {
- if (column->flags & GCR_COLUMN_HIDDEN)
- continue;
-
- if (column->column_type == G_TYPE_STRING)
- add_string_column (self, column, i);
- else if (column->column_type == G_TYPE_ICON)
- add_icon_column (self, column, i);
- else
- g_warning ("skipping unsupported column '%s' of type: %s",
- column->property_name, g_type_name (column->column_type));
- }
-
- return G_OBJECT (self);
-}
-
-static void
-gcr_tree_selector_init (GcrTreeSelector *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_TREE_SELECTOR, GcrTreeSelectorPrivate);
-}
-
-static void
-gcr_tree_selector_dispose (GObject *obj)
-{
- GcrTreeSelector *self = GCR_TREE_SELECTOR (obj);
-
- if (self->pv->model)
- g_object_unref (self->pv->model);
- self->pv->model = NULL;
-
- if (self->pv->collection)
- g_object_unref (self->pv->collection);
- self->pv->collection = NULL;
-
- G_OBJECT_CLASS (gcr_tree_selector_parent_class)->dispose (obj);
-}
-
-static void
-gcr_tree_selector_finalize (GObject *obj)
-{
- GcrTreeSelector *self = GCR_TREE_SELECTOR (obj);
-
- g_assert (!self->pv->collection);
- g_assert (!self->pv->model);
-
- G_OBJECT_CLASS (gcr_tree_selector_parent_class)->finalize (obj);
-}
-
-static void
-gcr_tree_selector_set_property (GObject *obj, guint prop_id, const GValue *value,
- GParamSpec *pspec)
-{
- GcrTreeSelector *self = GCR_TREE_SELECTOR (obj);
- switch (prop_id) {
- case PROP_COLLECTION:
- g_return_if_fail (!self->pv->collection);
- self->pv->collection = g_value_dup_object (value);
- g_return_if_fail (self->pv->collection);
- break;
- case PROP_COLUMNS:
- g_return_if_fail (!self->pv->columns);
- self->pv->columns = g_value_get_pointer (value);
- g_return_if_fail (self->pv->columns);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_tree_selector_get_property (GObject *obj, guint prop_id, GValue *value,
- GParamSpec *pspec)
-{
- GcrTreeSelector *self = GCR_TREE_SELECTOR (obj);
-
- switch (prop_id) {
- case PROP_COLLECTION:
- g_value_set_object (value, gcr_tree_selector_get_collection (self));
- break;
- case PROP_COLUMNS:
- g_value_set_pointer (value, (gpointer)gcr_tree_selector_get_columns (self));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_tree_selector_class_init (GcrTreeSelectorClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- gobject_class->constructor = gcr_tree_selector_constructor;
- gobject_class->dispose = gcr_tree_selector_dispose;
- gobject_class->finalize = gcr_tree_selector_finalize;
- gobject_class->set_property = gcr_tree_selector_set_property;
- gobject_class->get_property = gcr_tree_selector_get_property;
-
- g_type_class_add_private (gobject_class, sizeof (GcrTreeSelectorPrivate));
-
- /**
- * GcrTreeSelector:collection:
- *
- * The collection which contains the objects to display in the selector.
- */
- g_object_class_install_property (gobject_class, PROP_COLLECTION,
- g_param_spec_object ("collection", "Collection", "Collection to select from",
- GCR_TYPE_COLLECTION, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- /**
- * GcrTreeSelector:columns:
- *
- * The columns to use to display the objects.
- */
- g_object_class_install_property (gobject_class, PROP_COLUMNS,
- g_param_spec_pointer ("columns", "Columns", "Columns to display in selector",
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-}
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-/**
- * gcr_tree_selector_new: (skip)
- * @collection: The collection that contains the objects to display
- * @columns: The columns to use to display the objects
- *
- * Create a new #GcrTreeSelector.
- *
- * Returns: (transfer full): a newly allocated selector, which should be
- * released with g_object_unref()
- */
-GcrTreeSelector *
-gcr_tree_selector_new (GcrCollection *collection, const GcrColumn *columns)
-{
- return g_object_new (GCR_TYPE_TREE_SELECTOR,
- "collection", collection,
- "columns", columns,
- NULL);
-}
-
-/**
- * gcr_tree_selector_get_collection:
- * @self: The selector
- *
- * Get the collection that this selector is displaying objects from.
- *
- * Returns: (transfer none): the collection, owned by the selector
- */
-GcrCollection *
-gcr_tree_selector_get_collection (GcrTreeSelector *self)
-{
- g_return_val_if_fail (GCR_IS_TREE_SELECTOR (self), NULL);
- return self->pv->collection;
-}
-
-/**
- * gcr_tree_selector_get_columns: (skip)
- * @self: The selector
- *
- * Get the columns displayed in a selector in multiple mode.
- *
- * Returns: (transfer none): The columns, owned by the selector.
- */
-const GcrColumn *
-gcr_tree_selector_get_columns (GcrTreeSelector *self)
-{
- g_return_val_if_fail (GCR_IS_TREE_SELECTOR (self), NULL);
- return self->pv->columns;
-}
-
-/**
- * gcr_tree_selector_get_selected:
- * @self: The selector
- *
- * Get a list of selected objects.
- *
- * Returns: (transfer container) (element-type GLib.Object): the list of selected
- * objects, to be released with g_list_free()
- */
-GList*
-gcr_tree_selector_get_selected (GcrTreeSelector *self)
-{
- g_return_val_if_fail (GCR_IS_TREE_SELECTOR (self), NULL);
- return gcr_collection_model_get_selected_objects (self->pv->model);
-}
-
-/**
- * gcr_tree_selector_set_selected:
- * @self: The selector
- * @selected: (element-type GLib.Object): The list of objects to select.
- *
- * Select certain objects in the selector.
- */
-void
-gcr_tree_selector_set_selected (GcrTreeSelector *self, GList *selected)
-{
- g_return_if_fail (GCR_IS_TREE_SELECTOR (self));
- gcr_collection_model_set_selected_objects (self->pv->model, selected);
-}
diff --git a/gcr/gcr-tree-selector.h b/gcr/gcr-tree-selector.h
deleted file mode 100644
index 7792153c..00000000
--- a/gcr/gcr-tree-selector.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#ifndef __GCR_TREE_SELECTOR_H__
-#define __GCR_TREE_SELECTOR_H__
-
-#include "gcr-types.h"
-
-#include <gtk/gtk.h>
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_TREE_SELECTOR (gcr_tree_selector_get_type ())
-#define GCR_TREE_SELECTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_TREE_SELECTOR, GcrTreeSelector))
-#define GCR_TREE_SELECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_TREE_SELECTOR, GcrTreeSelectorClass))
-#define GCR_IS_TREE_SELECTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_TREE_SELECTOR))
-#define GCR_IS_TREE_SELECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_TREE_SELECTOR))
-#define GCR_TREE_SELECTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_TREE_SELECTOR, GcrTreeSelectorClass))
-
-typedef struct _GcrTreeSelector GcrTreeSelector;
-typedef struct _GcrTreeSelectorClass GcrTreeSelectorClass;
-typedef struct _GcrTreeSelectorPrivate GcrTreeSelectorPrivate;
-
-struct _GcrTreeSelector {
- GtkTreeView parent;
-
- /*< private >*/
- GcrTreeSelectorPrivate *pv;
-};
-
-struct _GcrTreeSelectorClass {
- /*< private >*/
- GtkTreeViewClass parent_class;
-};
-
-GType gcr_tree_selector_get_type (void);
-
-GcrTreeSelector* gcr_tree_selector_new (GcrCollection *collection,
- const GcrColumn *columns);
-
-GcrCollection* gcr_tree_selector_get_collection (GcrTreeSelector *self);
-
-const GcrColumn* gcr_tree_selector_get_columns (GcrTreeSelector *self);
-
-GList* gcr_tree_selector_get_selected (GcrTreeSelector *self);
-
-void gcr_tree_selector_set_selected (GcrTreeSelector *self,
- GList *selected);
-
-G_END_DECLS
-
-#endif /* __GCR_TREE_SELECTOR_H__ */
diff --git a/gcr/gcr-trust.c b/gcr/gcr-trust.c
deleted file mode 100644
index 48006e64..00000000
--- a/gcr/gcr-trust.c
+++ /dev/null
@@ -1,878 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Collabora Ltd
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-base.h"
-#define DEBUG_FLAG GCR_DEBUG_TRUST
-#include "gcr-debug.h"
-#include "gcr-types.h"
-#include "gcr-internal.h"
-#include "gcr-library.h"
-#include "gcr-trust.h"
-
-#include <gck/gck.h>
-
-#include "pkcs11/pkcs11n.h"
-#include "pkcs11/pkcs11i.h"
-#include "pkcs11/pkcs11x.h"
-
-#include <glib/gi18n-lib.h>
-
-/**
- * SECTION:gcr-trust
- * @title: Trust Storage and Lookups
- * @short_description: Store and lookup bits of information used for
- * verifying certificates.
- *
- * These functions provide access to stored information about which
- * certificates the system and user trusts as certificate authority trust
- * anchors, or overrides to the normal verification of certificates.
- *
- * Trust anchors are used to verify the certificate authority in a certificate
- * chain. Trust anchors are always valid for a given purpose. The most common
- * purpose is the #GCR_PURPOSE_SERVER_AUTH and is used for a client application
- * to verify that the certificate at the server side of a TLS connection is
- * authorized to act as such. To check if a certificate is a trust anchor use
- * gcr_trust_is_certificate_anchored().
- *
- * Pinned certificates are used when a user overrides the default trust
- * decision for a given certificate. They're often used with self-signed
- * certificates. Pinned certificates are always only valid for a single peer
- * such as the remote host with which TLS is being performed. To lookup
- * pinned certificates use gcr_trust_is_certificate_pinned().
- *
- * After the user has requested to override the trust decision
- * about a given certificate then a pinned certificates can be added by using
- * the gcr_trust_add_pinned_certificate() function.
- *
- * These functions do not constitute a viable method for verifying certificates
- * used in TLS or other locations. Instead they support such verification
- * by providing some of the needed data for a trust decision.
- *
- * The storage is provided by pluggable PKCS\#11 modules.
- */
-
-/**
- * GCR_PURPOSE_SERVER_AUTH:
- *
- * The purpose used to verify the server certificate in a TLS connection. This
- * is the most common purpose in use.
- */
-
-/**
- * GCR_PURPOSE_CLIENT_AUTH:
- *
- * The purpose used to verify the client certificate in a TLS connection.
- */
-
-/**
- * GCR_PURPOSE_CODE_SIGNING:
- *
- * The purpose used to verify certificate used for the signature on signed code.
- */
-
-/**
- * GCR_PURPOSE_EMAIL:
- *
- * The purpose used to verify certificates that are used in email communication
- * such as S/MIME.
- */
-
-/* ----------------------------------------------------------------------------------
- * HELPERS
- */
-
-typedef struct {
- GckAttributes *attrs;
- gboolean found;
-} trust_closure;
-
-static void
-trust_closure_free (gpointer data)
-{
- trust_closure *closure = data;
- gck_attributes_unref (closure->attrs);
- g_free (closure);
-}
-
-static GckAttributes*
-prepare_trust_attrs (GcrCertificate *certificate, CK_X_ASSERTION_TYPE type)
-{
- GckAttributes *attrs;
- gconstpointer data;
- gsize n_data;
-
- attrs = gck_attributes_new ();
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_X_TRUST_ASSERTION);
- gck_attributes_add_ulong (attrs, CKA_X_ASSERTION_TYPE, type);
-
- data = gcr_certificate_get_der_data (certificate, &n_data);
- g_return_val_if_fail (data, NULL);
- gck_attributes_add_data (attrs, CKA_X_CERTIFICATE_VALUE, data, n_data);
-
- return attrs;
-}
-
-/* ----------------------------------------------------------------------------------
- * GET PINNED CERTIFICATE
- */
-
-static GckAttributes *
-prepare_is_certificate_pinned (GcrCertificate *certificate, const gchar *purpose, const gchar *peer)
-{
- GckAttributes *attrs;
-
- attrs = prepare_trust_attrs (certificate, CKT_X_PINNED_CERTIFICATE);
- g_return_val_if_fail (attrs, NULL);
-
- gck_attributes_add_string (attrs, CKA_X_PURPOSE, purpose);
- gck_attributes_add_string (attrs, CKA_X_PEER, peer);
-
- return attrs;
-}
-
-static gboolean
-perform_is_certificate_pinned (GckAttributes *search,
- GCancellable *cancellable,
- GError **error)
-{
- GckEnumerator *en;
- GList *slots;
- GckObject *object;
-
- if (!gcr_pkcs11_initialize (cancellable, error))
- return FALSE;
-
- slots = gcr_pkcs11_get_trust_lookup_slots ();
- _gcr_debug ("searching for pinned certificate in %d slots",
- g_list_length (slots));
- en = gck_slots_enumerate_objects (slots, search, 0);
- gck_list_unref_free (slots);
-
- object = gck_enumerator_next (en, cancellable, error);
- g_object_unref (en);
-
- if (object)
- g_object_unref (object);
-
- _gcr_debug ("%s certificate anchor", object ? "found" : "did not find");
- return (object != NULL);
-}
-
-/**
- * gcr_trust_is_certificate_pinned:
- * @certificate: a #GcrCertificate to check
- * @purpose: the purpose string
- * @peer: the peer for this pinned
- * @cancellable: a #GCancellable
- * @error: a #GError, or NULL
- *
- * Check if @certificate is pinned for @purpose to communicate with @peer.
- * A pinned certificate overrides all other certificate verification.
- *
- * This call may block, see gcr_trust_is_certificate_pinned_async() for the
- * non-blocking version.
- *
- * In the case of an error, %FALSE is also returned. Check @error to detect
- * if an error occurred.
- *
- * Returns: %TRUE if the certificate is pinned for the host and purpose
- */
-gboolean
-gcr_trust_is_certificate_pinned (GcrCertificate *certificate, const gchar *purpose,
- const gchar *peer, GCancellable *cancellable, GError **error)
-{
- GckAttributes *search;
- gboolean ret;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (certificate), FALSE);
- g_return_val_if_fail (purpose, FALSE);
- g_return_val_if_fail (peer, FALSE);
-
- search = prepare_is_certificate_pinned (certificate, purpose, peer);
- g_return_val_if_fail (search, FALSE);
-
- ret = perform_is_certificate_pinned (search, cancellable, error);
- gck_attributes_unref (search);
-
- return ret;
-}
-
-static void
-thread_is_certificate_pinned (GSimpleAsyncResult *result, GObject *object, GCancellable *cancel)
-{
- GError *error = NULL;
- trust_closure *closure;
-
- closure = g_simple_async_result_get_op_res_gpointer (result);
- closure->found = perform_is_certificate_pinned (closure->attrs, cancel, &error);
-
- if (error != NULL) {
- g_simple_async_result_set_from_error (result, error);
- g_clear_error (&error);
- }
-}
-
-/**
- * gcr_trust_is_certificate_pinned_async:
- * @certificate: a #GcrCertificate to check
- * @purpose: the purpose string
- * @peer: the peer for this pinned
- * @cancellable: a #GCancellable
- * @callback: a #GAsyncReadyCallback to call when the operation completes
- * @user_data: the data to pass to callback function
- *
- * Check if @certificate is pinned for @purpose to communicate with @peer. A
- * pinned certificate overrides all other certificate verification.
- *
- * When the operation is finished, callback will be called. You can then call
- * gcr_trust_is_certificate_pinned_finish() to get the result of the
- * operation.
- */
-void
-gcr_trust_is_certificate_pinned_async (GcrCertificate *certificate, const gchar *purpose,
- const gchar *peer, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- GSimpleAsyncResult *async;
- trust_closure *closure;
-
- g_return_if_fail (GCR_CERTIFICATE (certificate));
- g_return_if_fail (purpose);
- g_return_if_fail (peer);
-
- async = g_simple_async_result_new (NULL, callback, user_data,
- gcr_trust_is_certificate_pinned_async);
- closure = g_new0 (trust_closure, 1);
- closure->attrs = prepare_is_certificate_pinned (certificate, purpose, peer);
- g_return_if_fail (closure->attrs);
- g_simple_async_result_set_op_res_gpointer (async, closure, trust_closure_free);
-
- g_simple_async_result_run_in_thread (async, thread_is_certificate_pinned,
- G_PRIORITY_DEFAULT, cancellable);
-
- g_object_unref (async);
-}
-
-/**
- * gcr_trust_is_certificate_pinned_finish:
- * @result: the #GAsyncResult passed to the callback
- * @error: a #GError, or NULL
- *
- * Finishes an asynchronous operation started by
- * gcr_trust_is_certificate_pinned_async().
- *
- * In the case of an error, %FALSE is also returned. Check @error to detect
- * if an error occurred.
- *
- * Returns: %TRUE if the certificate is pinned.
- */
-gboolean
-gcr_trust_is_certificate_pinned_finish (GAsyncResult *result, GError **error)
-{
- trust_closure *closure;
-
- g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), FALSE);
- g_return_val_if_fail (!error || !*error, FALSE);
-
- g_return_val_if_fail (g_simple_async_result_is_valid (result, NULL,
- gcr_trust_is_certificate_pinned_async), FALSE);
-
- if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error))
- return FALSE;
-
- closure = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (result));
- return closure->found;
-}
-
-/* ----------------------------------------------------------------------------------
- * ADD PINNED CERTIFICATE
- */
-
-static GckAttributes *
-prepare_add_pinned_certificate (GcrCertificate *certificate, const gchar *purpose, const gchar *peer)
-{
- GckAttributes *attrs;
-
- attrs = prepare_trust_attrs (certificate, CKT_X_PINNED_CERTIFICATE);
- g_return_val_if_fail (attrs, NULL);
-
- gck_attributes_add_string (attrs, CKA_X_PURPOSE, purpose);
- gck_attributes_add_string (attrs, CKA_X_PEER, peer);
- gck_attributes_add_boolean (attrs, CKA_TOKEN, TRUE);
-
- return attrs;
-}
-
-static gboolean
-perform_add_pinned_certificate (GckAttributes *search,
- GCancellable *cancellable,
- GError **error)
-{
- GckAttributes *attrs;
- gboolean ret = FALSE;
- GError *lerr = NULL;
- GckObject *object;
- GckSession *session;
- GckSlot *slot;
- GckEnumerator *en;
- GList *slots;
-
- if (!gcr_pkcs11_initialize (cancellable, error))
- return FALSE;
-
- slots = gcr_pkcs11_get_trust_lookup_slots ();
- en = gck_slots_enumerate_objects (slots, search, CKF_RW_SESSION);
- gck_list_unref_free (slots);
-
- /* We need an error below */
- if (error && !*error)
- *error = lerr;
-
- object = gck_enumerator_next (en, cancellable, error);
- g_object_unref (en);
-
- if (*error)
- return FALSE;
-
- /* It already exists */
- if (object) {
- g_object_unref (object);
- return TRUE;
- }
-
- attrs = gck_attributes_new ();
- gck_attributes_add_all (attrs, search);
-
- /* TODO: Add relevant label */
-
- /* Find an appropriate token */
- slot = gcr_pkcs11_get_trust_store_slot ();
- if (slot == NULL) {
- g_set_error (error, GCK_ERROR, CKR_FUNCTION_FAILED,
- /* Translators: A pinned certificate is an exception which
- trusts a given certificate explicitly for a purpose and
- communication with a certain peer. */
- _("Couldn't find a place to store the pinned certificate"));
- ret = FALSE;
- } else {
- session = gck_slot_open_session (slot, CKF_RW_SESSION, NULL, error);
- if (session != NULL) {
- object = gck_session_create_object (session, attrs, cancellable, error);
- if (object != NULL) {
- g_object_unref (object);
- ret = TRUE;
- }
-
- g_object_unref (session);
- }
-
- g_object_unref (slot);
- }
-
- gck_attributes_unref (attrs);
-
- /* Our own local error pointer */
- g_clear_error (&lerr);
-
- return ret;
-}
-
-/**
- * gcr_trust_add_pinned_certificate:
- * @certificate: a #GcrCertificate
- * @purpose: the purpose string
- * @peer: the peer for this pinned certificate
- * @cancellable: a #GCancellable
- * @error: a #GError, or NULL
- *
- * Add a pinned @certificate for connections to @peer for @purpose. A pinned
- * certificate overrides all other certificate verification and should be
- * used with care.
- *
- * If the same pinned certificate already exists, then this operation
- * does not add another, and succeeds without error.
- *
- * This call may block, see gcr_trust_add_pinned_certificate_async() for the
- * non-blocking version.
- *
- * Returns: %TRUE if the pinned certificate is recorded successfully
- */
-gboolean
-gcr_trust_add_pinned_certificate (GcrCertificate *certificate, const gchar *purpose, const gchar *peer,
- GCancellable *cancellable, GError **error)
-{
- GckAttributes *search;
- gboolean ret;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (certificate), FALSE);
- g_return_val_if_fail (purpose, FALSE);
- g_return_val_if_fail (peer, FALSE);
-
- search = prepare_add_pinned_certificate (certificate, purpose, peer);
- g_return_val_if_fail (search, FALSE);
-
- ret = perform_add_pinned_certificate (search, cancellable, error);
- gck_attributes_unref (search);
-
- return ret;
-}
-
-static void
-thread_add_pinned_certificate (GSimpleAsyncResult *result, GObject *object, GCancellable *cancel)
-{
- GError *error = NULL;
- trust_closure *closure;
-
- closure = g_simple_async_result_get_op_res_gpointer (result);
- perform_add_pinned_certificate (closure->attrs, cancel, &error);
-
- if (error != NULL) {
- g_simple_async_result_set_from_error (result, error);
- g_clear_error (&error);
- }
-}
-
-/**
- * gcr_trust_add_pinned_certificate_async:
- * @certificate: a #GcrCertificate
- * @purpose: the purpose string
- * @peer: the peer for this pinned certificate
- * @cancellable: a #GCancellable
- * @callback: a #GAsyncReadyCallback to call when the operation completes
- * @user_data: the data to pass to callback function
- *
- * Add a pinned certificate for communication with @peer for @purpose. A pinned
- * certificate overrides all other certificate verification and should be used
- * with care.
- *
- * If the same pinned certificate already exists, then this operation
- * does not add another, and succeeds without error.
- *
- * When the operation is finished, callback will be called. You can then call
- * gcr_trust_add_pinned_certificate_finish() to get the result of the
- * operation.
- */
-void
-gcr_trust_add_pinned_certificate_async (GcrCertificate *certificate, const gchar *purpose,
- const gchar *peer, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- GSimpleAsyncResult *async;
- trust_closure *closure;
-
- g_return_if_fail (GCR_IS_CERTIFICATE (certificate));
- g_return_if_fail (purpose);
- g_return_if_fail (peer);
-
- async = g_simple_async_result_new (NULL, callback, user_data,
- gcr_trust_add_pinned_certificate_async);
- closure = g_new0 (trust_closure, 1);
- closure->attrs = prepare_add_pinned_certificate (certificate, purpose, peer);
- g_return_if_fail (closure->attrs);
- g_simple_async_result_set_op_res_gpointer (async, closure, trust_closure_free);
-
- g_simple_async_result_run_in_thread (async, thread_add_pinned_certificate,
- G_PRIORITY_DEFAULT, cancellable);
-
- g_object_unref (async);
-}
-
-/**
- * gcr_trust_add_pinned_certificate_finish:
- * @result: the #GAsyncResult passed to the callback
- * @error: a #GError, or NULL
- *
- * Finishes an asynchronous operation started by
- * gcr_trust_add_pinned_certificate_async().
- *
- * Returns: %TRUE if the pinned certificate is recorded successfully
- */
-gboolean
-gcr_trust_add_pinned_certificate_finish (GAsyncResult *result, GError **error)
-{
- g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), FALSE);
- g_return_val_if_fail (!error || !*error, FALSE);
-
- g_return_val_if_fail (g_simple_async_result_is_valid (result, NULL,
- gcr_trust_add_pinned_certificate_async), FALSE);
-
- if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error))
- return FALSE;
-
- return TRUE;
-}
-
-/* -----------------------------------------------------------------------
- * REMOVE PINNED CERTIFICATE
- */
-
-static GckAttributes *
-prepare_remove_pinned_certificate (GcrCertificate *certificate, const gchar *purpose,
- const gchar *peer)
-{
- GckAttributes *attrs;
-
- attrs = prepare_trust_attrs (certificate, CKT_X_PINNED_CERTIFICATE);
- g_return_val_if_fail (attrs, NULL);
-
- gck_attributes_add_string (attrs, CKA_X_PURPOSE, purpose);
- gck_attributes_add_string (attrs, CKA_X_PEER, peer);
-
- return attrs;
-}
-
-static gboolean
-perform_remove_pinned_certificate (GckAttributes *attrs,
- GCancellable *cancellable,
- GError **error)
-{
- GList *objects, *l;
- GError *lerr = NULL;
- GckEnumerator *en;
- GList *slots;
-
- if (!gcr_pkcs11_initialize (cancellable, error))
- return FALSE;
-
- slots = gcr_pkcs11_get_trust_lookup_slots ();
- en = gck_slots_enumerate_objects (slots, attrs, CKF_RW_SESSION);
- gck_list_unref_free (slots);
-
- /* We need an error below */
- if (error && !*error)
- *error = lerr;
-
- objects = gck_enumerator_next_n (en, -1, cancellable, error);
- g_object_unref (en);
-
- if (*error)
- return FALSE;
-
- for (l = objects; l; l = g_list_next (l)) {
- if (!gck_object_destroy (l->data, cancellable, error)) {
-
- /* In case there's a race condition */
- if (g_error_matches (*error, GCK_ERROR, CKR_OBJECT_HANDLE_INVALID)) {
- g_clear_error (error);
- continue;
- }
-
- gck_list_unref_free (objects);
- return FALSE;
- }
- }
-
- gck_list_unref_free (objects);
- return TRUE;
-}
-
-/**
- * gcr_trust_remove_pinned_certificate:
- * @certificate: a #GcrCertificate
- * @purpose: the purpose string
- * @peer: the peer for this pinned certificate
- * @cancellable: a #GCancellable
- * @error: a #GError, or NULL
- *
- * Remove a pinned certificate for communication with @peer for @purpose.
- *
- * If the same pinned certificate does not exist, or was already removed,
- * then this operation succeeds without error.
- *
- * This call may block, see gcr_trust_remove_pinned_certificate_async() for the
- * non-blocking version.
- *
- * Returns: %TRUE if the pinned certificate no longer exists
- */
-gboolean
-gcr_trust_remove_pinned_certificate (GcrCertificate *certificate, const gchar *purpose, const gchar *peer,
- GCancellable *cancellable, GError **error)
-{
- GckAttributes *search;
- gboolean ret;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (certificate), FALSE);
- g_return_val_if_fail (purpose, FALSE);
- g_return_val_if_fail (peer, FALSE);
-
- search = prepare_remove_pinned_certificate (certificate, purpose, peer);
- g_return_val_if_fail (search, FALSE);
-
- ret = perform_remove_pinned_certificate (search, cancellable, error);
- gck_attributes_unref (search);
-
- return ret;
-}
-
-static void
-thread_remove_pinned_certificate (GSimpleAsyncResult *result, GObject *object, GCancellable *cancel)
-{
- GError *error = NULL;
- trust_closure *closure;
-
- closure = g_simple_async_result_get_op_res_gpointer (result);
- perform_remove_pinned_certificate (closure->attrs, cancel, &error);
-
- if (error != NULL) {
- g_simple_async_result_set_from_error (result, error);
- g_clear_error (&error);
- }
-}
-
-/**
- * gcr_trust_remove_pinned_certificate_async:
- * @certificate: a #GcrCertificate
- * @purpose: the purpose string
- * @peer: the peer for this pinned certificate
- * @cancellable: a #GCancellable
- * @callback: a #GAsyncReadyCallback to call when the operation completes
- * @user_data: the data to pass to callback function
- *
- * Remove a pinned certificate for communication with @peer for @purpose.
- *
- * If the same pinned certificate does not exist, or was already removed,
- * then this operation succeeds without error.
- *
- * When the operation is finished, callback will be called. You can then call
- * gcr_trust_remove_pinned_certificate_finish() to get the result of the
- * operation.
- */
-void
-gcr_trust_remove_pinned_certificate_async (GcrCertificate *certificate, const gchar *purpose,
- const gchar *peer, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
-{
- GSimpleAsyncResult *async;
- trust_closure *closure;
-
- g_return_if_fail (GCR_IS_CERTIFICATE (certificate));
- g_return_if_fail (purpose);
- g_return_if_fail (peer);
-
- async = g_simple_async_result_new (NULL, callback, user_data,
- gcr_trust_remove_pinned_certificate_async);
- closure = g_new0 (trust_closure, 1);
- closure->attrs = prepare_remove_pinned_certificate (certificate, purpose, peer);
- g_return_if_fail (closure->attrs);
- g_simple_async_result_set_op_res_gpointer (async, closure, trust_closure_free);
-
- g_simple_async_result_run_in_thread (async, thread_remove_pinned_certificate,
- G_PRIORITY_DEFAULT, cancellable);
-
- g_object_unref (async);
-}
-
-/**
- * gcr_trust_remove_pinned_certificate_finish:
- * @result: the #GAsyncResult passed to the callback
- * @error: a #GError, or NULL
- *
- * Finishes an asynchronous operation started by
- * gcr_trust_remove_pinned_certificate_async().
- *
- * Returns: %TRUE if the pinned certificate no longer exists
- */
-gboolean
-gcr_trust_remove_pinned_certificate_finish (GAsyncResult *result, GError **error)
-{
- g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), FALSE);
- g_return_val_if_fail (!error || !*error, FALSE);
-
- g_return_val_if_fail (g_simple_async_result_is_valid (result, NULL,
- gcr_trust_remove_pinned_certificate_async), FALSE);
-
- if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error))
- return FALSE;
-
- return TRUE;
-}
-
-/* ----------------------------------------------------------------------------------
- * CERTIFICATE ROOT
- */
-
-static GckAttributes *
-prepare_is_certificate_anchored (GcrCertificate *certificate, const gchar *purpose)
-{
- GckAttributes *attrs;
-
- attrs = prepare_trust_attrs (certificate, CKT_X_ANCHORED_CERTIFICATE);
- g_return_val_if_fail (attrs, NULL);
-
- gck_attributes_add_string (attrs, CKA_X_PURPOSE, purpose);
-
- return attrs;
-}
-
-static gboolean
-perform_is_certificate_anchored (GckAttributes *attrs,
- GCancellable *cancellable,
- GError **error)
-{
- GckEnumerator *en;
- GList *slots;
- GckObject *object;
-
- if (!gcr_pkcs11_initialize (cancellable, error))
- return FALSE;
-
- slots = gcr_pkcs11_get_trust_lookup_slots ();
- _gcr_debug ("searching for certificate anchor in %d slots",
- g_list_length (slots));
- en = gck_slots_enumerate_objects (slots, attrs, 0);
- gck_list_unref_free (slots);
-
- object = gck_enumerator_next (en, cancellable, error);
- g_object_unref (en);
-
- if (object != NULL)
- g_object_unref (object);
-
- _gcr_debug ("%s certificate anchor", object ? "found" : "did not find");
- return (object != NULL);
-}
-
-/**
- * gcr_trust_is_certificate_anchored:
- * @certificate: a #GcrCertificate to check
- * @purpose: the purpose string
- * @cancellable: a #GCancellable
- * @error: a #GError, or NULL
- *
- * Check if the @certificate is a trust anchor for the given @purpose. A trust
- * anchor is used to verify the signatures on other certificates when verifying
- * a certificate chain. Also known as a trusted certificate authority.
- *
- * This call may block, see gcr_trust_is_certificate_anchored_async() for the
- * non-blocking version.
- *
- * In the case of an error, %FALSE is also returned. Check @error to detect
- * if an error occurred.
- *
- * Returns: %TRUE if the certificate is a trust anchor
- */
-gboolean
-gcr_trust_is_certificate_anchored (GcrCertificate *certificate, const gchar *purpose,
- GCancellable *cancellable, GError **error)
-{
- GckAttributes *search;
- gboolean ret;
-
- g_return_val_if_fail (GCR_IS_CERTIFICATE (certificate), FALSE);
- g_return_val_if_fail (purpose, FALSE);
-
- search = prepare_is_certificate_anchored (certificate, purpose);
- g_return_val_if_fail (search, FALSE);
-
- ret = perform_is_certificate_anchored (search, cancellable, error);
- gck_attributes_unref (search);
-
- return ret;
-}
-
-static void
-thread_is_certificate_anchored (GSimpleAsyncResult *result, GObject *object, GCancellable *cancel)
-{
- GError *error = NULL;
- trust_closure *closure;
-
- closure = g_simple_async_result_get_op_res_gpointer (result);
- closure->found = perform_is_certificate_anchored (closure->attrs, cancel, &error);
-
- if (error != NULL) {
- g_simple_async_result_set_from_error (result, error);
- g_clear_error (&error);
- }
-}
-
-/**
- * gcr_trust_is_certificate_anchored_async:
- * @certificate: a #GcrCertificate to check
- * @purpose: the purpose string
- * @cancellable: a #GCancellable
- * @callback: a #GAsyncReadyCallback to call when the operation completes
- * @user_data: the data to pass to callback function
- *
- * Check if the @certificate is a trust anchor for the given @purpose. A trust
- * anchor is used to verify the signatures on other certificates when verifying
- * a certificate chain. Also known as a trusted certificate authority.
- *
- * When the operation is finished, callback will be called. You can then call
- * gcr_trust_is_certificate_anchored_finish() to get the result of the operation.
- */
-void
-gcr_trust_is_certificate_anchored_async (GcrCertificate *certificate, const gchar *purpose,
- GCancellable *cancellable, GAsyncReadyCallback callback,
- gpointer user_data)
-{
- GSimpleAsyncResult *async;
- trust_closure *closure;
-
- g_return_if_fail (GCR_IS_CERTIFICATE (certificate));
- g_return_if_fail (purpose);
-
- async = g_simple_async_result_new (NULL, callback, user_data,
- gcr_trust_is_certificate_anchored_async);
- closure = g_new0 (trust_closure, 1);
- closure->attrs = prepare_is_certificate_anchored (certificate, purpose);
- g_return_if_fail (closure->attrs);
- g_simple_async_result_set_op_res_gpointer (async, closure, trust_closure_free);
-
- g_simple_async_result_run_in_thread (async, thread_is_certificate_anchored,
- G_PRIORITY_DEFAULT, cancellable);
-
- g_object_unref (async);
-}
-
-/**
- * gcr_trust_is_certificate_anchored_finish:
- * @result: the #GAsyncResult passed to the callback
- * @error: a #GError, or NULL
- *
- * Finishes an asynchronous operation started by
- * gcr_trust_is_certificate_anchored_async().
- *
- * In the case of an error, %FALSE is also returned. Check @error to detect
- * if an error occurred.
- *
- * Returns: %TRUE if the certificate is a trust anchor
- */
-gboolean
-gcr_trust_is_certificate_anchored_finish (GAsyncResult *result, GError **error)
-{
- trust_closure *closure;
-
- g_return_val_if_fail (G_IS_ASYNC_RESULT (result), FALSE);
- g_return_val_if_fail (!error || !*error, FALSE);
-
- g_return_val_if_fail (g_simple_async_result_is_valid (result, NULL,
- gcr_trust_is_certificate_anchored_async), FALSE);
-
- if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error))
- return FALSE;
-
- closure = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (result));
- return closure->found;
-}
diff --git a/gcr/gcr-trust.h b/gcr/gcr-trust.h
deleted file mode 100644
index 79db47fd..00000000
--- a/gcr/gcr-trust.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef __GCR_TRUST_H__
-#define __GCR_TRUST_H__
-
-#include "gcr-types.h"
-
-G_BEGIN_DECLS
-
-#define GCR_PURPOSE_SERVER_AUTH "1.3.6.1.5.5.7.3.1"
-#define GCR_PURPOSE_CLIENT_AUTH "1.3.6.1.5.5.7.3.2"
-#define GCR_PURPOSE_CODE_SIGNING "1.3.6.1.5.5.7.3.3"
-#define GCR_PURPOSE_EMAIL "1.3.6.1.5.5.7.3.4"
-
-gboolean gcr_trust_is_certificate_pinned (GcrCertificate *certificate,
- const gchar *purpose,
- const gchar *peer,
- GCancellable *cancellable,
- GError **error);
-
-void gcr_trust_is_certificate_pinned_async (GcrCertificate *certificate,
- const gchar *purpose,
- const gchar *peer,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean gcr_trust_is_certificate_pinned_finish (GAsyncResult *result,
- GError **error);
-
-gboolean gcr_trust_add_pinned_certificate (GcrCertificate *certificate,
- const gchar *purpose,
- const gchar *peer,
- GCancellable *cancellable,
- GError **error);
-
-void gcr_trust_add_pinned_certificate_async (GcrCertificate *certificate,
- const gchar *purpose,
- const gchar *peer,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean gcr_trust_add_pinned_certificate_finish (GAsyncResult *result,
- GError **error);
-
-gboolean gcr_trust_remove_pinned_certificate (GcrCertificate *certificate,
- const gchar *purpose,
- const gchar *peer,
- GCancellable *cancellable,
- GError **error);
-
-void gcr_trust_remove_pinned_certificate_async (GcrCertificate *certificate,
- const gchar *purpose,
- const gchar *peer,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean gcr_trust_remove_pinned_certificate_finish (GAsyncResult *result,
- GError **error);
-
-gboolean gcr_trust_is_certificate_anchored (GcrCertificate *certificate,
- const gchar *purpose,
- GCancellable *cancellable,
- GError **error);
-
-void gcr_trust_is_certificate_anchored_async (GcrCertificate *certificate,
- const gchar *purpose,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
-gboolean gcr_trust_is_certificate_anchored_finish (GAsyncResult *result,
- GError **error);
-
-G_END_DECLS
-
-#endif /* __GCR_TOKEN_MANAGER_H__ */
diff --git a/gcr/gcr-types.h b/gcr/gcr-types.h
deleted file mode 100644
index cffed10d..00000000
--- a/gcr/gcr-types.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef GCRTYPES_H_
-#define GCRTYPES_H_
-
-#include <glib.h>
-
-#ifndef GCK_API_SUBJECT_TO_CHANGE
-
-/**
- * GCK_API_SUBJECT_TO_CHANGE: (skip)
- *
- * skip for gir introspection
- */
-#define GCK_API_SUBJECT_TO_CHANGE 1
-
-/**
- * __GCR_DEFINED_GCK_SUBJECT_TO_CHANGE__: (skip)
- *
- * skip for gir introspection
- */
-#define __GCR_DEFINED_GCK_SUBJECT_TO_CHANGE__ 1
-
-#endif
-
-#include <gck/gck.h>
-
-#ifdef __GCR_DEFINED_GCK_SUBJECT_TO_CHANGE__
-#undef GCK_API_SUBJECT_TO_CHANGE
-#endif
-
-G_BEGIN_DECLS
-
-#define GCR_DATA_ERROR (gcr_data_error_get_domain ())
-
-GQuark gcr_data_error_get_domain (void) G_GNUC_CONST;
-
-typedef enum {
- GCR_ERROR_FAILURE = -1,
- GCR_ERROR_UNRECOGNIZED = 1,
- GCR_ERROR_CANCELLED = 2,
- GCR_ERROR_LOCKED = 3
-} GcrDataError;
-
-typedef enum {
- GCR_FORMAT_ALL = -1,
- GCR_FORMAT_INVALID = 0,
-
- GCR_FORMAT_DER_PRIVATE_KEY = 100,
- GCR_FORMAT_DER_PRIVATE_KEY_RSA,
- GCR_FORMAT_DER_PRIVATE_KEY_DSA,
-
- GCR_FORMAT_DER_CERTIFICATE_X509 = 200,
-
- GCR_FORMAT_DER_PKCS7 = 300,
-
- GCR_FORMAT_DER_PKCS8 = 400,
- GCR_FORMAT_DER_PKCS8_PLAIN,
- GCR_FORMAT_DER_PKCS8_ENCRYPTED,
-
- GCR_FORMAT_DER_PKCS12 = 500,
-
- GCR_FORMAT_OPENSSH_PUBLIC = 600,
-
- GCR_FORMAT_OPENPGP_PACKET = 700,
- GCR_FORMAT_OPENPGP_ARMOR,
-
- GCR_FORMAT_PEM = 1000,
- GCR_FORMAT_PEM_PRIVATE_KEY_RSA,
- GCR_FORMAT_PEM_PRIVATE_KEY_DSA,
- GCR_FORMAT_PEM_CERTIFICATE_X509,
- GCR_FORMAT_PEM_PKCS7,
- GCR_FORMAT_PEM_PKCS8_PLAIN,
- GCR_FORMAT_PEM_PKCS8_ENCRYPTED,
- GCR_FORMAT_PEM_PKCS12,
- GCR_FORMAT_PEM_PRIVATE_KEY
-} GcrDataFormat;
-
-/*
- * Special PKCS#11 style attributes that we use internally in GCR.
- * These are used by GcrParser the most
- */
-
-enum {
- /* An object class representing GcrRecord/gnupg-colons style data */
- CKO_GCR_GNUPG_RECORDS = (CKO_VENDOR_DEFINED | 0x47435200UL /* GCR0 */)
-};
-
-G_END_DECLS
-
-#endif /* GCRTYPES_H_ */
diff --git a/gcr/gcr-union-collection.c b/gcr/gcr-union-collection.c
deleted file mode 100644
index 459fbcc0..00000000
--- a/gcr/gcr-union-collection.c
+++ /dev/null
@@ -1,340 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-collection.h"
-#include "gcr-internal.h"
-#include "gcr-union-collection.h"
-
-#include <string.h>
-
-/**
- * SECTION:gcr-union-collection
- * @title: GcrUnionCollection
- * @short_description: A GcrCollection which combines other collections
- *
- * An implementation of #GcrCollection, which combines the objects in
- * other #GcrCollections. Use gcr_union_collection_add() to add and
- * gcr_union_collection_remove() to remove them.
- */
-
-/**
- * GcrUnionCollection:
- *
- * A union implementation of #GcrCollection.
- */
-
-/**
- * GcrUnionCollectionClass:
- * @parent_class: The parent class
- *
- * The class for #GcrUnionCollection.
- */
-
-struct _GcrUnionCollectionPrivate {
- GHashTable *items;
- GHashTable *collections;
-};
-
-static void gcr_collection_iface (GcrCollectionIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (GcrUnionCollection, gcr_union_collection, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (GCR_TYPE_COLLECTION, gcr_collection_iface));
-
-static void
-on_collection_added (GcrCollection *collection,
- GObject *object,
- gpointer user_data)
-{
- GcrUnionCollection *self = GCR_UNION_COLLECTION (user_data);
- gint *count;
-
- g_object_ref (object);
-
- count = g_hash_table_lookup (self->pv->items, object);
- if (count == NULL) {
- count = g_new0 (gint, 1);
- *count = 1;
- g_hash_table_insert (self->pv->items, object, count);
- gcr_collection_emit_added (GCR_COLLECTION (self), object);
- } else {
- g_assert (*count > 0);
- (*count)++;
- }
-
- g_object_unref (object);
-}
-
-static void
-on_collection_removed (GcrCollection *collection,
- GObject *object,
- gpointer user_data)
-{
- GcrUnionCollection *self = GCR_UNION_COLLECTION (user_data);
- gint *count;
-
- g_object_ref (object);
-
- count = g_hash_table_lookup (self->pv->items, object);
- if (count != NULL) {
- g_assert (*count > 0);
- (*count)--;
-
- if (*count == 0) {
- g_hash_table_remove (self->pv->items, object);
- gcr_collection_emit_removed (GCR_COLLECTION (self), object);
- }
- } else {
- g_warning ("Object of type %s that exists in an underlying "
- "collection of a GcrUnionCollection appeared without "
- "emitting 'added' signal.", G_OBJECT_TYPE_NAME (object));
- }
-
- g_object_unref (object);
-
-}
-
-static void
-connect_to_collection (GcrUnionCollection *self,
- GcrCollection *collection)
-{
- g_signal_connect (collection, "added", G_CALLBACK (on_collection_added), self);
- g_signal_connect (collection, "removed", G_CALLBACK (on_collection_removed), self);
-}
-
-static void
-disconnect_from_collection (GcrUnionCollection *self,
- GcrCollection *collection)
-{
- g_signal_handlers_disconnect_by_func (collection, on_collection_added, self);
- g_signal_handlers_disconnect_by_func (collection, on_collection_removed, self);
-}
-
-static void
-gcr_union_collection_init (GcrUnionCollection *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_UNION_COLLECTION, GcrUnionCollectionPrivate);
- self->pv->items = g_hash_table_new_full (g_direct_hash, g_direct_equal,
- NULL, g_free);
- self->pv->collections = g_hash_table_new_full (g_direct_hash, g_direct_equal,
- g_object_unref, NULL);
-}
-
-static void
-gcr_union_collection_dispose (GObject *obj)
-{
- GcrUnionCollection *self = GCR_UNION_COLLECTION (obj);
- GHashTableIter iter;
- GcrCollection *collection;
-
- g_hash_table_iter_init (&iter, self->pv->collections);
- while (g_hash_table_iter_next (&iter, (gpointer *)&collection, NULL))
- disconnect_from_collection (self, collection);
- g_hash_table_remove_all (self->pv->collections);
- g_hash_table_remove_all (self->pv->items);
-
- G_OBJECT_CLASS (gcr_union_collection_parent_class)->dispose (obj);
-}
-
-static void
-gcr_union_collection_finalize (GObject *obj)
-{
- GcrUnionCollection *self = GCR_UNION_COLLECTION (obj);
-
- g_assert (g_hash_table_size (self->pv->items) == 0);
- g_hash_table_destroy (self->pv->items);
-
- g_assert (g_hash_table_size (self->pv->collections) == 0);
- g_hash_table_destroy (self->pv->collections);
-
- G_OBJECT_CLASS (gcr_union_collection_parent_class)->finalize (obj);
-}
-
-static void
-gcr_union_collection_class_init (GcrUnionCollectionClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- gobject_class->dispose = gcr_union_collection_dispose;
- gobject_class->finalize = gcr_union_collection_finalize;
- g_type_class_add_private (gobject_class, sizeof (GcrUnionCollectionPrivate));
-}
-
-static guint
-gcr_union_collection_real_get_length (GcrCollection *coll)
-{
- GcrUnionCollection *self = GCR_UNION_COLLECTION (coll);
- return g_hash_table_size (self->pv->items);
-}
-
-static GList*
-gcr_union_collection_real_get_objects (GcrCollection *coll)
-{
- GcrUnionCollection *self = GCR_UNION_COLLECTION (coll);
- return g_hash_table_get_keys (self->pv->items);
-}
-
-static gboolean
-gcr_union_collection_real_contains (GcrCollection *collection,
- GObject *object)
-{
- GcrUnionCollection *self = GCR_UNION_COLLECTION (collection);
- return g_hash_table_lookup (self->pv->items, object) ? TRUE : FALSE;
-}
-
-static void
-gcr_collection_iface (GcrCollectionIface *iface)
-{
- iface->get_length = gcr_union_collection_real_get_length;
- iface->get_objects = gcr_union_collection_real_get_objects;
- iface->contains = gcr_union_collection_real_contains;
-}
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-/**
- * gcr_union_collection_new:
- *
- * Create a new #GcrUnionCollection.
- *
- * Returns: (transfer full) (type Gcr.UnionCollection): a newly allocated
- * collection, which should be freed with g_object_unref()
- */
-GcrCollection *
-gcr_union_collection_new (void)
-{
- return g_object_new (GCR_TYPE_UNION_COLLECTION, NULL);
-}
-
-/**
- * gcr_union_collection_add:
- * @self: The union collection
- * @collection: The collection whose objects to add
- *
- * Add objects from this collection to the union
- */
-void
-gcr_union_collection_add (GcrUnionCollection *self,
- GcrCollection *collection)
-{
- g_return_if_fail (GCR_IS_UNION_COLLECTION (self));
- g_return_if_fail (GCR_IS_COLLECTION (collection));
- gcr_union_collection_take (self, g_object_ref (collection));
-}
-
-/**
- * gcr_union_collection_take:
- * @self: The union collection
- * @collection: The collection whose objects to add
- *
- * Add objects from this collection to the union. Do not add an additional
- * reference to the collection.
- */
-void
-gcr_union_collection_take (GcrUnionCollection *self,
- GcrCollection *collection)
-{
- GList *objects, *l;
-
- g_return_if_fail (GCR_IS_UNION_COLLECTION (self));
- g_return_if_fail (GCR_IS_COLLECTION (collection));
- g_return_if_fail (!g_hash_table_lookup (self->pv->collections, collection));
-
- g_object_ref (collection);
-
- g_hash_table_insert (self->pv->collections, collection, collection);
- connect_to_collection (self, collection);
-
- objects = gcr_collection_get_objects (collection);
- for (l = objects; l != NULL; l = g_list_next (l))
- on_collection_added (collection, l->data, self);
- g_list_free (objects);
-
- g_object_unref (collection);
-}
-
-/**
- * gcr_union_collection_remove:
- * @self: The collection
- * @collection: The collection whose objects to remove
- *
- * Remove an object from the collection.
- */
-void
-gcr_union_collection_remove (GcrUnionCollection *self,
- GcrCollection *collection)
-{
- GList *objects, *l;
-
- g_return_if_fail (GCR_IS_UNION_COLLECTION (self));
- g_return_if_fail (GCR_IS_COLLECTION (collection));
- g_return_if_fail (g_hash_table_lookup (self->pv->collections, collection));
-
- g_object_ref (collection);
-
- g_hash_table_remove (self->pv->collections, collection);
- disconnect_from_collection (self, collection);
-
- objects = gcr_collection_get_objects (collection);
- for (l = objects; l != NULL; l = g_list_next (l))
- on_collection_removed (collection, l->data, self);
- g_list_free (objects);
-
- g_object_unref (collection);
-}
-
-/**
- * gcr_union_collection_have:
- * @self: the union collection
- * @collection: the collection to check
- *
- * Check whether the collection is present in the union.
- *
- * Returns: whether present or not
- */
-gboolean
-gcr_union_collection_have (GcrUnionCollection *self,
- GcrCollection *collection)
-{
- g_return_val_if_fail (GCR_IS_UNION_COLLECTION (self), FALSE);
- g_return_val_if_fail (GCR_IS_COLLECTION (collection), FALSE);
- return g_hash_table_lookup (self->pv->collections, collection) != NULL;
-}
-
-/**
- * gcr_union_collection_size:
- * @self: the union collection
- *
- * Return the number of collections in this union. This does not reflect
- * the number of objects in the combined collection.
- *
- * Returns: number of collections inlcuded
- */
-guint
-gcr_union_collection_size (GcrUnionCollection *self)
-{
- g_return_val_if_fail (GCR_IS_UNION_COLLECTION (self), FALSE);
- return g_hash_table_size (self->pv->collections);
-}
diff --git a/gcr/gcr-union-collection.h b/gcr/gcr-union-collection.h
deleted file mode 100644
index 4628799b..00000000
--- a/gcr/gcr-union-collection.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#ifndef __GCR_UNION_COLLECTION_H__
-#define __GCR_UNION_COLLECTION_H__
-
-#include "gcr-base.h"
-#include "gcr-collection.h"
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_UNION_COLLECTION (gcr_union_collection_get_type ())
-#define GCR_UNION_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_COLLECTION, GcrUnionCollection))
-#define GCR_UNION_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_COLLECTION, GcrUnionCollectionClass))
-#define GCR_IS_UNION_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_COLLECTION))
-#define GCR_IS_UNION_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_COLLECTION))
-#define GCR_UNION_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_COLLECTION, GcrUnionCollectionClass))
-
-typedef struct _GcrUnionCollection GcrUnionCollection;
-typedef struct _GcrUnionCollectionClass GcrUnionCollectionClass;
-typedef struct _GcrUnionCollectionPrivate GcrUnionCollectionPrivate;
-
-struct _GcrUnionCollection {
- GObject parent;
-
- /*< private >*/
- GcrUnionCollectionPrivate *pv;
-};
-
-struct _GcrUnionCollectionClass {
- GObjectClass parent_class;
-};
-
-GType gcr_union_collection_get_type (void);
-
-GcrCollection* gcr_union_collection_new (void);
-
-void gcr_union_collection_add (GcrUnionCollection *self,
- GcrCollection *collection);
-
-void gcr_union_collection_take (GcrUnionCollection *self,
- GcrCollection *collection);
-
-void gcr_union_collection_remove (GcrUnionCollection *self,
- GcrCollection *collection);
-
-gboolean gcr_union_collection_have (GcrUnionCollection *self,
- GcrCollection *collection);
-
-guint gcr_union_collection_size (GcrUnionCollection *self);
-
-G_END_DECLS
-
-#endif /* __GCR_UNION_COLLECTION_H__ */
diff --git a/gcr/gcr-unlock-options-widget.c b/gcr/gcr-unlock-options-widget.c
deleted file mode 100644
index 5721cafa..00000000
--- a/gcr/gcr-unlock-options-widget.c
+++ /dev/null
@@ -1,515 +0,0 @@
-/*
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-unlock-options-widget.h"
-
-#include <glib/gi18n-lib.h>
-
-/**
- * SECTION:gcr-unlock-options-widget
- * @title: GcrUnlockOptionsWidget
- * @short_description: A widget for unlock options
- *
- * This widget displays a set of unlock options for the user to select. The user
- * can choose between keeping caching the unlock indefinitely, or for a given
- * amount of time.
- *
- * Each option has a different name, for example #GCR_UNLOCK_OPTION_ALWAYS. These
- * names are used together with the various functions like
- * gcr_unlock_options_widget_get_choice().
- */
-
-/**
- * GCR_UNLOCK_OPTION_ALWAYS:
- *
- * Option name for caching unlock indefinitely.
- */
-
-/**
- * GCR_UNLOCK_OPTION_IDLE:
- *
- * Option name for caching unlock for a certain amount of idle time.
- */
-
-/**
- * GCR_UNLOCK_OPTION_SESSION:
- *
- * Option name for caching unlock for the current session.
- */
-
-/**
- * GCR_UNLOCK_OPTION_TIMEOUT:
- *
- * Option name for caching unlock for a certain amount of time.
- */
-
-/**
- * GcrUnlockOptionsWidget:
- *
- * An unlock options widget.
- */
-
-/**
- * GcrUnlockOptionsWidgetClass:
- *
- * Class for #GcrUnlockOptionsWidget.
- */
-
-enum {
- PROP_0,
- PROP_CHOICE,
- PROP_TTL
-};
-
-struct _GcrUnlockOptionsWidget {
- GtkAlignment parent;
-
- /*< private >*/
- GcrUnlockOptionsWidgetPrivate *pv;
-};
-
-struct _GcrUnlockOptionsWidgetClass {
- GtkAlignmentClass parent_class;
-};
-
-struct _GcrUnlockOptionsWidgetPrivate {
- GtkBuilder *builder;
- gchar *choice;
-};
-
-G_DEFINE_TYPE (GcrUnlockOptionsWidget, gcr_unlock_options_widget, GTK_TYPE_ALIGNMENT);
-
-/* -----------------------------------------------------------------------------
- * INTERNAL
- */
-
-static GtkToggleButton*
-builder_get_toggle_button (GtkBuilder *builder, const gchar *name)
-{
- GObject *object = gtk_builder_get_object (builder, name);
- g_return_val_if_fail (GTK_IS_TOGGLE_BUTTON (object), NULL);
- return GTK_TOGGLE_BUTTON (object);
-}
-
-static GtkSpinButton*
-builder_get_spin_button (GtkBuilder *builder, const gchar *name)
-{
- GObject *object = gtk_builder_get_object (builder, name);
- g_return_val_if_fail (GTK_IS_SPIN_BUTTON (object), NULL);
- return GTK_SPIN_BUTTON (object);
-}
-
-static const gchar*
-widget_name_for_option (const gchar *option)
-{
- g_return_val_if_fail (option, NULL);
- if (g_str_equal (option, GCR_UNLOCK_OPTION_ALWAYS))
- return "lock_always_choice";
- else if (g_str_equal (option, GCR_UNLOCK_OPTION_SESSION))
- return "lock_session_choice";
- else if (g_str_equal (option, GCR_UNLOCK_OPTION_TIMEOUT))
- return "lock_timeout_choice";
- else if (g_str_equal (option, GCR_UNLOCK_OPTION_IDLE))
- return "lock_idle_choice";
- else
- return NULL;
-}
-
-static GtkToggleButton*
-widget_button_for_option (GcrUnlockOptionsWidget *self, const gchar *option)
-{
- const gchar *name = widget_name_for_option (option);
- g_return_val_if_fail (name, NULL);
- return builder_get_toggle_button (self->pv->builder, name);
-}
-
-static const gchar*
-widget_button_to_option (GcrUnlockOptionsWidget *self, GtkToggleButton *button)
-{
- const gchar *option;
- g_return_val_if_fail (button, NULL);
- option = g_object_get_data (G_OBJECT (button), "unlock-choice");
- g_return_val_if_fail (option, NULL);
- return option;
-}
-
-static void
-on_choice_toggled (GtkToggleButton *button, GcrUnlockOptionsWidget *self)
-{
- GtkWidget *spin;
- GtkToggleButton *after, *idle;
-
- spin = GTK_WIDGET (gtk_builder_get_object (self->pv->builder, "lock_minutes_spin"));
- after = builder_get_toggle_button (self->pv->builder, "lock_timeout_choice");
- idle = builder_get_toggle_button (self->pv->builder, "lock_idle_choice");
- gtk_widget_set_sensitive (spin, gtk_toggle_button_get_active (after) ||
- gtk_toggle_button_get_active (idle));
-
- if (gtk_toggle_button_get_active (button)) {
- g_free (self->pv->choice);
- self->pv->choice = g_strdup (widget_button_to_option (self, button));
- }
-}
-
-/* -----------------------------------------------------------------------------
- * OBJECT
- */
-
-
-static GObject*
-gcr_unlock_options_widget_constructor (GType type, guint n_props, GObjectConstructParam *props)
-{
- GObject *obj = G_OBJECT_CLASS (gcr_unlock_options_widget_parent_class)->constructor (type, n_props, props);
- GcrUnlockOptionsWidget *self = NULL;
- GtkToggleButton *button;
- GtkWidget *widget;
-
- if (obj) {
- self = GCR_UNLOCK_OPTIONS_WIDGET (obj);
-
- if (!gtk_builder_add_from_file (self->pv->builder, UIDIR "gcr-unlock-options-widget.ui", NULL))
- g_return_val_if_reached (obj);
-
- widget = GTK_WIDGET (gtk_builder_get_object (self->pv->builder, "unlock-options-widget"));
- g_return_val_if_fail (GTK_IS_WIDGET (widget), obj);
- gtk_container_add (GTK_CONTAINER (self), widget);
- gtk_widget_show (widget);
-
- button = builder_get_toggle_button (self->pv->builder, "lock_always_choice");
- g_signal_connect (button, "toggled", G_CALLBACK (on_choice_toggled), self);
- g_object_set_data (G_OBJECT (button), "unlock-choice", GCR_UNLOCK_OPTION_ALWAYS);
-
- button = builder_get_toggle_button (self->pv->builder, "lock_session_choice");
- g_signal_connect (button, "toggled", G_CALLBACK (on_choice_toggled), self);
- g_object_set_data (G_OBJECT (button), "unlock-choice", GCR_UNLOCK_OPTION_SESSION);
- on_choice_toggled (button, self);
-
- button = builder_get_toggle_button (self->pv->builder, "lock_timeout_choice");
- g_signal_connect (button, "toggled", G_CALLBACK (on_choice_toggled), self);
- g_object_set_data (G_OBJECT (button), "unlock-choice", GCR_UNLOCK_OPTION_TIMEOUT);
-
- button = builder_get_toggle_button (self->pv->builder, "lock_idle_choice");
- g_signal_connect (button, "toggled", G_CALLBACK (on_choice_toggled), self);
- g_object_set_data (G_OBJECT (button), "unlock-choice", GCR_UNLOCK_OPTION_IDLE);
- }
-
- return obj;
-}
-
-static void
-gcr_unlock_options_widget_init (GcrUnlockOptionsWidget *self)
-{
- self->pv = (G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_UNLOCK_OPTIONS_WIDGET, GcrUnlockOptionsWidgetPrivate));
- self->pv->builder = gtk_builder_new ();
-}
-
-static void
-gcr_unlock_options_widget_dispose (GObject *obj)
-{
- GcrUnlockOptionsWidget *self = GCR_UNLOCK_OPTIONS_WIDGET (obj);
-
- if (self->pv->builder)
- g_object_unref (self->pv->builder);
- self->pv->builder = NULL;
-
- G_OBJECT_CLASS (gcr_unlock_options_widget_parent_class)->dispose (obj);
-}
-
-static void
-gcr_unlock_options_widget_finalize (GObject *obj)
-{
- GcrUnlockOptionsWidget *self = GCR_UNLOCK_OPTIONS_WIDGET (obj);
-
- g_assert (!self->pv->builder);
- g_free (self->pv->choice);
- self->pv->choice = NULL;
-
- G_OBJECT_CLASS (gcr_unlock_options_widget_parent_class)->finalize (obj);
-}
-
-static void
-gcr_unlock_options_widget_set_property (GObject *obj, guint prop_id, const GValue *value,
- GParamSpec *pspec)
-{
- GcrUnlockOptionsWidget *self = GCR_UNLOCK_OPTIONS_WIDGET (obj);
-
- switch (prop_id) {
- case PROP_CHOICE:
- gcr_unlock_options_widget_set_choice (self, g_value_get_string (value));
- break;
- case PROP_TTL:
- gcr_unlock_options_widget_set_ttl (self, g_value_get_uint (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_unlock_options_widget_get_property (GObject *obj, guint prop_id, GValue *value,
- GParamSpec *pspec)
-{
- GcrUnlockOptionsWidget *self = GCR_UNLOCK_OPTIONS_WIDGET (obj);
-
- switch (prop_id) {
- case PROP_CHOICE:
- g_value_set_string (value, gcr_unlock_options_widget_get_choice (self));
- break;
- case PROP_TTL:
- g_value_set_uint (value, gcr_unlock_options_widget_get_ttl (self));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_unlock_options_widget_class_init (GcrUnlockOptionsWidgetClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- gcr_unlock_options_widget_parent_class = g_type_class_peek_parent (klass);
- g_type_class_add_private (klass, sizeof (GcrUnlockOptionsWidgetPrivate));
-
- gobject_class->constructor = gcr_unlock_options_widget_constructor;
- gobject_class->dispose = gcr_unlock_options_widget_dispose;
- gobject_class->finalize = gcr_unlock_options_widget_finalize;
- gobject_class->set_property = gcr_unlock_options_widget_set_property;
- gobject_class->get_property = gcr_unlock_options_widget_get_property;
-
- g_object_class_install_property (gobject_class, PROP_CHOICE,
- g_param_spec_string ("choice", "Choice", "Unlock Option Choice",
- NULL, G_PARAM_READWRITE));
-
- g_object_class_install_property (gobject_class, PROP_TTL,
- g_param_spec_uint ("ttl", "TTL", "Unlock Option Timeout in Seconds",
- 0, G_MAXUINT, 0, G_PARAM_READWRITE));
-}
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-/**
- * gcr_unlock_options_widget_new:
- *
- * Create a new #GcrUnlockOptionsWidget.
- *
- * Returns: (transfer full) (type Gcr.UnlockOptionsWidget): a new #GcrUnlockOptionsWidget
- */
-GtkWidget *
-gcr_unlock_options_widget_new (void)
-{
- return g_object_new (GCR_TYPE_UNLOCK_OPTIONS_WIDGET, NULL);
-}
-
-/**
- * gcr_unlock_options_widget_get_choice:
- * @self: The unlock options widget
- *
- * Get the currently selected option, like %GCR_UNLOCK_OPTION_ALWAYS.
- *
- * Returns: The currently selected option name.
- */
-const gchar*
-gcr_unlock_options_widget_get_choice (GcrUnlockOptionsWidget *self)
-{
- g_return_val_if_fail (GCR_IS_UNLOCK_OPTIONS_WIDGET (self), NULL);
- return self->pv->choice;
-}
-
-/**
- * gcr_unlock_options_widget_set_choice:
- * @self: The unlock options widget
- * @option: The option name
- *
- * Set the currently selected option. Use an option name like
- * %GCR_UNLOCK_OPTION_ALWAYS.
- */
-void
-gcr_unlock_options_widget_set_choice (GcrUnlockOptionsWidget *self, const gchar *option)
-{
- GtkToggleButton *button;
-
- g_return_if_fail (GCR_IS_UNLOCK_OPTIONS_WIDGET (self));
- g_return_if_fail (option);
-
- button = widget_button_for_option (self, option);
- gtk_toggle_button_set_active (button, TRUE);
-}
-
-/**
- * gcr_unlock_options_widget_get_ttl:
- * @self: The unlock options widget
- *
- * Get the timeout setting set for unlock options that have a timeout.
- * This will also return a valid value if the currently selected option
- * does not have a timeout.
- *
- * Returns: The unlock timeout in seconds.
- */
-guint
-gcr_unlock_options_widget_get_ttl (GcrUnlockOptionsWidget *self)
-{
- GtkSpinButton *spin;
- gint amount;
-
- g_return_val_if_fail (GCR_IS_UNLOCK_OPTIONS_WIDGET (self), 0);
-
- spin = builder_get_spin_button (self->pv->builder, "lock_minutes_spin");
- amount = gtk_spin_button_get_value_as_int (spin);
- return amount * 60;
-}
-
-/**
- * gcr_unlock_options_widget_set_ttl:
- * @self: The unlock options widget
- * @ttl: The timeout to set, in seconds
- *
- * Set the current setting for the timeout. This can be set even when the
- * currently selected option does not have a timeout.
- */
-void
-gcr_unlock_options_widget_set_ttl (GcrUnlockOptionsWidget *self, guint ttl)
-{
- GtkSpinButton *spin;
- guint amount;
-
- g_return_if_fail (GCR_IS_UNLOCK_OPTIONS_WIDGET (self));
-
- amount = ttl / 60;
- if (!amount || ttl % 60)
- amount += 1;
-
- spin = builder_get_spin_button (self->pv->builder, "lock_minutes_spin");
- gtk_spin_button_set_value (spin, amount);
-}
-
-/**
- * gcr_unlock_options_widget_get_label:
- * @self: The unlock options widget
- * @option: The option name
- *
- * Get the label for one of the options. Use an option name like
- * %GCR_UNLOCK_OPTION_ALWAYS.
- *
- * Returns: The current label for the option.
- */
-const gchar*
-gcr_unlock_options_widget_get_label (GcrUnlockOptionsWidget *self, const gchar *option)
-{
- GtkToggleButton *button;
- const gchar *name;
-
- g_return_val_if_fail (GCR_IS_UNLOCK_OPTIONS_WIDGET (self), NULL);
- g_return_val_if_fail (option, NULL);
-
- name = widget_name_for_option (option);
- g_return_val_if_fail (name, NULL);
-
- button = builder_get_toggle_button (self->pv->builder, name);
- g_return_val_if_fail (button, NULL);
-
- return gtk_button_get_label (GTK_BUTTON (button));
-}
-
-/**
- * gcr_unlock_options_widget_set_label:
- * @self: The unlock options widget
- * @option: The option name
- * @text: The new label
- *
- * Set the label for one of the options. Use an option name like
- * %GCR_UNLOCK_OPTION_ALWAYS.
- */
-void
-gcr_unlock_options_widget_set_label (GcrUnlockOptionsWidget *self, const gchar *option,
- const gchar *text)
-{
- GtkToggleButton *button;
- const gchar *name;
-
- g_return_if_fail (GCR_IS_UNLOCK_OPTIONS_WIDGET (self));
- g_return_if_fail (option);
- g_return_if_fail (text);
-
- name = widget_name_for_option (option);
- g_return_if_fail (name);
-
- button = builder_get_toggle_button (self->pv->builder, name);
- g_return_if_fail (button);
-
- gtk_button_set_label (GTK_BUTTON (button), text);
-}
-
-/**
- * gcr_unlock_options_widget_get_sensitive:
- * @self: The unlock options widget
- * @option: The option name
- *
- * Get the sensitivity state for one of the options. Use an option name like
- * %GCR_UNLOCK_OPTION_ALWAYS.
- *
- * Returns: Whether the option is sensitive or not.
- */
-gboolean
-gcr_unlock_options_widget_get_sensitive (GcrUnlockOptionsWidget *self, const gchar *option)
-{
- GtkToggleButton *button;
- GtkStateType state;
-
- g_return_val_if_fail (GCR_IS_UNLOCK_OPTIONS_WIDGET (self), FALSE);
- g_return_val_if_fail (option, FALSE);
-
- button = widget_button_for_option (self, option);
- state = gtk_widget_get_state (GTK_WIDGET (button));
- return (state & GTK_STATE_INSENSITIVE) != GTK_STATE_INSENSITIVE;
-}
-
-/**
- * gcr_unlock_options_widget_set_sensitive:
- * @self: The unlock options widget
- * @option: The option name
- * @sensitive: The sensitivity state.
- * @reason: A user displayable string which contains the reason for the sensitivity.
- *
- * Set the sensitivity state for one of the options. Use an option name like
- * %GCR_UNLOCK_OPTION_ALWAYS. The reason will be displayed as a tooltip.
- */
-void
-gcr_unlock_options_widget_set_sensitive (GcrUnlockOptionsWidget *self, const gchar *option,
- gboolean sensitive, const gchar *reason)
-{
- GtkToggleButton *button;
-
- g_return_if_fail (GCR_IS_UNLOCK_OPTIONS_WIDGET (self));
- g_return_if_fail (option);
-
- button = widget_button_for_option (self, option);
- gtk_widget_set_sensitive (GTK_WIDGET (button), sensitive);
-
- if (!sensitive && reason)
- gtk_widget_set_tooltip_text (GTK_WIDGET (button), reason);
- else if (sensitive)
- gtk_widget_set_has_tooltip (GTK_WIDGET (button), FALSE);
-}
diff --git a/gcr/gcr-unlock-options-widget.h b/gcr/gcr-unlock-options-widget.h
deleted file mode 100644
index ca274f5c..00000000
--- a/gcr/gcr-unlock-options-widget.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef __GCR_UNLOCK_OPTIONS_WIDGET_H__
-#define __GCR_UNLOCK_OPTIONS_WIDGET_H__
-
-#include <glib-object.h>
-#include <gtk/gtk.h>
-
-#include "gcr-types.h"
-#include "gcr-unlock-options.h"
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_UNLOCK_OPTIONS_WIDGET (gcr_unlock_options_widget_get_type ())
-#define GCR_UNLOCK_OPTIONS_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_UNLOCK_OPTIONS_WIDGET, GcrUnlockOptionsWidget))
-#define GCR_UNLOCK_OPTIONS_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_UNLOCK_OPTIONS_WIDGET, GcrUnlockOptionsWidgetClass))
-#define GCR_IS_UNLOCK_OPTIONS_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_UNLOCK_OPTIONS_WIDGET))
-#define GCR_IS_UNLOCK_OPTIONS_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_UNLOCK_OPTIONS_WIDGET))
-#define GCR_UNLOCK_OPTIONS_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_UNLOCK_OPTIONS_WIDGET, GcrUnlockOptionsWidgetClass))
-
-typedef struct _GcrUnlockOptionsWidget GcrUnlockOptionsWidget;
-typedef struct _GcrUnlockOptionsWidgetClass GcrUnlockOptionsWidgetClass;
-typedef struct _GcrUnlockOptionsWidgetPrivate GcrUnlockOptionsWidgetPrivate;
-
-/*
- * TODO: GcrUnlockOptionsWidget and GcrUnlockOptionsWidgetClass are hidden until
- * we can figure out what they should be derived from.
- */
-
-GType gcr_unlock_options_widget_get_type (void);
-
-GtkWidget* gcr_unlock_options_widget_new (void);
-
-const gchar* gcr_unlock_options_widget_get_choice (GcrUnlockOptionsWidget *self);
-
-void gcr_unlock_options_widget_set_choice (GcrUnlockOptionsWidget *self,
- const gchar *option);
-
-guint gcr_unlock_options_widget_get_ttl (GcrUnlockOptionsWidget *self);
-
-void gcr_unlock_options_widget_set_ttl (GcrUnlockOptionsWidget *self,
- guint ttl);
-
-const gchar* gcr_unlock_options_widget_get_label (GcrUnlockOptionsWidget *self,
- const gchar *option);
-
-void gcr_unlock_options_widget_set_label (GcrUnlockOptionsWidget *self,
- const gchar *option,
- const gchar *text);
-
-gboolean gcr_unlock_options_widget_get_sensitive (GcrUnlockOptionsWidget *self,
- const gchar *option);
-
-void gcr_unlock_options_widget_set_sensitive (GcrUnlockOptionsWidget *self,
- const gchar *option,
- gboolean sensitive,
- const gchar *reason);
-
-G_END_DECLS
-
-#endif /* __GCR_UNLOCK_OPTIONS_WIDGET_H__ */
diff --git a/gcr/gcr-unlock-options-widget.ui b/gcr/gcr-unlock-options-widget.ui
deleted file mode 100644
index ef59144d..00000000
--- a/gcr/gcr-unlock-options-widget.ui
+++ /dev/null
@@ -1,117 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<interface>
- <requires lib="gtk+" version="2.16"/>
- <!-- interface-naming-policy project-wide -->
- <object class="GtkAdjustment" id="spin_adjustment">
- <property name="lower">1</property>
- <property name="upper">999</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
- </object>
- <object class="GtkVBox" id="unlock-options-widget">
- <property name="visible">True</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkRadioButton" id="lock_always_choice">
- <property name="label" translatable="yes">Automatically unlock this keyring whenever I'm logged in</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">lock_session_choice</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkRadioButton" id="lock_session_choice">
- <property name="label" translatable="yes">Lock this keyring when I log out</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="hbox2">
- <property name="visible">True</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkVBox" id="vbox5">
- <property name="visible">True</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkRadioButton" id="lock_timeout_choice">
- <property name="label" translatable="yes">Lock this keyring after</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">lock_session_choice</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkRadioButton" id="lock_idle_choice">
- <property name="label" translatable="yes">Lock this keyring if idle for</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">lock_session_choice</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="lock_minutes_spin">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="invisible_char">•</property>
- <property name="adjustment">spin_adjustment</property>
- <property name="climb_rate">1</property>
- <property name="numeric">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes" comments="Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.">minutes</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
-</interface>
diff --git a/gcr/gcr-unlock-options.h b/gcr/gcr-unlock-options.h
deleted file mode 100644
index e4ec6705..00000000
--- a/gcr/gcr-unlock-options.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#ifndef __GCR_UNLOCK_OPTIONS_H__
-#define __GCR_UNLOCK_OPTIONS_H__
-
-G_BEGIN_DECLS
-
-#define GCR_UNLOCK_OPTION_ALWAYS "always"
-#define GCR_UNLOCK_OPTION_SESSION "session"
-#define GCR_UNLOCK_OPTION_TIMEOUT "timeout"
-#define GCR_UNLOCK_OPTION_IDLE "idle"
-
-G_END_DECLS
-
-#endif /* __GCR_UNLOCK_OPTIONS_H__ */
diff --git a/gcr/gcr-unlock-renderer.c b/gcr/gcr-unlock-renderer.c
deleted file mode 100644
index 4615057f..00000000
--- a/gcr/gcr-unlock-renderer.c
+++ /dev/null
@@ -1,345 +0,0 @@
-/*
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-display-view.h"
-#include "gcr-icons.h"
-#include "gcr-parser.h"
-#include "gcr-unlock-renderer.h"
-
-#include "egg/egg-entry-buffer.h"
-
-#include <gdk/gdk.h>
-#include <glib/gi18n-lib.h>
-
-enum {
- PROP_0,
- PROP_LABEL,
- PROP_ATTRIBUTES
-};
-
-struct _GcrUnlockRendererPrivate {
- GtkEntry *entry;
- GtkLabel *warning;
-
- gpointer locked_data;
- gsize n_locked_data;
- gchar *label;
- gboolean unlocked;
- GList *renderers;
- guint unlock_tries;
-
- /* block widget destroys during render */
- gint no_destroy;
-};
-
-enum {
- UNLOCK_CLICKED,
- LAST_SIGNAL,
-};
-
-static guint signals[LAST_SIGNAL] = { 0 };
-
-static void gcr_renderer_iface_init (GcrRendererIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (GcrUnlockRenderer, _gcr_unlock_renderer, GTK_TYPE_ALIGNMENT,
- G_IMPLEMENT_INTERFACE (GCR_TYPE_RENDERER, gcr_renderer_iface_init);
-);
-
-static gchar*
-calculate_label (GcrUnlockRenderer *self)
-{
- if (self->pv->label)
- return g_strdup_printf (_("Unlock: %s"), self->pv->label);
-
- return g_strdup (_("Unlock"));
-}
-
-void
-_gcr_unlock_renderer_show_warning (GcrUnlockRenderer *self,
- const gchar *message)
-{
- gchar *text;
-
- g_return_if_fail (GCR_UNLOCK_RENDERER (self));
- g_return_if_fail (message != NULL);
-
- text = g_strdup_printf ("<i>%s</i>", message);
- gtk_label_set_markup (self->pv->warning, text);
- g_free (text);
-
- gtk_widget_show (GTK_WIDGET (self->pv->warning));
-}
-
-static void
-on_unlock_button_clicked (GtkButton *button,
- gpointer user_data)
-{
- GcrUnlockRenderer *self = GCR_UNLOCK_RENDERER (user_data);
- g_signal_emit (self, signals[UNLOCK_CLICKED], 0);
-}
-
-static void
-on_entry_activated (GtkEntry *entry,
- gpointer user_data)
-{
- GtkButton *button = GTK_BUTTON (user_data);
- gtk_button_clicked (button);
-}
-
-static void
-_gcr_unlock_renderer_init (GcrUnlockRenderer *self)
-{
- GtkWidget *box, *vbox;
- GtkWidget *button;
- GtkEntryBuffer *buffer;
-
- self->pv = (G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_UNLOCK_RENDERER,
- GcrUnlockRendererPrivate));
-
- box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12);
-
- buffer = egg_entry_buffer_new ();
- self->pv->entry = GTK_ENTRY (gtk_entry_new_with_buffer (buffer));
- gtk_entry_set_visibility (self->pv->entry, FALSE);
- gtk_box_pack_start (GTK_BOX (box), GTK_WIDGET (self->pv->entry), TRUE, FALSE, 0);
- gtk_widget_show (GTK_WIDGET (self->pv->entry));
- g_object_unref (buffer);
-#if GTK_CHECK_VERSION (3,1,1)
- gtk_entry_set_placeholder_text (self->pv->entry, _("Password"));
-#endif
-
- button = gtk_button_new_with_label (_("Unlock"));
- gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
- g_signal_connect (button, "clicked", G_CALLBACK (on_unlock_button_clicked), self);
- g_signal_connect (self->pv->entry, "activate", G_CALLBACK (on_entry_activated), button);
- gtk_widget_show (button);
-
- vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
- gtk_box_pack_start (GTK_BOX (vbox), box, FALSE, FALSE, 0);
- gtk_widget_show (box);
-
- self->pv->warning = GTK_LABEL (gtk_label_new (""));
- gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (self->pv->warning), FALSE, FALSE, 0);
- gtk_widget_hide (GTK_WIDGET (self->pv->warning));
-
- gtk_container_add (GTK_CONTAINER (self), vbox);
- gtk_widget_show (vbox);
-}
-
-static void
-_gcr_unlock_renderer_finalize (GObject *obj)
-{
- GcrUnlockRenderer *self = GCR_UNLOCK_RENDERER (obj);
-
- g_free (self->pv->locked_data);
- g_free (self->pv->label);
- g_list_free_full (self->pv->renderers, g_object_unref);
-
- G_OBJECT_CLASS (_gcr_unlock_renderer_parent_class)->finalize (obj);
-}
-
-static void
-_gcr_unlock_renderer_set_property (GObject *obj,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GcrUnlockRenderer *self = GCR_UNLOCK_RENDERER (obj);
-
- switch (prop_id) {
- case PROP_LABEL:
- g_free (self->pv->label);
- self->pv->label = g_value_dup_string (value);
- g_object_notify (obj, "label");
- gcr_renderer_emit_data_changed (GCR_RENDERER (self));
- break;
- case PROP_ATTRIBUTES:
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-_gcr_unlock_renderer_get_property (GObject *obj,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GcrUnlockRenderer *self = GCR_UNLOCK_RENDERER (obj);
-
- switch (prop_id) {
- case PROP_LABEL:
- g_value_take_string (value, calculate_label (self));
- break;
- case PROP_ATTRIBUTES:
- g_value_set_boxed (value, NULL);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-_gcr_unlock_renderer_class_init (GcrUnlockRendererClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- g_type_class_add_private (klass, sizeof (GcrUnlockRendererPrivate));
-
- gobject_class->finalize = _gcr_unlock_renderer_finalize;
- gobject_class->set_property = _gcr_unlock_renderer_set_property;
- gobject_class->get_property = _gcr_unlock_renderer_get_property;
-
- g_object_class_install_property (gobject_class, PROP_LABEL,
- g_param_spec_string ("label", "Label", "Unlock Label",
- "", G_PARAM_READWRITE));
-
- g_object_class_install_property (gobject_class, PROP_ATTRIBUTES,
- g_param_spec_boxed ("attributes", "Attributes", "Certificate pkcs11 attributes",
- GCK_TYPE_ATTRIBUTES, G_PARAM_READWRITE));
-
- signals[UNLOCK_CLICKED] = g_signal_new ("unlock-clicked", GCR_TYPE_UNLOCK_RENDERER, G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GcrUnlockRendererClass, unlock_clicked),
- NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
-}
-
-static void
-gcr_unlock_renderer_render (GcrRenderer *renderer,
- GcrViewer *viewer)
-{
- GcrUnlockRenderer *self = GCR_UNLOCK_RENDERER (renderer);
- GcrDisplayView *view;
- gchar *display;
- GList *renderers;
- GIcon *icon;
- GList *l;
-
- if (GCR_IS_DISPLAY_VIEW (viewer)) {
- view = GCR_DISPLAY_VIEW (viewer);
-
- } else {
- g_warning ("GcrUnlockRenderer only works with internal specific "
- "GcrViewer returned by gcr_viewer_new().");
- return;
- }
-
- /*
- * If we were successfully unlocked, then this will contain a list of
- * renderers to add to the viewer.
- */
- if (self->pv->unlocked) {
-
- /* We used prepend above, so list is backwards */
- renderers = g_list_reverse (self->pv->renderers);
- self->pv->renderers = NULL;
-
- for (l = renderers; l != NULL; l = g_list_next (l))
- gcr_viewer_insert_renderer (viewer, l->data, renderer);
- g_list_free_full (renderers, g_object_unref);
-
- /* And finally remove ourselves from the viewer */
- gcr_viewer_remove_renderer (viewer, GCR_RENDERER (self));
- /*
- * Not yet unlocked, display the unlock dialog.
- */
- } else {
-
- _gcr_display_view_begin (view, renderer);
-
- icon = g_themed_icon_new ("emblem-readonly");
- _gcr_display_view_set_icon (view, renderer, icon);
- g_object_unref (icon);
-
- display = calculate_label (self);
- _gcr_display_view_append_title (view, renderer, display);
- g_free (display);
-
- if (self->pv->label)
- display = g_strdup_printf (_("The contents of '%s' are locked. In order to view the contents, enter the correct password."),
- self->pv->label);
- else
- display = g_strdup (_("The contents are locked. In order to view the contents, enter the correct password."));
- _gcr_display_view_append_content (view, renderer, display, NULL);
- g_free (display);
-
- _gcr_display_view_add_widget_area (view, renderer, GTK_WIDGET (self));
- gtk_widget_show (GTK_WIDGET (self));
-
- _gcr_display_view_end (view, renderer);
- }
-}
-
-static void
-gcr_renderer_iface_init (GcrRendererIface *iface)
-{
- iface->render_view = gcr_unlock_renderer_render;
-}
-
-GcrUnlockRenderer*
-_gcr_unlock_renderer_new (const gchar *label,
- gconstpointer locked_data,
- gsize n_locked_data)
-{
- GcrUnlockRenderer *renderer;
-
- renderer = g_object_new (GCR_TYPE_UNLOCK_RENDERER,
- "label", label,
- NULL);
- g_object_ref_sink (renderer);
-
- renderer->pv->locked_data = g_memdup (locked_data, n_locked_data);
- renderer->pv->n_locked_data = n_locked_data;
-
- return renderer;
-}
-
-GcrUnlockRenderer *
-_gcr_unlock_renderer_new_for_parsed (GcrParser *parser)
-{
- gconstpointer block;
- gsize n_block;
-
- g_return_val_if_fail (GCR_IS_PARSER (parser), NULL);
-
- block = gcr_parser_get_parsed_block (parser, &n_block);
- return _gcr_unlock_renderer_new (gcr_parser_get_parsed_label (parser),
- block, n_block);
-}
-
-const gchar *
-_gcr_unlock_renderer_get_password (GcrUnlockRenderer *self)
-{
- g_return_val_if_fail (GCR_IS_UNLOCK_RENDERER (self), NULL);
- return gtk_entry_get_text (self->pv->entry);
-}
-
-gconstpointer
-_gcr_unlock_renderer_get_locked_data (GcrUnlockRenderer *self,
- gsize *n_data)
-{
- g_return_val_if_fail (GCR_IS_UNLOCK_RENDERER (self), NULL);
- g_return_val_if_fail (n_data != NULL, NULL);
- *n_data = self->pv->n_locked_data;
- return self->pv->locked_data;
-}
diff --git a/gcr/gcr-unlock-renderer.h b/gcr/gcr-unlock-renderer.h
deleted file mode 100644
index bc695b13..00000000
--- a/gcr/gcr-unlock-renderer.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION)
-#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly."
-#endif
-
-#ifndef __GCR_UNLOCK_RENDERER_H__
-#define __GCR_UNLOCK_RENDERER_H__
-
-#include <glib-object.h>
-#include <gtk/gtk.h>
-
-#include "gcr-renderer.h"
-#include "gcr-types.h"
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_UNLOCK_RENDERER (_gcr_unlock_renderer_get_type ())
-#define GCR_UNLOCK_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_UNLOCK_RENDERER, GcrUnlockRenderer))
-#define GCR_UNLOCK_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_UNLOCK_RENDERER, GcrUnlockRendererClass))
-#define GCR_IS_UNLOCK_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_UNLOCK_RENDERER))
-#define GCR_IS_UNLOCK_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_UNLOCK_RENDERER))
-#define GCR_UNLOCK_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_UNLOCK_RENDERER, GcrUnlockRendererClass))
-
-typedef struct _GcrUnlockRenderer GcrUnlockRenderer;
-typedef struct _GcrUnlockRendererClass GcrUnlockRendererClass;
-typedef struct _GcrUnlockRendererPrivate GcrUnlockRendererPrivate;
-
-struct _GcrUnlockRenderer {
- /*< private >*/
- GtkAlignment parent;
- GcrUnlockRendererPrivate *pv;
-};
-
-struct _GcrUnlockRendererClass {
- GtkAlignmentClass parent_class;
-
- /* signals */
- void (*unlock_clicked) (GcrUnlockRenderer *unlock);
-};
-
-GType _gcr_unlock_renderer_get_type (void);
-
-GcrUnlockRenderer * _gcr_unlock_renderer_new (const gchar *label,
- gconstpointer locked_data,
- gsize n_locked_data);
-
-GcrUnlockRenderer * _gcr_unlock_renderer_new_for_parsed (GcrParser *parser);
-
-const gchar * _gcr_unlock_renderer_get_password (GcrUnlockRenderer *self);
-
-void _gcr_unlock_renderer_show_warning (GcrUnlockRenderer *self,
- const gchar *message);
-
-gconstpointer _gcr_unlock_renderer_get_locked_data (GcrUnlockRenderer *self,
- gsize *n_data);
-
-G_END_DECLS
-
-#endif /* __GCR_UNLOCK_RENDERER_H__ */
diff --git a/gcr/gcr-util.c b/gcr/gcr-util.c
deleted file mode 100644
index 418b73cb..00000000
--- a/gcr/gcr-util.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr-util.h"
-
-#include <string.h>
-
-/**
- * _gcr_util_parse_lines:
- * @string: The string to parse lines from, will be modified
- * @last_line: Whether or not we should run for last line or not
- * @callback: Call for each line
- * @user_data: Data for callback
- *
- * Calls callback for each line. If last_line, also sends the remainder
- * data that comes after the last line break. \n and \r\n are line separators.
- * Neither are included in data passed to callback.
- */
-void
-_gcr_util_parse_lines (GString *string, gboolean last_line,
- GcrLineCallback callback, gpointer user_data)
-{
- gchar *ptr;
- gchar *prev;
-
- g_return_if_fail (string);
- g_return_if_fail (callback);
-
- /* Print all stderr lines as messages */
- while ((ptr = strchr (string->str, '\n')) != NULL) {
- *ptr = '\0';
- prev = ptr - 1;
- if (*prev == '\r')
- *prev = '\0';
-
- (callback) (string->str, user_data);
- g_string_erase (string, 0, ptr - string->str + 1);
- }
-
- if (last_line && string->len) {
- (callback) (string->str, user_data);
- g_string_erase (string, 0, string->len);
- }
-}
diff --git a/gcr/gcr-util.h b/gcr/gcr-util.h
deleted file mode 100644
index a104a8ec..00000000
--- a/gcr/gcr-util.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#ifndef GCR_UTIL_H
-#define GCR_UTIL_H
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-typedef void (*GcrLineCallback) (const gchar *line,
- gpointer user_data);
-
-void _gcr_util_parse_lines (GString *string,
- gboolean last_line,
- GcrLineCallback callback,
- gpointer user_data);
-
-G_END_DECLS
-
-#endif /* __GCR_TOKEN_MANAGER_H__ */
diff --git a/gcr/gcr-viewer-tool.c b/gcr/gcr-viewer-tool.c
deleted file mode 100644
index e3510f45..00000000
--- a/gcr/gcr-viewer-tool.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gcr-viewer-tool.c: Command line utility
-
- Copyright (C) 2011 Collabora Ltd.
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gcr-viewer-window.h"
-
-#include <glib/gi18n.h>
-#include <gtk/gtk.h>
-
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-
-static gchar **remaining_args = NULL;
-
-static gboolean
-print_version_and_exit (const gchar *option_name, const gchar *value,
- gpointer data, GError **error)
-{
- g_print("%s -- %s\n", _("GCR Certificate and Key Viewer"), VERSION);
- exit (0);
- return TRUE;
-}
-
-static const GOptionEntry options[] = {
- { "version", 0, G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK,
- print_version_and_exit, N_("Show the application's version"), NULL},
- { G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY,
- &remaining_args, NULL, N_("[file...]") },
- { NULL }
-};
-
-static gboolean
-on_idle_load_files (gpointer user_data)
-{
- GcrViewerWindow *window = GCR_VIEWER_WINDOW (user_data);
- GFile *file;
- gint i;
-
- if (remaining_args) {
- for (i = 0; remaining_args[i] != NULL; ++i) {
- file = g_file_new_for_commandline_arg (remaining_args[i]);
- gcr_viewer_window_load (window, file);
- g_object_unref (file);
- }
-
- g_strfreev (remaining_args);
- remaining_args = NULL;
- }
-
- return FALSE; /* Don't run this again */
-}
-
-static void
-on_window_destroy (GtkWidget *widget,
- gpointer unused)
-{
- gtk_widget_hide (widget);
- gtk_main_quit ();
-}
-
-int
-main (int argc, char *argv[])
-{
- GOptionContext *context;
- GError *error = NULL;
- GtkWindow *window;
-
- g_type_init ();
- g_thread_init (NULL);
-
-#ifdef HAVE_LOCALE_H
- /* internationalisation */
- setlocale (LC_ALL, "");
-#endif
-
-#ifdef HAVE_GETTEXT
- bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
- textdomain (GETTEXT_PACKAGE);
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
-#endif
-
- context = g_option_context_new (N_("- View certificate and key files"));
- g_option_context_set_translation_domain (context, GETTEXT_PACKAGE);
- g_option_context_add_main_entries (context, options, GETTEXT_PACKAGE);
-
- g_option_context_add_group (context, gtk_get_option_group (TRUE));
-
- if (! g_option_context_parse (context, &argc, &argv, &error)) {
- g_critical ("Failed to parse arguments: %s", error->message);
- g_error_free (error);
- g_option_context_free (context);
- return 1;
- }
-
- g_option_context_free (context);
- g_set_application_name (_("Certificate Viewer"));
-
- gtk_init (&argc, &argv);
-
- window = gcr_viewer_window_new ();
- gtk_widget_show (GTK_WIDGET (window));
-
- g_idle_add (on_idle_load_files, window);
- g_signal_connect (window, "destroy", G_CALLBACK (on_window_destroy), NULL);
- gtk_main ();
-
- return 0;
-}
diff --git a/gcr/gcr-viewer-widget.c b/gcr/gcr-viewer-widget.c
deleted file mode 100644
index 6e065994..00000000
--- a/gcr/gcr-viewer-widget.c
+++ /dev/null
@@ -1,504 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gcr-viewer-widget: Widget for viewer
-
- Copyright (C) 2011 Collabora Ltd.
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gcr-display-scrolled.h"
-#include "gcr-failure-renderer.h"
-#include "gcr-importer.h"
-#include "gcr-marshal.h"
-#include "gcr-parser.h"
-#include "gcr-renderer.h"
-#include "gcr-unlock-renderer.h"
-#include "gcr-viewer-widget.h"
-#include "gcr-viewer.h"
-
-#include <glib/gi18n-lib.h>
-#include <gtk/gtk.h>
-
-#include <locale.h>
-#include <string.h>
-
-/**
- * SECTION:gcr-viewer-widget
- * @title: GcrViewerWidget
- * @short_description: A widget which shows certificates or keys
- *
- * A viewer widget which can display certificates and keys that are
- * located in files.
- */
-
-enum {
- PROP_0,
- PROP_PARSER
-};
-
-/**
- * GcrViewerWidget:
- *
- * A viewer widget object.
- */
-
-/**
- * GcrViewerWidgetClass:
- *
- * Class for #GcrViewerWidget
- */
-
-/*
- * Not yet figured out how to expose these without locking down our
- * implementation, the parent class we derive from.
- */
-
-struct _GcrViewerWidget {
- /*< private >*/
- GcrDisplayScrolled parent;
- GcrViewerWidgetPrivate *pv;
-};
-
-struct _GcrViewerWidgetClass {
- GcrDisplayScrolledClass parent_class;
-
- void (*added) (GcrViewerWidget *widget,
- GcrRenderer *renderer,
- GcrParsed *parsed);
-};
-
-struct _GcrViewerWidgetPrivate {
- GQueue *files_to_load;
- GcrParser *parser;
- GCancellable *cancellable;
- GList *unlocks;
- gboolean loading;
- gchar *display_name;
-};
-
-enum {
- ADDED,
- LAST_SIGNAL
-};
-
-static guint signals[LAST_SIGNAL] = { 0, };
-
-static void viewer_load_next_file (GcrViewerWidget *self);
-static void viewer_stop_loading_files (GcrViewerWidget *self);
-
-G_DEFINE_TYPE (GcrViewerWidget, gcr_viewer_widget, GCR_TYPE_DISPLAY_SCROLLED);
-
-static const gchar *
-get_parsed_label_or_display_name (GcrViewerWidget *self,
- GcrParser *parser)
-{
- const gchar *label;
-
- label = gcr_parser_get_parsed_label (parser);
- if (label == NULL)
- label = self->pv->display_name;
-
- return label;
-}
-
-static void
-on_parser_parsed (GcrParser *parser,
- gpointer user_data)
-{
- GcrViewerWidget *self = GCR_VIEWER_WIDGET (user_data);
- GckAttributes *attrs;
- GcrRenderer *renderer;
- const gchar *label;
- gboolean actual = TRUE;
-
- label = get_parsed_label_or_display_name (self, parser);
- attrs = gcr_parser_get_parsed_attributes (parser);
-
- renderer = gcr_renderer_create (label, attrs);
-
- if (renderer == NULL) {
- renderer = gcr_failure_renderer_new_unsupported (label);
- actual = FALSE;
- }
-
- /* And show the data */
- gcr_viewer_add_renderer (GCR_VIEWER (self), renderer);
-
- /* Let callers know we're rendering data */
- if (actual == TRUE)
- g_signal_emit (self, signals[ADDED], 0, renderer,
- gcr_parser_get_parsed (parser));
-
- g_object_unref (renderer);
-}
-
-static gboolean
-on_parser_authenticate_for_unlock (GcrParser *parser,
- guint count,
- gpointer user_data)
-{
- GcrUnlockRenderer *unlock = GCR_UNLOCK_RENDERER (user_data);
- const gchar *password;
-
- if (count == 0) {
- password = _gcr_unlock_renderer_get_password (unlock);
- gcr_parser_add_password (parser, password);
- }
-
- return TRUE;
-}
-
-static void
-on_unlock_renderer_clicked (GcrUnlockRenderer *unlock,
- gpointer user_data)
-{
- GcrViewerWidget *self = GCR_VIEWER_WIDGET (user_data);
- GError *error = NULL;
- gconstpointer data;
- gsize n_data;
- gulong sig;
-
- /* Override our main authenticate signal handler */
- sig = g_signal_connect (self->pv->parser, "authenticate",
- G_CALLBACK (on_parser_authenticate_for_unlock), unlock);
-
- data = _gcr_unlock_renderer_get_locked_data (unlock, &n_data);
- if (gcr_parser_parse_data (self->pv->parser, data, n_data, &error)) {
-
- /* Done with this unlock renderer */
- gcr_viewer_remove_renderer (GCR_VIEWER (self), GCR_RENDERER (unlock));
- self->pv->unlocks = g_list_remove (self->pv->unlocks, unlock);
- g_object_unref (unlock);
-
- } else if (g_error_matches (error, GCR_DATA_ERROR, GCR_ERROR_LOCKED)){
- _gcr_unlock_renderer_show_warning (unlock, _("The password was incorrect"));
- g_error_free (error);
-
- } else {
- _gcr_unlock_renderer_show_warning (unlock, error->message);
- g_error_free (error);
- }
-
- g_signal_handler_disconnect (self->pv->parser, sig);
-}
-
-static gboolean
-on_parser_authenticate_for_data (GcrParser *parser,
- guint count,
- gpointer user_data)
-{
- GcrViewerWidget *self = GCR_VIEWER_WIDGET (user_data);
- GcrUnlockRenderer *unlock;
-
- unlock = _gcr_unlock_renderer_new_for_parsed (parser);
- if (unlock != NULL) {
- g_object_set (unlock, "label", get_parsed_label_or_display_name (self, parser), NULL);
- gcr_viewer_add_renderer (GCR_VIEWER (self), GCR_RENDERER (unlock));
- g_signal_connect (unlock, "unlock-clicked", G_CALLBACK (on_unlock_renderer_clicked), self);
- self->pv->unlocks = g_list_prepend (self->pv->unlocks, unlock);
- }
-
- return TRUE;
-}
-
-static void
-gcr_viewer_widget_init (GcrViewerWidget *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_VIEWER_WIDGET,
- GcrViewerWidgetPrivate);
-
- self->pv->files_to_load = g_queue_new ();
- self->pv->parser = gcr_parser_new ();
- self->pv->cancellable = g_cancellable_new ();
- self->pv->unlocks = NULL;
-
- g_signal_connect (self->pv->parser, "parsed", G_CALLBACK (on_parser_parsed), self);
- g_signal_connect_after (self->pv->parser, "authenticate", G_CALLBACK (on_parser_authenticate_for_data), self);
-}
-
-static void
-gcr_viewer_widget_get_property (GObject *obj,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GcrViewerWidget *self = GCR_VIEWER_WIDGET (obj);
-
- switch (prop_id) {
- case PROP_PARSER:
- g_value_set_object (value, gcr_viewer_widget_get_parser (self));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-gcr_viewer_widget_dispose (GObject *obj)
-{
- GcrViewerWidget *self = GCR_VIEWER_WIDGET (obj);
- GList *l;
-
- g_signal_handlers_disconnect_by_func (self->pv->parser, on_parser_parsed, self);
-
- for (l = self->pv->unlocks; l != NULL; l = g_list_next (l)) {
- g_signal_handlers_disconnect_by_func (l->data, on_unlock_renderer_clicked, self);
- g_object_unref (l->data);
- }
- g_list_free (self->pv->unlocks);
- self->pv->unlocks = NULL;
-
- while (!g_queue_is_empty (self->pv->files_to_load))
- g_object_unref (g_queue_pop_head (self->pv->files_to_load));
-
- g_cancellable_cancel (self->pv->cancellable);
-
- G_OBJECT_CLASS (gcr_viewer_widget_parent_class)->dispose (obj);
-}
-
-static void
-gcr_viewer_widget_finalize (GObject *obj)
-{
- GcrViewerWidget *self = GCR_VIEWER_WIDGET (obj);
-
- g_assert (g_queue_is_empty (self->pv->files_to_load));
- g_queue_free (self->pv->files_to_load);
-
- g_free (self->pv->display_name);
- g_object_unref (self->pv->cancellable);
- g_object_unref (self->pv->parser);
-
- G_OBJECT_CLASS (gcr_viewer_widget_parent_class)->finalize (obj);
-}
-
-static void
-gcr_viewer_widget_class_init (GcrViewerWidgetClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- gobject_class->dispose = gcr_viewer_widget_dispose;
- gobject_class->finalize = gcr_viewer_widget_finalize;
- gobject_class->get_property = gcr_viewer_widget_get_property;
-
- /**
- * GcrViewerWidget:parser:
- *
- * The parser used to parse loaded data into viewable items.
- */
- g_object_class_install_property (gobject_class, PROP_PARSER,
- g_param_spec_object ("parser", "Parser", "Parser used to parse viewable items",
- GCR_TYPE_PARSER, G_PARAM_READABLE));
-
- g_type_class_add_private (klass, sizeof (GcrViewerWidget));
-
- /**
- * GcrViewerWidget::added:
- * @self: the viewer widget
- * @renderer: (type Gcr.Renderer): the renderer that was added
- * @parsed: (type Gcr.Parsed): the parsed item that was added
- *
- * This signal is emitted when an item is added to the viewer widget.
- */
- signals[ADDED] = g_signal_new ("added", GCR_TYPE_VIEWER_WIDGET, G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GcrViewerWidgetClass, added),
- NULL, NULL, _gcr_marshal_VOID__OBJECT_BOXED,
- G_TYPE_NONE, 2, G_TYPE_OBJECT, GCR_TYPE_PARSED);
-}
-
-static void
-on_parser_parse_stream_returned (GObject *source,
- GAsyncResult *result,
- gpointer user_data)
-{
- GcrViewerWidget *self = GCR_VIEWER_WIDGET (user_data);
- GError *error = NULL;
- GcrRenderer *renderer;
-
- gcr_parser_parse_stream_finish (self->pv->parser, result, &error);
-
- if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED) ||
- g_error_matches (error, GCR_DATA_ERROR, GCR_ERROR_CANCELLED)) {
- viewer_stop_loading_files (self);
-
- } else if (g_error_matches (error, GCR_DATA_ERROR, GCR_ERROR_LOCKED)) {
- /* Just skip this one, an unlock renderer was added */
-
- } else if (error) {
- renderer = gcr_failure_renderer_new (self->pv->display_name, error);
- gcr_viewer_add_renderer (GCR_VIEWER (self), renderer);
- g_object_unref (renderer);
- g_error_free (error);
- }
-
- viewer_load_next_file (self);
-}
-
-static void
-update_display_name (GcrViewerWidget *self,
- GFile *file)
-{
- gchar *basename;
-
- basename = g_file_get_basename (file);
-
- g_free (self->pv->display_name);
- self->pv->display_name = g_filename_display_name (basename);
-
- g_free (basename);
-}
-
-static void
-on_file_read_returned (GObject *source,
- GAsyncResult *result,
- gpointer user_data)
-{
- GcrViewerWidget *self = GCR_VIEWER_WIDGET (user_data);
- GFile *file = G_FILE (source);
- GError *error = NULL;
- GFileInputStream *fis;
- GcrRenderer *renderer;
-
- fis = g_file_read_finish (file, result, &error);
- update_display_name (self, file);
-
- if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
- viewer_stop_loading_files (self);
-
- } else if (error) {
- renderer = gcr_failure_renderer_new (self->pv->display_name, error);
- gcr_viewer_add_renderer (GCR_VIEWER (self), renderer);
- g_object_unref (renderer);
- g_error_free (error);
-
- viewer_load_next_file (self);
-
- } else {
- gcr_parser_parse_stream_async (self->pv->parser, G_INPUT_STREAM (fis),
- self->pv->cancellable, on_parser_parse_stream_returned,
- self);
- g_object_unref (fis);
- }
-}
-
-static void
-viewer_stop_loading_files (GcrViewerWidget *self)
-{
- self->pv->loading = FALSE;
-}
-
-static void
-viewer_load_next_file (GcrViewerWidget *self)
-{
- GFile* file;
-
- file = g_queue_pop_head (self->pv->files_to_load);
- if (file == NULL) {
- viewer_stop_loading_files (self);
- return;
- }
-
- g_file_read_async (file, G_PRIORITY_DEFAULT, self->pv->cancellable,
- on_file_read_returned, self);
-
- g_object_unref (file);
-}
-
-/**
- * gcr_viewer_widget_new:
- *
- * Create a new viewer widget.
- *
- * Returns: (transfer full): A new #GcrViewerWidget object
- */
-GcrViewerWidget *
-gcr_viewer_widget_new (void)
-{
- return g_object_new (GCR_TYPE_VIEWER_WIDGET, NULL);
-}
-
-/**
- * gcr_viewer_widget_load_file:
- * @self: a viewer widget
- * @file: a file to load
- *
- * Display contents of a file in the viewer widget. Multiple files can
- * be loaded.
- */
-void
-gcr_viewer_widget_load_file (GcrViewerWidget *self,
- GFile *file)
-{
- g_return_if_fail (GCR_IS_VIEWER_WIDGET (self));
- g_return_if_fail (G_IS_FILE (file));
-
- g_queue_push_tail (self->pv->files_to_load, g_object_ref (file));
-
- if (!self->pv->loading)
- viewer_load_next_file (self);
-}
-
-/**
- * gcr_viewer_widget_load_data:
- * @self: a viewer widget
- * @display_name: (allow-none): label for the loaded data
- * @data: (array length=n_data): data to load
- * @n_data: length of data to load
- *
- * Parse and load some data to be displayed into the viewer widgets. The data
- * may contain multiple parseable items if the format can contain multiple
- * items.
- */
-void
-gcr_viewer_widget_load_data (GcrViewerWidget *self,
- const gchar *display_name,
- const guchar *data,
- gsize n_data)
-{
- GError *error = NULL;
- GcrRenderer *renderer;
-
- g_return_if_fail (GCR_IS_VIEWER_WIDGET (self));
-
- g_free (self->pv->display_name);
- self->pv->display_name = g_strdup (display_name);
-
- if (!gcr_parser_parse_data (self->pv->parser, data, n_data, &error)) {
- renderer = gcr_failure_renderer_new (display_name, error);
- gcr_viewer_add_renderer (GCR_VIEWER (self), renderer);
- g_object_unref (renderer);
- g_error_free (error);
- }
-}
-
-/**
- * gcr_viewer_widget_get_parser:
- * @self: a viewer widget
- *
- * Get the parser used to parse loaded data into viewable items.
- *
- * Returns: (transfer none): the parser
- */
-GcrParser *
-gcr_viewer_widget_get_parser (GcrViewerWidget *self)
-{
- g_return_val_if_fail (GCR_IS_VIEWER_WIDGET (self), NULL);
- return self->pv->parser;
-}
diff --git a/gcr/gcr-viewer-widget.h b/gcr/gcr-viewer-widget.h
deleted file mode 100644
index 3e1e17e7..00000000
--- a/gcr/gcr-viewer-widget.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gcr-viewer-widget.h: Widget for viewer
-
- Copyright (C) 2011 Collabora Ltd.
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#ifndef GCR_VIEWER_WIDGET_H
-#define GCR_VIEWER_WIDGET_H
-
-#include <gtk/gtk.h>
-
-#define GCR_TYPE_VIEWER_WIDGET (gcr_viewer_widget_get_type ())
-#define GCR_VIEWER_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_VIEWER_WIDGET, GcrViewerWidget))
-#define GCR_VIEWER_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_VIEWER_WIDGET, GcrViewerWidgetClass))
-#define GCR_IS_VIEWER_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_VIEWER_WIDGET))
-#define GCR_IS_VIEWER_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_VIEWER_WIDGET))
-#define GCR_VIEWER_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_VIEWER_WIDGET, GcrViewerWidgetClass))
-
-typedef struct _GcrViewerWidget GcrViewerWidget;
-typedef struct _GcrViewerWidgetClass GcrViewerWidgetClass;
-typedef struct _GcrViewerWidgetPrivate GcrViewerWidgetPrivate;
-
-
-GType gcr_viewer_widget_get_type (void);
-
-GcrViewerWidget * gcr_viewer_widget_new (void);
-
-void gcr_viewer_widget_load_file (GcrViewerWidget *self,
- GFile *file);
-
-void gcr_viewer_widget_load_data (GcrViewerWidget *self,
- const gchar *display_name,
- const guchar *data,
- gsize n_data);
-
-GcrParser * gcr_viewer_widget_get_parser (GcrViewerWidget *self);
-
-#endif /* GCR_VIEWER_WIDGET_H */
diff --git a/gcr/gcr-viewer-window.c b/gcr/gcr-viewer-window.c
deleted file mode 100644
index c604d18d..00000000
--- a/gcr/gcr-viewer-window.c
+++ /dev/null
@@ -1,178 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gcr-viewer-window.c: Window for viewer
-
- Copyright (C) 2011 Collabora Ltd.
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gcr-viewer-window.h"
-
-#include <glib/gi18n-lib.h>
-#include <gtk/gtk.h>
-
-#include <locale.h>
-#include <string.h>
-
-struct _GcrViewerWindowPrivate {
- GcrViewerWidget *viewer;
- GcrImportButton *import;
-};
-
-G_DEFINE_TYPE (GcrViewerWindow, gcr_viewer_window, GTK_TYPE_WINDOW);
-
-static void
-on_viewer_renderer_added (GcrViewerWidget *viewer,
- GcrRenderer *renderer,
- GcrParsed *parsed,
- gpointer user_data)
-{
- GcrViewerWindow *self = GCR_VIEWER_WINDOW (user_data);
- gcr_import_button_add_parsed (self->pv->import, parsed);
-}
-
-static void
-gcr_viewer_window_init (GcrViewerWindow *self)
-{
- self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GCR_TYPE_VIEWER_WINDOW,
- GcrViewerWindowPrivate);
-}
-
-static void
-on_import_button_imported (GcrImportButton *button,
- GcrImporter *importer,
- GError *error,
- gpointer user_data)
-{
- GcrViewerWindow *self = GCR_VIEWER_WINDOW (user_data);
- GcrRenderer *renderer;
-
- if (error == NULL) {
- g_object_set (button, "label", _("Imported"), NULL);
-
- } else {
- if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
- renderer = gcr_failure_renderer_new (_("Import failed"), error);
- gcr_viewer_add_renderer (GCR_VIEWER (self->pv->viewer), renderer);
- g_object_unref (renderer);
- }
- }
-}
-
-static void
-on_close_clicked (GtkButton *button,
- gpointer user_data)
-{
- GcrViewerWindow *self = GCR_VIEWER_WINDOW (user_data);
- gtk_widget_destroy (GTK_WIDGET (self));
-}
-
-static void
-gcr_viewer_window_constructed (GObject *obj)
-{
- GcrViewerWindow *self = GCR_VIEWER_WINDOW (obj);
- GtkWidget *bbox;
- GtkWidget *box;
- GtkWidget *button;
- GtkWidget *align;
-
- G_OBJECT_CLASS (gcr_viewer_window_parent_class)->constructed (obj);
-
- bbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);
- gtk_box_set_spacing (GTK_BOX (bbox), 12);
- gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), GTK_BUTTONBOX_END);
- gtk_widget_show (bbox);
-
- self->pv->import = gcr_import_button_new (_("Import"));
- g_signal_connect_object (self->pv->import, "imported",
- G_CALLBACK (on_import_button_imported),
- self, 0);
- gtk_widget_show (GTK_WIDGET (self->pv->import));
-
- button = gtk_button_new_from_stock (GTK_STOCK_CLOSE);
- g_signal_connect_object (button, "clicked",
- G_CALLBACK (on_close_clicked),
- self, 0);
- gtk_widget_show (button);
-
- gtk_box_pack_start (GTK_BOX (bbox), button, FALSE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (bbox), GTK_WIDGET (self->pv->import), FALSE, TRUE, 0);
-
- align = gtk_alignment_new (0.5, 0.5, 1.0, 1.0);
- gtk_alignment_set_padding (GTK_ALIGNMENT (align), 0, 0, 0, 12);
- gtk_widget_show (align);
- gtk_container_add (GTK_CONTAINER (align), bbox);
-
- self->pv->viewer = gcr_viewer_widget_new ();
- g_signal_connect_object (self->pv->viewer, "added",
- G_CALLBACK (on_viewer_renderer_added),
- self, 0);
- gtk_widget_show (GTK_WIDGET (self->pv->viewer));
-
- box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
- gtk_widget_show (box);
-
- gtk_box_pack_start (GTK_BOX (box), GTK_WIDGET (self->pv->viewer), TRUE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (box), align, FALSE, FALSE, 6);
-
- gtk_container_add (GTK_CONTAINER (self), box);
-
- gtk_window_set_default_size (GTK_WINDOW (self), 250, 400);
-}
-
-static void
-gcr_viewer_window_class_init (GcrViewerWindowClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- gobject_class->constructed = gcr_viewer_window_constructed;
-
- g_type_class_add_private (klass, sizeof (GcrViewerWindow));
-}
-
-/**
- * gcr_viewer_window_new:
- *
- * Create a new viewer window.
- *
- * Returns: (transfer full) (type Gcr.ViewerWindow): a new viewer window
- */
-GtkWindow *
-gcr_viewer_window_new (void)
-{
- return g_object_new (GCR_TYPE_VIEWER_WINDOW, NULL);
-}
-
-/**
- * gcr_viewer_window_load:
- * @self: a viewer window
- * @file: file to load
- *
- * Load a file into a viewer window. It may not appear immediately.
- */
-void
-gcr_viewer_window_load (GcrViewerWindow *self,
- GFile *file)
-{
- g_return_if_fail (GCR_IS_VIEWER_WINDOW (self));
- g_return_if_fail (G_IS_FILE (file));
-
- return gcr_viewer_widget_load_file (self->pv->viewer, file);
-}
diff --git a/gcr/gcr-viewer-window.h b/gcr/gcr-viewer-window.h
deleted file mode 100644
index 4ec24203..00000000
--- a/gcr/gcr-viewer-window.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gcr-viewer-window.h: Window for viewer
-
- Copyright (C) 2011 Collabora Ltd.
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#ifndef GCR_VIEWER_WINDOW_H
-#define GCR_VIEWER_WINDOW_H
-
-#include <gtk/gtk.h>
-
-#ifndef GCR_DISABLE_DEPRECATED
-
-#include "gcr/gcr.h"
-
-#define GCR_TYPE_VIEWER_WINDOW (gcr_viewer_window_get_type ())
-#define GCR_VIEWER_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_VIEWER_WINDOW, GcrViewerWindow))
-#define GCR_VIEWER_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCR_TYPE_VIEWER_WINDOW, GcrViewerWindowClass))
-#define GCR_IS_VIEWER_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_VIEWER_WINDOW))
-#define GCR_IS_VIEWER_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCR_TYPE_VIEWER_WINDOW))
-#define GCR_VIEWER_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCR_TYPE_VIEWER_WINDOW, GcrViewerWindowClass))
-
-typedef struct _GcrViewerWindow GcrViewerWindow;
-typedef struct _GcrViewerWindowClass GcrViewerWindowClass;
-typedef struct _GcrViewerWindowPrivate GcrViewerWindowPrivate;
-
-struct _GcrViewerWindow {
- /*< private >*/
- GtkWindow parent;
- GcrViewerWindowPrivate *pv;
-};
-
-struct _GcrViewerWindowClass {
- /*< private >*/
- GtkWindowClass parent_class;
-};
-
-GType gcr_viewer_window_get_type (void);
-
-GtkWindow * gcr_viewer_window_new (void);
-
-void gcr_viewer_window_load (GcrViewerWindow *self,
- GFile *file);
-
-#endif /* GCR_DISABLE_DEPRECATED */
-
-#endif /* GCR_VIEWER_WINDOW_H */
diff --git a/gcr/gcr-viewer.c b/gcr/gcr-viewer.c
deleted file mode 100644
index 9cc2ceca..00000000
--- a/gcr/gcr-viewer.c
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Copyright (C) 2008 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gcr-display-scrolled.h"
-#include "gcr-display-view.h"
-#include "gcr-renderer.h"
-#include "gcr-viewer.h"
-
-/**
- * SECTION:gcr-viewer
- * @title: GcrViewer
- * @short_description: A viewer which can hold renderers
- *
- * A #GcrViewer is an abstract interface that represents a widget that can hold
- * various renderers and display their contents.
- *
- * The interaction between #GcrRenderer and #GcrViewer is not stable yet, and
- * so viewers cannot be implemented outside the Gcr library at this time.
- *
- * Use the gcr_viewer_new() and gcr_viewer_new_scrolled() to get default
- * implementations of viewers.
- */
-
-/**
- * GcrViewer:
- *
- * An abstract viewer which displays renderers contents.
- */
-
-/**
- * GcrViewerIface:
- * @parent: The parent interface
- * @add_renderer: Virtual method to add a renderer
- * @insert_renderer: Virtual method to insert a renderer
- * @remove_renderer: Virtual method to remove a renderer
- * @count_renderers: Virtual method to count renderers
- * @get_renderer: Virtual method to get a renderer
- *
- * The interface for #GcrViewer
- */
-
-typedef GcrViewerIface GcrViewerInterface;
-
-G_DEFINE_INTERFACE (GcrViewer, gcr_viewer, GTK_TYPE_WIDGET);
-
-static void
-gcr_viewer_default_init (GcrViewerIface *iface)
-{
-
-}
-
-/* -----------------------------------------------------------------------------
- * PUBLIC
- */
-
-/**
- * gcr_viewer_new:
- *
- * Get an implementation of #GcrViewer that supports a view
- * of multiple renderers.
- *
- * Returns: (transfer full): a newly allocated #GcrViewer, which should be
- * released with g_object_unref()
- */
-GcrViewer *
-gcr_viewer_new (void)
-{
- return GCR_VIEWER (_gcr_display_view_new ());
-}
-
-/**
- * gcr_viewer_new_scrolled:
- *
- * Get an implementation of #GcrViewer that supports a scrolled view
- * of multiple renderers.
- *
- * Returns: (transfer full): a newly allocated #GcrViewer, which should be
- * released with g_object_unref()
- */
-GcrViewer*
-gcr_viewer_new_scrolled (void)
-{
- return GCR_VIEWER (_gcr_display_scrolled_new ());
-}
-
-/**
- * gcr_viewer_add_renderer:
- * @viewer: The viewer
- * @renderer: The renderer to add
- *
- * Add a renderer to this viewer.
- */
-void
-gcr_viewer_add_renderer (GcrViewer *viewer,
- GcrRenderer *renderer)
-{
- g_return_if_fail (GCR_IS_VIEWER (viewer));
- g_return_if_fail (GCR_IS_RENDERER (renderer));
- g_return_if_fail (GCR_VIEWER_GET_INTERFACE (viewer)->add_renderer);
- GCR_VIEWER_GET_INTERFACE (viewer)->add_renderer (viewer, renderer);
-}
-
-/**
- * gcr_viewer_insert_renderer:
- * @viewer: the viewer
- * @renderer: the renderer to insert
- * @before: (allow-none): the renderer to insert before
- *
- * Insert a renderer at a specific point in the viewer
- */
-void
-gcr_viewer_insert_renderer (GcrViewer *viewer,
- GcrRenderer *renderer,
- GcrRenderer *before)
-{
- g_return_if_fail (GCR_IS_VIEWER (viewer));
- g_return_if_fail (GCR_IS_RENDERER (renderer));
- g_return_if_fail (!before || GCR_IS_RENDERER (before));
- g_return_if_fail (GCR_VIEWER_GET_INTERFACE (viewer)->insert_renderer);
- GCR_VIEWER_GET_INTERFACE (viewer)->insert_renderer (viewer, renderer, before);
-}
-
-/**
- * gcr_viewer_remove_renderer:
- * @viewer: The viewer
- * @renderer: The renderer to remove
- *
- * Remove a renderer from this viewer.
- */
-void
-gcr_viewer_remove_renderer (GcrViewer *viewer,
- GcrRenderer *renderer)
-{
- g_return_if_fail (GCR_IS_VIEWER (viewer));
- g_return_if_fail (GCR_IS_RENDERER (renderer));
- g_return_if_fail (GCR_VIEWER_GET_INTERFACE (viewer)->remove_renderer);
- GCR_VIEWER_GET_INTERFACE (viewer)->remove_renderer (viewer, renderer);
-}
-
-/**
- * gcr_viewer_count_renderers:
- * @viewer: The viewer
- *
- * Get the number of renderers present in the viewer.
- *
- * Returns: The number of renderers.
- */
-guint
-gcr_viewer_count_renderers (GcrViewer *viewer)
-{
- g_return_val_if_fail (GCR_IS_VIEWER (viewer), 0);
- g_return_val_if_fail (GCR_VIEWER_GET_INTERFACE (viewer)->count_renderers, 0);
- return GCR_VIEWER_GET_INTERFACE (viewer)->count_renderers (viewer);
-}
-
-/**
- * gcr_viewer_get_renderer:
- * @viewer: The viewer
- * @index_: The index of the renderer to get
- *
- * Get a pointer to the renderer at the given index. It is an error to request
- * an index that is out of bounds.
- *
- * Returns: (transfer none): the render, owned by the viewer
- */
-GcrRenderer*
-gcr_viewer_get_renderer (GcrViewer *viewer,
- guint index_)
-{
- g_return_val_if_fail (GCR_IS_VIEWER (viewer), NULL);
- g_return_val_if_fail (GCR_VIEWER_GET_INTERFACE (viewer)->get_renderer, NULL);
- return GCR_VIEWER_GET_INTERFACE (viewer)->get_renderer (viewer, index_);
-}
diff --git a/gcr/gcr-viewer.desktop.in.in b/gcr/gcr-viewer.desktop.in.in
deleted file mode 100644
index 6cd913a1..00000000
--- a/gcr/gcr-viewer.desktop.in.in
+++ /dev/null
@@ -1,10 +0,0 @@
-[Desktop Entry]
-Name=View file
-MimeType=application/pkcs12;application/pkcs12+pem;application/pkcs7-mime;application/pkcs7-mime+pem;application/pkcs8;application/pkcs8+pem;application/pkix-cert;application/pkix-cert+pem;application/pkix-crl;application/pkix-crl+pem;application/x-pem-file;application/x-pem-key;application/x-pkcs12;application/x-pkcs7-certificates;application/x-x509-ca-cert;application/x-x509-user-cert;
-Exec=gcr-viewer
-Type=Application
-Terminal=false
-NoDisplay=true
-X-GNOME-Bugzilla-Bugzilla=GNOME
-X-GNOME-Bugzilla-Product=gnome-keyring
-X-GNOME-Bugzilla-Component=gcr \ No newline at end of file
diff --git a/gcr/gcr-viewer.h b/gcr/gcr-viewer.h
deleted file mode 100644
index b806cdae..00000000
--- a/gcr/gcr-viewer.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (C) 2010 Stefan Walter
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#ifndef __GCR_VIEWER_H__
-#define __GCR_VIEWER_H__
-
-#include <glib-object.h>
-#include <gtk/gtk.h>
-
-#include "gcr-types.h"
-
-G_BEGIN_DECLS
-
-#define GCR_TYPE_VIEWER (gcr_viewer_get_type())
-#define GCR_VIEWER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCR_TYPE_VIEWER, GcrViewer))
-#define GCR_IS_VIEWER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCR_TYPE_VIEWER))
-#define GCR_VIEWER_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GCR_TYPE_VIEWER, GcrViewerIface))
-
-typedef struct _GcrRenderer GcrRenderer;
-typedef struct _GcrViewer GcrViewer;
-typedef struct _GcrViewerIface GcrViewerIface;
-
-struct _GcrViewerIface {
- GTypeInterface parent;
-
- void (*add_renderer) (GcrViewer *viewer,
- GcrRenderer *renderer);
-
- void (*insert_renderer) (GcrViewer *viewer,
- GcrRenderer *renderer,
- GcrRenderer *before);
-
- void (*remove_renderer) (GcrViewer *viewer,
- GcrRenderer *renderer);
-
- guint (*count_renderers) (GcrViewer *viewer);
-
- GcrRenderer* (*get_renderer) (GcrViewer *viewer,
- guint index_);
-
- /*< private >*/
- gpointer dummy1;
- gpointer dummy2;
- gpointer dummy3;
- gpointer dummy4;
-};
-
-GType gcr_viewer_get_type (void);
-
-GcrViewer* gcr_viewer_new (void);
-
-GcrViewer* gcr_viewer_new_scrolled (void);
-
-void gcr_viewer_add_renderer (GcrViewer *viewer,
- GcrRenderer *renderer);
-
-void gcr_viewer_insert_renderer (GcrViewer *viewer,
- GcrRenderer *renderer,
- GcrRenderer *before);
-
-void gcr_viewer_remove_renderer (GcrViewer *viewer,
- GcrRenderer *renderer);
-
-guint gcr_viewer_count_renderers (GcrViewer *viewer);
-
-GcrRenderer* gcr_viewer_get_renderer (GcrViewer *viewer,
- guint index_);
-
-G_END_DECLS
-
-#endif /* __GCR_VIEWER_H__ */
diff --git a/gcr/gcr.h b/gcr/gcr.h
deleted file mode 100644
index ec150a94..00000000
--- a/gcr/gcr.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#ifndef GCR_API_SUBJECT_TO_CHANGE
-#error "This API has not yet reached stability."
-#endif
-
-#ifndef __GCR_H__
-#define __GCR_H__
-
-#include <glib.h>
-
-#include "gcr-base.h"
-
-#define __GCR_INSIDE_HEADER__
-
-#include "gcr-certificate-renderer.h"
-#include "gcr-certificate-widget.h"
-#include "gcr-collection-model.h"
-#include "gcr-column.h"
-#include "gcr-combo-selector.h"
-#include "gcr-deprecated.h"
-#include "gcr-key-renderer.h"
-#include "gcr-key-widget.h"
-#include "gcr-enum-types.h"
-#include "gcr-failure-renderer.h"
-#include "gcr-key-renderer.h"
-#include "gcr-key-widget.h"
-#include "gcr-import-button.h"
-#include "gcr-list-selector.h"
-#include "gcr-renderer.h"
-#include "gcr-tree-selector.h"
-#include "gcr-union-collection.h"
-#include "gcr-unlock-options-widget.h"
-#include "gcr-viewer.h"
-#include "gcr-viewer-widget.h"
-
-#undef __GCR_INSIDE_HEADER__
-
-#endif /* __GCR_H__ */
diff --git a/gcr/gcr.pc.in b/gcr/gcr.pc.in
deleted file mode 100644
index 47f89358..00000000
--- a/gcr/gcr.pc.in
+++ /dev/null
@@ -1,16 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-datarootdir=@datarootdir@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-pkcs11dir=@P11_MODULE_PATH@
-pkcs11standalonedir=@pkcs11standalonedir@
-
-Name: gcr-@GCR_MAJOR@
-Description: GObject and GUI library for high level crypto parsing and display
-Version: @VERSION@
-Requires: glib-2.0 gtk+-3.0 gcr-base-@GCR_MAJOR@ gck-@GCK_MAJOR@ p11-kit-1
-Libs: -L${libdir} -lgcr-@GCR_MAJOR@
-Cflags: -I${includedir}/gcr-@GCR_MAJOR@
diff --git a/gcr/gcr.symbols b/gcr/gcr.symbols
deleted file mode 100644
index 4cb927e1..00000000
--- a/gcr/gcr.symbols
+++ /dev/null
@@ -1,103 +0,0 @@
-/* This file lists all exported symbols. It is used to guarantee that we
- * only consciously change our ABI.
- */
-
-gcr_certificate_basics_widget_get_certificate
-gcr_certificate_basics_widget_get_type
-gcr_certificate_basics_widget_new
-gcr_certificate_basics_widget_set_certificate
-gcr_certificate_details_widget_get_certificate
-gcr_certificate_details_widget_get_type
-gcr_certificate_details_widget_new
-gcr_certificate_details_widget_set_certificate
-gcr_certificate_renderer_get_attributes
-gcr_certificate_renderer_get_certificate
-gcr_certificate_renderer_get_type
-gcr_certificate_renderer_new
-gcr_certificate_renderer_new_for_attributes
-gcr_certificate_renderer_set_attributes
-gcr_certificate_renderer_set_certificate
-gcr_certificate_widget_get_attributes
-gcr_certificate_widget_get_certificate
-gcr_certificate_widget_get_type
-gcr_certificate_widget_new
-gcr_certificate_widget_set_attributes
-gcr_certificate_widget_set_certificate
-gcr_collection_model_change_selected
-gcr_collection_model_column_for_selected
-gcr_collection_model_get_collection
-gcr_collection_model_get_selected_objects
-gcr_collection_model_get_type
-gcr_collection_model_is_selected
-gcr_collection_model_iter_for_object
-gcr_collection_model_new
-gcr_collection_model_new_full
-gcr_collection_model_object_for_iter
-gcr_collection_model_set_columns
-gcr_collection_model_set_selected_objects
-gcr_collection_model_toggle_selected
-gcr_column_flags_get_type
-gcr_combo_selector_get_collection
-gcr_combo_selector_get_selected
-gcr_combo_selector_get_type
-gcr_combo_selector_new
-gcr_combo_selector_set_selected
-gcr_failure_renderer_get_type
-gcr_failure_renderer_new
-gcr_failure_renderer_new_unsupported
-gcr_import_button_add_parsed
-gcr_import_button_get_type
-gcr_import_button_new
-gcr_key_renderer_get_attributes
-gcr_key_renderer_get_type
-gcr_key_renderer_new
-gcr_key_renderer_set_attributes
-gcr_key_widget_get_attributes
-gcr_key_widget_get_type
-gcr_key_widget_new
-gcr_key_widget_set_attributes
-gcr_list_selector_get_collection
-gcr_list_selector_get_selected
-gcr_list_selector_get_type
-gcr_list_selector_new
-gcr_list_selector_set_selected
-gcr_renderer_create
-gcr_renderer_emit_data_changed
-gcr_renderer_get_type
-gcr_renderer_popuplate_popup
-gcr_renderer_register
-gcr_renderer_register_well_known
-gcr_renderer_render
-gcr_renderer_render_view
-gcr_tree_selector_get_collection
-gcr_tree_selector_get_columns
-gcr_tree_selector_get_selected
-gcr_tree_selector_get_type
-gcr_tree_selector_new
-gcr_tree_selector_set_selected
-gcr_unlock_options_widget_get_choice
-gcr_unlock_options_widget_get_label
-gcr_unlock_options_widget_get_sensitive
-gcr_unlock_options_widget_get_ttl
-gcr_unlock_options_widget_get_type
-gcr_unlock_options_widget_new
-gcr_unlock_options_widget_set_choice
-gcr_unlock_options_widget_set_label
-gcr_unlock_options_widget_set_sensitive
-gcr_unlock_options_widget_set_ttl
-gcr_viewer_add_renderer
-gcr_viewer_insert_renderer
-gcr_viewer_count_renderers
-gcr_viewer_get_renderer
-gcr_viewer_get_type
-gcr_viewer_new
-gcr_viewer_new_scrolled
-gcr_viewer_remove_renderer
-gcr_viewer_window_get_type
-gcr_viewer_window_load
-gcr_viewer_window_new
-gcr_viewer_widget_get_parser
-gcr_viewer_widget_get_type
-gcr_viewer_widget_load_data
-gcr_viewer_widget_load_file
-gcr_viewer_widget_new
diff --git a/gcr/icons/16x16/Makefile.am b/gcr/icons/16x16/Makefile.am
deleted file mode 100644
index ab9cd709..00000000
--- a/gcr/icons/16x16/Makefile.am
+++ /dev/null
@@ -1,11 +0,0 @@
-NULL =
-
-icondir = $(datadir)/icons/hicolor/16x16/apps
-icon_DATA = \
- gcr-key.png \
- gcr-key-pair.png \
- gcr-smart-card.png \
- $(NULL)
-
-EXTRA_DIST = \
- $(icon_DATA)
diff --git a/gcr/icons/16x16/gcr-key-pair.png b/gcr/icons/16x16/gcr-key-pair.png
deleted file mode 100644
index 01df7686..00000000
--- a/gcr/icons/16x16/gcr-key-pair.png
+++ /dev/null
Binary files differ
diff --git a/gcr/icons/16x16/gcr-key.png b/gcr/icons/16x16/gcr-key.png
deleted file mode 100644
index fd056b71..00000000
--- a/gcr/icons/16x16/gcr-key.png
+++ /dev/null
Binary files differ
diff --git a/gcr/icons/16x16/gcr-smart-card.png b/gcr/icons/16x16/gcr-smart-card.png
deleted file mode 100644
index 2860eb44..00000000
--- a/gcr/icons/16x16/gcr-smart-card.png
+++ /dev/null
Binary files differ
diff --git a/gcr/icons/22x22/Makefile.am b/gcr/icons/22x22/Makefile.am
deleted file mode 100644
index a4d1ba84..00000000
--- a/gcr/icons/22x22/Makefile.am
+++ /dev/null
@@ -1,9 +0,0 @@
-NULL =
-
-icondir = $(datadir)/icons/hicolor/22x22/apps
-icon_DATA = \
- gcr-smart-card.png \
- $(NULL)
-
-EXTRA_DIST = \
- $(icon_DATA)
diff --git a/gcr/icons/22x22/gcr-smart-card.png b/gcr/icons/22x22/gcr-smart-card.png
deleted file mode 100644
index 65cbcf89..00000000
--- a/gcr/icons/22x22/gcr-smart-card.png
+++ /dev/null
Binary files differ
diff --git a/gcr/icons/24x24/Makefile.am b/gcr/icons/24x24/Makefile.am
deleted file mode 100644
index 87c90ad1..00000000
--- a/gcr/icons/24x24/Makefile.am
+++ /dev/null
@@ -1,11 +0,0 @@
-NULL =
-
-icondir = $(datadir)/icons/hicolor/24x24/apps
-icon_DATA = \
- gcr-key.png \
- gcr-key-pair.png \
- gcr-smart-card.png \
- $(NULL)
-
-EXTRA_DIST = \
- $(icon_DATA)
diff --git a/gcr/icons/24x24/gcr-key-pair.png b/gcr/icons/24x24/gcr-key-pair.png
deleted file mode 100644
index 8ebe2f78..00000000
--- a/gcr/icons/24x24/gcr-key-pair.png
+++ /dev/null
Binary files differ
diff --git a/gcr/icons/24x24/gcr-key.png b/gcr/icons/24x24/gcr-key.png
deleted file mode 100644
index 441737c0..00000000
--- a/gcr/icons/24x24/gcr-key.png
+++ /dev/null
Binary files differ
diff --git a/gcr/icons/24x24/gcr-smart-card.png b/gcr/icons/24x24/gcr-smart-card.png
deleted file mode 100644
index 833a811e..00000000
--- a/gcr/icons/24x24/gcr-smart-card.png
+++ /dev/null
Binary files differ
diff --git a/gcr/icons/256x256/Makefile.am b/gcr/icons/256x256/Makefile.am
deleted file mode 100644
index ee3525ed..00000000
--- a/gcr/icons/256x256/Makefile.am
+++ /dev/null
@@ -1,9 +0,0 @@
-NULL =
-
-icondir = $(datadir)/icons/hicolor/256x256/apps
-icon_DATA = \
- gcr-smart-card.png \
- $(NULL)
-
-EXTRA_DIST = \
- $(icon_DATA)
diff --git a/gcr/icons/256x256/gcr-smart-card.png b/gcr/icons/256x256/gcr-smart-card.png
deleted file mode 100644
index 156933e1..00000000
--- a/gcr/icons/256x256/gcr-smart-card.png
+++ /dev/null
Binary files differ
diff --git a/gcr/icons/32x32/Makefile.am b/gcr/icons/32x32/Makefile.am
deleted file mode 100644
index d19b370b..00000000
--- a/gcr/icons/32x32/Makefile.am
+++ /dev/null
@@ -1,11 +0,0 @@
-NULL =
-
-icondir = $(datadir)/icons/hicolor/32x32/apps
-icon_DATA = \
- gcr-key.png \
- gcr-key-pair.png \
- gcr-smart-card.png \
- $(NULL)
-
-EXTRA_DIST = \
- $(icon_DATA)
diff --git a/gcr/icons/32x32/gcr-key-pair.png b/gcr/icons/32x32/gcr-key-pair.png
deleted file mode 100644
index e8c5dc2c..00000000
--- a/gcr/icons/32x32/gcr-key-pair.png
+++ /dev/null
Binary files differ
diff --git a/gcr/icons/32x32/gcr-key.png b/gcr/icons/32x32/gcr-key.png
deleted file mode 100644
index 29806e8e..00000000
--- a/gcr/icons/32x32/gcr-key.png
+++ /dev/null
Binary files differ
diff --git a/gcr/icons/32x32/gcr-smart-card.png b/gcr/icons/32x32/gcr-smart-card.png
deleted file mode 100644
index b4eaa92d..00000000
--- a/gcr/icons/32x32/gcr-smart-card.png
+++ /dev/null
Binary files differ
diff --git a/gcr/icons/48x48/Makefile.am b/gcr/icons/48x48/Makefile.am
deleted file mode 100644
index bbfbc075..00000000
--- a/gcr/icons/48x48/Makefile.am
+++ /dev/null
@@ -1,11 +0,0 @@
-NULL =
-
-icondir = $(datadir)/icons/hicolor/48x48/apps
-icon_DATA = \
- gcr-key.png \
- gcr-key-pair.png \
- gcr-smart-card.png \
- $(NULL)
-
-EXTRA_DIST = \
- $(icon_DATA)
diff --git a/gcr/icons/48x48/gcr-key-pair.png b/gcr/icons/48x48/gcr-key-pair.png
deleted file mode 100644
index 7b623d2f..00000000
--- a/gcr/icons/48x48/gcr-key-pair.png
+++ /dev/null
Binary files differ
diff --git a/gcr/icons/48x48/gcr-key.png b/gcr/icons/48x48/gcr-key.png
deleted file mode 100644
index c4ca3557..00000000
--- a/gcr/icons/48x48/gcr-key.png
+++ /dev/null
Binary files differ
diff --git a/gcr/icons/48x48/gcr-smart-card.png b/gcr/icons/48x48/gcr-smart-card.png
deleted file mode 100644
index 18f139b1..00000000
--- a/gcr/icons/48x48/gcr-smart-card.png
+++ /dev/null
Binary files differ
diff --git a/gcr/icons/Makefile.am b/gcr/icons/Makefile.am
deleted file mode 100644
index cdc16c52..00000000
--- a/gcr/icons/Makefile.am
+++ /dev/null
@@ -1,20 +0,0 @@
-
-SUBDIRS = 16x16 22x22 24x24 32x32 48x48 256x256
-
-EXTRA_DIST = \
- src \
- render-icons.py
-
-gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
-
-install-data-hook:
- @-if test -z "$(DESTDIR)"; then \
- echo "Updating Gtk icon cache."; \
- $(gtk_update_icon_cache); \
- else \
- echo "*** Icon cache not updated. After install, run this:"; \
- echo "*** $(gtk_update_icon_cache)"; \
- fi
-
-render:
- python render-icons.py
diff --git a/gcr/icons/key-and-keypair.svg b/gcr/icons/key-and-keypair.svg
deleted file mode 100644
index 9fc45b12..00000000
--- a/gcr/icons/key-and-keypair.svg
+++ /dev/null
@@ -1,3921 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- inkscape:export-ydpi="90.000000"
- inkscape:export-xdpi="90.000000"
- inkscape:export-filename="/home/lapo/firewall.png"
- width="400"
- height="300"
- id="svg11300"
- sodipodi:version="0.32"
- inkscape:version="0.48.1 r9760"
- sodipodi:docname="seahorse.svg"
- inkscape:output_extension="org.inkscape.output.svg.inkscape"
- version="1.0"
- style="display:inline;enable-background:new">
- <title
- id="title4872">Firewall</title>
- <sodipodi:namedview
- stroke="#ef2929"
- fill="#f57900"
- id="base"
- pagecolor="#474747"
- bordercolor="#666666"
- borderopacity="0.25490196"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:zoom="4"
- inkscape:cx="344.14948"
- inkscape:cy="153.42666"
- inkscape:current-layer="layer4"
- showgrid="true"
- inkscape:grid-bbox="true"
- inkscape:document-units="px"
- inkscape:showpageshadow="false"
- inkscape:window-width="1343"
- inkscape:window-height="967"
- inkscape:window-x="1615"
- inkscape:window-y="52"
- width="400px"
- height="300px"
- inkscape:snap-nodes="false"
- inkscape:snap-bbox="true"
- gridtolerance="10000"
- inkscape:object-nodes="true"
- inkscape:snap-grids="true"
- showguides="true"
- inkscape:guide-bbox="true"
- inkscape:window-maximized="0"
- inkscape:snap-global="true">
- <inkscape:grid
- spacingy="1px"
- spacingx="1px"
- id="grid5883"
- type="xygrid"
- enabled="true"
- visible="true"
- empspacing="4"
- snapvisiblegridlinesonly="true" />
- <inkscape:grid
- type="xygrid"
- id="grid11592"
- empspacing="2"
- visible="true"
- enabled="false"
- spacingx="0.5px"
- spacingy="0.5px"
- color="#ff0000"
- opacity="0.1254902"
- empcolor="#ff0000"
- empopacity="0.25098039"
- snapvisiblegridlinesonly="true" />
- <sodipodi:guide
- orientation="-0.70710678,0.70710678"
- position="309.8125,173.625"
- id="guide9630" />
- <sodipodi:guide
- orientation="1,0"
- position="299.99005,217.08178"
- id="guide5162" />
- <sodipodi:guide
- orientation="0,1"
- position="301,232"
- id="guide5182" />
- <sodipodi:guide
- orientation="0,1"
- position="305,165"
- id="guide5184" />
- <sodipodi:guide
- orientation="0,1"
- position="303,114"
- id="guide5186" />
- <sodipodi:guide
- orientation="0,1"
- position="306,81"
- id="guide5188" />
- </sodipodi:namedview>
- <defs
- id="defs3">
- <linearGradient
- inkscape:collect="always"
- id="linearGradient8002">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop8004" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop8006" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient7994">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop7996" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop7998" />
- </linearGradient>
- <linearGradient
- id="linearGradient7419"
- inkscape:collect="always">
- <stop
- id="stop7421"
- offset="0"
- style="stop-color:#ffffff;stop-opacity:1;" />
- <stop
- id="stop7423"
- offset="1"
- style="stop-color:#e0d684;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient6249">
- <stop
- style="stop-color:#c49f00;stop-opacity:0.627451"
- offset="0"
- id="stop6251" />
- <stop
- style="stop-color:#fceca6;stop-opacity:1"
- offset="1"
- id="stop6253" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient6156">
- <stop
- style="stop-color:#c4a000;stop-opacity:1;"
- offset="0"
- id="stop6158" />
- <stop
- style="stop-color:#ffe365;stop-opacity:1"
- offset="1"
- id="stop6160" />
- </linearGradient>
- <linearGradient
- id="linearGradient6107">
- <stop
- id="stop6109"
- offset="0"
- style="stop-color:#e0d684;stop-opacity:1" />
- <stop
- style="stop-color:#f7f5e3;stop-opacity:1"
- offset="0.25"
- id="stop6115" />
- <stop
- style="stop-color:#e5e3ae;stop-opacity:1;"
- offset="0.5"
- id="stop6113" />
- <stop
- id="stop6111"
- offset="1"
- style="stop-color:#ebf0d8;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient17780">
- <stop
- style="stop-color:#888a85;stop-opacity:1;"
- offset="0"
- id="stop17782" />
- <stop
- style="stop-color:#e2e2e1;stop-opacity:1"
- offset="1"
- id="stop17784" />
- </linearGradient>
- <linearGradient
- id="linearGradient17752">
- <stop
- style="stop-color:#d3d7cf;stop-opacity:1"
- offset="0"
- id="stop17754" />
- <stop
- style="stop-color:#f6f6f5;stop-opacity:1"
- offset="0.28330287"
- id="stop17756" />
- <stop
- style="stop-color:#babdb6;stop-opacity:1"
- offset="0.33564273"
- id="stop17758" />
- <stop
- id="stop17760"
- offset="0.6530382"
- style="stop-color:#ffffff;stop-opacity:1" />
- <stop
- style="stop-color:#babdb6;stop-opacity:1"
- offset="1"
- id="stop17762" />
- </linearGradient>
- <linearGradient
- id="linearGradient17498">
- <stop
- id="stop17500"
- offset="0"
- style="stop-color:#d3d7cf;stop-opacity:1" />
- <stop
- id="stop17502"
- offset="0.28330287"
- style="stop-color:#eeeeec;stop-opacity:1" />
- <stop
- id="stop17504"
- offset="0.33564273"
- style="stop-color:#babdb6;stop-opacity:1" />
- <stop
- style="stop-color:#ffffff;stop-opacity:1"
- offset="0.6530382"
- id="stop17512" />
- <stop
- id="stop17514"
- offset="1"
- style="stop-color:#babdb6;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient14960">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop14962" />
- <stop
- style="stop-color:#d7d9d5;stop-opacity:1"
- offset="1"
- id="stop14964" />
- </linearGradient>
- <linearGradient
- id="linearGradient13770">
- <stop
- style="stop-color:#babdb6;stop-opacity:1"
- offset="0"
- id="stop13772" />
- <stop
- id="stop13780"
- offset="0.19258282"
- style="stop-color:#f2f2f1;stop-opacity:1" />
- <stop
- id="stop13774"
- offset="0.23801444"
- style="stop-color:#edeeec;stop-opacity:1" />
- <stop
- id="stop13776"
- offset="0.27069226"
- style="stop-color:#dcdeda;stop-opacity:1;" />
- <stop
- style="stop-color:#ffffff;stop-opacity:1"
- offset="1"
- id="stop13778" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient4262">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop4264" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop4266" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient4203">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop4205" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop4207" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient12494">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop12496" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop12498" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient11491">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop11493" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop11495" />
- </linearGradient>
- <pattern
- inkscape:stockid="Sand (bitmap)"
- id="sand_bitmap"
- height="256"
- width="256"
- patternUnits="userSpaceOnUse">
- <!-- Seamless texture provided by FreeSeamlessTextures.com -->
- <!-- License: creative commons attribution -->
- <image
- xlink:href="data:image/jpeg;base64,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 /p1//9k= "
- y="0"
- x="0"
- id="image9"
- height="260"
- width="260" />
- </pattern>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient3916">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop3918" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop3920" />
- </linearGradient>
- <linearGradient
- id="linearGradient3894">
- <stop
- style="stop-color:#b7beb0;stop-opacity:1"
- offset="0"
- id="stop3896" />
- <stop
- id="stop3898"
- offset="0.15504535"
- style="stop-color:#f9f9f9;stop-opacity:1" />
- <stop
- style="stop-color:#f9f9f8;stop-opacity:1"
- offset="0.2005571"
- id="stop3900" />
- <stop
- style="stop-color:#babdb6;stop-opacity:1"
- offset="0.37639078"
- id="stop3906" />
- <stop
- id="stop3908"
- offset="0.50482041"
- style="stop-color:#888a85;stop-opacity:1" />
- <stop
- style="stop-color:#888a85;stop-opacity:1"
- offset="0.66817862"
- id="stop3910" />
- <stop
- style="stop-color:#eeeeec;stop-opacity:1"
- offset="1"
- id="stop3912" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient3859">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop3861" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop3863" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient3831">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop3833" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop3835" />
- </linearGradient>
- <linearGradient
- id="linearGradient6219">
- <stop
- id="stop6221"
- offset="0"
- style="stop-color:#b7beb0;stop-opacity:1" />
- <stop
- style="stop-color:#f9f9f9;stop-opacity:1"
- offset="0.05144871"
- id="stop6227" />
- <stop
- id="stop6229"
- offset="0.09541478"
- style="stop-color:#e7e7e4;stop-opacity:1" />
- <stop
- style="stop-color:#fafafa;stop-opacity:1"
- offset="0.12829006"
- id="stop6231" />
- <stop
- id="stop6417"
- offset="0.16864988"
- style="stop-color:#ffffff;stop-opacity:1" />
- <stop
- id="stop6233"
- offset="0.3383725"
- style="stop-color:#babdb6;stop-opacity:1" />
- <stop
- style="stop-color:#888a85;stop-opacity:1"
- offset="0.46680215"
- id="stop6235" />
- <stop
- id="stop6832"
- offset="0.66817862"
- style="stop-color:#888a85;stop-opacity:1" />
- <stop
- id="stop6223"
- offset="1"
- style="stop-color:#eeeeec;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- gradientTransform="matrix(1,0,0,1.0793362,-124.58426,148.9484)"
- y2="-18.526932"
- x2="142.09839"
- y1="-138.38556"
- x1="142.09839"
- gradientUnits="userSpaceOnUse"
- id="linearGradient9527"
- xlink:href="#linearGradient6219"
- inkscape:collect="always" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3894"
- id="linearGradient9572"
- gradientUnits="userSpaceOnUse"
- x1="77"
- y1="106"
- x2="119.61018"
- y2="266.47308"
- gradientTransform="translate(-10,-7)" />
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3813">
- <path
- id="path3815"
- d="m 85.46875,105.625 -1.78125,2.46875 -8.46875,15.1875 -6.375,1.0625 -2.46875,3.53125 -6.03125,0.71875 -0.6875,2.125 -4.59375,2.125 -1.78125,9.1875 4.25,6.71875 4.9375,1.0625 2.84375,4.25 -0.34375,8.84375 4.9375,3.15625 -3.1875,10.625 3.90625,3.1875 -0.71875,-1.78125 2.8125,-11.3125 1.4375,2.46875 -1.4375,9.90625 1.4375,0.71875 -11.6875,73.53125 8.84375,7.40625 2.46875,0 0,-1.75 0.8125,-0.78125 -0.625,2.53125 9.1875,-8.28125 -1.3125,-1.1875 0.09375,-0.0625 -2.0625,-2.5625 1.53125,-4.15625 5.28125,-4.25 -1.09375,-0.90625 0.21875,-0.15625 -2.09375,-2.3125 1.375,-4.5625 L 89.6875,229 88.90625,228 89,227.9375 l -2.09375,-2.84375 0.3125,-4.40625 4.125,-4.1875 -0.96875,-1.25 0.03125,-0.0312 -2.3125,-4.0938 L 94.25,204 l -0.6875,-1.46875 0.03125,-0.0312 -0.375,-0.75 -1.03125,-2.25 4.9375,-6.5625 2.84375,-10.96875 6,0.1875 1.9375,-10.78125 5.125,-3.875 2.46875,-9.90625 5.3125,-4.78125 4.59375,-0.71875 1.78125,-3.6875 3.71875,-1.0625 2.09375,-8.65625 -1.40625,-4.25 -0.21875,0 0.0312,-0.1875 -4.9375,-1.40625 L 125.75,130 l -6,-1.40625 0.34375,-3.53125 -7.0625,-3.1875 -4.9375,-13.4375 -4.25,-2.46875 -18.375,-0.34375 z m 15.90625,8.125 3.875,8.84375 -4.9375,2.8125 -13.78125,-0.34375 -1.0625,-3.53125 5.65625,-7.4375 10.25,-0.34375 z"
- style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- inkscape:connector-curvature="0" />
- </clipPath>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3831"
- id="linearGradient3837"
- x1="80.78125"
- y1="243.79688"
- x2="80"
- y2="246.60938"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3831"
- id="linearGradient3841"
- gradientUnits="userSpaceOnUse"
- x1="80.78125"
- y1="243.79688"
- x2="80"
- y2="246.60938"
- gradientTransform="translate(3.875,-12.21875)" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3831"
- id="linearGradient3845"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(-1,0,0,-1,167.5,463.5)"
- x1="80.78125"
- y1="243.79688"
- x2="80"
- y2="246.60938" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3831"
- id="linearGradient3849"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(-1,0,0,-1,168.5,453.625)"
- x1="80.78125"
- y1="243.79688"
- x2="80"
- y2="246.60938" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3831"
- id="linearGradient3853"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(-1,0,0,-1,172.59375,442.1875)"
- x1="80.78125"
- y1="243.79688"
- x2="80"
- y2="246.60938" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3831"
- id="linearGradient3857"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(-1,0,0,-1,180.5625,423.65625)"
- x1="80.78125"
- y1="243.79688"
- x2="79.28125"
- y2="244.35938" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3859"
- id="linearGradient3865"
- x1="107.53125"
- y1="157.21875"
- x2="53.28125"
- y2="142.03125"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3916"
- id="linearGradient3922"
- x1="60.34375"
- y1="128.59375"
- x2="65.822327"
- y2="134.79822"
- gradientUnits="userSpaceOnUse" />
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath6088">
- <path
- sodipodi:nodetypes="cccccccscccccccccccc"
- inkscape:connector-curvature="0"
- id="path6090"
- d="m 102.125,114.75 3.375,7.75 -4.75,3 L 67,99 95.75,46.5 161,54 l 15.75,54.5 c 0,0 -9.20083,-8.2747 -22.75,-8.5 -3.89033,-0.06469 -13.75,1.75 -13.75,1.75 l -10,13.5 13.5,-1 -6,10.75 -5.75,0.25 -12.125,2.75 0.25,-2.5 -0.75,-0.625 -6.625,-3.125 -1.75,-5.25 -5,-1.375 z"
- style="opacity:0.45614038;color:#000000;fill:#75507b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath6230">
- <path
- sodipodi:nodetypes="ssssssssssss"
- clip-path="none"
- inkscape:connector-curvature="0"
- id="path6232"
- d="m 100.57289,62.541562 c 9.48984,-5.464319 21.33605,-6.200507 31.7778,-0.907186 16.70676,8.469299 23.42235,29.155172 15.00603,46.222194 -8.41633,17.06699 -28.75204,24.0104 -45.45881,15.54111 C 85.191127,114.92838 78.475532,94.242505 86.891873,77.175486 90.047996,70.775374 94.878999,65.820152 100.57289,62.541562 z m 6.9728,5.220359 c -5.96406,3.340783 -10.900661,9.170026 -13.378439,16.619864 -4.955579,14.899702 1.771155,30.814335 15.017289,35.518325 13.24609,4.70395 27.99598,-3.61355 32.95155,-18.51325 4.95556,-14.899695 -1.77117,-30.814334 -15.01728,-35.518318 -6.62305,-2.351969 -13.60904,-1.447398 -19.57312,1.893379 z"
- style="color:#000000;fill:#c9c9c9;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999982px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
- </clipPath>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient11491"
- id="radialGradient11497"
- cx="89.221237"
- cy="158.54852"
- fx="89.221237"
- fy="158.54852"
- r="27.316811"
- gradientTransform="matrix(7.792316,-0.25732976,0.04413985,1.3366185,-614.65762,-38.072453)"
- gradientUnits="userSpaceOnUse" />
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath11525">
- <path
- sodipodi:nodetypes="ssssssssssss"
- clip-path="none"
- inkscape:connector-curvature="0"
- id="path11527"
- d="m 100.57289,62.541565 c 9.48984,-5.464319 21.33605,-6.200507 31.7778,-0.907186 16.70676,8.469299 23.42235,29.155172 15.00603,46.222191 -8.41633,17.06699 -28.75204,24.0104 -45.45881,15.54111 C 85.191127,114.92838 78.475532,94.242508 86.891873,77.175489 90.047996,70.775377 94.878999,65.820155 100.57289,62.541565 z m 6.9728,5.220359 c -5.96406,3.340783 -10.900661,9.170026 -13.378439,16.619864 -4.955579,14.899702 1.771155,30.814332 15.017289,35.518322 13.24609,4.70395 27.99598,-3.61355 32.95155,-18.51325 4.95556,-14.899692 -1.77117,-30.814331 -15.01728,-35.518315 -6.62305,-2.351969 -13.60904,-1.447398 -19.57312,1.893379 z"
- style="color:#000000;fill:none;stroke:#000000;stroke-width:0.99999982px;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
- </clipPath>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3263-6"
- id="linearGradient565-7"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.03776661,0.0377666,-0.03776661,0.0377666,160.03819,0.8160225)"
- x1="-868.11768"
- y1="1159.4119"
- x2="-243.19453"
- y2="1326.8596" />
- <linearGradient
- id="linearGradient3263-6"
- inkscape:collect="always">
- <stop
- id="stop3265-8"
- offset="0"
- style="stop-color:#babdb6;stop-opacity:1" />
- <stop
- id="stop3267-41"
- offset="1"
- style="stop-color:#ffffff;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- y2="1326.8596"
- x2="-243.19453"
- y1="1159.4119"
- x1="-868.11768"
- gradientTransform="matrix(0.08620296,0.08620294,-0.08620296,0.08620294,74.48657,-3.091602)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient12312"
- xlink:href="#linearGradient3263-6"
- inkscape:collect="always" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3263-6-9"
- id="linearGradient565-7-7"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.03776661,0.0377666,-0.03776661,0.0377666,160.03819,0.8160225)"
- x1="-868.11768"
- y1="1159.4119"
- x2="-243.19453"
- y2="1326.8596" />
- <linearGradient
- id="linearGradient3263-6-9"
- inkscape:collect="always">
- <stop
- id="stop3265-8-4"
- offset="0"
- style="stop-color:#babdb6;stop-opacity:1" />
- <stop
- id="stop3267-41-9"
- offset="1"
- style="stop-color:#ffffff;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- y2="1326.8596"
- x2="-243.19453"
- y1="1159.4119"
- x1="-868.11768"
- gradientTransform="matrix(0.08620296,0.08620294,-0.08620296,0.08620294,84.986565,-15.091602)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient12312-5"
- xlink:href="#linearGradient3263-6-9"
- inkscape:collect="always" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3263-6-1"
- id="linearGradient565-7-75"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.03776661,0.0377666,-0.03776661,0.0377666,160.03819,0.8160225)"
- x1="-1726.1508"
- y1="5055.0815"
- x2="476.7652"
- y2="5321.1538" />
- <linearGradient
- id="linearGradient3263-6-1"
- inkscape:collect="always">
- <stop
- id="stop3265-8-1"
- offset="0"
- style="stop-color:#babdb6;stop-opacity:1" />
- <stop
- id="stop3267-41-3"
- offset="1"
- style="stop-color:#ffffff;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- y2="1326.8596"
- x2="-243.19453"
- y1="1159.4119"
- x1="-868.11768"
- gradientTransform="matrix(0.08620296,0.08620294,-0.08620296,0.08620294,227.41356,-13.853323)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient12312-7"
- xlink:href="#linearGradient3263-6-1"
- inkscape:collect="always" />
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath12461">
- <path
- sodipodi:nodetypes="ssscccccccccccccccccccss"
- inkscape:connector-curvature="0"
- id="path12463"
- d="m -52.298199,90.961216 c -14.221332,0 -25.747088,11.549034 -25.747088,25.770364 0,14.22134 11.525756,25.74709 25.747088,25.74709 3.878336,0 7.549624,-0.88545 10.848231,-2.42106 l 37.8989687,37.92225 4.51621619,0 -0.51214823,-1.2571 2.25810814,0 0.7449428,1.2571 5.8431458,-1.58301 -0.6518251,-0.65182 -1.1872527,-7.2632 -5.4939537,-5.51723 -5.2611591,0.25608 0,-6.00611 -3.7479939,-3.74799 -4.2601419,0.74494 -0.232795,-5.75003 -16.08611,-15.15493 1.583003,-1.583 0.488869,-2.00204 -2.909933,-3.30568 c 1.215993,-2.99138 1.908916,-6.25621 1.908916,-9.68426 0,-14.22133 -11.525756,-25.770364 -25.747088,-25.770364 z"
- style="fill:none;stroke:#000000;stroke-width:1.48988581;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- </clipPath>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient12494"
- id="linearGradient12500"
- x1="-19.567272"
- y1="146.57585"
- x2="23.103989"
- y2="188.40904"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3263-6-1"
- id="linearGradient12502"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.03776661,0.0377666,-0.03776661,0.0377666,160.03819,0.8160225)"
- x1="-1726.1508"
- y1="5055.0815"
- x2="476.7652"
- y2="5321.1538" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient12494"
- id="linearGradient12504"
- gradientUnits="userSpaceOnUse"
- x1="-19.567272"
- y1="146.57585"
- x2="23.103989"
- y2="188.40904" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3894-6"
- id="linearGradient9572-3"
- gradientUnits="userSpaceOnUse"
- x1="77"
- y1="106"
- x2="119.61018"
- y2="266.47308"
- gradientTransform="translate(-10,-7)" />
- <linearGradient
- id="linearGradient3894-6">
- <stop
- style="stop-color:#b7beb0;stop-opacity:1"
- offset="0"
- id="stop3896-3" />
- <stop
- id="stop3898-2"
- offset="0.15504535"
- style="stop-color:#f9f9f9;stop-opacity:1" />
- <stop
- style="stop-color:#f9f9f8;stop-opacity:1"
- offset="0.2005571"
- id="stop3900-3" />
- <stop
- style="stop-color:#babdb6;stop-opacity:1"
- offset="0.37639078"
- id="stop3906-1" />
- <stop
- id="stop3908-2"
- offset="0.50482041"
- style="stop-color:#888a85;stop-opacity:1" />
- <stop
- style="stop-color:#888a85;stop-opacity:1"
- offset="0.66817862"
- id="stop3910-7" />
- <stop
- style="stop-color:#eeeeec;stop-opacity:1"
- offset="1"
- id="stop3912-4" />
- </linearGradient>
- <linearGradient
- id="linearGradient3263-6-1-8">
- <stop
- id="stop3265-8-1-3"
- offset="0"
- style="stop-color:#babdb6;stop-opacity:1" />
- <stop
- style="stop-color:#cbcdc8;stop-opacity:1;"
- offset="0.25"
- id="stop13768" />
- <stop
- style="stop-color:#dcdeda;stop-opacity:1;"
- offset="0.5"
- id="stop13766" />
- <stop
- id="stop3267-41-3-7"
- offset="1"
- style="stop-color:#ffffff;stop-opacity:1" />
- </linearGradient>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath6088-5">
- <path
- sodipodi:nodetypes="cccccccscccccccccccc"
- inkscape:connector-curvature="0"
- id="path6090-7"
- d="m 102.125,114.75 3.375,7.75 -4.75,3 L 67,99 95.75,46.5 161,54 l 15.75,54.5 c 0,0 -9.20083,-8.2747 -22.75,-8.5 -3.89033,-0.06469 -13.75,1.75 -13.75,1.75 l -9.125,14.875 c 4.47535,-3.19478 8.82199,-2.60624 12.625,-2.375 l -6,10.75 -5.75,0.25 -12.125,2.75 0.25,-2.5 -0.75,-0.625 -6.625,-3.125 -1.75,-5.25 -5,-1.375 z"
- style="opacity:0.45614038;color:#000000;fill:#75507b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath6230-2">
- <path
- sodipodi:nodetypes="ssssssssssss"
- clip-path="none"
- inkscape:connector-curvature="0"
- id="path6232-2"
- d="m 100.57289,62.541562 c 9.48984,-5.464319 21.33605,-6.200507 31.7778,-0.907186 16.70676,8.469299 23.42235,29.155172 15.00603,46.222194 -8.41633,17.06699 -28.75204,24.0104 -45.45881,15.54111 C 85.191127,114.92838 78.475532,94.242505 86.891873,77.175486 90.047996,70.775374 94.878999,65.820152 100.57289,62.541562 z m 6.9728,5.220359 c -5.96406,3.340783 -10.900661,9.170026 -13.378439,16.619864 -4.955579,14.899702 1.771155,30.814335 15.017289,35.518325 13.24609,4.70395 27.99598,-3.61355 32.95155,-18.51325 4.95556,-14.899695 -1.77117,-30.814334 -15.01728,-35.518318 -6.62305,-2.351969 -13.60904,-1.447398 -19.57312,1.893379 z"
- style="color:#000000;fill:#c9c9c9;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999982px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath11525-4">
- <path
- sodipodi:nodetypes="ssssssssssss"
- clip-path="none"
- inkscape:connector-curvature="0"
- id="path11527-1"
- d="m 100.57289,62.541565 c 9.48984,-5.464319 21.33605,-6.200507 31.7778,-0.907186 16.70676,8.469299 23.42235,29.155172 15.00603,46.222191 -8.41633,17.06699 -28.75204,24.0104 -45.45881,15.54111 C 85.191127,114.92838 78.475532,94.242508 86.891873,77.175489 90.047996,70.775377 94.878999,65.820155 100.57289,62.541565 z m 6.9728,5.220359 c -5.96406,3.340783 -10.900661,9.170026 -13.378439,16.619864 -4.955579,14.899702 1.771155,30.814332 15.017289,35.518322 13.24609,4.70395 27.99598,-3.61355 32.95155,-18.51325 4.95556,-14.899692 -1.77117,-30.814331 -15.01728,-35.518315 -6.62305,-2.351969 -13.60904,-1.447398 -19.57312,1.893379 z"
- style="color:#000000;fill:none;stroke:#000000;stroke-width:0.99999982px;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
- </clipPath>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3859-9"
- id="linearGradient3865-1"
- x1="107.53125"
- y1="157.21875"
- x2="53.28125"
- y2="142.03125"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient3859-9">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop3861-3" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop3863-9" />
- </linearGradient>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3813-9">
- <path
- id="path3815-1"
- d="m 85.46875,105.625 -1.78125,2.46875 -8.46875,15.1875 -6.375,1.0625 -2.46875,3.53125 -6.03125,0.71875 -0.6875,2.125 -4.59375,2.125 -1.78125,9.1875 4.25,6.71875 4.9375,1.0625 2.84375,4.25 -0.34375,8.84375 4.9375,3.15625 -3.1875,10.625 3.90625,3.1875 -0.71875,-1.78125 2.8125,-11.3125 1.4375,2.46875 -1.4375,9.90625 1.4375,0.71875 -11.6875,73.53125 8.84375,7.40625 2.46875,0 0,-1.75 0.8125,-0.78125 -0.625,2.53125 9.1875,-8.28125 -1.3125,-1.1875 0.09375,-0.0625 -2.0625,-2.5625 1.53125,-4.15625 5.28125,-4.25 -1.09375,-0.90625 0.21875,-0.15625 -2.09375,-2.3125 1.375,-4.5625 L 89.6875,229 88.90625,228 89,227.9375 l -2.09375,-2.84375 0.3125,-4.40625 4.125,-4.1875 -0.96875,-1.25 0.03125,-0.0312 -2.3125,-4.0938 L 94.25,204 l -0.6875,-1.46875 0.03125,-0.0312 -0.375,-0.75 -1.03125,-2.25 4.9375,-6.5625 2.84375,-10.96875 6,0.1875 1.9375,-10.78125 5.125,-3.875 2.46875,-9.90625 5.3125,-4.78125 4.59375,-0.71875 1.78125,-3.6875 3.71875,-1.0625 2.09375,-8.65625 -1.40625,-4.25 -0.21875,0 0.0312,-0.1875 -4.9375,-1.40625 L 125.75,130 l -6,-1.40625 0.34375,-3.53125 -7.0625,-3.1875 -4.9375,-13.4375 -4.25,-2.46875 -18.375,-0.34375 z m 15.90625,8.125 3.875,8.84375 -4.9375,2.8125 -13.78125,-0.34375 -1.0625,-3.53125 5.65625,-7.4375 10.25,-0.34375 z"
- style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- inkscape:connector-curvature="0" />
- </clipPath>
- <linearGradient
- id="linearGradient3894-9">
- <stop
- style="stop-color:#d3d7cf;stop-opacity:1"
- offset="0"
- id="stop3896-5" />
- <stop
- style="stop-color:#eeeeec;stop-opacity:1"
- offset="0.28330287"
- id="stop3900-6" />
- <stop
- style="stop-color:#babdb6;stop-opacity:1"
- offset="0.33564273"
- id="stop3906-0" />
- <stop
- id="stop4160"
- offset="0.42023158"
- style="stop-color:#eeeeec;stop-opacity:1" />
- <stop
- id="stop3908-9"
- offset="0.53767145"
- style="stop-color:#888a85;stop-opacity:1" />
- <stop
- style="stop-color:#888a85;stop-opacity:1"
- offset="0.62985241"
- id="stop3910-3" />
- <stop
- id="stop4162"
- offset="0.77754474"
- style="stop-color:#ffffff;stop-opacity:1" />
- <stop
- style="stop-color:#babdb6;stop-opacity:1"
- offset="1"
- id="stop3912-0" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient12494-4"
- id="linearGradient12500-6"
- x1="-19.567272"
- y1="146.57585"
- x2="23.103989"
- y2="188.40904"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient12494-4">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop12496-8" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop12498-9" />
- </linearGradient>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath12461-5">
- <path
- sodipodi:nodetypes="ssscccccccccccccccccccss"
- inkscape:connector-curvature="0"
- id="path12463-1"
- d="m -52.298199,90.961216 c -14.221332,0 -25.747088,11.549034 -25.747088,25.770364 0,14.22134 11.525756,25.74709 25.747088,25.74709 3.878336,0 7.549624,-0.88545 10.848231,-2.42106 l 37.8989687,37.92225 4.51621619,0 -0.51214823,-1.2571 2.25810814,0 0.7449428,1.2571 5.8431458,-1.58301 -0.6518251,-0.65182 -1.1872527,-7.2632 -5.4939537,-5.51723 -5.2611591,0.25608 0,-6.00611 -3.7479939,-3.74799 -4.2601419,0.74494 -0.232795,-5.75003 -16.08611,-15.15493 1.583003,-1.583 0.488869,-2.00204 -2.909933,-3.30568 c 1.215993,-2.99138 1.908916,-6.25621 1.908916,-9.68426 0,-14.22133 -11.525756,-25.770364 -25.747088,-25.770364 z"
- style="fill:none;stroke:#000000;stroke-width:1.48988581;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- </clipPath>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4203"
- id="linearGradient4209"
- x1="130.10339"
- y1="146.05803"
- x2="125.68246"
- y2="147.24261"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4262"
- id="linearGradient4268"
- x1="112.8125"
- y1="153.96875"
- x2="120.875"
- y2="154.03125"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4262-2"
- id="linearGradient4268-9"
- x1="112.8125"
- y1="153.96875"
- x2="120.875"
- y2="154.03125"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient4262-2">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop4264-1" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop4266-5" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient13585-4">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop13587-7" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop13589-9" />
- </linearGradient>
- <linearGradient
- gradientTransform="translate(-182.43355,-157.87154)"
- y2="170.51106"
- x2="192.86339"
- y1="168.56653"
- x1="194.63113"
- gradientUnits="userSpaceOnUse"
- id="linearGradient13608"
- xlink:href="#linearGradient13585-4"
- inkscape:collect="always" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient13585-2">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop13587-8" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop13589-4" />
- </linearGradient>
- <linearGradient
- gradientTransform="translate(-182.43355,-157.87154)"
- y2="170.51106"
- x2="192.86339"
- y1="168.56653"
- x1="194.63113"
- gradientUnits="userSpaceOnUse"
- id="linearGradient13608-9"
- xlink:href="#linearGradient13585-2"
- inkscape:collect="always" />
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath13687">
- <path
- d="m 180,135.625 a 28.375,28.375 0 1 1 -56.75,0 28.375,28.375 0 1 1 56.75,0 z"
- sodipodi:ry="28.375"
- sodipodi:rx="28.375"
- sodipodi:cy="135.625"
- sodipodi:cx="151.625"
- id="path13689"
- style="color:#000000;fill:none;stroke:#f9f9f8;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- sodipodi:type="arc" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath13687-5">
- <path
- d="m 180,135.625 a 28.375,28.375 0 1 1 -56.75,0 28.375,28.375 0 1 1 56.75,0 z"
- sodipodi:ry="28.375"
- sodipodi:rx="28.375"
- sodipodi:cy="135.625"
- sodipodi:cx="151.625"
- id="path13689-5"
- style="color:#000000;fill:none;stroke:#f9f9f8;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- sodipodi:type="arc" />
- </clipPath>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient12494-4-8"
- id="linearGradient12500-6-3"
- x1="-19.567272"
- y1="146.57585"
- x2="23.103989"
- y2="188.40904"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient12494-4-8">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop12496-8-9" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop12498-9-5" />
- </linearGradient>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath12461-5-4">
- <path
- sodipodi:nodetypes="ssscccccccccccccccccccss"
- inkscape:connector-curvature="0"
- id="path12463-1-5"
- d="m -52.298199,90.961216 c -14.221332,0 -25.747088,11.549034 -25.747088,25.770364 0,14.22134 11.525756,25.74709 25.747088,25.74709 3.878336,0 7.549624,-0.88545 10.848231,-2.42106 l 37.8989687,37.92225 4.51621619,0 -0.51214823,-1.2571 2.25810814,0 0.7449428,1.2571 5.8431458,-1.58301 -0.6518251,-0.65182 -1.1872527,-7.2632 -5.4939537,-5.51723 -5.2611591,0.25608 0,-6.00611 -3.7479939,-3.74799 -4.2601419,0.74494 -0.232795,-5.75003 -16.08611,-15.15493 1.583003,-1.583 0.488869,-2.00204 -2.909933,-3.30568 c 1.215993,-2.99138 1.908916,-6.25621 1.908916,-9.68426 0,-14.22133 -11.525756,-25.770364 -25.747088,-25.770364 z"
- style="fill:none;stroke:#000000;stroke-width:1.48988581;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- </clipPath>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient12494-4-8"
- id="linearGradient12504-5-4"
- gradientUnits="userSpaceOnUse"
- x1="-19.567272"
- y1="146.57585"
- x2="23.103989"
- y2="188.40904" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient12494-4-8"
- id="linearGradient13987"
- gradientUnits="userSpaceOnUse"
- x1="-19.567272"
- y1="146.57585"
- x2="23.103989"
- y2="188.40904" />
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath6088-5-0">
- <path
- sodipodi:nodetypes="cccccccscccccccccccc"
- inkscape:connector-curvature="0"
- id="path6090-7-6"
- d="m 102.125,114.75 3.375,7.75 -4.75,3 L 67,99 95.75,46.5 161,54 l 15.75,54.5 c 0,0 -9.20083,-8.2747 -22.75,-8.5 -3.89033,-0.06469 -13.75,1.75 -13.75,1.75 l -9.125,14.875 c 4.47535,-3.19478 8.82199,-2.60624 12.625,-2.375 l -6,10.75 -5.75,0.25 -12.125,2.75 0.25,-2.5 -0.75,-0.625 -6.625,-3.125 -1.75,-5.25 -5,-1.375 z"
- style="opacity:0.45614038;color:#000000;fill:#75507b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath6230-2-1">
- <path
- sodipodi:nodetypes="ssssssssssss"
- clip-path="none"
- inkscape:connector-curvature="0"
- id="path6232-2-0"
- d="m 100.57289,62.541562 c 9.48984,-5.464319 21.33605,-6.200507 31.7778,-0.907186 16.70676,8.469299 23.42235,29.155172 15.00603,46.222194 -8.41633,17.06699 -28.75204,24.0104 -45.45881,15.54111 C 85.191127,114.92838 78.475532,94.242505 86.891873,77.175486 90.047996,70.775374 94.878999,65.820152 100.57289,62.541562 z m 6.9728,5.220359 c -5.96406,3.340783 -10.900661,9.170026 -13.378439,16.619864 -4.955579,14.899702 1.771155,30.814335 15.017289,35.518325 13.24609,4.70395 27.99598,-3.61355 32.95155,-18.51325 4.95556,-14.899695 -1.77117,-30.814334 -15.01728,-35.518318 -6.62305,-2.351969 -13.60904,-1.447398 -19.57312,1.893379 z"
- style="color:#000000;fill:#c9c9c9;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999982px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath11525-4-2">
- <path
- sodipodi:nodetypes="ssssssssssss"
- clip-path="none"
- inkscape:connector-curvature="0"
- id="path11527-1-6"
- d="m 100.57289,62.541565 c 9.48984,-5.464319 21.33605,-6.200507 31.7778,-0.907186 16.70676,8.469299 23.42235,29.155172 15.00603,46.222191 -8.41633,17.06699 -28.75204,24.0104 -45.45881,15.54111 C 85.191127,114.92838 78.475532,94.242508 86.891873,77.175489 90.047996,70.775377 94.878999,65.820155 100.57289,62.541565 z m 6.9728,5.220359 c -5.96406,3.340783 -10.900661,9.170026 -13.378439,16.619864 -4.955579,14.899702 1.771155,30.814332 15.017289,35.518322 13.24609,4.70395 27.99598,-3.61355 32.95155,-18.51325 4.95556,-14.899692 -1.77117,-30.814331 -15.01728,-35.518315 -6.62305,-2.351969 -13.60904,-1.447398 -19.57312,1.893379 z"
- style="color:#000000;fill:none;stroke:#000000;stroke-width:0.99999982px;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
- </clipPath>
- <filter
- color-interpolation-filters="sRGB"
- inkscape:collect="always"
- id="filter11544-7-5">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.58922844"
- id="feGaussianBlur11546-0-0" />
- </filter>
- <linearGradient
- id="linearGradient3894-9-9">
- <stop
- style="stop-color:#d3d7cf;stop-opacity:1"
- offset="0"
- id="stop3896-5-6" />
- <stop
- style="stop-color:#eeeeec;stop-opacity:1"
- offset="0.28330287"
- id="stop3900-6-6" />
- <stop
- style="stop-color:#babdb6;stop-opacity:1"
- offset="0.33564273"
- id="stop3906-0-9" />
- <stop
- id="stop4160-0"
- offset="0.42023158"
- style="stop-color:#eeeeec;stop-opacity:1" />
- <stop
- id="stop3908-9-6"
- offset="0.53767145"
- style="stop-color:#888a85;stop-opacity:1" />
- <stop
- style="stop-color:#888a85;stop-opacity:1"
- offset="0.62985241"
- id="stop3910-3-0" />
- <stop
- id="stop4162-8"
- offset="0.77754474"
- style="stop-color:#ffffff;stop-opacity:1" />
- <stop
- style="stop-color:#babdb6;stop-opacity:1"
- offset="1"
- id="stop3912-0-5" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3859-9-6"
- id="linearGradient3865-1-5"
- x1="107.53125"
- y1="157.21875"
- x2="53.28125"
- y2="142.03125"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient3859-9-6">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop3861-3-7" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop3863-9-3" />
- </linearGradient>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3813-9-8">
- <path
- id="path3815-1-3"
- d="m 85.46875,105.625 -1.78125,2.46875 -8.46875,15.1875 -6.375,1.0625 -2.46875,3.53125 -6.03125,0.71875 -0.6875,2.125 -4.59375,2.125 -1.78125,9.1875 4.25,6.71875 4.9375,1.0625 2.84375,4.25 -0.34375,8.84375 4.9375,3.15625 -3.1875,10.625 3.90625,3.1875 -0.71875,-1.78125 2.8125,-11.3125 1.4375,2.46875 -1.4375,9.90625 1.4375,0.71875 -11.6875,73.53125 8.84375,7.40625 2.46875,0 0,-1.75 0.8125,-0.78125 -0.625,2.53125 9.1875,-8.28125 -1.3125,-1.1875 0.09375,-0.0625 -2.0625,-2.5625 1.53125,-4.15625 5.28125,-4.25 -1.09375,-0.90625 0.21875,-0.15625 -2.09375,-2.3125 1.375,-4.5625 L 89.6875,229 88.90625,228 89,227.9375 l -2.09375,-2.84375 0.3125,-4.40625 4.125,-4.1875 -0.96875,-1.25 0.03125,-0.0312 -2.3125,-4.0938 L 94.25,204 l -0.6875,-1.46875 0.03125,-0.0312 -0.375,-0.75 -1.03125,-2.25 4.9375,-6.5625 2.84375,-10.96875 6,0.1875 1.9375,-10.78125 5.125,-3.875 2.46875,-9.90625 5.3125,-4.78125 4.59375,-0.71875 1.78125,-3.6875 3.71875,-1.0625 2.09375,-8.65625 -1.40625,-4.25 -0.21875,0 0.0312,-0.1875 -4.9375,-1.40625 L 125.75,130 l -6,-1.40625 0.34375,-3.53125 -7.0625,-3.1875 -4.9375,-13.4375 -4.25,-2.46875 -18.375,-0.34375 z m 15.90625,8.125 3.875,8.84375 -4.9375,2.8125 -13.78125,-0.34375 -1.0625,-3.53125 5.65625,-7.4375 10.25,-0.34375 z"
- style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- inkscape:connector-curvature="0" />
- </clipPath>
- <filter
- color-interpolation-filters="sRGB"
- inkscape:collect="always"
- id="filter3825-6-1">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.50626347"
- id="feGaussianBlur3827-5-5" />
- </filter>
- <linearGradient
- id="linearGradient3263-6-1-8-3">
- <stop
- id="stop3265-8-1-3-1"
- offset="0"
- style="stop-color:#babdb6;stop-opacity:1" />
- <stop
- style="stop-color:#cbcdc8;stop-opacity:1;"
- offset="0.25"
- id="stop13768-5" />
- <stop
- style="stop-color:#dcdeda;stop-opacity:1;"
- offset="0.5"
- id="stop13766-1" />
- <stop
- id="stop3267-41-3-7-6"
- offset="1"
- style="stop-color:#ffffff;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- id="linearGradient13770-9">
- <stop
- style="stop-color:#babdb6;stop-opacity:1"
- offset="0"
- id="stop13772-1" />
- <stop
- id="stop13780-9"
- offset="0.17445399"
- style="stop-color:#f2f2f1;stop-opacity:1" />
- <stop
- id="stop13774-5"
- offset="0.23801444"
- style="stop-color:#edeeec;stop-opacity:1" />
- <stop
- id="stop13776-7"
- offset="0.27069226"
- style="stop-color:#dcdeda;stop-opacity:1;" />
- <stop
- style="stop-color:#ffffff;stop-opacity:1"
- offset="1"
- id="stop13778-9" />
- </linearGradient>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath13687-5-1">
- <path
- d="m 180,135.625 a 28.375,28.375 0 1 1 -56.75,0 28.375,28.375 0 1 1 56.75,0 z"
- sodipodi:ry="28.375"
- sodipodi:rx="28.375"
- sodipodi:cy="135.625"
- sodipodi:cx="151.625"
- id="path13689-5-4"
- style="color:#000000;fill:none;stroke:#f9f9f8;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- sodipodi:type="arc" />
- </clipPath>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient12494-4-8-1"
- id="linearGradient13987-9"
- gradientUnits="userSpaceOnUse"
- x1="-19.567272"
- y1="146.57585"
- x2="23.103989"
- y2="188.40904" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient12494-4-8-1">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop12496-8-9-1" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop12498-9-5-0" />
- </linearGradient>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath12461-5-4-5">
- <path
- sodipodi:nodetypes="ssscccccccccccccccccccss"
- inkscape:connector-curvature="0"
- id="path12463-1-5-7"
- d="m -52.298199,90.961216 c -14.221332,0 -25.747088,11.549034 -25.747088,25.770364 0,14.22134 11.525756,25.74709 25.747088,25.74709 3.878336,0 7.549624,-0.88545 10.848231,-2.42106 l 37.8989687,37.92225 4.51621619,0 -0.51214823,-1.2571 2.25810814,0 0.7449428,1.2571 5.8431458,-1.58301 -0.6518251,-0.65182 -1.1872527,-7.2632 -5.4939537,-5.51723 -5.2611591,0.25608 0,-6.00611 -3.7479939,-3.74799 -4.2601419,0.74494 -0.232795,-5.75003 -16.08611,-15.15493 1.583003,-1.583 0.488869,-2.00204 -2.909933,-3.30568 c 1.215993,-2.99138 1.908916,-6.25621 1.908916,-9.68426 0,-14.22133 -11.525756,-25.770364 -25.747088,-25.770364 z"
- style="fill:none;stroke:#000000;stroke-width:1.48988581;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- </clipPath>
- <filter
- color-interpolation-filters="sRGB"
- inkscape:collect="always"
- id="filter12480-2-4-0">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.56367413"
- id="feGaussianBlur12482-5-6-5" />
- </filter>
- <linearGradient
- y2="188.40904"
- x2="23.103989"
- y1="146.57585"
- x1="-19.567272"
- gradientUnits="userSpaceOnUse"
- id="linearGradient14313"
- xlink:href="#linearGradient12494-4-8-1"
- inkscape:collect="always" />
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath14890">
- <path
- style="color:#000000;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- d="m 179.63667,158.14666 0,-65.569995 -75.57667,0 0,65.569995 75.57667,0 z m -37.7225,-22.58083 c -5.74468,0 -10.40167,-4.65699 -10.40167,-10.40167 0,-5.74468 4.65699,-10.40166 10.40167,-10.40166 5.74468,0 10.40166,4.65698 10.40166,10.40166 0,5.74468 -4.65698,10.40167 -10.40166,10.40167 z"
- id="path14892"
- inkscape:connector-curvature="0" />
- </clipPath>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient14960"
- id="linearGradient14966"
- x1="-2.0341735"
- y1="213.94829"
- x2="-1.2096813"
- y2="198.59221"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient14960"
- id="linearGradient14992"
- gradientUnits="userSpaceOnUse"
- x1="-2.0341735"
- y1="213.94829"
- x2="-1.2096813"
- y2="198.59221" />
- <filter
- color-interpolation-filters="sRGB"
- inkscape:collect="always"
- id="filter14931-9">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.5341601"
- id="feGaussianBlur14933-8" />
- </filter>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient14960-7"
- id="linearGradient14992-4"
- gradientUnits="userSpaceOnUse"
- x1="-2.0341735"
- y1="213.94829"
- x2="-1.2096813"
- y2="198.59221" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient14960-7">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop14962-1" />
- <stop
- style="stop-color:#d7d9d5;stop-opacity:1"
- offset="1"
- id="stop14964-8" />
- </linearGradient>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath14890-4">
- <path
- style="color:#000000;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- d="m 179.63667,158.14666 0,-65.569995 -75.57667,0 0,65.569995 75.57667,0 z m -37.7225,-22.58083 c -5.74468,0 -10.40167,-4.65699 -10.40167,-10.40167 0,-5.74468 4.65699,-10.40166 10.40167,-10.40166 5.74468,0 10.40166,4.65698 10.40166,10.40166 0,5.74468 -4.65698,10.40167 -10.40166,10.40167 z"
- id="path14892-4"
- inkscape:connector-curvature="0" />
- </clipPath>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient14915-2"
- id="radialGradient14996-4"
- gradientUnits="userSpaceOnUse"
- cx="152.45"
- cy="113.6"
- fx="152.45"
- fy="113.6"
- r="25.799999" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient14915-2">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop14917-6" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop14919-7" />
- </linearGradient>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient14915-1"
- id="radialGradient14921-5"
- cx="152.45"
- cy="113.6"
- fx="152.45"
- fy="113.6"
- r="25.799999"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient14915-1">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop14917-60" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop14919-5" />
- </linearGradient>
- <linearGradient
- id="linearGradient6762"
- inkscape:collect="always">
- <stop
- id="stop6764"
- offset="0"
- style="stop-color:#000000;stop-opacity:1;" />
- <stop
- id="stop6766"
- offset="1"
- style="stop-color:#000000;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient6833"
- inkscape:collect="always">
- <stop
- id="stop6835"
- offset="0"
- style="stop-color:#ffffff;stop-opacity:1;" />
- <stop
- id="stop6837"
- offset="1"
- style="stop-color:#ffffff;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient6753"
- inkscape:collect="always">
- <stop
- id="stop6755"
- offset="0"
- style="stop-color:#888a85;stop-opacity:1" />
- <stop
- id="stop6757"
- offset="1"
- style="stop-color:#eeeeec;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- id="linearGradient6837"
- inkscape:collect="always">
- <stop
- id="stop6839"
- offset="0"
- style="stop-color:#ffffff;stop-opacity:1;" />
- <stop
- id="stop6841"
- offset="1"
- style="stop-color:#ffffff;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient7582"
- inkscape:collect="always">
- <stop
- id="stop7584"
- offset="0"
- style="stop-color:#ffffff;stop-opacity:1;" />
- <stop
- id="stop7586"
- offset="1"
- style="stop-color:#ffffff;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient6958"
- inkscape:collect="always">
- <stop
- id="stop6960"
- offset="0"
- style="stop-color:#000000;stop-opacity:1" />
- <stop
- id="stop6962"
- offset="1"
- style="stop-color:#888a85;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient2816"
- inkscape:collect="always">
- <stop
- id="stop2818"
- offset="0"
- style="stop-color:white;stop-opacity:1;" />
- <stop
- id="stop2820"
- offset="1"
- style="stop-color:white;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient4542"
- inkscape:collect="always">
- <stop
- id="stop4544"
- offset="0"
- style="stop-color:#888a85;stop-opacity:1" />
- <stop
- id="stop4546"
- offset="1"
- style="stop-color:#888a85;stop-opacity:0" />
- </linearGradient>
- <linearGradient
- id="linearGradient6762-2"
- inkscape:collect="always">
- <stop
- id="stop6764-9"
- offset="0"
- style="stop-color:#000000;stop-opacity:1;" />
- <stop
- id="stop6766-9"
- offset="1"
- style="stop-color:#000000;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient6833-5"
- inkscape:collect="always">
- <stop
- id="stop6835-7"
- offset="0"
- style="stop-color:#ffffff;stop-opacity:1;" />
- <stop
- id="stop6837-6"
- offset="1"
- style="stop-color:#ffffff;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient6742-8"
- inkscape:collect="always">
- <stop
- id="stop6744-9"
- offset="0"
- style="stop-color:#ffffff;stop-opacity:1;" />
- <stop
- id="stop6746-2"
- offset="1"
- style="stop-color:#ffffff;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- gradientUnits="userSpaceOnUse"
- id="linearGradient6127-5"
- inkscape:collect="always"
- x1="14.4375"
- x2="8"
- xlink:href="#linearGradient6753-1"
- y1="13.8125"
- y2="7.5" />
- <linearGradient
- id="linearGradient6753-1"
- inkscape:collect="always">
- <stop
- id="stop6755-2"
- offset="0"
- style="stop-color:#888a85;stop-opacity:1" />
- <stop
- id="stop6757-6"
- offset="1"
- style="stop-color:#eeeeec;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient7419"
- id="linearGradient17359"
- gradientUnits="userSpaceOnUse"
- x1="-2.0341735"
- y1="213.94829"
- x2="-1.2096813"
- y2="198.59221" />
- <filter
- inkscape:collect="always"
- id="filter17409">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="0.60698113"
- id="feGaussianBlur17411" />
- </filter>
- <linearGradient
- id="linearGradient3894-9-9-0">
- <stop
- style="stop-color:#d3d7cf;stop-opacity:1"
- offset="0"
- id="stop3896-5-6-3" />
- <stop
- style="stop-color:#eeeeec;stop-opacity:1"
- offset="0.28330287"
- id="stop3900-6-6-4" />
- <stop
- style="stop-color:#babdb6;stop-opacity:1"
- offset="0.33564273"
- id="stop3906-0-9-9" />
- <stop
- id="stop4160-0-3"
- offset="0.42023158"
- style="stop-color:#eeeeec;stop-opacity:1" />
- <stop
- id="stop3908-9-6-9"
- offset="0.53767145"
- style="stop-color:#888a85;stop-opacity:1" />
- <stop
- style="stop-color:#888a85;stop-opacity:1"
- offset="0.62985241"
- id="stop3910-3-0-5" />
- <stop
- id="stop4162-8-4"
- offset="0.77754474"
- style="stop-color:#ffffff;stop-opacity:1" />
- <stop
- style="stop-color:#babdb6;stop-opacity:1"
- offset="1"
- id="stop3912-0-5-9" />
- </linearGradient>
- <linearGradient
- y2="253.83969"
- x2="116.61353"
- y1="106"
- x1="77"
- gradientTransform="translate(-63.28125,-112.625)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient17468"
- xlink:href="#linearGradient3894-9-9-0"
- inkscape:collect="always" />
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath17624">
- <path
- style="color:#000000;fill:none;stroke:#888a85;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
- d="m 314.04481,64.503538 c 3.04979,0.261024 2.71652,1.730288 3.6651,2.741745 l 1.31603,2.778302 -7.16509,2.558962 -15.13443,-9.358492 7.53066,-12.941037 19.375,-3.582547 2.04717,6.287735 0,12.575473 -2.48585,-4.31368 c -2.2239,-1.975914 -5.25311,-0.529264 -8.10614,0.168632 z"
- id="path17626"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="cccccccccccc" />
- </clipPath>
- <linearGradient
- id="linearGradient17498-1">
- <stop
- id="stop17500-1"
- offset="0"
- style="stop-color:#d3d7cf;stop-opacity:1" />
- <stop
- id="stop17502-9"
- offset="0.28330287"
- style="stop-color:#eeeeec;stop-opacity:1" />
- <stop
- id="stop17504-7"
- offset="0.33564273"
- style="stop-color:#babdb6;stop-opacity:1" />
- <stop
- style="stop-color:#ffffff;stop-opacity:1"
- offset="0.6530382"
- id="stop17512-8" />
- <stop
- id="stop17514-2"
- offset="1"
- style="stop-color:#babdb6;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- id="linearGradient4542-7"
- inkscape:collect="always">
- <stop
- id="stop4544-6"
- offset="0"
- style="stop-color:#888a85;stop-opacity:1" />
- <stop
- id="stop4546-6"
- offset="1"
- style="stop-color:#888a85;stop-opacity:0" />
- </linearGradient>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath17624-3">
- <path
- style="color:#000000;fill:none;stroke:#888a85;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
- d="m 314.04481,64.503538 c 3.04979,0.261024 2.71652,1.730288 3.6651,2.741745 l 1.31603,2.778302 -7.16509,2.558962 -15.13443,-9.358492 7.53066,-12.941037 19.375,-3.582547 2.04717,6.287735 0,12.575473 -2.19859,-5.175466 c -2.2239,-1.975914 -5.10948,-1.103789 -7.96251,-0.405893 z"
- id="path17626-6"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="cccccccccccc" />
- </clipPath>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4542-7"
- id="linearGradient17750"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.727273,0,0,0.999999,12.27273,-34.84375)"
- x1="33.120464"
- y1="20.5"
- x2="22.328388"
- y2="20.5" />
- <linearGradient
- id="linearGradient17498-7">
- <stop
- id="stop17500-8"
- offset="0"
- style="stop-color:#d3d7cf;stop-opacity:1" />
- <stop
- id="stop17502-3"
- offset="0.28330287"
- style="stop-color:#eeeeec;stop-opacity:1" />
- <stop
- id="stop17504-9"
- offset="0.33564273"
- style="stop-color:#babdb6;stop-opacity:1" />
- <stop
- style="stop-color:#ffffff;stop-opacity:1"
- offset="0.6530382"
- id="stop17512-4" />
- <stop
- id="stop17514-4"
- offset="1"
- style="stop-color:#babdb6;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient17780-3">
- <stop
- style="stop-color:#888a85;stop-opacity:1;"
- offset="0"
- id="stop17782-6" />
- <stop
- style="stop-color:#e2e2e1;stop-opacity:1"
- offset="1"
- id="stop17784-1" />
- </linearGradient>
- <linearGradient
- y2="51.558521"
- x2="19.272995"
- y1="25.183172"
- x1="28.897871"
- gradientTransform="matrix(-1.222459,-0.32755691,-0.32755691,1.222459,49.646976,-20.299048)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient17810"
- xlink:href="#linearGradient17498-7"
- inkscape:collect="always" />
- <linearGradient
- gradientTransform="matrix(-1.222459,-0.32755691,-0.32755691,1.222459,35.129488,-15.017404)"
- y2="21.948019"
- x2="21.54595"
- y1="35.318134"
- x1="12.744178"
- gradientUnits="userSpaceOnUse"
- id="linearGradient17812"
- xlink:href="#linearGradient17780-3"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient17498-3">
- <stop
- id="stop17500-3"
- offset="0"
- style="stop-color:#d3d7cf;stop-opacity:1" />
- <stop
- id="stop17502-4"
- offset="0.28330287"
- style="stop-color:#eeeeec;stop-opacity:1" />
- <stop
- id="stop17504-4"
- offset="0.33564273"
- style="stop-color:#babdb6;stop-opacity:1" />
- <stop
- style="stop-color:#ffffff;stop-opacity:1"
- offset="0.6530382"
- id="stop17512-2" />
- <stop
- id="stop17514-1"
- offset="1"
- style="stop-color:#babdb6;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient17780-6">
- <stop
- style="stop-color:#888a85;stop-opacity:1;"
- offset="0"
- id="stop17782-8" />
- <stop
- style="stop-color:#e2e2e1;stop-opacity:1"
- offset="1"
- id="stop17784-3" />
- </linearGradient>
- <linearGradient
- y2="51.558521"
- x2="19.272995"
- y1="25.183172"
- x1="28.897871"
- gradientTransform="matrix(-1.222459,-0.32755691,-0.32755691,1.222459,49.646976,-20.299048)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient17810-0"
- xlink:href="#linearGradient17498-3"
- inkscape:collect="always" />
- <linearGradient
- gradientTransform="matrix(-1.222459,-0.32755691,-0.32755691,1.222459,35.129488,-15.017404)"
- y2="21.948019"
- x2="21.54595"
- y1="35.318134"
- x1="12.744178"
- gradientUnits="userSpaceOnUse"
- id="linearGradient17812-7"
- xlink:href="#linearGradient17780-6"
- inkscape:collect="always" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient17498-5"
- id="linearGradient17518-1"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-10,-7.0000003)"
- x1="28.897871"
- y1="25.183172"
- x2="19.272995"
- y2="51.558521" />
- <linearGradient
- id="linearGradient17498-5">
- <stop
- id="stop17500-6"
- offset="0"
- style="stop-color:#d3d7cf;stop-opacity:1" />
- <stop
- id="stop17502-2"
- offset="0.28330287"
- style="stop-color:#eeeeec;stop-opacity:1" />
- <stop
- id="stop17504-8"
- offset="0.33564273"
- style="stop-color:#babdb6;stop-opacity:1" />
- <stop
- style="stop-color:#ffffff;stop-opacity:1"
- offset="0.6530382"
- id="stop17512-6" />
- <stop
- id="stop17514-9"
- offset="1"
- style="stop-color:#babdb6;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient17780-7"
- id="linearGradient17786-1"
- x1="12.744178"
- y1="35.318134"
- x2="21.54595"
- y2="21.948019"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient17780-7">
- <stop
- style="stop-color:#888a85;stop-opacity:1;"
- offset="0"
- id="stop17782-4" />
- <stop
- style="stop-color:#e2e2e1;stop-opacity:1"
- offset="1"
- id="stop17784-7" />
- </linearGradient>
- <linearGradient
- y2="51.558521"
- x2="19.272995"
- y1="25.183172"
- x1="28.897871"
- gradientTransform="matrix(-1.222459,-0.32755691,-0.32755691,1.222459,49.646976,-20.299048)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient17810-7"
- xlink:href="#linearGradient17498-5"
- inkscape:collect="always" />
- <linearGradient
- gradientTransform="matrix(-1.222459,-0.32755691,-0.32755691,1.222459,35.129488,-15.017404)"
- y2="21.948019"
- x2="21.54595"
- y1="35.318134"
- x1="12.744178"
- gradientUnits="userSpaceOnUse"
- id="linearGradient17812-9"
- xlink:href="#linearGradient17780-7"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient17498-6">
- <stop
- id="stop17500-5"
- offset="0"
- style="stop-color:#d3d7cf;stop-opacity:1" />
- <stop
- id="stop17502-8"
- offset="0.28330287"
- style="stop-color:#eeeeec;stop-opacity:1" />
- <stop
- id="stop17504-6"
- offset="0.33564273"
- style="stop-color:#babdb6;stop-opacity:1" />
- <stop
- style="stop-color:#ffffff;stop-opacity:1"
- offset="0.6530382"
- id="stop17512-3" />
- <stop
- id="stop17514-5"
- offset="1"
- style="stop-color:#babdb6;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient17780-5">
- <stop
- style="stop-color:#888a85;stop-opacity:1;"
- offset="0"
- id="stop17782-68" />
- <stop
- style="stop-color:#e2e2e1;stop-opacity:1"
- offset="1"
- id="stop17784-4" />
- </linearGradient>
- <linearGradient
- y2="51.558521"
- x2="19.272995"
- y1="25.183172"
- x1="28.897871"
- gradientTransform="matrix(-1.222459,-0.32755691,-0.32755691,1.222459,49.646976,-20.299048)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient17810-09"
- xlink:href="#linearGradient17498-6"
- inkscape:collect="always" />
- <linearGradient
- gradientTransform="matrix(-1.222459,-0.32755691,-0.32755691,1.222459,35.129488,-15.017404)"
- y2="21.948019"
- x2="21.54595"
- y1="35.318134"
- x1="12.744178"
- gradientUnits="userSpaceOnUse"
- id="linearGradient17812-1"
- xlink:href="#linearGradient17780-5"
- inkscape:collect="always" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient5376-1-5-2">
- <stop
- style="stop-color:#fce94f;stop-opacity:1;"
- offset="0"
- id="stop5378-1-7-2" />
- <stop
- style="stop-color:#ffffff;stop-opacity:1"
- offset="1"
- id="stop5380-0-9-0" />
- </linearGradient>
- <linearGradient
- y2="1326.8596"
- x2="-243.19453"
- y1="1159.4119"
- x1="-868.11768"
- gradientTransform="matrix(0.08620296,0.08620294,-0.08620296,0.08620294,227.41356,-13.853324)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient6089"
- xlink:href="#linearGradient5376-1-5-2"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient6107-8">
- <stop
- id="stop6109-3"
- offset="0"
- style="stop-color:#e0d684;stop-opacity:1" />
- <stop
- style="stop-color:#f7f5e3;stop-opacity:1"
- offset="0.25"
- id="stop6115-8" />
- <stop
- style="stop-color:#e5e3ae;stop-opacity:1;"
- offset="0.5"
- id="stop6113-7" />
- <stop
- id="stop6111-3"
- offset="1"
- style="stop-color:#ebf0d8;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- y2="1684.3187"
- x2="3503.502"
- y1="921.10638"
- x1="1382.548"
- gradientTransform="matrix(0.03776661,0.0377666,-0.03776661,0.0377666,45.03819,-90.402987)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient6134"
- xlink:href="#linearGradient6107-8"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient6107-8-2">
- <stop
- id="stop6109-3-0"
- offset="0"
- style="stop-color:#e0d684;stop-opacity:1" />
- <stop
- style="stop-color:#f7f5e3;stop-opacity:1"
- offset="0.25"
- id="stop6115-8-6" />
- <stop
- style="stop-color:#e5e3ae;stop-opacity:1;"
- offset="0.5"
- id="stop6113-7-3" />
- <stop
- id="stop6111-3-6"
- offset="1"
- style="stop-color:#ebf0d8;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient6156-0">
- <stop
- style="stop-color:#c4a000;stop-opacity:1;"
- offset="0"
- id="stop6158-5" />
- <stop
- style="stop-color:#ffe365;stop-opacity:1"
- offset="1"
- id="stop6160-7" />
- </linearGradient>
- <linearGradient
- y2="1684.3187"
- x2="3503.502"
- y1="921.10638"
- x1="1382.548"
- gradientTransform="matrix(0,0.06759483,0.06759483,0,-134.30354,128.13852)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient6185"
- xlink:href="#linearGradient6107-8-2"
- inkscape:collect="always" />
- <linearGradient
- gradientTransform="matrix(-0.89490214,0.89490212,0.89490212,0.89490214,0.34336141,-23.651613)"
- y2="21.641434"
- x2="5.5136962"
- y1="46.923531"
- x1="16.843721"
- gradientUnits="userSpaceOnUse"
- id="linearGradient6187"
- xlink:href="#linearGradient6156-0"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient6107-8-7">
- <stop
- id="stop6109-3-6"
- offset="0"
- style="stop-color:#e0d684;stop-opacity:1" />
- <stop
- style="stop-color:#f7f5e3;stop-opacity:1"
- offset="0.25"
- id="stop6115-8-3" />
- <stop
- style="stop-color:#e5e3ae;stop-opacity:1;"
- offset="0.5"
- id="stop6113-7-9" />
- <stop
- id="stop6111-3-1"
- offset="1"
- style="stop-color:#ebf0d8;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient6156-4">
- <stop
- style="stop-color:#c4a000;stop-opacity:1;"
- offset="0"
- id="stop6158-1" />
- <stop
- style="stop-color:#ffe365;stop-opacity:1"
- offset="1"
- id="stop6160-1" />
- </linearGradient>
- <linearGradient
- y2="1684.3187"
- x2="3503.502"
- y1="921.10638"
- x1="1382.548"
- gradientTransform="matrix(0,0.06759483,0.06759483,0,-134.30354,128.13852)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient6185-8"
- xlink:href="#linearGradient6107-8-7"
- inkscape:collect="always" />
- <linearGradient
- gradientTransform="matrix(-0.89490214,0.89490212,0.89490212,0.89490214,0.34336141,-23.651613)"
- y2="21.641434"
- x2="5.5136962"
- y1="46.923531"
- x1="16.843721"
- gradientUnits="userSpaceOnUse"
- id="linearGradient6187-6"
- xlink:href="#linearGradient6156-4"
- inkscape:collect="always" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient6249-2">
- <stop
- style="stop-color:#c49f00;stop-opacity:0.627451"
- offset="0"
- id="stop6251-7" />
- <stop
- style="stop-color:#fceca6;stop-opacity:1"
- offset="1"
- id="stop6253-0" />
- </linearGradient>
- <linearGradient
- gradientTransform="matrix(-1.34294e-8,1,1,1.34294e-8,-8.4999999,-9.0000001)"
- y2="7.5"
- x2="8"
- y1="13.8125"
- x1="14.4375"
- gradientUnits="userSpaceOnUse"
- id="linearGradient6270"
- xlink:href="#linearGradient6249-2"
- inkscape:collect="always" />
- <linearGradient
- id="linearGradient6107-8-7-1">
- <stop
- id="stop6109-3-6-5"
- offset="0"
- style="stop-color:#e0d684;stop-opacity:1" />
- <stop
- style="stop-color:#f7f5e3;stop-opacity:1"
- offset="0.25"
- id="stop6115-8-3-1" />
- <stop
- style="stop-color:#e5e3ae;stop-opacity:1;"
- offset="0.5"
- id="stop6113-7-9-4" />
- <stop
- id="stop6111-3-1-8"
- offset="1"
- style="stop-color:#ebf0d8;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient6156-4-3">
- <stop
- style="stop-color:#c4a000;stop-opacity:1;"
- offset="0"
- id="stop6158-1-7" />
- <stop
- style="stop-color:#ffe365;stop-opacity:1"
- offset="1"
- id="stop6160-1-4" />
- </linearGradient>
- <linearGradient
- y2="1684.3187"
- x2="3503.502"
- y1="921.10638"
- x1="1382.548"
- gradientTransform="matrix(0.0377666,0.03776661,0.0377666,-0.03776661,9.578274,160.03315)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient7446"
- xlink:href="#linearGradient6107-8-7-1"
- inkscape:collect="always" />
- <linearGradient
- gradientTransform="matrix(-1.34294e-8,1,1,1.34294e-8,7.3861713e-8,-0.00503904)"
- y2="11.641434"
- x2="-1.2363037"
- y1="14.923531"
- x1="13.593721"
- gradientUnits="userSpaceOnUse"
- id="linearGradient7448"
- xlink:href="#linearGradient6156-4-3"
- inkscape:collect="always" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient8002-5"
- id="linearGradient8008-1"
- x1="14.679631"
- y1="16.403772"
- x2="-6.3245316"
- y2="46.160282"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- id="linearGradient8002-5">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop8004-2" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop8006-6" />
- </linearGradient>
- <linearGradient
- y2="46.160282"
- x2="-6.3245316"
- y1="16.403772"
- x1="14.679631"
- gradientUnits="userSpaceOnUse"
- id="linearGradient8025"
- xlink:href="#linearGradient8002-5"
- inkscape:collect="always" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient7419"
- id="linearGradient8053"
- gradientUnits="userSpaceOnUse"
- x1="-2.0341735"
- y1="213.94829"
- x2="-1.2096813"
- y2="198.59221" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6107-8"
- id="linearGradient3907"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.03776661,0.0377666,-0.03776661,0.0377666,160.03819,9.5782761)"
- x1="1382.548"
- y1="921.10638"
- x2="3503.502"
- y2="1684.3187" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6156"
- id="linearGradient3909"
- gradientUnits="userSpaceOnUse"
- x1="12.892972"
- y1="33.490982"
- x2="5.5136962"
- y2="21.641434" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6958"
- id="linearGradient3911"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0,0.625,-0.676136,0,37.10227,15.875)"
- x1="17"
- y1="45.248375"
- x2="17"
- y2="30.759407" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2816"
- id="linearGradient3913"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0,0.673693,-0.676136,0,37.10227,14.81577)"
- x1="15.406166"
- y1="37.34367"
- x2="16.864777"
- y2="24.249567" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6249-2"
- id="linearGradient3915"
- gradientUnits="userSpaceOnUse"
- x1="44.46957"
- y1="-15.295949"
- x2="31.692965"
- y2="-15.121348" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient7994"
- id="linearGradient3917"
- gradientUnits="userSpaceOnUse"
- x1="6.7611751"
- y1="30.90625"
- x2="19.926325"
- y2="30.90625" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient17498"
- id="linearGradient3987"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-10,-7.0000003)"
- x1="28.897871"
- y1="25.183172"
- x2="19.272995"
- y2="51.558521" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient17780"
- id="linearGradient3989"
- gradientUnits="userSpaceOnUse"
- x1="17.291615"
- y1="31.321718"
- x2="23.125856"
- y2="14.906891" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4542"
- id="linearGradient3991"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.727273,0,0,0.999999,12.27273,-34.84375)"
- x1="33.120464"
- y1="20.5"
- x2="22.328388"
- y2="20.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient8002"
- id="linearGradient3993"
- gradientUnits="userSpaceOnUse"
- x1="14.679631"
- y1="16.403772"
- x2="-6.3245316"
- y2="46.160282" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6107-8-7"
- id="linearGradient4085"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.03776661,0.0377666,-0.03776661,0.0377666,160.03819,9.5782761)"
- x1="1382.548"
- y1="921.10638"
- x2="3503.502"
- y2="1684.3187" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6156-4"
- id="linearGradient4087"
- gradientUnits="userSpaceOnUse"
- x1="13.593721"
- y1="14.923531"
- x2="-1.2363037"
- y2="11.641434" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6762-2"
- id="linearGradient4089"
- gradientUnits="userSpaceOnUse"
- x1="6.5"
- y1="9"
- x2="7.5"
- y2="5.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6833-5"
- id="linearGradient4091"
- gradientUnits="userSpaceOnUse"
- x1="8.7232523"
- y1="6.2651649"
- x2="5.9061942"
- y2="5.2978506" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6742-8"
- id="linearGradient4093"
- gradientUnits="userSpaceOnUse"
- x1="9.9340439"
- y1="4.53125"
- x2="10.562407"
- y2="22.717516" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6249"
- id="linearGradient4095"
- gradientUnits="userSpaceOnUse"
- x1="14.4375"
- y1="13.8125"
- x2="8"
- y2="7.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient17498-6"
- id="linearGradient4097"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-10,-7.0000003)"
- x1="6.6240072"
- y1="10.33393"
- x2="10.96449"
- y2="28.577551" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient17780-5"
- id="linearGradient4099"
- gradientUnits="userSpaceOnUse"
- x1="0.36980912"
- y1="9.6855135"
- x2="-3.3759925"
- y2="3.3339295" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6762"
- id="linearGradient4101"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.7071068,0.7071068,-0.7071068,0.7071068,-3.506058,-0.3596506)"
- x1="6.4375"
- y1="6.7797499"
- x2="8.4537582"
- y2="8.7975082" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6837"
- id="linearGradient4103"
- gradientUnits="userSpaceOnUse"
- x1="-7.96875"
- y1="11.5"
- x2="0.96875"
- y2="11.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6833"
- id="linearGradient4105"
- gradientUnits="userSpaceOnUse"
- x1="8.7232523"
- y1="6.2651649"
- x2="6.1381931"
- y2="6.2651649" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6753"
- id="linearGradient4107"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.7071068,0.7071068,-0.7071068,0.7071068,-3.506058,-0.3596506)"
- x1="9.2127371"
- y1="9.4198446"
- x2="17.65192"
- y2="17.15192" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient7582"
- id="radialGradient4113"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.6206897,0,0.7823276)"
- cx="11.15625"
- cy="2.0625"
- fx="11.15625"
- fy="2.0625"
- r="0.90625" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6107-8-2"
- id="linearGradient4907"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.03776661,0.0377666,-0.03776661,0.0377666,160.03819,9.5782761)"
- x1="1382.548"
- y1="921.10638"
- x2="3503.502"
- y2="1684.3187" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6156-0"
- id="linearGradient4909"
- gradientUnits="userSpaceOnUse"
- x1="16.843721"
- y1="46.923531"
- x2="5.5136962"
- y2="21.641434" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6958"
- id="linearGradient4911"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0,0.625,-0.676136,0,37.10227,15.875)"
- x1="17"
- y1="45.248375"
- x2="17"
- y2="30.759407" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2816"
- id="linearGradient4913"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0,0.673693,-0.676136,0,37.10227,14.81577)"
- x1="15.406166"
- y1="37.34367"
- x2="16.864777"
- y2="24.249567" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6249-2"
- id="linearGradient4915"
- gradientUnits="userSpaceOnUse"
- x1="14.4375"
- y1="13.8125"
- x2="8"
- y2="7.5" />
- <linearGradient
- id="linearGradient6107-8-7-3">
- <stop
- id="stop6109-3-6-54"
- offset="0"
- style="stop-color:#e0d684;stop-opacity:1" />
- <stop
- style="stop-color:#f7f5e3;stop-opacity:1"
- offset="0.25"
- id="stop6115-8-3-3" />
- <stop
- style="stop-color:#e5e3ae;stop-opacity:1;"
- offset="0.5"
- id="stop6113-7-9-6" />
- <stop
- id="stop6111-3-1-4"
- offset="1"
- style="stop-color:#ebf0d8;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- id="linearGradient17498-6-8">
- <stop
- id="stop17500-5-7"
- offset="0"
- style="stop-color:#d3d7cf;stop-opacity:1" />
- <stop
- id="stop17502-8-4"
- offset="0.28330287"
- style="stop-color:#eeeeec;stop-opacity:1" />
- <stop
- id="stop17504-6-9"
- offset="0.33564273"
- style="stop-color:#babdb6;stop-opacity:1" />
- <stop
- style="stop-color:#ffffff;stop-opacity:1"
- offset="0.6530382"
- id="stop17512-3-3" />
- <stop
- id="stop17514-5-1"
- offset="1"
- style="stop-color:#babdb6;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient17780-5-8">
- <stop
- style="stop-color:#888a85;stop-opacity:1;"
- offset="0"
- id="stop17782-68-7" />
- <stop
- style="stop-color:#e2e2e1;stop-opacity:1"
- offset="1"
- id="stop17784-4-9" />
- </linearGradient>
- <linearGradient
- id="linearGradient6762-8"
- inkscape:collect="always">
- <stop
- id="stop6764-8"
- offset="0"
- style="stop-color:#000000;stop-opacity:1;" />
- <stop
- id="stop6766-4"
- offset="1"
- style="stop-color:#000000;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient6837-0"
- inkscape:collect="always">
- <stop
- id="stop6839-8"
- offset="0"
- style="stop-color:#ffffff;stop-opacity:1;" />
- <stop
- id="stop6841-6"
- offset="1"
- style="stop-color:#ffffff;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient6833-2"
- inkscape:collect="always">
- <stop
- id="stop6835-3"
- offset="0"
- style="stop-color:#ffffff;stop-opacity:1;" />
- <stop
- id="stop6837-8"
- offset="1"
- style="stop-color:#ffffff;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6753-0"
- id="linearGradient4107-5"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.7071068,0.7071068,-0.7071068,0.7071068,-3.506058,-0.3596506)"
- x1="9.2127371"
- y1="9.4198446"
- x2="17.65192"
- y2="17.15192" />
- <linearGradient
- id="linearGradient6753-0"
- inkscape:collect="always">
- <stop
- id="stop6755-5"
- offset="0"
- style="stop-color:#888a85;stop-opacity:1" />
- <stop
- id="stop6757-9"
- offset="1"
- style="stop-color:#eeeeec;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient17498"
- id="linearGradient5212"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-10,-7.0000003)"
- x1="28.897871"
- y1="25.183172"
- x2="19.272995"
- y2="51.558521" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient17780"
- id="linearGradient5214"
- gradientUnits="userSpaceOnUse"
- x1="17.291615"
- y1="31.321718"
- x2="23.125856"
- y2="14.906891" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4542"
- id="linearGradient5216"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.727273,0,0,0.999999,12.27273,-34.84375)"
- x1="33.120464"
- y1="20.5"
- x2="22.328388"
- y2="20.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient8002"
- id="linearGradient5218"
- gradientUnits="userSpaceOnUse"
- x1="14.679631"
- y1="16.403772"
- x2="-6.3245316"
- y2="46.160282" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6107-8"
- id="linearGradient5220"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.03776661,0.0377666,-0.03776661,0.0377666,160.03819,9.5782761)"
- x1="1382.548"
- y1="921.10638"
- x2="3503.502"
- y2="1684.3187" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6156"
- id="linearGradient5222"
- gradientUnits="userSpaceOnUse"
- x1="12.892972"
- y1="33.490982"
- x2="5.5136962"
- y2="21.641434" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6958"
- id="linearGradient5224"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0,0.625,-0.676136,0,37.10227,15.875)"
- x1="17"
- y1="45.248375"
- x2="17"
- y2="30.759407" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2816"
- id="linearGradient5226"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0,0.673693,-0.676136,0,37.10227,14.81577)"
- x1="15.406166"
- y1="37.34367"
- x2="16.864777"
- y2="24.249567" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6249-2"
- id="linearGradient5228"
- gradientUnits="userSpaceOnUse"
- x1="44.46957"
- y1="-15.295949"
- x2="31.692965"
- y2="-15.121348" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient7994"
- id="linearGradient5230"
- gradientUnits="userSpaceOnUse"
- x1="6.7611751"
- y1="30.90625"
- x2="19.926325"
- y2="30.90625" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient7582"
- id="radialGradient5256"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,0,0,0.6206897,0,0.7823276)"
- cx="11.15625"
- cy="2.0625"
- fx="11.15625"
- fy="2.0625"
- r="0.90625" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient17498-5"
- id="linearGradient5258"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-10,-7.0000003)"
- x1="28.897871"
- y1="25.183172"
- x2="19.272995"
- y2="51.558521" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient17780-7"
- id="linearGradient5260"
- gradientUnits="userSpaceOnUse"
- x1="12.744178"
- y1="35.318134"
- x2="21.54595"
- y2="21.948019" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4542-7"
- id="linearGradient5262"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.727273,0,0,0.999999,12.27273,-34.84375)"
- x1="33.120464"
- y1="20.5"
- x2="22.328388"
- y2="20.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient8002-5"
- id="linearGradient5264"
- gradientUnits="userSpaceOnUse"
- x1="14.679631"
- y1="16.403772"
- x2="-6.3245316"
- y2="46.160282" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6107-8-2"
- id="linearGradient5266"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.03776661,0.0377666,-0.03776661,0.0377666,160.03819,9.5782761)"
- x1="1382.548"
- y1="921.10638"
- x2="3503.502"
- y2="1684.3187" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6156-0"
- id="linearGradient5268"
- gradientUnits="userSpaceOnUse"
- x1="16.843721"
- y1="46.923531"
- x2="5.5136962"
- y2="21.641434" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6958"
- id="linearGradient5270"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0,0.625,-0.676136,0,37.10227,15.875)"
- x1="17"
- y1="45.248375"
- x2="17"
- y2="30.759407" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2816"
- id="linearGradient5272"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0,0.673693,-0.676136,0,37.10227,14.81577)"
- x1="15.406166"
- y1="37.34367"
- x2="16.864777"
- y2="24.249567" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6249-2"
- id="linearGradient5274"
- gradientUnits="userSpaceOnUse"
- x1="14.4375"
- y1="13.8125"
- x2="8"
- y2="7.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient17498-6"
- id="linearGradient5304"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-10,-7.0000003)"
- x1="6.6240072"
- y1="10.33393"
- x2="10.96449"
- y2="28.577551" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient17780-5"
- id="linearGradient5306"
- gradientUnits="userSpaceOnUse"
- x1="0.36980912"
- y1="9.6855135"
- x2="-3.3759925"
- y2="3.3339295" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6762"
- id="linearGradient5308"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.7071068,0.7071068,-0.7071068,0.7071068,-3.506058,-0.3596506)"
- x1="6.4375"
- y1="6.7797499"
- x2="8.4537582"
- y2="8.7975082" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6837"
- id="linearGradient5310"
- gradientUnits="userSpaceOnUse"
- x1="-7.96875"
- y1="11.5"
- x2="0.96875"
- y2="11.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6833"
- id="linearGradient5312"
- gradientUnits="userSpaceOnUse"
- x1="8.7232523"
- y1="6.2651649"
- x2="6.1381931"
- y2="6.2651649" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6753"
- id="linearGradient5314"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.7071068,0.7071068,-0.7071068,0.7071068,-3.506058,-0.3596506)"
- x1="9.2127371"
- y1="9.4198446"
- x2="17.65192"
- y2="17.15192" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6107-8-7"
- id="linearGradient5316"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.03776661,0.0377666,-0.03776661,0.0377666,160.03819,9.5782761)"
- x1="1382.548"
- y1="921.10638"
- x2="3503.502"
- y2="1684.3187" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6156-4"
- id="linearGradient5318"
- gradientUnits="userSpaceOnUse"
- x1="13.593721"
- y1="14.923531"
- x2="-1.2363037"
- y2="11.641434" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6762-2"
- id="linearGradient5320"
- gradientUnits="userSpaceOnUse"
- x1="6.5"
- y1="9"
- x2="7.5"
- y2="5.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6833-5"
- id="linearGradient5322"
- gradientUnits="userSpaceOnUse"
- x1="8.7232523"
- y1="6.2651649"
- x2="5.9061942"
- y2="5.2978506" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6742-8"
- id="linearGradient5324"
- gradientUnits="userSpaceOnUse"
- x1="9.9340439"
- y1="4.53125"
- x2="10.562407"
- y2="22.717516" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6249"
- id="linearGradient5326"
- gradientUnits="userSpaceOnUse"
- x1="14.4375"
- y1="13.8125"
- x2="8"
- y2="7.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient17498-6-8"
- id="linearGradient5356"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-10,-7.0000003)"
- x1="6.6240072"
- y1="10.33393"
- x2="10.96449"
- y2="28.577551" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient17780-5-8"
- id="linearGradient5358"
- gradientUnits="userSpaceOnUse"
- x1="0.36980912"
- y1="9.6855135"
- x2="-3.3759925"
- y2="3.3339295" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6762-8"
- id="linearGradient5360"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.7071068,0.7071068,-0.7071068,0.7071068,-3.506058,-0.3596506)"
- x1="6.4375"
- y1="6.7797499"
- x2="8.4537582"
- y2="8.7975082" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6837-0"
- id="linearGradient5362"
- gradientUnits="userSpaceOnUse"
- x1="-7.96875"
- y1="11.5"
- x2="0.96875"
- y2="11.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6833-2"
- id="linearGradient5364"
- gradientUnits="userSpaceOnUse"
- x1="8.7232523"
- y1="6.2651649"
- x2="6.1381931"
- y2="6.2651649" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6753-0"
- id="linearGradient5366"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.7071068,0.7071068,-0.7071068,0.7071068,-3.506058,-0.3596506)"
- x1="9.2127371"
- y1="9.4198446"
- x2="17.65192"
- y2="17.15192" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient17498-6"
- id="linearGradient5432"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-10,-7.0000003)"
- x1="6.6240072"
- y1="10.33393"
- x2="10.96449"
- y2="28.577551" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient17780-5"
- id="linearGradient5434"
- gradientUnits="userSpaceOnUse"
- x1="0.36980912"
- y1="9.6855135"
- x2="-3.3759925"
- y2="3.3339295" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6762"
- id="linearGradient5436"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.7071068,0.7071068,-0.7071068,0.7071068,-3.506058,-0.3596506)"
- x1="6.4375"
- y1="6.7797499"
- x2="8.4537582"
- y2="8.7975082" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6837"
- id="linearGradient5438"
- gradientUnits="userSpaceOnUse"
- x1="-7.96875"
- y1="11.5"
- x2="0.96875"
- y2="11.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6833"
- id="linearGradient5440"
- gradientUnits="userSpaceOnUse"
- x1="8.7232523"
- y1="6.2651649"
- x2="6.1381931"
- y2="6.2651649" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6753"
- id="linearGradient5442"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.7071068,0.7071068,-0.7071068,0.7071068,-3.506058,-0.3596506)"
- x1="9.2127371"
- y1="9.4198446"
- x2="17.65192"
- y2="17.15192" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6107-8-7"
- id="linearGradient5444"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.03776661,0.0377666,-0.03776661,0.0377666,160.03819,9.5782761)"
- x1="1382.548"
- y1="921.10638"
- x2="3503.502"
- y2="1684.3187" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6156-4"
- id="linearGradient5446"
- gradientUnits="userSpaceOnUse"
- x1="13.593721"
- y1="14.923531"
- x2="-1.2363037"
- y2="11.641434" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6762-2"
- id="linearGradient5448"
- gradientUnits="userSpaceOnUse"
- x1="6.5"
- y1="9"
- x2="7.5"
- y2="5.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6833-5"
- id="linearGradient5450"
- gradientUnits="userSpaceOnUse"
- x1="8.7232523"
- y1="6.2651649"
- x2="5.9061942"
- y2="5.2978506" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6742-8"
- id="linearGradient5452"
- gradientUnits="userSpaceOnUse"
- x1="9.9340439"
- y1="4.53125"
- x2="10.562407"
- y2="22.717516" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6249"
- id="linearGradient5454"
- gradientUnits="userSpaceOnUse"
- x1="14.4375"
- y1="13.8125"
- x2="8"
- y2="7.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient17498-6"
- id="linearGradient5484"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-10,-7.0000003)"
- x1="6.6240072"
- y1="10.33393"
- x2="10.96449"
- y2="28.577551" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient17780-5"
- id="linearGradient5486"
- gradientUnits="userSpaceOnUse"
- x1="0.36980912"
- y1="9.6855135"
- x2="-3.3759925"
- y2="3.3339295" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6762"
- id="linearGradient5488"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.7071068,0.7071068,-0.7071068,0.7071068,-3.506058,-0.3596506)"
- x1="6.4375"
- y1="6.7797499"
- x2="8.4537582"
- y2="8.7975082" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6837"
- id="linearGradient5490"
- gradientUnits="userSpaceOnUse"
- x1="-7.96875"
- y1="11.5"
- x2="0.96875"
- y2="11.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6833"
- id="linearGradient5492"
- gradientUnits="userSpaceOnUse"
- x1="8.7232523"
- y1="6.2651649"
- x2="6.1381931"
- y2="6.2651649" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6753"
- id="linearGradient5494"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.7071068,0.7071068,-0.7071068,0.7071068,-3.506058,-0.3596506)"
- x1="9.2127371"
- y1="9.4198446"
- x2="17.65192"
- y2="17.15192" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6107-8-7"
- id="linearGradient5496"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.03776661,0.0377666,-0.03776661,0.0377666,160.03819,9.5782761)"
- x1="1382.548"
- y1="921.10638"
- x2="3503.502"
- y2="1684.3187" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6156-4"
- id="linearGradient5498"
- gradientUnits="userSpaceOnUse"
- x1="13.593721"
- y1="14.923531"
- x2="-1.2363037"
- y2="11.641434" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6762-2"
- id="linearGradient5500"
- gradientUnits="userSpaceOnUse"
- x1="6.5"
- y1="9"
- x2="7.5"
- y2="5.5" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6833-5"
- id="linearGradient5502"
- gradientUnits="userSpaceOnUse"
- x1="8.7232523"
- y1="6.2651649"
- x2="5.9061942"
- y2="5.2978506" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6742-8"
- id="linearGradient5504"
- gradientUnits="userSpaceOnUse"
- x1="9.9340439"
- y1="4.53125"
- x2="10.562407"
- y2="22.717516" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6249"
- id="linearGradient5506"
- gradientUnits="userSpaceOnUse"
- x1="14.4375"
- y1="13.8125"
- x2="8"
- y2="7.5" />
- </defs>
- <metadata
- id="metadata4">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:creator>
- <cc:Agent>
- <dc:title>Lapo Calamandrei</dc:title>
- </cc:Agent>
- </dc:creator>
- <dc:source />
- <cc:license
- rdf:resource="" />
- <dc:title>Firewall</dc:title>
- <dc:subject>
- <rdf:Bag />
- </dc:subject>
- <dc:date />
- <dc:rights>
- <cc:Agent>
- <dc:title />
- </cc:Agent>
- </dc:rights>
- <dc:publisher>
- <cc:Agent>
- <dc:title />
- </cc:Agent>
- </dc:publisher>
- <dc:identifier />
- <dc:relation />
- <dc:language />
- <dc:coverage />
- <dc:description />
- <dc:contributor>
- <cc:Agent>
- <dc:title />
- </cc:Agent>
- </dc:contributor>
- </cc:Work>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- style="display:inline"
- inkscape:groupmode="layer"
- inkscape:label="artwork"
- id="layer1">
- <g
- inkscape:groupmode="layer"
- id="layer2"
- inkscape:label="baseplate"
- style="display:none"
- sodipodi:insensitive="true">
- <rect
- style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect6284"
- width="48"
- height="48"
- x="296.0625"
- y="51.99633"
- inkscape:label="48x48" />
- <rect
- inkscape:label="32x32"
- y="127.99634"
- x="303"
- height="32"
- width="32"
- id="rect6592"
- style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- inkscape:label="24x24"
- y="178"
- x="302"
- height="24"
- width="24"
- id="rect5028"
- style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- inkscape:label="16x16"
- y="221"
- x="303"
- height="16"
- width="16"
- id="rect6833"
- style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect6749"
- width="22"
- height="22"
- x="303"
- y="179.05884"
- inkscape:label="22x22" />
- <text
- id="context"
- inkscape:label="context"
- style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;enable-background:new;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
- x="31.87059"
- xml:space="preserve"
- y="18.860306"><tspan
- id="tspan2716"
- sodipodi:role="line"
- x="31.87059"
- y="18.860306"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">apps</tspan></text>
- <text
- id="icon-name"
- inkscape:label="icon-name"
- sodipodi:linespacing="125%"
- style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;display:inline;enable-background:new;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Bold"
- x="199.87057"
- xml:space="preserve"
- y="18.860306"><tspan
- id="tspan3023"
- sodipodi:role="line"
- x="199.87057"
- y="18.860306"
- style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Bold">seahorse</tspan></text>
- <rect
- inkscape:label="256x256"
- y="32"
- x="20"
- height="256"
- width="256"
- id="rect6282"
- style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90" />
- </g>
- <g
- inkscape:groupmode="layer"
- id="layer4"
- inkscape:label="smallsizes"
- style="display:inline">
- <g
- id="g6154"
- style="fill:#ffffff"
- transform="matrix(1.25,0,0,1.25,-78,-47.25)" />
- <g
- transform="matrix(0.01764125,1.4827579,1.4547795,2.9762967e-4,279.22187,67.025361)"
- id="g7413">
- <path
- style="color:#000000;fill:url(#linearGradient3987);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3989);stroke-width:0.68087411px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
- sodipodi:nodetypes="sccccccccccccccccccccccscsssc"
- id="path7415"
- d="M 13.4375,16.5 C 9.5186406,16.51383 9.104267,20.317626 9.104267,20.317626 L 4.5779358,22.440454 5.5274999,28.161436 10.537742,29.545854 10.34375,31.5 l 1.5,1.5 -1.5,1.5 0,1 2,1 0,1 -2,1 0,1 1.5,1.5 -1.5,1.5 0,1 2.5,2 2.5,0 1,-1.5 0,-14 4.843587,-3.351692 0.285612,-4.53777 -3.879353,-1.635941 C 17.697518,18.950089 16.72173,16.488411 13.4375,16.5 z m -0.09375,2 c 1.104,0 2,0.896 2,2 0,1.104 -0.896,2 -2,2 -1.104,0 -2,-0.896 -2,-2 0,-1.104 0.896,-2 2,-2 z"
- inkscape:connector-curvature="0" />
- <rect
- y="-14.84375"
- x="29"
- width="16.311773"
- transform="matrix(0,1,-1,0,0,0)"
- style="opacity:0.61538463;fill:url(#linearGradient3991);fill-opacity:1;fill-rule:evenodd;stroke:none"
- id="rect7423"
- height="0.98128641" />
- <path
- d="m 13.4375,17.28125 c -1.703381,0.006 -2.476193,0.776336 -2.96875,1.5625 -0.4925567,0.786164 -0.59375,1.5625 -0.59375,1.5625 a 0.79285854,0.79285854 0 0 1 -0.4375,0.625 l -4,1.875 0.78125,4.625 4.53125,1.25 a 0.79285854,0.79285854 0 0 1 0.5625,0.8125 l -0.15625,1.59375 1.25,1.25 a 0.79285854,0.79285854 0 0 1 0,1.125 l -1.28125,1.28125 0,0.15625 1.5625,0.78125 A 0.79285854,0.79285854 0 0 1 13.125,36.5 l 0,1 a 0.79285854,0.79285854 0 0 1 -0.4375,0.71875 L 11.125,39 l 0,0.15625 1.28125,1.28125 a 0.79285854,0.79285854 0 0 1 0,1.125 l -1.28125,1.28125 0,0.25 2.03125,1.625 1.75,0 0.65625,-0.96875 0,-13.75 a 0.79285854,0.79285854 0 0 1 0.34375,-0.65625 l 4.53125,-3.125 0.21875,-3.59375 -3.375,-1.4375 A 0.79285854,0.79285854 0 0 1 16.8125,20.40625 c 0.03854,-0.565438 -0.159384,-1.378013 -0.65625,-2 -0.496866,-0.621987 -1.274512,-1.130096 -2.71875,-1.125 z m -0.09375,0.4375 c 1.532943,0 2.78125,1.248307 2.78125,2.78125 0,1.532943 -1.248307,2.78125 -2.78125,2.78125 -1.532943,0 -2.78125,-1.248307 -2.78125,-2.78125 0,-1.532943 1.248307,-2.78125 2.78125,-2.78125 z"
- inkscape:href="#path7415"
- id="path17516"
- style="color:#000000;fill:none;stroke:url(#linearGradient3993);stroke-width:0.68087411px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
- xlink:href="#path7415"
- inkscape:original="M 13.4375 16.5 C 9.5186406 16.51383 9.09375 20.3125 9.09375 20.3125 L 4.5625 22.4375 L 5.53125 28.15625 L 10.53125 29.53125 L 10.34375 31.5 L 11.84375 33 L 10.34375 34.5 L 10.34375 35.5 L 12.34375 36.5 L 12.34375 37.5 L 10.34375 38.5 L 10.34375 39.5 L 11.84375 41 L 10.34375 42.5 L 10.34375 43.5 L 12.84375 45.5 L 15.34375 45.5 L 16.34375 44 L 16.34375 30 L 21.1875 26.65625 L 21.46875 22.125 L 17.59375 20.46875 C 17.697672 18.944242 16.72173 16.488411 13.4375 16.5 z M 13.34375 18.5 C 14.44775 18.5 15.34375 19.396 15.34375 20.5 C 15.34375 21.604 14.44775 22.5 13.34375 22.5 C 12.23975 22.5 11.34375 21.604 11.34375 20.5 C 11.34375 19.396 12.23975 18.5 13.34375 18.5 z "
- inkscape:radius="-0.79277927"
- sodipodi:type="inkscape:offset" />
- </g>
- <path
- transform="matrix(0.5532396,-0.54421924,0.87679765,0.89133046,297.34092,149.00568)"
- style="fill:url(#radialGradient4113);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- sodipodi:type="arc"
- sodipodi:ry="0.5625"
- sodipodi:rx="0.90625"
- sodipodi:cy="2.0625"
- sodipodi:cx="11.15625"
- id="path177"
- d="m 12.0625,2.0625 a 0.90625,0.5625 0 1 1 -1.8125,0 0.90625,0.5625 0 1 1 1.8125,0 z"
- inkscape:export-filename="/data/projects/seahorse/32x32.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90" />
- <g
- transform="matrix(0.00416675,0.99999132,0.99999132,-0.00416675,301.00511,199.0963)"
- id="g6769"
- inkscape:export-filename="/data/projects/seahorse/24x24.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
- <path
- style="color:#000000;fill:url(#linearGradient4097);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4099);stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
- sodipodi:nodetypes="csccccccccccccccccssssc"
- id="path6081"
- d="M -0.5017742,6.4584078 C -0.37175202,4.4522829 -0.8448083,2.5 -3.5060582,2.5 -6.2660581,2.5 -6.6064795,4.8828745 -6.625,6.3689418 l -1.8916614,1.1881832 -0.01828,2.1039435 3.0401445,2.3848735 -0.0052,2.529476 L -4.5,16 l -1,1.5 0,1 2,2 0.9999989,0 L -1.5,19.5 -1.51732,12.045942 1.4161394,9.5495158 1.4878836,7.4939418 z M -2.7989514,5.3726214 c 0.1810001,0.1810001 0.3093592,0.4311066 0.3093592,0.7071068 2e-7,0.5520005 -0.4644656,1.016466 -1.016466,1.016466 -0.552,10e-8 -1.016466,-0.4644656 -1.016466,-1.016466 0,-0.5520004 0.4644656,-1.016466 1.016466,-1.016466 0.2760002,0 0.5261067,0.1283591 0.7071068,0.3093592 z"
- inkscape:connector-curvature="0" />
- <path
- style="opacity:0.06334845;fill:url(#linearGradient4101);fill-opacity:1;fill-rule:evenodd;stroke:none"
- id="path6083"
- d="m 0.71269221,8.9174565 -8.43750041,0 c 0.6214183,1.7412405 2.2649102,3.0000005 4.2187502,3.0000005 1.9538399,0 3.5973328,-1.258759 4.21875021,-3.0000005 z"
- inkscape:connector-curvature="0" />
- <path
- style="opacity:0.52036252;fill:none;stroke:url(#linearGradient4103);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.69999992"
- sodipodi:type="inkscape:offset"
- inkscape:radius="-1.0199475"
- inkscape:original="M -3.5 2.5 C -6.2599999 2.5 -8.5 4.7399998 -8.5 7.5 C -8.4999997 9.5446378 -7.2593482 11.256644 -5.5 12.03125 L -5.5 14.5625 L -4.5 16 L -5.5 17.5 L -5.5 18.5 C -5.5 18.5 -3.5 20.5 -3.5 20.5 L -2.5 20.5 L -1.5 19.5 L -1.53125 12.03125 C 0.22809828 11.256644 1.4999997 9.5446378 1.5 7.5 C 1.5000001 6.12 0.93625013 4.8737501 0.03125 3.96875 C -0.87375013 3.0637498 -2.1200001 2.5 -3.5 2.5 z "
- id="path6765"
- d="m -3.5,3.53125 c -2.2081443,0 -3.96875,1.7606055 -3.96875,3.96875 2e-7,1.6320467 0.9610544,2.971218 2.375,3.59375 a 1.0200495,1.0200495 0 0 1 0.625,0.9375 l 0,2.21875 0.8125,1.15625 a 1.0200495,1.0200495 0 0 1 0,1.15625 l -0.8125,1.21875 0,0.3125 1.375,1.375 0.1875,0 0.375,-0.375 -0.03125,-7.0625 a 1.0200495,1.0200495 0 0 1 0.625,-0.9375 C -0.51947782,10.469423 0.46874976,9.1216542 0.46875,7.5 0.46875008,6.3977756 0.03620106,5.411201 -0.6875,4.6875 -1.411201,3.9637989 -2.3977756,3.53125 -3.5,3.53125 z" />
- <path
- transform="matrix(0,1.3333333,-1.3333333,0,4.493942,-3.3285949)"
- style="fill:none;stroke:url(#linearGradient4105);stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.69999992"
- sodipodi:type="arc"
- sodipodi:ry="1.5"
- sodipodi:rx="1.5"
- sodipodi:cy="6"
- sodipodi:cx="7"
- id="path6085"
- d="M 8.5,6 C 8.5,6.8284271 7.8284271,7.5 7,7.5 6.1715729,7.5 5.5,6.8284271 5.5,6 5.5,5.1715729 6.1715729,4.5 7,4.5 7.8284271,4.5 8.5,5.1715729 8.5,6 z" />
- <path
- style="fill:none;stroke:url(#linearGradient4107);stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
- sodipodi:nodetypes="cc"
- id="path6091"
- d="m -3.1525046,18.37868 0,-5.656855"
- inkscape:connector-curvature="0" />
- </g>
- <g
- style="display:inline;enable-background:new"
- id="g7413-2"
- transform="matrix(0.04996045,0.90113171,0.90113171,-0.04996045,286.95195,137.30619)"
- inkscape:export-filename="/data/projects/seahorse/32x32.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
- <path
- inkscape:connector-curvature="0"
- d="M 13.4375,16.5 C 9.5186406,16.51383 9.104267,20.317626 9.104267,20.317626 L 6.1982808,21.790068 6.2456938,25.750941 10.34375,30 l 0,1.5 1.5,1.5 -1.5,1.5 0,1 2,1 0,1 -2,1 0,1 1.5,1.5 -1.5,1.5 0,1 2.440937,1.274442 3.754218,0.995104 L 17.061728,43.68543 16.34375,30 l 4.843587,-3.351692 0.285612,-4.53777 -3.879353,-1.635941 C 17.697518,18.950089 16.72173,16.488411 13.4375,16.5 z m -0.09375,2 c 1.104,0 2,0.896 2,2 0,1.104 -0.896,2 -2,2 -1.104,0 -2,-0.896 -2,-2 0,-1.104 0.896,-2 2,-2 z"
- id="path7415-5"
- sodipodi:nodetypes="sccccccccccccccccccccccscsssc"
- style="color:#000000;fill:url(#linearGradient17518-1);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient17786-1);stroke-width:1.10801411px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
- <rect
- height="0.98128641"
- id="rect7423-4"
- style="opacity:0.61538463;fill:url(#linearGradient17750);fill-opacity:1;fill-rule:evenodd;stroke:none"
- transform="matrix(0,1,-1,0,0,0)"
- width="16.311773"
- x="29"
- y="-14.84375" />
- <path
- sodipodi:type="inkscape:offset"
- inkscape:radius="-0.96211886"
- inkscape:original="M 13.4375 16.5 C 9.5186406 16.51383 9.09375 20.3125 9.09375 20.3125 L 6.1875 21.78125 L 6.25 25.75 L 10.34375 30 L 10.34375 31.5 L 11.84375 33 L 10.34375 34.5 L 10.34375 35.5 L 12.34375 36.5 L 12.34375 37.5 L 10.34375 38.5 L 10.34375 39.5 L 11.84375 41 L 10.34375 42.5 L 10.34375 43.5 L 12.78125 44.78125 L 16.53125 45.78125 L 17.0625 43.6875 L 16.34375 30 L 21.1875 26.65625 L 21.46875 22.125 L 17.59375 20.46875 C 17.697672 18.944242 16.72173 16.488411 13.4375 16.5 z M 13.34375 18.5 C 14.44775 18.5 15.34375 19.396 15.34375 20.5 C 15.34375 21.604 14.44775 22.5 13.34375 22.5 C 12.23975 22.5 11.34375 21.604 11.34375 20.5 C 11.34375 19.396 12.23975 18.5 13.34375 18.5 z "
- xlink:href="#path7415-5"
- style="color:#000000;fill:none;stroke:url(#linearGradient8008-1);stroke-width:1.10801411px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
- id="path17516-2"
- inkscape:href="#path7415-5"
- d="m 13.4375,17.46875 c -1.648688,0.0058 -2.342056,0.71788 -2.8125,1.46875 -0.470444,0.75087 -0.5625,1.46875 -0.5625,1.46875 a 0.96221508,0.96221508 0 0 1 -0.53125,0.75 l -2.375,1.1875 0.0625,3.03125 3.8125,3.96875 A 0.96221508,0.96221508 0 0 1 11.3125,30 l 0,1.09375 1.21875,1.21875 a 0.96221508,0.96221508 0 0 1 0,1.375 l -1.21875,1.1875 0,0.03125 1.46875,0.71875 A 0.96221508,0.96221508 0 0 1 13.3125,36.5 l 0,1 a 0.96221508,0.96221508 0 0 1 -0.53125,0.875 l -1.46875,0.71875 0,0.03125 1.21875,1.1875 a 0.96221508,0.96221508 0 0 1 0,1.375 l -1.21875,1.21875 0,0.03125 1.71875,0.90625 0.03125,0 2.78125,0.75 0.25,-1 L 15.375,30.0625 a 0.96221508,0.96221508 0 0 1 0.4375,-0.84375 l 4.4375,-3.0625 0.21875,-3.4375 -3.25,-1.375 A 0.96221508,0.96221508 0 0 1 16.625,20.40625 C 16.660679,19.882852 16.497217,19.083307 16.03125,18.5 15.565283,17.916693 14.83947,17.463803 13.4375,17.46875 z m -0.09375,0.0625 c 1.624567,0 2.96875,1.344183 2.96875,2.96875 0,1.624567 -1.344183,2.96875 -2.96875,2.96875 -1.624567,0 -2.96875,-1.344183 -2.96875,-2.96875 0,-1.624567 1.344183,-2.96875 2.96875,-2.96875 z" />
- </g>
- <g
- transform="matrix(-0.03314179,-1.4601652,1.4591995,-1.244622e-4,279.83218,118.08326)"
- id="g6765">
- <path
- style="color:#000000;fill:url(#linearGradient3907);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3909);stroke-width:0.68507993;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- sodipodi:nodetypes="csccccccccccccccccsccsssc"
- id="path6767"
- d="m 13.4375,16.5 c -3.9188838,-1e-6 -7.09375,3.157775 -7.09375,7.0625 2e-7,2.818198 1.6046259,5.300595 4,6.4375 l 0,1.5 1.39524,1.39524 -1.5,1.5 0,1 2.10476,1.10476 0,1 -2,1 0,1 1.3254,1.3254 -1.1508,1.1508 0.374619,1.468424 1.846021,1.880776 2.22064,0 1.38412,-1.3254 0,-14 c 2.372429,-1.145434 4,-3.698516 4,-6.5 0,-3.904724 -2.987366,-7 -6.90625,-7 z m -0.09375,2 c 1.104,0 2,0.896 2,2 0,1.104 -0.896,2 -2,2 -1.104,0 -2,-0.896 -2,-2 0,-1.104 0.896,-2 2,-2 z"
- inkscape:connector-curvature="0" />
- <path
- style="opacity:0.3;fill:url(#linearGradient3911);fill-opacity:1;fill-rule:evenodd;stroke:none"
- id="path6769"
- d="M 18.846598,24 8.028422,24 c 0,2.76 2.423271,5 5.409088,5 2.985817,0 5.409088,-2.24 5.409088,-5 z"
- inkscape:connector-curvature="0" />
- <path
- style="opacity:0.6;fill:url(#linearGradient3913);fill-opacity:1;fill-rule:evenodd;stroke:none"
- sodipodi:type="inkscape:offset"
- inkscape:radius="-0.10364762"
- inkscape:original="M 13.40625 17.53125 C 13.179953 17.535742 12.940048 17.565361 12.71875 17.59375 C 11.746507 17.718472 10.844502 18.056009 10.0625 18.5625 C 10.273788 19.382459 10.603512 20.028723 11 20.59375 C 10.998818 20.562191 11 20.531846 11 20.5 C 11 19.119998 12.119999 18 13.5 18 C 14.880001 18 16 19.119998 16 20.5 C 16 21.880003 14.880001 23 13.5 23 C 13.338115 23 13.184591 22.966937 13.03125 22.9375 C 14.159156 24.243071 15.219875 25.922289 15.46875 29.3125 C 17.839227 28.416828 19.53125 26.324417 19.53125 23.5625 C 19.444481 20.923505 17.958879 18.870351 15.46875 17.84375 C 14.777284 17.614671 14.085142 17.517773 13.40625 17.53125 z M 15.46875 31.96875 C 15.356466 34.978468 14.778907 38.970391 13.4375 44.46875 L 14.78125 44.46875 L 15.46875 43.125 L 15.46875 31.96875 z "
- id="path6832"
- d="m 13.40625,17.625 c -0.218712,0.0043 -0.466555,0.03416 -0.6875,0.0625 -0.93254,0.119629 -1.775868,0.460272 -2.53125,0.9375 0.173643,0.634817 0.42464,1.158079 0.71875,1.625 0.125954,-1.319354 1.241853,-2.34375 2.59375,-2.34375 1.436081,0 2.59375,1.157668 2.59375,2.59375 0,1.436083 -1.157669,2.59375 -2.59375,2.59375 -0.07717,0 -0.14697,-0.02119 -0.21875,-0.03125 1.059311,1.270254 2.021943,2.944267 2.28125,6.09375 2.266237,-0.909044 3.875,-2.925566 3.875,-5.59375 -0.08555,-2.601924 -1.541462,-4.611423 -4,-5.625 -0.680148,-0.225329 -1.363612,-0.325754 -2.03125,-0.3125 z M 15.375,34.6875 c -0.279435,2.585586 -0.854558,5.742004 -1.8125,9.6875 l 1.15625,0 0.65625,-1.3125 0,-8.375 z" />
- <rect
- y="-14.84375"
- x="29"
- width="16.311773"
- transform="matrix(0,1,-1,0,0,0)"
- style="color:#000000;fill:url(#linearGradient3915);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.79014987px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect6776"
- height="0.98128641" />
- <path
- d="m 13.4375,17.3125 c -3.4801559,-1e-6 -6.28125,2.787977 -6.28125,6.25 2e-7,2.508186 1.4242699,4.687474 3.53125,5.6875 A 0.81679083,0.81679083 0 0 1 11.15625,30 l 0,1.1875 1.15625,1.15625 a 0.81679083,0.81679083 0 0 1 0,1.125 l -1.25,1.25 0,0.1875 1.65625,0.875 A 0.81679083,0.81679083 0 0 1 13.15625,36.5 l 0,1 a 0.81679083,0.81679083 0 0 1 -0.4375,0.71875 L 11.15625,39 l 0,0.1875 1.0625,1.0625 A 0.81679083,0.81679083 0 0 1 12.25,41.375 L 11.4375,42.21875 11.625,43 l 1.46875,1.5 1.53125,0 0.90625,-0.84375 0,-13.65625 A 0.81679083,0.81679083 0 0 1 16,29.25 c 2.076228,-1.002425 3.53125,-3.264837 3.53125,-5.75 0,-3.488167 -2.60491,-6.1875 -6.09375,-6.1875 z m -0.09375,0.375 c 1.545891,0 2.8125,1.266609 2.8125,2.8125 0,1.545891 -1.266609,2.8125 -2.8125,2.8125 -1.545891,0 -2.8125,-1.266609 -2.8125,-2.8125 0,-1.545891 1.266609,-2.8125 2.8125,-2.8125 z"
- inkscape:href="#path6767"
- id="path6313"
- style="color:#000000;fill:none;stroke:url(#linearGradient3917);stroke-width:0.68507993;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- xlink:href="#path6767"
- inkscape:original="M 13.4375 16.5 C 9.5186162 16.499999 6.34375 19.657775 6.34375 23.5625 C 6.3437502 26.380698 7.9483759 28.863095 10.34375 30 L 10.34375 31.5 L 11.75 32.90625 L 10.25 34.40625 L 10.25 35.40625 L 12.34375 36.5 L 12.34375 37.5 L 10.34375 38.5 L 10.34375 39.5 L 11.65625 40.8125 L 10.53125 41.96875 L 10.90625 43.4375 L 12.75 45.3125 L 14.96875 45.3125 L 16.34375 44 L 16.34375 30 C 18.716179 28.854566 20.34375 26.301484 20.34375 23.5 C 20.34375 19.595276 17.356384 16.5 13.4375 16.5 z M 13.34375 18.5 C 14.44775 18.5 15.34375 19.396 15.34375 20.5 C 15.34375 21.604 14.44775 22.5 13.34375 22.5 C 12.23975 22.5 11.34375 21.604 11.34375 20.5 C 11.34375 19.396 12.23975 18.5 13.34375 18.5 z "
- inkscape:radius="-0.81670916"
- sodipodi:type="inkscape:offset" />
- </g>
- <g
- transform="matrix(9.4955145e-4,-0.89007416,0.89007416,9.4955145e-4,288.00153,167.01742)"
- id="g193"
- inkscape:export-filename="/data/projects/seahorse/32x32.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
- <path
- style="color:#000000;fill:url(#linearGradient4907);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4909);stroke-width:1.1235013;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- sodipodi:nodetypes="csccccccccccccccccsccsssc"
- id="path195"
- d="m 13.4375,16.5 c -3.9188838,-1e-6 -7.09375,3.157775 -7.09375,7.0625 2e-7,2.818198 1.6046259,5.300595 4,6.4375 l 0,1.5 1.5,1.5 -1.5,1.5 0,1 2,1 0,1 -2,1 0,1 1.5,1.5 -1.5,1.5 0,1 2.5,2 2.5,0 1,-1.5 0,-14 c 2.372429,-1.145434 4,-3.698516 4,-6.5 0,-3.904724 -2.987366,-7 -6.90625,-7 z m -0.09375,2 c 1.104,0 2,0.896 2,2 0,1.104 -0.896,2 -2,2 -1.104,0 -2,-0.896 -2,-2 0,-1.104 0.896,-2 2,-2 z"
- inkscape:connector-curvature="0" />
- <path
- style="opacity:0.3;fill:url(#linearGradient4911);fill-opacity:1;fill-rule:evenodd;stroke:none"
- id="path197"
- d="M 18.846598,24 8.028422,24 c 0,2.76 2.423271,5 5.409088,5 2.985817,0 5.409088,-2.24 5.409088,-5 z"
- inkscape:connector-curvature="0" />
- <path
- xlink:href="#path1884"
- style="fill:none;stroke:#ffffff;stroke-width:1.12350094;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- sodipodi:type="inkscape:offset"
- inkscape:radius="-1.1191492"
- inkscape:original="M 13.4375 16.5 C 9.5186162 16.499999 6.34375 19.657775 6.34375 23.5625 C 6.3437502 26.380698 7.9483759 28.863095 10.34375 30 L 10.34375 31.5 L 11.84375 33 L 10.34375 34.5 L 10.34375 35.5 L 12.34375 36.5 L 12.34375 37.5 L 10.34375 38.5 L 10.34375 39.5 L 11.84375 41 L 10.34375 42.5 L 10.34375 43.5 L 12.84375 45.5 L 15.34375 45.5 L 16.34375 44 L 16.34375 30 C 18.716179 28.854566 20.34375 26.301484 20.34375 23.5 C 20.34375 19.595276 17.356384 16.5 13.4375 16.5 z M 13.34375 18.5 C 14.44775 18.5 15.34375 19.396 15.34375 20.5 C 15.34375 21.604 14.44775 22.5 13.34375 22.5 C 12.23975 22.5 11.34375 21.604 11.34375 20.5 C 11.34375 19.396 12.23975 18.5 13.34375 18.5 z "
- inkscape:href="#path1884"
- id="path199"
- d="m 14.3125,17.78125 c 1.186974,0.442749 2.15625,1.386496 2.15625,2.71875 0,1.70953 -1.41547,3.125 -3.125,3.125 -1.70953,0 -3.125,-1.41547 -3.125,-3.125 0,-1.246778 0.868438,-2.127736 1.9375,-2.625 -2.6767585,0.591658 -4.6875,2.839731 -4.6875,5.6875 2e-7,2.393384 1.3435667,4.488163 3.34375,5.4375 a 1.1192611,1.1192611 0 0 1 0.65625,1 l 0,1.0625 1.15625,1.15625 a 1.1192611,1.1192611 0 0 1 0,1.5625 l -1.0625,1.0625 1.28125,0.65625 a 1.1192611,1.1192611 0 0 1 0.625,1 l 0,1 a 1.1192611,1.1192611 0 0 1 -0.625,1 l -1.28125,0.65625 1.0625,1.0625 a 1.1192611,1.1192611 0 0 1 0,1.5625 l -1.15625,1.15625 0,0.03125 1.75,1.40625 1.53125,0 0.46875,-0.71875 0,-13.65625 a 1.1192611,1.1192611 0 0 1 0.625,-1 c 1.966541,-0.949467 3.375,-3.131976 3.375,-5.5 0,-3.019151 -2.052931,-5.297441 -4.90625,-5.71875 z" />
- <path
- style="opacity:0.6;fill:url(#linearGradient4913);fill-opacity:1;fill-rule:evenodd;stroke:none"
- sodipodi:type="inkscape:offset"
- inkscape:radius="-0.10364762"
- inkscape:original="M 13.40625 17.53125 C 13.179953 17.535742 12.940048 17.565361 12.71875 17.59375 C 11.746507 17.718472 10.844502 18.056009 10.0625 18.5625 C 10.273788 19.382459 10.603512 20.028723 11 20.59375 C 10.998818 20.562191 11 20.531846 11 20.5 C 11 19.119998 12.119999 18 13.5 18 C 14.880001 18 16 19.119998 16 20.5 C 16 21.880003 14.880001 23 13.5 23 C 13.338115 23 13.184591 22.966937 13.03125 22.9375 C 14.159156 24.243071 15.219875 25.922289 15.46875 29.3125 C 17.839227 28.416828 19.53125 26.324417 19.53125 23.5625 C 19.444481 20.923505 17.958879 18.870351 15.46875 17.84375 C 14.777284 17.614671 14.085142 17.517773 13.40625 17.53125 z M 15.46875 31.96875 C 15.356466 34.978468 14.778907 38.970391 13.4375 44.46875 L 14.78125 44.46875 L 15.46875 43.125 L 15.46875 31.96875 z "
- id="path201"
- d="m 13.40625,17.625 c -0.218712,0.0043 -0.466555,0.03416 -0.6875,0.0625 -0.93254,0.119629 -1.775868,0.460272 -2.53125,0.9375 0.173643,0.634817 0.42464,1.158079 0.71875,1.625 0.125954,-1.319354 1.241853,-2.34375 2.59375,-2.34375 1.436081,0 2.59375,1.157668 2.59375,2.59375 0,1.436083 -1.157669,2.59375 -2.59375,2.59375 -0.07717,0 -0.14697,-0.02119 -0.21875,-0.03125 1.059311,1.270254 2.021943,2.944267 2.28125,6.09375 2.266237,-0.909044 3.875,-2.925566 3.875,-5.59375 -0.08555,-2.601924 -1.541462,-4.611423 -4,-5.625 -0.680148,-0.225329 -1.363612,-0.325754 -2.03125,-0.3125 z M 15.375,34.6875 c -0.279435,2.585586 -0.854558,5.742004 -1.8125,9.6875 l 1.15625,0 0.65625,-1.3125 0,-8.375 z" />
- <rect
- y="-14.84375"
- x="29"
- width="16.311773"
- transform="matrix(0,1,-1,0,0,0)"
- style="opacity:0.61538463;color:#000000;fill:none;stroke:url(#linearGradient4915);stroke-width:1.1235013px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect203"
- height="0.98128641" />
- </g>
- <g
- transform="matrix(0.7179987,-0.69604444,0.69604444,0.7179987,300.63641,201.31637)"
- id="g6111"
- style="display:inline;enable-background:new"
- inkscape:export-filename="/data/projects/seahorse/24x24.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
- <path
- style="color:#000000;fill:url(#linearGradient4085);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4087);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="path7124"
- d="m 5.5,0.5 c -1.2798634,3e-8 -2.5554427,0.49294272 -3.53125,1.46875 -1.95161458,1.9516146 -1.95161484,5.1108852 0,7.0625 1.4457774,1.445777 3.5519739,1.790068 5.34375,1.09375 L 8,11 l 1.5,-0.5 0,2 2,0 0,1.5 0.5,0.5 c 0,0 3,0 3,0 l 0.5,-0.5 0,-1.5 -5.375,-5.1875 C 10.821318,5.5207238 10.477027,3.4145274 9.03125,1.96875 8.0554428,0.9929426 6.7798634,0.49999997 5.5,0.5 z m -1,3 c 0.2559728,0 0.5235884,0.086088 0.71875,0.28125 0.3903234,0.3903232 0.3903232,1.0471768 0,1.4375 -0.3903229,0.390323 -1.0471768,0.3903232 -1.4375,0 -0.3903232,-0.3903233 -0.3903232,-1.0471768 0,-1.4375 C 3.9764116,3.5860884 4.2440272,3.5 4.5,3.5 z"
- inkscape:connector-curvature="0" />
- <path
- style="opacity:0.13574662;fill:url(#linearGradient4089);fill-opacity:1;fill-rule:evenodd;stroke:none"
- id="path6142"
- d="M 9.543012,3.5767984 3.5767984,9.543012 C 5.2474506,10.334846 7.2996521,10.062799 8.6812256,8.6812256 10.062799,7.2996522 10.334847,5.2474503 9.543012,3.5767984 z"
- inkscape:connector-curvature="0" />
- <path
- transform="matrix(0.942809,0.942809,-0.942809,0.942809,3.5574935,-7.7562147)"
- style="fill:none;stroke:url(#linearGradient4091);stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.69999992"
- sodipodi:type="arc"
- sodipodi:ry="1.5"
- sodipodi:rx="1.5"
- sodipodi:cy="6"
- sodipodi:cx="7"
- id="path7134"
- d="M 8.5,6 C 8.5,6.8284271 7.8284271,7.5 7,7.5 6.1715729,7.5 5.5,6.8284271 5.5,6 5.5,5.1715729 6.1715729,4.5 7,4.5 7.8284271,4.5 8.5,5.1715729 8.5,6 z" />
- <path
- style="opacity:0.42986426;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.69999992"
- sodipodi:type="inkscape:offset"
- inkscape:radius="-1.0313957"
- inkscape:original="M 5.5 0.5 C 4.2201366 0.50000003 2.9445573 0.99294272 1.96875 1.96875 C 0.017135421 3.9203646 0.017135161 7.0796352 1.96875 9.03125 C 3.4145274 10.477027 5.5207239 10.821318 7.3125 10.125 L 8 11 L 9.5 10.5 L 9.5 12.5 L 11.5 12.5 L 11.5 14 L 12 14.5 C 12 14.5 15 14.5 15 14.5 L 15.5 14 L 15.5 12.5 L 10.125 7.3125 C 10.821318 5.5207238 10.477027 3.4145274 9.03125 1.96875 C 8.0554428 0.9929426 6.7798634 0.49999997 5.5 0.5 z "
- id="path6161"
- d="m 5.5,1.53125 c -1.0150336,0 -2.0316705,0.3754205 -2.8125,1.15625 -1.558081,1.558081 -1.5580812,4.0669188 0,5.625 1.1495193,1.149519 2.8195738,1.3996406 4.25,0.84375 A 1.0314988,1.0314988 0 0 1 8.125,9.5 L 8.375,9.8125 9.1875,9.53125 A 1.0314988,1.0314988 0 0 1 10.53125,10.5 l 0,0.96875 0.96875,0 A 1.0314988,1.0314988 0 0 1 12.53125,12.5 l 0,0.96875 1.9375,0 0,-0.53125 -5.0625,-4.875 a 1.0314988,1.0314988 0 0 1 -0.25,-1.125 C 9.7121406,5.5070736 9.462019,3.8370193 8.3125,2.6875 7.5316707,1.9066705 6.5150336,1.53125 5.5,1.53125 z" />
- <path
- style="fill:none;stroke:url(#linearGradient4093);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0.69999992"
- sodipodi:nodetypes="cccsscsc"
- id="path6750"
- d="m 14.46875,13.46875 0,-0.53125 -5.0625,-4.875 C 9.1016694,7.7733588 9.0027957,7.3284268 9.15625,6.9375 9.7121406,5.5070736 9.462019,3.8370193 8.3125,2.6875 7.5316707,1.9066705 6.5150336,1.53125 5.5,1.53125 c -1.0150336,0 -2.0316705,0.3754205 -2.8125,1.15625 -1.558081,1.558081 -1.5580812,4.0669188 0,5.625"
- inkscape:connector-curvature="0" />
- <path
- style="fill:none;stroke:url(#linearGradient4095);stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
- sodipodi:nodetypes="cc"
- id="path6773"
- d="M 13.5,13 9.5,9"
- inkscape:connector-curvature="0" />
- </g>
- <rect
- style="color:#000000;fill:none;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4939"
- width="31.875473"
- height="31.876154"
- x="300.05255"
- y="135.0625"
- ry="0"
- inkscape:export-filename="/data/projects/seahorse/32x32.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90" />
- <rect
- style="color:#000000;fill:none;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4941"
- width="23.874947"
- height="23.874947"
- x="300.05255"
- y="186.0625"
- inkscape:export-filename="/data/projects/seahorse/24x24.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90" />
- <rect
- style="color:#000000;fill:none;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4943"
- width="15.876632"
- height="15.876632"
- x="300.0625"
- y="219.0625"
- inkscape:export-filename="/data/projects/seahorse/16x16.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90" />
- <rect
- style="color:#000000;fill:none;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4939-4"
- width="47.81321"
- height="47.814232"
- x="300.0625"
- y="68.0625"
- ry="0" />
- <g
- id="g5198"
- transform="matrix(-0.03314179,-1.4601652,1.4591995,-1.244622e-4,231.83218,113.33326)">
- <path
- inkscape:connector-curvature="0"
- d="m 13.4375,16.5 c -3.9188838,-1e-6 -7.09375,3.157775 -7.09375,7.0625 2e-7,2.818198 1.6046259,5.300595 4,6.4375 l 0,1.5 1.39524,1.39524 -1.5,1.5 0,1 2.10476,1.10476 0,1 -2,1 0,1 1.3254,1.3254 -1.1508,1.1508 0.374619,1.468424 1.846021,1.880776 2.22064,0 1.38412,-1.3254 0,-14 c 2.372429,-1.145434 4,-3.698516 4,-6.5 0,-3.904724 -2.987366,-7 -6.90625,-7 z m -0.09375,2 c 1.104,0 2,0.896 2,2 0,1.104 -0.896,2 -2,2 -1.104,0 -2,-0.896 -2,-2 0,-1.104 0.896,-2 2,-2 z"
- id="path5200"
- sodipodi:nodetypes="csccccccccccccccccsccsssc"
- style="color:#000000;fill:url(#linearGradient5220);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5222);stroke-width:0.68507993;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <path
- inkscape:connector-curvature="0"
- d="M 18.846598,24 8.028422,24 c 0,2.76 2.423271,5 5.409088,5 2.985817,0 5.409088,-2.24 5.409088,-5 z"
- id="path5202"
- style="opacity:0.3;fill:url(#linearGradient5224);fill-opacity:1;fill-rule:evenodd;stroke:none" />
- <path
- d="m 13.40625,17.625 c -0.218712,0.0043 -0.466555,0.03416 -0.6875,0.0625 -0.93254,0.119629 -1.775868,0.460272 -2.53125,0.9375 0.173643,0.634817 0.42464,1.158079 0.71875,1.625 0.125954,-1.319354 1.241853,-2.34375 2.59375,-2.34375 1.436081,0 2.59375,1.157668 2.59375,2.59375 0,1.436083 -1.157669,2.59375 -2.59375,2.59375 -0.07717,0 -0.14697,-0.02119 -0.21875,-0.03125 1.059311,1.270254 2.021943,2.944267 2.28125,6.09375 2.266237,-0.909044 3.875,-2.925566 3.875,-5.59375 -0.08555,-2.601924 -1.541462,-4.611423 -4,-5.625 -0.680148,-0.225329 -1.363612,-0.325754 -2.03125,-0.3125 z M 15.375,34.6875 c -0.279435,2.585586 -0.854558,5.742004 -1.8125,9.6875 l 1.15625,0 0.65625,-1.3125 0,-8.375 z"
- id="path5204"
- inkscape:original="M 13.40625 17.53125 C 13.179953 17.535742 12.940048 17.565361 12.71875 17.59375 C 11.746507 17.718472 10.844502 18.056009 10.0625 18.5625 C 10.273788 19.382459 10.603512 20.028723 11 20.59375 C 10.998818 20.562191 11 20.531846 11 20.5 C 11 19.119998 12.119999 18 13.5 18 C 14.880001 18 16 19.119998 16 20.5 C 16 21.880003 14.880001 23 13.5 23 C 13.338115 23 13.184591 22.966937 13.03125 22.9375 C 14.159156 24.243071 15.219875 25.922289 15.46875 29.3125 C 17.839227 28.416828 19.53125 26.324417 19.53125 23.5625 C 19.444481 20.923505 17.958879 18.870351 15.46875 17.84375 C 14.777284 17.614671 14.085142 17.517773 13.40625 17.53125 z M 15.46875 31.96875 C 15.356466 34.978468 14.778907 38.970391 13.4375 44.46875 L 14.78125 44.46875 L 15.46875 43.125 L 15.46875 31.96875 z "
- inkscape:radius="-0.10364762"
- sodipodi:type="inkscape:offset"
- style="opacity:0.6;fill:url(#linearGradient5226);fill-opacity:1;fill-rule:evenodd;stroke:none" />
- <rect
- height="0.98128641"
- id="rect5206"
- style="color:#000000;fill:url(#linearGradient5228);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.79014987px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- transform="matrix(0,1,-1,0,0,0)"
- width="16.311773"
- x="29"
- y="-14.84375" />
- <path
- sodipodi:type="inkscape:offset"
- inkscape:radius="-0.81670916"
- inkscape:original="M 13.4375 16.5 C 9.5186162 16.499999 6.34375 19.657775 6.34375 23.5625 C 6.3437502 26.380698 7.9483759 28.863095 10.34375 30 L 10.34375 31.5 L 11.75 32.90625 L 10.25 34.40625 L 10.25 35.40625 L 12.34375 36.5 L 12.34375 37.5 L 10.34375 38.5 L 10.34375 39.5 L 11.65625 40.8125 L 10.53125 41.96875 L 10.90625 43.4375 L 12.75 45.3125 L 14.96875 45.3125 L 16.34375 44 L 16.34375 30 C 18.716179 28.854566 20.34375 26.301484 20.34375 23.5 C 20.34375 19.595276 17.356384 16.5 13.4375 16.5 z M 13.34375 18.5 C 14.44775 18.5 15.34375 19.396 15.34375 20.5 C 15.34375 21.604 14.44775 22.5 13.34375 22.5 C 12.23975 22.5 11.34375 21.604 11.34375 20.5 C 11.34375 19.396 12.23975 18.5 13.34375 18.5 z "
- xlink:href="#path6767"
- style="color:#000000;fill:none;stroke:url(#linearGradient5230);stroke-width:0.68507993;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="path5208"
- inkscape:href="#path6767"
- d="m 13.4375,17.3125 c -3.4801559,-1e-6 -6.28125,2.787977 -6.28125,6.25 2e-7,2.508186 1.4242699,4.687474 3.53125,5.6875 A 0.81679083,0.81679083 0 0 1 11.15625,30 l 0,1.1875 1.15625,1.15625 a 0.81679083,0.81679083 0 0 1 0,1.125 l -1.25,1.25 0,0.1875 1.65625,0.875 A 0.81679083,0.81679083 0 0 1 13.15625,36.5 l 0,1 a 0.81679083,0.81679083 0 0 1 -0.4375,0.71875 L 11.15625,39 l 0,0.1875 1.0625,1.0625 A 0.81679083,0.81679083 0 0 1 12.25,41.375 L 11.4375,42.21875 11.625,43 l 1.46875,1.5 1.53125,0 0.90625,-0.84375 0,-13.65625 A 0.81679083,0.81679083 0 0 1 16,29.25 c 2.076228,-1.002425 3.53125,-3.264837 3.53125,-5.75 0,-3.488167 -2.60491,-6.1875 -6.09375,-6.1875 z m -0.09375,0.375 c 1.545891,0 2.8125,1.266609 2.8125,2.8125 0,1.545891 -1.266609,2.8125 -2.8125,2.8125 -1.545891,0 -2.8125,-1.266609 -2.8125,-2.8125 0,-1.545891 1.266609,-2.8125 2.8125,-2.8125 z" />
- </g>
- <rect
- ry="0"
- y="68.0625"
- x="252.0625"
- height="47.814232"
- width="47.81321"
- id="rect5210"
- style="color:#000000;fill:none;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <path
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- inkscape:export-filename="/data/projects/gnome-keyring/gcr/icons/32x32.png"
- d="m 12.0625,2.0625 a 0.90625,0.5625 0 1 1 -1.8125,0 0.90625,0.5625 0 1 1 1.8125,0 z"
- id="path5232"
- sodipodi:cx="11.15625"
- sodipodi:cy="2.0625"
- sodipodi:rx="0.90625"
- sodipodi:ry="0.5625"
- sodipodi:type="arc"
- style="fill:url(#radialGradient5256);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- transform="matrix(0.5532396,-0.54421924,0.87679765,0.89133046,265.34092,149.00568)" />
- <g
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- inkscape:export-filename="/data/projects/gnome-keyring/gcr/icons/32x32.png"
- id="g5242"
- transform="matrix(9.4955145e-4,-0.89007416,0.89007416,9.4955145e-4,256.00153,164.01742)">
- <path
- inkscape:connector-curvature="0"
- d="m 13.4375,16.5 c -3.9188838,-1e-6 -7.09375,3.157775 -7.09375,7.0625 2e-7,2.818198 1.6046259,5.300595 4,6.4375 l 0,1.5 1.5,1.5 -1.5,1.5 0,1 2,1 0,1 -2,1 0,1 1.5,1.5 -1.5,1.5 0,1 2.5,2 2.5,0 1,-1.5 0,-14 c 2.372429,-1.145434 4,-3.698516 4,-6.5 0,-3.904724 -2.987366,-7 -6.90625,-7 z m -0.09375,2 c 1.104,0 2,0.896 2,2 0,1.104 -0.896,2 -2,2 -1.104,0 -2,-0.896 -2,-2 0,-1.104 0.896,-2 2,-2 z"
- id="path5244"
- sodipodi:nodetypes="csccccccccccccccccsccsssc"
- style="color:#000000;fill:url(#linearGradient5266);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5268);stroke-width:1.1235013;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <path
- inkscape:connector-curvature="0"
- d="M 18.846598,24 8.028422,24 c 0,2.76 2.423271,5 5.409088,5 2.985817,0 5.409088,-2.24 5.409088,-5 z"
- id="path5246"
- style="opacity:0.3;fill:url(#linearGradient5270);fill-opacity:1;fill-rule:evenodd;stroke:none" />
- <path
- d="m 14.3125,17.78125 c 1.186974,0.442749 2.15625,1.386496 2.15625,2.71875 0,1.70953 -1.41547,3.125 -3.125,3.125 -1.70953,0 -3.125,-1.41547 -3.125,-3.125 0,-1.246778 0.868438,-2.127736 1.9375,-2.625 -2.6767585,0.591658 -4.6875,2.839731 -4.6875,5.6875 2e-7,2.393384 1.3435667,4.488163 3.34375,5.4375 a 1.1192611,1.1192611 0 0 1 0.65625,1 l 0,1.0625 1.15625,1.15625 a 1.1192611,1.1192611 0 0 1 0,1.5625 l -1.0625,1.0625 1.28125,0.65625 a 1.1192611,1.1192611 0 0 1 0.625,1 l 0,1 a 1.1192611,1.1192611 0 0 1 -0.625,1 l -1.28125,0.65625 1.0625,1.0625 a 1.1192611,1.1192611 0 0 1 0,1.5625 l -1.15625,1.15625 0,0.03125 1.75,1.40625 1.53125,0 0.46875,-0.71875 0,-13.65625 a 1.1192611,1.1192611 0 0 1 0.625,-1 c 1.966541,-0.949467 3.375,-3.131976 3.375,-5.5 0,-3.019151 -2.052931,-5.297441 -4.90625,-5.71875 z"
- id="path5248"
- inkscape:href="#path1884"
- inkscape:original="M 13.4375 16.5 C 9.5186162 16.499999 6.34375 19.657775 6.34375 23.5625 C 6.3437502 26.380698 7.9483759 28.863095 10.34375 30 L 10.34375 31.5 L 11.84375 33 L 10.34375 34.5 L 10.34375 35.5 L 12.34375 36.5 L 12.34375 37.5 L 10.34375 38.5 L 10.34375 39.5 L 11.84375 41 L 10.34375 42.5 L 10.34375 43.5 L 12.84375 45.5 L 15.34375 45.5 L 16.34375 44 L 16.34375 30 C 18.716179 28.854566 20.34375 26.301484 20.34375 23.5 C 20.34375 19.595276 17.356384 16.5 13.4375 16.5 z M 13.34375 18.5 C 14.44775 18.5 15.34375 19.396 15.34375 20.5 C 15.34375 21.604 14.44775 22.5 13.34375 22.5 C 12.23975 22.5 11.34375 21.604 11.34375 20.5 C 11.34375 19.396 12.23975 18.5 13.34375 18.5 z "
- inkscape:radius="-1.1191492"
- sodipodi:type="inkscape:offset"
- style="fill:none;stroke:#ffffff;stroke-width:1.12350094;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- xlink:href="#path1884" />
- <path
- d="m 13.40625,17.625 c -0.218712,0.0043 -0.466555,0.03416 -0.6875,0.0625 -0.93254,0.119629 -1.775868,0.460272 -2.53125,0.9375 0.173643,0.634817 0.42464,1.158079 0.71875,1.625 0.125954,-1.319354 1.241853,-2.34375 2.59375,-2.34375 1.436081,0 2.59375,1.157668 2.59375,2.59375 0,1.436083 -1.157669,2.59375 -2.59375,2.59375 -0.07717,0 -0.14697,-0.02119 -0.21875,-0.03125 1.059311,1.270254 2.021943,2.944267 2.28125,6.09375 2.266237,-0.909044 3.875,-2.925566 3.875,-5.59375 -0.08555,-2.601924 -1.541462,-4.611423 -4,-5.625 -0.680148,-0.225329 -1.363612,-0.325754 -2.03125,-0.3125 z M 15.375,34.6875 c -0.279435,2.585586 -0.854558,5.742004 -1.8125,9.6875 l 1.15625,0 0.65625,-1.3125 0,-8.375 z"
- id="path5250"
- inkscape:original="M 13.40625 17.53125 C 13.179953 17.535742 12.940048 17.565361 12.71875 17.59375 C 11.746507 17.718472 10.844502 18.056009 10.0625 18.5625 C 10.273788 19.382459 10.603512 20.028723 11 20.59375 C 10.998818 20.562191 11 20.531846 11 20.5 C 11 19.119998 12.119999 18 13.5 18 C 14.880001 18 16 19.119998 16 20.5 C 16 21.880003 14.880001 23 13.5 23 C 13.338115 23 13.184591 22.966937 13.03125 22.9375 C 14.159156 24.243071 15.219875 25.922289 15.46875 29.3125 C 17.839227 28.416828 19.53125 26.324417 19.53125 23.5625 C 19.444481 20.923505 17.958879 18.870351 15.46875 17.84375 C 14.777284 17.614671 14.085142 17.517773 13.40625 17.53125 z M 15.46875 31.96875 C 15.356466 34.978468 14.778907 38.970391 13.4375 44.46875 L 14.78125 44.46875 L 15.46875 43.125 L 15.46875 31.96875 z "
- inkscape:radius="-0.10364762"
- sodipodi:type="inkscape:offset"
- style="opacity:0.6;fill:url(#linearGradient5272);fill-opacity:1;fill-rule:evenodd;stroke:none" />
- <rect
- height="0.98128641"
- id="rect5252"
- style="opacity:0.61538463;color:#000000;fill:none;stroke:url(#linearGradient5274);stroke-width:1.1235013px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- transform="matrix(0,1,-1,0,0,0)"
- width="16.311773"
- x="29"
- y="-14.84375" />
- </g>
- <rect
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- inkscape:export-filename="/data/projects/gnome-keyring/gcr/icons/32x32.png"
- ry="0"
- y="135.0625"
- x="268.05255"
- height="31.876154"
- width="31.875473"
- id="rect5254"
- style="color:#000000;fill:none;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <g
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- inkscape:export-filename="/data/projects/gnome-keyring/gcr/icons/24x24.png"
- style="display:inline;enable-background:new"
- id="g5288"
- transform="matrix(0.7179987,-0.69604444,0.69604444,0.7179987,276.63641,199.31637)">
- <path
- inkscape:connector-curvature="0"
- d="m 5.5,0.5 c -1.2798634,3e-8 -2.5554427,0.49294272 -3.53125,1.46875 -1.95161458,1.9516146 -1.95161484,5.1108852 0,7.0625 1.4457774,1.445777 3.5519739,1.790068 5.34375,1.09375 L 8,11 l 1.5,-0.5 0,2 2,0 0,1.5 0.5,0.5 c 0,0 3,0 3,0 l 0.5,-0.5 0,-1.5 -5.375,-5.1875 C 10.821318,5.5207238 10.477027,3.4145274 9.03125,1.96875 8.0554428,0.9929426 6.7798634,0.49999997 5.5,0.5 z m -1,3 c 0.2559728,0 0.5235884,0.086088 0.71875,0.28125 0.3903234,0.3903232 0.3903232,1.0471768 0,1.4375 -0.3903229,0.390323 -1.0471768,0.3903232 -1.4375,0 -0.3903232,-0.3903233 -0.3903232,-1.0471768 0,-1.4375 C 3.9764116,3.5860884 4.2440272,3.5 4.5,3.5 z"
- id="path5290"
- style="color:#000000;fill:url(#linearGradient5316);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5318);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <path
- inkscape:connector-curvature="0"
- d="M 9.543012,3.5767984 3.5767984,9.543012 C 5.2474506,10.334846 7.2996521,10.062799 8.6812256,8.6812256 10.062799,7.2996522 10.334847,5.2474503 9.543012,3.5767984 z"
- id="path5292"
- style="opacity:0.13574662;fill:url(#linearGradient5320);fill-opacity:1;fill-rule:evenodd;stroke:none" />
- <path
- d="M 8.5,6 C 8.5,6.8284271 7.8284271,7.5 7,7.5 6.1715729,7.5 5.5,6.8284271 5.5,6 5.5,5.1715729 6.1715729,4.5 7,4.5 7.8284271,4.5 8.5,5.1715729 8.5,6 z"
- id="path5294"
- sodipodi:cx="7"
- sodipodi:cy="6"
- sodipodi:rx="1.5"
- sodipodi:ry="1.5"
- sodipodi:type="arc"
- style="fill:none;stroke:url(#linearGradient5322);stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.69999992"
- transform="matrix(0.942809,0.942809,-0.942809,0.942809,3.5574935,-7.7562147)" />
- <path
- d="m 5.5,1.53125 c -1.0150336,0 -2.0316705,0.3754205 -2.8125,1.15625 -1.558081,1.558081 -1.5580812,4.0669188 0,5.625 1.1495193,1.149519 2.8195738,1.3996406 4.25,0.84375 A 1.0314988,1.0314988 0 0 1 8.125,9.5 L 8.375,9.8125 9.1875,9.53125 A 1.0314988,1.0314988 0 0 1 10.53125,10.5 l 0,0.96875 0.96875,0 A 1.0314988,1.0314988 0 0 1 12.53125,12.5 l 0,0.96875 1.9375,0 0,-0.53125 -5.0625,-4.875 a 1.0314988,1.0314988 0 0 1 -0.25,-1.125 C 9.7121406,5.5070736 9.462019,3.8370193 8.3125,2.6875 7.5316707,1.9066705 6.5150336,1.53125 5.5,1.53125 z"
- id="path5296"
- inkscape:original="M 5.5 0.5 C 4.2201366 0.50000003 2.9445573 0.99294272 1.96875 1.96875 C 0.017135421 3.9203646 0.017135161 7.0796352 1.96875 9.03125 C 3.4145274 10.477027 5.5207239 10.821318 7.3125 10.125 L 8 11 L 9.5 10.5 L 9.5 12.5 L 11.5 12.5 L 11.5 14 L 12 14.5 C 12 14.5 15 14.5 15 14.5 L 15.5 14 L 15.5 12.5 L 10.125 7.3125 C 10.821318 5.5207238 10.477027 3.4145274 9.03125 1.96875 C 8.0554428 0.9929426 6.7798634 0.49999997 5.5 0.5 z "
- inkscape:radius="-1.0313957"
- sodipodi:type="inkscape:offset"
- style="opacity:0.42986426;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.69999992" />
- <path
- inkscape:connector-curvature="0"
- d="m 14.46875,13.46875 0,-0.53125 -5.0625,-4.875 C 9.1016694,7.7733588 9.0027957,7.3284268 9.15625,6.9375 9.7121406,5.5070736 9.462019,3.8370193 8.3125,2.6875 7.5316707,1.9066705 6.5150336,1.53125 5.5,1.53125 c -1.0150336,0 -2.0316705,0.3754205 -2.8125,1.15625 -1.558081,1.558081 -1.5580812,4.0669188 0,5.625"
- id="path5298"
- sodipodi:nodetypes="cccsscsc"
- style="fill:none;stroke:url(#linearGradient5324);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0.69999992" />
- <path
- inkscape:connector-curvature="0"
- d="M 13.5,13 9.5,9"
- id="path5300"
- sodipodi:nodetypes="cc"
- style="fill:none;stroke:url(#linearGradient5326);stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
- </g>
- <rect
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- inkscape:export-filename="/data/projects/gnome-keyring/gcr/icons/24x24.png"
- y="186.0625"
- x="276.05255"
- height="23.874947"
- width="23.874947"
- id="rect5302"
- style="color:#000000;fill:none;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <g
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- inkscape:export-filename="/data/projects/seahorse/16x16.png"
- id="g5406"
- transform="matrix(0.00307324,0.73755651,0.73755651,-0.00307324,299.50757,227.71465)">
- <path
- inkscape:connector-curvature="0"
- d="M -0.5017742,6.4584078 C -0.37175202,4.4522829 -0.8448083,2.5 -3.5060582,2.5 -6.2660581,2.5 -6.6064795,4.8828745 -6.625,6.3689418 l -1.8916614,1.1881832 -0.01828,2.1039435 3.0401445,2.3848735 -0.0052,2.529476 L -4.5,16 l -1,1.5 0,1 2,2 0.9999989,0 L -1.5,19.5 -1.51732,12.045942 1.4161394,9.5495158 1.4878836,7.4939418 z M -2.7989514,5.3726214 c 0.1810001,0.1810001 0.3093592,0.4311066 0.3093592,0.7071068 2e-7,0.5520005 -0.4644656,1.016466 -1.016466,1.016466 -0.552,10e-8 -1.016466,-0.4644656 -1.016466,-1.016466 0,-0.5520004 0.4644656,-1.016466 1.016466,-1.016466 0.2760002,0 0.5261067,0.1283591 0.7071068,0.3093592 z"
- id="path5408"
- sodipodi:nodetypes="csccccccccccccccccssssc"
- style="color:#000000;fill:url(#linearGradient5432);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5434);stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
- <path
- inkscape:connector-curvature="0"
- d="m 0.71269221,8.9174565 -8.43750041,0 c 0.6214183,1.7412405 2.2649102,3.0000005 4.2187502,3.0000005 1.9538399,0 3.5973328,-1.258759 4.21875021,-3.0000005 z"
- id="path5410"
- style="opacity:0.06334845;fill:url(#linearGradient5436);fill-opacity:1;fill-rule:evenodd;stroke:none" />
- <path
- d="m -3.5,3.53125 c -2.2081443,0 -3.96875,1.7606055 -3.96875,3.96875 2e-7,1.6320467 0.9610544,2.971218 2.375,3.59375 a 1.0200495,1.0200495 0 0 1 0.625,0.9375 l 0,2.21875 0.8125,1.15625 a 1.0200495,1.0200495 0 0 1 0,1.15625 l -0.8125,1.21875 0,0.3125 1.375,1.375 0.1875,0 0.375,-0.375 -0.03125,-7.0625 a 1.0200495,1.0200495 0 0 1 0.625,-0.9375 C -0.51947782,10.469423 0.46874976,9.1216542 0.46875,7.5 0.46875008,6.3977756 0.03620106,5.411201 -0.6875,4.6875 -1.411201,3.9637989 -2.3977756,3.53125 -3.5,3.53125 z"
- id="path5412"
- inkscape:original="M -3.5 2.5 C -6.2599999 2.5 -8.5 4.7399998 -8.5 7.5 C -8.4999997 9.5446378 -7.2593482 11.256644 -5.5 12.03125 L -5.5 14.5625 L -4.5 16 L -5.5 17.5 L -5.5 18.5 C -5.5 18.5 -3.5 20.5 -3.5 20.5 L -2.5 20.5 L -1.5 19.5 L -1.53125 12.03125 C 0.22809828 11.256644 1.4999997 9.5446378 1.5 7.5 C 1.5000001 6.12 0.93625013 4.8737501 0.03125 3.96875 C -0.87375013 3.0637498 -2.1200001 2.5 -3.5 2.5 z "
- inkscape:radius="-1.0199475"
- sodipodi:type="inkscape:offset"
- style="opacity:0.52036252;fill:none;stroke:url(#linearGradient5438);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.69999992" />
- <path
- d="M 8.5,6 C 8.5,6.8284271 7.8284271,7.5 7,7.5 6.1715729,7.5 5.5,6.8284271 5.5,6 5.5,5.1715729 6.1715729,4.5 7,4.5 7.8284271,4.5 8.5,5.1715729 8.5,6 z"
- id="path5414"
- sodipodi:cx="7"
- sodipodi:cy="6"
- sodipodi:rx="1.5"
- sodipodi:ry="1.5"
- sodipodi:type="arc"
- style="fill:none;stroke:url(#linearGradient5440);stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.69999992"
- transform="matrix(0,1.3333333,-1.3333333,0,4.493942,-3.3285949)" />
- <path
- inkscape:connector-curvature="0"
- d="m -3.1525046,18.37868 0,-5.656855"
- id="path5416"
- sodipodi:nodetypes="cc"
- style="fill:none;stroke:url(#linearGradient5442);stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
- </g>
- <g
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- inkscape:export-filename="/data/projects/seahorse/16x16.png"
- style="display:inline;enable-background:new"
- id="g5418"
- transform="matrix(0.52956921,-0.51337657,0.51337657,0.52956921,299.23562,229.35209)">
- <path
- inkscape:connector-curvature="0"
- d="m 5.5,0.5 c -1.2798634,3e-8 -2.5554427,0.49294272 -3.53125,1.46875 -1.95161458,1.9516146 -1.95161484,5.1108852 0,7.0625 1.4457774,1.445777 3.5519739,1.790068 5.34375,1.09375 L 8,11 l 1.5,-0.5 0,2 2,0 0,1.5 0.5,0.5 c 0,0 3,0 3,0 l 0.5,-0.5 0,-1.5 -5.375,-5.1875 C 10.821318,5.5207238 10.477027,3.4145274 9.03125,1.96875 8.0554428,0.9929426 6.7798634,0.49999997 5.5,0.5 z m -1,3 c 0.2559728,0 0.5235884,0.086088 0.71875,0.28125 0.3903234,0.3903232 0.3903232,1.0471768 0,1.4375 -0.3903229,0.390323 -1.0471768,0.3903232 -1.4375,0 -0.3903232,-0.3903233 -0.3903232,-1.0471768 0,-1.4375 C 3.9764116,3.5860884 4.2440272,3.5 4.5,3.5 z"
- id="path5420"
- style="color:#000000;fill:url(#linearGradient5444);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5446);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <path
- inkscape:connector-curvature="0"
- d="M 9.543012,3.5767984 3.5767984,9.543012 C 5.2474506,10.334846 7.2996521,10.062799 8.6812256,8.6812256 10.062799,7.2996522 10.334847,5.2474503 9.543012,3.5767984 z"
- id="path5422"
- style="opacity:0.13574662;fill:url(#linearGradient5448);fill-opacity:1;fill-rule:evenodd;stroke:none" />
- <path
- d="M 8.5,6 C 8.5,6.8284271 7.8284271,7.5 7,7.5 6.1715729,7.5 5.5,6.8284271 5.5,6 5.5,5.1715729 6.1715729,4.5 7,4.5 7.8284271,4.5 8.5,5.1715729 8.5,6 z"
- id="path5424"
- sodipodi:cx="7"
- sodipodi:cy="6"
- sodipodi:rx="1.5"
- sodipodi:ry="1.5"
- sodipodi:type="arc"
- style="fill:none;stroke:url(#linearGradient5450);stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.69999992"
- transform="matrix(0.942809,0.942809,-0.942809,0.942809,3.5574935,-7.7562147)" />
- <path
- d="m 5.5,1.53125 c -1.0150336,0 -2.0316705,0.3754205 -2.8125,1.15625 -1.558081,1.558081 -1.5580812,4.0669188 0,5.625 1.1495193,1.149519 2.8195738,1.3996406 4.25,0.84375 A 1.0314988,1.0314988 0 0 1 8.125,9.5 L 8.375,9.8125 9.1875,9.53125 A 1.0314988,1.0314988 0 0 1 10.53125,10.5 l 0,0.96875 0.96875,0 A 1.0314988,1.0314988 0 0 1 12.53125,12.5 l 0,0.96875 1.9375,0 0,-0.53125 -5.0625,-4.875 a 1.0314988,1.0314988 0 0 1 -0.25,-1.125 C 9.7121406,5.5070736 9.462019,3.8370193 8.3125,2.6875 7.5316707,1.9066705 6.5150336,1.53125 5.5,1.53125 z"
- id="path5426"
- inkscape:original="M 5.5 0.5 C 4.2201366 0.50000003 2.9445573 0.99294272 1.96875 1.96875 C 0.017135421 3.9203646 0.017135161 7.0796352 1.96875 9.03125 C 3.4145274 10.477027 5.5207239 10.821318 7.3125 10.125 L 8 11 L 9.5 10.5 L 9.5 12.5 L 11.5 12.5 L 11.5 14 L 12 14.5 C 12 14.5 15 14.5 15 14.5 L 15.5 14 L 15.5 12.5 L 10.125 7.3125 C 10.821318 5.5207238 10.477027 3.4145274 9.03125 1.96875 C 8.0554428 0.9929426 6.7798634 0.49999997 5.5 0.5 z "
- inkscape:radius="-1.0313957"
- sodipodi:type="inkscape:offset"
- style="opacity:0.42986426;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.69999992" />
- <path
- inkscape:connector-curvature="0"
- d="m 14.46875,13.46875 0,-0.53125 -5.0625,-4.875 C 9.1016694,7.7733588 9.0027957,7.3284268 9.15625,6.9375 9.7121406,5.5070736 9.462019,3.8370193 8.3125,2.6875 7.5316707,1.9066705 6.5150336,1.53125 5.5,1.53125 c -1.0150336,0 -2.0316705,0.3754205 -2.8125,1.15625 -1.558081,1.558081 -1.5580812,4.0669188 0,5.625"
- id="path5428"
- sodipodi:nodetypes="cccsscsc"
- style="fill:none;stroke:url(#linearGradient5452);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0.69999992" />
- <path
- inkscape:connector-curvature="0"
- d="M 13.5,13 9.5,9"
- id="path5430"
- sodipodi:nodetypes="cc"
- style="fill:none;stroke:url(#linearGradient5454);stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
- </g>
- <rect
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- inkscape:export-filename="/data/projects/gnome-keyring/gcr/icons/16.png"
- y="219.0625"
- x="284.0625"
- height="15.876632"
- width="15.876632"
- id="rect5456"
- style="color:#000000;fill:none;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <g
- transform="matrix(0.52956921,-0.51337657,0.51337657,0.52956921,283.23562,227.35209)"
- id="g5470"
- style="display:inline;enable-background:new"
- inkscape:export-filename="/data/projects/gnome-keyring/gcr/icons/16.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
- <path
- style="color:#000000;fill:url(#linearGradient5496);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5498);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="path5472"
- d="m 5.5,0.5 c -1.2798634,3e-8 -2.5554427,0.49294272 -3.53125,1.46875 -1.95161458,1.9516146 -1.95161484,5.1108852 0,7.0625 1.4457774,1.445777 3.5519739,1.790068 5.34375,1.09375 L 8,11 l 1.5,-0.5 0,2 2,0 0,1.5 0.5,0.5 c 0,0 3,0 3,0 l 0.5,-0.5 0,-1.5 -5.375,-5.1875 C 10.821318,5.5207238 10.477027,3.4145274 9.03125,1.96875 8.0554428,0.9929426 6.7798634,0.49999997 5.5,0.5 z m -1,3 c 0.2559728,0 0.5235884,0.086088 0.71875,0.28125 0.3903234,0.3903232 0.3903232,1.0471768 0,1.4375 -0.3903229,0.390323 -1.0471768,0.3903232 -1.4375,0 -0.3903232,-0.3903233 -0.3903232,-1.0471768 0,-1.4375 C 3.9764116,3.5860884 4.2440272,3.5 4.5,3.5 z"
- inkscape:connector-curvature="0" />
- <path
- style="opacity:0.13574662;fill:url(#linearGradient5500);fill-opacity:1;fill-rule:evenodd;stroke:none"
- id="path5474"
- d="M 9.543012,3.5767984 3.5767984,9.543012 C 5.2474506,10.334846 7.2996521,10.062799 8.6812256,8.6812256 10.062799,7.2996522 10.334847,5.2474503 9.543012,3.5767984 z"
- inkscape:connector-curvature="0" />
- <path
- transform="matrix(0.942809,0.942809,-0.942809,0.942809,3.5574935,-7.7562147)"
- style="fill:none;stroke:url(#linearGradient5502);stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.69999992"
- sodipodi:type="arc"
- sodipodi:ry="1.5"
- sodipodi:rx="1.5"
- sodipodi:cy="6"
- sodipodi:cx="7"
- id="path5476"
- d="M 8.5,6 C 8.5,6.8284271 7.8284271,7.5 7,7.5 6.1715729,7.5 5.5,6.8284271 5.5,6 5.5,5.1715729 6.1715729,4.5 7,4.5 7.8284271,4.5 8.5,5.1715729 8.5,6 z" />
- <path
- style="opacity:0.42986426;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.69999992"
- sodipodi:type="inkscape:offset"
- inkscape:radius="-1.0313957"
- inkscape:original="M 5.5 0.5 C 4.2201366 0.50000003 2.9445573 0.99294272 1.96875 1.96875 C 0.017135421 3.9203646 0.017135161 7.0796352 1.96875 9.03125 C 3.4145274 10.477027 5.5207239 10.821318 7.3125 10.125 L 8 11 L 9.5 10.5 L 9.5 12.5 L 11.5 12.5 L 11.5 14 L 12 14.5 C 12 14.5 15 14.5 15 14.5 L 15.5 14 L 15.5 12.5 L 10.125 7.3125 C 10.821318 5.5207238 10.477027 3.4145274 9.03125 1.96875 C 8.0554428 0.9929426 6.7798634 0.49999997 5.5 0.5 z "
- id="path5478"
- d="m 5.5,1.53125 c -1.0150336,0 -2.0316705,0.3754205 -2.8125,1.15625 -1.558081,1.558081 -1.5580812,4.0669188 0,5.625 1.1495193,1.149519 2.8195738,1.3996406 4.25,0.84375 A 1.0314988,1.0314988 0 0 1 8.125,9.5 L 8.375,9.8125 9.1875,9.53125 A 1.0314988,1.0314988 0 0 1 10.53125,10.5 l 0,0.96875 0.96875,0 A 1.0314988,1.0314988 0 0 1 12.53125,12.5 l 0,0.96875 1.9375,0 0,-0.53125 -5.0625,-4.875 a 1.0314988,1.0314988 0 0 1 -0.25,-1.125 C 9.7121406,5.5070736 9.462019,3.8370193 8.3125,2.6875 7.5316707,1.9066705 6.5150336,1.53125 5.5,1.53125 z" />
- <path
- style="fill:none;stroke:url(#linearGradient5504);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0.69999992"
- sodipodi:nodetypes="cccsscsc"
- id="path5480"
- d="m 14.46875,13.46875 0,-0.53125 -5.0625,-4.875 C 9.1016694,7.7733588 9.0027957,7.3284268 9.15625,6.9375 9.7121406,5.5070736 9.462019,3.8370193 8.3125,2.6875 7.5316707,1.9066705 6.5150336,1.53125 5.5,1.53125 c -1.0150336,0 -2.0316705,0.3754205 -2.8125,1.15625 -1.558081,1.558081 -1.5580812,4.0669188 0,5.625"
- inkscape:connector-curvature="0" />
- <path
- style="fill:none;stroke:url(#linearGradient5506);stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
- sodipodi:nodetypes="cc"
- id="path5482"
- d="M 13.5,13 9.5,9"
- inkscape:connector-curvature="0" />
- </g>
- </g>
- <g
- inkscape:groupmode="layer"
- id="layer5"
- inkscape:label="hires"
- style="display:inline">
- <g
- id="g8198"
- transform="matrix(5.0928038,0,0,2.2388776,20.301687,129.4805)"
- style="opacity:0.4" />
- <g
- id="g8230"
- inkscape:label="base"
- style="display:inline"
- transform="matrix(4.8890868,0,0,4.8890868,322.06038,251.81989)" />
- <path
- sodipodi:type="inkscape:offset"
- inkscape:radius="-1.0153296"
- inkscape:original="M 711.96875 227 C 709.68001 227.00001 707.67461 227.86289 706.5 229.1875 L 706.5 231.625 C 706.5 232.11623 706.8838 232.5 707.375 232.5 L 716.625 232.5 C 717.11622 232.50001 717.5 232.11622 717.5 231.625 L 717.5 229.25 C 716.33242 227.89578 714.28785 227 711.96875 227 z "
- style="opacity:0.35;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="path5171-2"
- d="m 711.96875,228 c -1.90789,1e-5 -3.49694,0.75848 -4.46875,1.71875 l 0,1.78125 9,0 0,-1.75 c -0.96562,-0.98703 -2.59089,-1.75 -4.53125,-1.75 z"
- transform="translate(-7.8685593e-7,2.029528e-6)" />
- </g>
- </g>
-</svg>
diff --git a/gcr/icons/render-icons.py b/gcr/icons/render-icons.py
deleted file mode 100755
index d5948569..00000000
--- a/gcr/icons/render-icons.py
+++ /dev/null
@@ -1,174 +0,0 @@
-#!/usr/bin/env python
-
-# Copied from gnome-icon-theme and adjusted lightly.
-#
-# GNOME icon theme is distributed under the terms of either
-# GNU LGPL v.3 or Creative Commons BY-SA 3.0 license.
-
-import os
-import sys
-import xml.sax
-import subprocess
-
-INKSCAPE = '/usr/bin/inkscape'
-OPTIPNG = '/usr/bin/optipng'
-SRC = 'src'
-OUT = '.'
-
-inkscape_process = None
-
-def optimize_png(png_file):
- if os.path.exists(OPTIPNG):
- process = subprocess.Popen([OPTIPNG, '-quiet', '-o7', png_file])
- process.wait()
-
-def wait_for_prompt(process, command=None):
- if command is not None:
- process.stdin.write(command+'\n')
-
- # This is kinda ugly ...
- # Wait for just a '>', or '\n>' if some other char appearead first
- output = process.stdout.read(1)
- if output == '>':
- return
-
- output += process.stdout.read(1)
- while output != "\n>":
- output += process.stdout.read(1)
- output = output[1:]
-
-def start_inkscape():
- process = subprocess.Popen([INKSCAPE, '--shell'], bufsize=0, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
- wait_for_prompt(process)
- return process
-
-def inkscape_render_rect(icon_file, rect, output_file):
- global inkscape_process
- if inkscape_process is None:
- inkscape_process = start_inkscape()
- wait_for_prompt(inkscape_process, '%s -i %s -e %s' % (icon_file, rect, output_file))
- optimize_png(output_file)
-
-class ContentHandler(xml.sax.ContentHandler):
- ROOT = 0
- SVG = 1
- LAYER = 2
- OTHER = 3
- TEXT = 4
- def __init__(self, path, force=False, filter=None):
- self.stack = [self.ROOT]
- self.inside = [self.ROOT]
- self.path = path
- self.rects = []
- self.state = self.ROOT
- self.chars = ""
- self.force = force
- self.filter = filter
-
- def endDocument(self):
- pass
-
- def startElement(self, name, attrs):
- if self.inside[-1] == self.ROOT:
- if name == "svg":
- self.stack.append(self.SVG)
- self.inside.append(self.SVG)
- return
- elif self.inside[-1] == self.SVG:
- if (name == "g" and attrs.has_key('inkscape:groupmode') and attrs.has_key('inkscape:label')
- and attrs['inkscape:groupmode'] == 'layer' and attrs['inkscape:label'].startswith('baseplate')):
- self.stack.append(self.LAYER)
- self.inside.append(self.LAYER)
- self.context = None
- self.icon_name = None
- self.rects = []
- return
- elif self.inside[-1] == self.LAYER:
- if name == "text" and attrs.has_key('inkscape:label') and attrs['inkscape:label'] == 'context':
- self.stack.append(self.TEXT)
- self.inside.append(self.TEXT)
- self.text='context'
- self.chars = ""
- return
- elif name == "text" and attrs.has_key('inkscape:label') and attrs['inkscape:label'] == 'icon-name':
- self.stack.append(self.TEXT)
- self.inside.append(self.TEXT)
- self.text='icon-name'
- self.chars = ""
- return
- elif name == "rect":
- self.rects.append(attrs)
-
- self.stack.append(self.OTHER)
-
-
- def endElement(self, name):
- stacked = self.stack.pop()
- if self.inside[-1] == stacked:
- self.inside.pop()
-
- if stacked == self.TEXT and self.text is not None:
- assert self.text in ['context', 'icon-name']
- if self.text == 'context':
- self.context = self.chars
- elif self.text == 'icon-name':
- self.icon_name = self.chars
- self.text = None
- elif stacked == self.LAYER:
- assert self.icon_name
- assert self.context
-
- if self.filter is not None and not self.icon_name in self.filter:
- return
-
- print '%s %s' % (self.context, self.icon_name)
- for rect in self.rects:
- width = rect['width']
- height = rect['height']
- id = rect['id']
-
- # dir = os.path.join(OUT, "%sx%s" % (width, height), self.context)
- dir = os.path.join(OUT, "%sx%s" % (width, height))
- outfile = os.path.join(dir, self.icon_name+'.png')
- if not os.path.exists(dir):
- os.makedirs(dir)
- # Do a time based check!
- if self.force or not os.path.exists(outfile):
- inkscape_render_rect(self.path, id, outfile)
- sys.stdout.write('.')
- else:
- stat_in = os.stat(self.path)
- stat_out = os.stat(outfile)
- if stat_in.st_mtime > stat_out.st_mtime:
- inkscape_render_rect(self.path, id, outfile)
- sys.stdout.write('.')
- else:
- sys.stdout.write('-')
- sys.stdout.flush()
- sys.stdout.write('\n')
- sys.stdout.flush()
-
- def characters(self, chars):
- self.chars += chars.strip()
-
-if len(sys.argv) == 1:
- if not os.path.exists(OUT):
- os.mkdir(OUT)
- print 'Rendering from SVGs in %s' % SRC
- for file in os.listdir(SRC):
- if file[-4:] == '.svg':
- file = os.path.join(SRC, file)
- handler = ContentHandler(file)
- xml.sax.parse(open(file), handler)
-else:
- file = os.path.join(SRC, sys.argv[1] + '.svg')
- if len(sys.argv) > 2:
- icons = sys.argv[2:]
- else:
- icons = None
- if os.path.exists(os.path.join(file)):
- handler = ContentHandler(file, True, filter=icons)
- xml.sax.parse(open(file), handler)
- else:
- print "Error: No such file %s" % file
- sys.exit(1)
diff --git a/gcr/icons/src/gcr-smart-card.svg b/gcr/icons/src/gcr-smart-card.svg
deleted file mode 100644
index 51a37611..00000000
--- a/gcr/icons/src/gcr-smart-card.svg
+++ /dev/null
@@ -1,1165 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- inkscape:export-ydpi="90.000000"
- inkscape:export-xdpi="90.000000"
- inkscape:export-filename="/home/lapo/firewall.png"
- width="400"
- height="300"
- id="svg11300"
- sodipodi:version="0.32"
- inkscape:version="0.48.1 r9760"
- sodipodi:docname="gcr-smart-card.svg"
- inkscape:output_extension="org.inkscape.output.svg.inkscape"
- version="1.0"
- style="display:inline;enable-background:new">
- <title
- id="title4872">Firewall</title>
- <sodipodi:namedview
- stroke="#ef2929"
- fill="#f57900"
- id="base"
- pagecolor="#474747"
- bordercolor="#666666"
- borderopacity="0.25490196"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:zoom="31.059262"
- inkscape:cx="310.4148"
- inkscape:cy="75.246655"
- inkscape:current-layer="layer4"
- showgrid="true"
- inkscape:grid-bbox="true"
- inkscape:document-units="px"
- inkscape:showpageshadow="false"
- inkscape:window-width="1278"
- inkscape:window-height="866"
- inkscape:window-x="1345"
- inkscape:window-y="34"
- width="400px"
- height="300px"
- inkscape:snap-nodes="false"
- inkscape:snap-bbox="false"
- gridtolerance="10000"
- inkscape:object-nodes="true"
- inkscape:snap-grids="true"
- showguides="false"
- inkscape:guide-bbox="true"
- inkscape:window-maximized="0">
- <inkscape:grid
- spacingy="1px"
- spacingx="1px"
- id="grid5883"
- type="xygrid"
- enabled="true"
- visible="true"
- empspacing="4"
- snapvisiblegridlinesonly="true" />
- <inkscape:grid
- type="xygrid"
- id="grid11592"
- empspacing="2"
- visible="true"
- enabled="false"
- spacingx="0.5px"
- spacingy="0.5px"
- color="#ff0000"
- opacity="0.1254902"
- empcolor="#ff0000"
- empopacity="0.25098039"
- snapvisiblegridlinesonly="true" />
- <sodipodi:guide
- orientation="-0.70710678,0.70710678"
- position="309.8125,173.625"
- id="guide9630" />
- <sodipodi:guide
- orientation="1,0"
- position="155.01758,221.5"
- id="guide4407" />
- <sodipodi:guide
- orientation="1,0"
- position="244.125,212.625"
- id="guide4409" />
- <sodipodi:guide
- orientation="1,0"
- position="184.875,211.625"
- id="guide4411" />
- <sodipodi:guide
- orientation="1,0"
- position="213.875,214.25"
- id="guide4413" />
- </sodipodi:namedview>
- <defs
- id="defs3">
- <linearGradient
- id="linearGradient6048">
- <stop
- style="stop-color:#edd400;stop-opacity:1;"
- offset="0"
- id="stop6050" />
- <stop
- id="stop6052"
- offset="0.25"
- style="stop-color:#c7b201;stop-opacity:1;" />
- <stop
- id="stop6054"
- offset="0.5"
- style="stop-color:#af9c05;stop-opacity:1;" />
- <stop
- style="stop-color:#ffeb3e;stop-opacity:1;"
- offset="1"
- id="stop6056" />
- </linearGradient>
- <linearGradient
- id="linearGradient5987">
- <stop
- style="stop-color:#c4a000;stop-opacity:1;"
- offset="0"
- id="stop5989" />
- <stop
- style="stop-color:#997e00;stop-opacity:1;"
- offset="1"
- id="stop5991" />
- </linearGradient>
- <linearGradient
- id="linearGradient5540">
- <stop
- id="stop5542"
- offset="0"
- style="stop-color:#fc8817;stop-opacity:1;" />
- <stop
- id="stop5544"
- offset="1"
- style="stop-color:#fc8817;stop-opacity:0;" />
- </linearGradient>
- <linearGradient
- id="linearGradient5532">
- <stop
- style="stop-color:#719fcf;stop-opacity:1;"
- offset="0"
- id="stop5534" />
- <stop
- style="stop-color:#3466a4;stop-opacity:1;"
- offset="1"
- id="stop5536" />
- </linearGradient>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath9887">
- <path
- d="m 32.1875,0 c -4.917465,0.322114 -6.796581,5.25981 -6.46875,9.125 l 0,211.8125 c 0.365597,5.50865 5.236892,11.01932 12.5,10.46875 l 167.0625,0 c 4.68699,-0.22612 9.31856,-4.12416 9.25,-11.84375 l 0,-193.71875 c 0,-3.758448 -1.21492,-6.263069 -3.96875,-8.96875 L 196.15625,2 C 194.64949,0.576511 193.73508,0 189.5625,0 L 32.1875,0 z"
- inkscape:href="#path9521"
- id="path9889"
- style="fill:none;stroke:#343a3b;stroke-width:0.38129407;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible"
- xlink:href="#path9521"
- inkscape:original="M 66.4375 95.9375 C 61.520035 96.259614 59.609669 101.19731 59.9375 105.0625 L 59.9375 316.875 C 60.303097 322.38365 65.174392 327.89432 72.4375 327.34375 L 239.53125 327.34375 C 244.21824 327.11763 248.84981 323.21959 248.78125 315.5 L 248.78125 121.78125 C 248.78125 118.0228 247.56633 115.51818 244.8125 112.8125 L 230.375 97.9375 C 228.86824 96.514011 227.95383 95.9375 223.78125 95.9375 L 66.4375 95.9375 z "
- inkscape:radius="0"
- sodipodi:type="inkscape:offset" />
- </clipPath>
- <linearGradient
- id="linearGradient9941">
- <stop
- id="stop9943"
- offset="0"
- style="stop-color:#edd400;stop-opacity:1;" />
- <stop
- style="stop-color:#bda901;stop-opacity:1;"
- offset="0.25"
- id="stop9959" />
- <stop
- style="stop-color:#a08f05;stop-opacity:1"
- offset="0.5"
- id="stop9945" />
- <stop
- id="stop9947"
- offset="1"
- style="stop-color:#ffeb3e;stop-opacity:1;" />
- </linearGradient>
- <pattern
- inkscape:stockid="Sand (bitmap)"
- id="sand_bitmap"
- height="256"
- width="256"
- patternUnits="userSpaceOnUse"
- patternTransform="matrix(0.1089357,0,0,0.1089357,304.12642,53.923124)">
- <!-- Seamless texture provided by FreeSeamlessTextures.com -->
- <!-- License: creative commons attribution -->
- <image
- xlink:href="data:image/jpeg;base64,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 /p1//9k= "
- y="0"
- x="0"
- id="image9"
- height="260"
- width="260" />
- </pattern>
- <linearGradient
- id="linearGradient9326">
- <stop
- id="stop9328"
- offset="0"
- style="stop-color:#555753;stop-opacity:1;" />
- <stop
- style="stop-color:#555652;stop-opacity:1"
- offset="0.52639353"
- id="stop9342" />
- <stop
- style="stop-color:#5e605b;stop-opacity:1"
- offset="0.62553692"
- id="stop9332" />
- <stop
- id="stop9330"
- offset="1"
- style="stop-color:#3e3f3c;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- id="linearGradient9326-5">
- <stop
- id="stop9328-9"
- offset="0"
- style="stop-color:#555753;stop-opacity:1;" />
- <stop
- style="stop-color:#555652;stop-opacity:1"
- offset="0.52639353"
- id="stop9342-8" />
- <stop
- style="stop-color:#5e605b;stop-opacity:1"
- offset="0.62553692"
- id="stop9332-4" />
- <stop
- id="stop9330-8"
- offset="1"
- style="stop-color:#3e3f3c;stop-opacity:1;" />
- </linearGradient>
- <pattern
- inkscape:stockid="Sand (bitmap)"
- id="sand_bitmap-1"
- height="256"
- width="256"
- patternUnits="userSpaceOnUse"
- patternTransform="matrix(0.1089357,0,0,0.1089357,304.12642,53.923124)">
- <!-- Seamless texture provided by FreeSeamlessTextures.com -->
- <!-- License: creative commons attribution -->
- <image
- xlink:href="data:image/jpeg;base64,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 /p1//9k= "
- y="0"
- x="0"
- id="image9-0"
- height="260"
- width="260" />
- </pattern>
- <linearGradient
- id="linearGradient9941-4">
- <stop
- id="stop9943-7"
- offset="0"
- style="stop-color:#edd400;stop-opacity:1;" />
- <stop
- style="stop-color:#bda901;stop-opacity:1;"
- offset="0.25"
- id="stop9959-6" />
- <stop
- style="stop-color:#a08f05;stop-opacity:1"
- offset="0.5"
- id="stop9945-3" />
- <stop
- id="stop9947-1"
- offset="1"
- style="stop-color:#ffeb3e;stop-opacity:1;" />
- </linearGradient>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath9887-5">
- <path
- d="m 62.15625,35.96875 c -4.917465,0.322114 -6.827831,5.25981 -6.5,9.125 l 0,211.8125 c 0.365597,5.50865 5.236892,11.01932 12.5,10.46875 l 167.09375,0 c 4.68699,-0.22612 9.31856,-4.12416 9.25,-11.84375 l 0,-193.71875 c 0,-3.758448 -1.21492,-6.263069 -3.96875,-8.96875 L 226.125,37.96875 c -1.50676,-1.423489 -2.45242,-2 -6.625,-2 l -157.34375,0 z"
- inkscape:href="#path9521-4"
- id="path9889-3"
- style="fill:none;stroke:#343a3b;stroke-width:0.38129407;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible"
- xlink:href="#path9521-4"
- inkscape:original="M 62.15625 35.96875 C 57.238785 36.290864 55.328419 41.22856 55.65625 45.09375 L 55.65625 256.90625 C 56.021847 262.4149 60.893142 267.92557 68.15625 267.375 L 235.25 267.375 C 239.93699 267.14888 244.56856 263.25084 244.5 255.53125 L 244.5 61.8125 C 244.5 58.054052 243.28508 55.549431 240.53125 52.84375 L 226.125 37.96875 C 224.61824 36.545261 223.67258 35.96875 219.5 35.96875 L 62.15625 35.96875 z "
- inkscape:radius="0"
- sodipodi:type="inkscape:offset" />
- </clipPath>
- <linearGradient
- id="linearGradient9326-2">
- <stop
- id="stop9328-5"
- offset="0"
- style="stop-color:#555753;stop-opacity:1;" />
- <stop
- style="stop-color:#555652;stop-opacity:1"
- offset="0.52639353"
- id="stop9342-4" />
- <stop
- style="stop-color:#5e605b;stop-opacity:1"
- offset="0.62553692"
- id="stop9332-49" />
- <stop
- id="stop9330-9"
- offset="1"
- style="stop-color:#3e3f3c;stop-opacity:1;" />
- </linearGradient>
- <pattern
- inkscape:stockid="Sand (bitmap)"
- id="sand_bitmap-3"
- height="256"
- width="256"
- patternUnits="userSpaceOnUse"
- patternTransform="matrix(0.1089357,0,0,0.1089357,304.12642,53.923124)">
- <!-- Seamless texture provided by FreeSeamlessTextures.com -->
- <!-- License: creative commons attribution -->
- <image
- xlink:href="data:image/jpeg;base64,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 /p1//9k= "
- y="0"
- x="0"
- id="image9-6"
- height="260"
- width="260" />
- </pattern>
- <linearGradient
- id="linearGradient9903-5">
- <stop
- style="stop-color:#bdc5c7;stop-opacity:1"
- offset="0"
- id="stop9905-0" />
- <stop
- style="stop-color:#2e3436;stop-opacity:1"
- offset="1"
- id="stop9907-2" />
- </linearGradient>
- <linearGradient
- id="linearGradient9941-43">
- <stop
- id="stop9943-5"
- offset="0"
- style="stop-color:#edd400;stop-opacity:1;" />
- <stop
- style="stop-color:#bda901;stop-opacity:1;"
- offset="0.25"
- id="stop9959-1" />
- <stop
- style="stop-color:#a08f05;stop-opacity:1"
- offset="0.5"
- id="stop9945-7" />
- <stop
- id="stop9947-4"
- offset="1"
- style="stop-color:#ffeb3e;stop-opacity:1;" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient9677-1">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop9679-4" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop9681-69" />
- </linearGradient>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath9887-8">
- <path
- d="m 62.15625,35.96875 c -4.917465,0.322114 -6.827831,5.25981 -6.5,9.125 l 0,211.8125 c 0.365597,5.50865 5.236892,11.01932 12.5,10.46875 l 167.09375,0 c 4.68699,-0.22612 9.31856,-4.12416 9.25,-11.84375 l 0,-193.71875 c 0,-3.758448 -1.21492,-6.263069 -3.96875,-8.96875 L 226.125,37.96875 c -1.50676,-1.423489 -2.45242,-2 -6.625,-2 l -157.34375,0 z"
- inkscape:href="#path9521"
- id="path9889-6"
- style="fill:none;stroke:#343a3b;stroke-width:0.38129407;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible"
- xlink:href="#path9521"
- inkscape:original="M 44.84375 57.3125 C 39.3351 57.678097 33.82443 62.549392 34.375 69.8125 L 34.375 236.875 C 34.60112 241.56199 38.49916 246.19356 46.21875 246.125 L 239.9375 246.125 C 243.69595 246.125 246.20057 244.91008 248.90625 242.15625 L 263.78125 227.75 C 265.20474 226.24324 265.78125 225.29758 265.78125 221.125 L 265.78125 63.78125 C 265.45913 58.863785 260.52144 56.984669 256.65625 57.3125 L 44.84375 57.3125 z "
- inkscape:radius="0"
- sodipodi:type="inkscape:offset" />
- </clipPath>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient9903-5"
- id="radialGradient3610"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.02241743,-4.5362601,2.141228,0.00322394,2.865653,1366.4873)"
- cx="319.47476"
- cy="74.762054"
- fx="319.47476"
- fy="74.762054"
- r="14.737162" />
- <linearGradient
- id="linearGradient9326-8">
- <stop
- id="stop9328-2"
- offset="0"
- style="stop-color:#555753;stop-opacity:1;" />
- <stop
- style="stop-color:#555652;stop-opacity:1"
- offset="0.52639353"
- id="stop9342-5" />
- <stop
- style="stop-color:#5e605b;stop-opacity:1"
- offset="0.62553692"
- id="stop9332-3" />
- <stop
- id="stop9330-1"
- offset="1"
- style="stop-color:#3e3f3c;stop-opacity:1;" />
- </linearGradient>
- <pattern
- inkscape:stockid="Sand (bitmap)"
- id="sand_bitmap-2"
- height="256"
- width="256"
- patternUnits="userSpaceOnUse"
- patternTransform="matrix(0.1089357,0,0,0.1089357,304.12642,53.923124)">
- <!-- Seamless texture provided by FreeSeamlessTextures.com -->
- <!-- License: creative commons attribution -->
- <image
- xlink:href="data:image/jpeg;base64,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 /p1//9k= "
- y="0"
- x="0"
- id="image9-1"
- height="260"
- width="260" />
- </pattern>
- <linearGradient
- id="linearGradient9941-2">
- <stop
- id="stop9943-9"
- offset="0"
- style="stop-color:#edd400;stop-opacity:1;" />
- <stop
- style="stop-color:#bda901;stop-opacity:1;"
- offset="0.25"
- id="stop9959-2" />
- <stop
- style="stop-color:#a08f05;stop-opacity:1"
- offset="0.5"
- id="stop9945-6" />
- <stop
- id="stop9947-46"
- offset="1"
- style="stop-color:#ffeb3e;stop-opacity:1;" />
- </linearGradient>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath9887-4">
- <path
- d="m 62.15625,35.96875 c -4.917465,0.322114 -6.827831,5.25981 -6.5,9.125 l 0,211.8125 c 0.365597,5.50865 5.236892,11.01932 12.5,10.46875 l 167.09375,0 c 4.68699,-0.22612 9.31856,-4.12416 9.25,-11.84375 l 0,-193.71875 c 0,-3.758448 -1.21492,-6.263069 -3.96875,-8.96875 L 226.125,37.96875 c -1.50676,-1.423489 -2.45242,-2 -6.625,-2 l -157.34375,0 z"
- inkscape:href="#path9521"
- id="path9889-0"
- style="fill:none;stroke:#343a3b;stroke-width:0.38129407;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible"
- xlink:href="#path9521"
- inkscape:original="M 62.15625 35.96875 C 57.238785 36.290864 55.328419 41.22856 55.65625 45.09375 L 55.65625 256.90625 C 56.021847 262.4149 60.893142 267.92557 68.15625 267.375 L 235.25 267.375 C 239.93699 267.14888 244.56856 263.25084 244.5 255.53125 L 244.5 61.8125 C 244.5 58.054052 243.28508 55.549431 240.53125 52.84375 L 226.125 37.96875 C 224.61824 36.545261 223.67258 35.96875 219.5 35.96875 L 62.15625 35.96875 z "
- inkscape:radius="0"
- sodipodi:type="inkscape:offset" />
- </clipPath>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5532"
- id="linearGradient5538"
- x1="151.9079"
- y1="188.73213"
- x2="151.07002"
- y2="49.432087"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(3,40)" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient9941-43"
- id="linearGradient5640"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0,-1.9049813,3.5398921,0,97.3544,-37.747404)"
- x1="29.374996"
- y1="21.741114"
- x2="20.004526"
- y2="6.7253776" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient9677-1"
- id="radialGradient5642"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.6935297,-1.6353265,6.1727401,1.8717188,-790.31279,320.79789)"
- cx="319.82288"
- cy="64.117065"
- fx="319.82288"
- fy="64.117065"
- r="13.808043" />
- <filter
- inkscape:collect="always"
- id="filter5758">
- <feGaussianBlur
- inkscape:collect="always"
- stdDeviation="4.6408213"
- id="feGaussianBlur5760" />
- </filter>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5532"
- id="linearGradient5840"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.18585006,0,0,0.18717507,293.02852,53.343152)"
- x1="151.9079"
- y1="188.73213"
- x2="151.07002"
- y2="49.432087" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient9903-5"
- id="radialGradient5842"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.00589609,-1.2059869,0.56317324,8.5710016e-4,35.496775,74.218944)"
- cx="319.47476"
- cy="74.762054"
- fx="319.47476"
- fy="74.762054"
- r="14.737162" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient9941-43"
- id="linearGradient5844"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0,-0.50644856,0.93104166,0,60.348652,-299.10369)"
- x1="29.374996"
- y1="21.741114"
- x2="20.004526"
- y2="6.7253776" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient9677-1"
- id="radialGradient5846"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.4615968,-0.44981091,1.6824726,0.51483267,-182.87988,-200.0395)"
- cx="319.82288"
- cy="64.117065"
- fx="319.82288"
- fy="64.117065"
- r="13.808043" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5532"
- id="linearGradient5866"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.12671561,0,0,0.12478236,300.6104,129.22895)"
- x1="151.9079"
- y1="188.73213"
- x2="151.07002"
- y2="49.432087" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient9903-5"
- id="radialGradient5868"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.00461699,-0.8988884,0.44099713,6.3884392e-4,113.24551,-25.407226)"
- cx="319.47476"
- cy="74.762054"
- fx="319.47476"
- fy="74.762054"
- r="14.737162" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient9941-43"
- id="linearGradient5870"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0,-0.37748401,0.72905934,0,132.70595,-303.66517)"
- x1="29.374996"
- y1="21.741114"
- x2="20.004526"
- y2="6.7253776" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5532"
- id="linearGradient5926"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.09292503,0,0,0.09705373,300.51424,178.5113)"
- x1="151.9079"
- y1="188.73213"
- x2="151.07002"
- y2="49.432087" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5532"
- id="linearGradient5965"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.06758181,0,0,0.08318892,301.19216,219.15252)"
- x1="151.9079"
- y1="188.73213"
- x2="151.07002"
- y2="49.432087" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5987"
- id="linearGradient5993"
- x1="223.94716"
- y1="-310.04846"
- x2="233.99281"
- y2="-310.04846"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.99495343,0,0,0.98976252,1.1855286,-3.1256575)" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient5987"
- id="linearGradient5999"
- gradientUnits="userSpaceOnUse"
- x1="223.94716"
- y1="-310.04846"
- x2="233.99281"
- y2="-310.04846"
- gradientTransform="translate(-38.940119,0)" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient9677-1"
- id="radialGradient6007"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.42866379,-0.45005125,1.5624352,0.51510774,-164.07876,-199.45791)"
- cx="319.82288"
- cy="64.117065"
- fx="319.82288"
- fy="64.117065"
- r="13.808043" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient9941-43"
- id="linearGradient6009"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0,-0.50649125,0.86346939,0,61.811175,-298.60338)"
- x1="29.374996"
- y1="21.741114"
- x2="20.004526"
- y2="6.7253776" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient9903-5"
- id="radialGradient6011"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.00553762,-1.2219079,0.52893295,8.6841528e-4,38.317881,79.803805)"
- cx="319.47476"
- cy="74.762054"
- fx="319.47476"
- fy="74.762054"
- r="14.737162" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient9903-5"
- id="radialGradient6021"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.00468607,-1.0692464,0.44759605,7.5991801e-4,112.80492,28.04045)"
- cx="319.47476"
- cy="74.762054"
- fx="319.47476"
- fy="74.762054"
- r="14.737162" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient6048"
- id="linearGradient6023"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0,-0.44321172,0.73068902,0,132.68554,-303.08965)"
- x1="29.374996"
- y1="21.741114"
- x2="20.004526"
- y2="6.7253776" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient9677-1"
- id="radialGradient6025"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.36274586,-0.3938231,1.3221712,0.4507516,-58.572255,-216.17961)"
- cx="319.82288"
- cy="64.117065"
- fx="319.82288"
- fy="64.117065"
- r="13.808043" />
- </defs>
- <metadata
- id="metadata4">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:creator>
- <cc:Agent>
- <dc:title>Lapo Calamandrei</dc:title>
- </cc:Agent>
- </dc:creator>
- <dc:source />
- <cc:license
- rdf:resource="" />
- <dc:title>Firewall</dc:title>
- <dc:subject>
- <rdf:Bag />
- </dc:subject>
- <dc:date />
- <dc:rights>
- <cc:Agent>
- <dc:title />
- </cc:Agent>
- </dc:rights>
- <dc:publisher>
- <cc:Agent>
- <dc:title />
- </cc:Agent>
- </dc:publisher>
- <dc:identifier />
- <dc:relation />
- <dc:language />
- <dc:coverage />
- <dc:description />
- <dc:contributor>
- <cc:Agent>
- <dc:title />
- </cc:Agent>
- </dc:contributor>
- </cc:Work>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- style="display:inline"
- inkscape:groupmode="layer"
- inkscape:label="artwork"
- id="layer1">
- <g
- inkscape:groupmode="layer"
- id="layer2"
- inkscape:label="baseplate"
- style="display:none">
- <rect
- style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect6284"
- width="48"
- height="48"
- x="296.0625"
- y="51.99633"
- inkscape:label="48x48" />
- <rect
- inkscape:label="32x32"
- y="127.99634"
- x="303"
- height="32"
- width="32"
- id="rect6592"
- style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- inkscape:label="24x24"
- y="178"
- x="302"
- height="24"
- width="24"
- id="rect5028"
- style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- inkscape:label="16x16"
- y="221"
- x="303"
- height="16"
- width="16"
- id="rect6833"
- style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect6749"
- width="22"
- height="22"
- x="303"
- y="179.05884"
- inkscape:label="22x22" />
- <text
- id="context"
- inkscape:label="context"
- style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;enable-background:new;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
- x="31.87059"
- xml:space="preserve"
- y="18.860306"><tspan
- sodipodi:role="line"
- x="31.87059"
- y="18.860306"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
- id="tspan6058">devices</tspan></text>
- <text
- id="icon-name"
- inkscape:label="icon-name"
- sodipodi:linespacing="125%"
- style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;display:inline;enable-background:new;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Bold"
- x="302.87057"
- xml:space="preserve"
- y="18.860306"><tspan
- sodipodi:role="line"
- x="302.87057"
- y="18.860306"
- style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans Bold"
- id="tspan6062">gcr-smart-card</tspan></text>
- <rect
- inkscape:label="256x256"
- y="32"
- x="20"
- height="256"
- width="256"
- id="rect6282"
- style="fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90" />
- </g>
- <g
- inkscape:groupmode="layer"
- id="layer4"
- inkscape:label="smallsizes"
- style="display:inline">
- <g
- id="g6154"
- style="fill:#ffffff"
- transform="matrix(1.25,0,0,1.25,-78,-47.25)" />
- <rect
- ry="4.75"
- rx="5.1779518"
- y="94.979431"
- x="301.29306"
- height="137.04115"
- width="234.22455"
- id="rect5804"
- style="opacity:0.9;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter5758);enable-background:accumulate"
- transform="matrix(0.18598708,0,0,0.18713623,242.2418,45.859499)" />
- <rect
- ry="1.4764122"
- rx="1.4764122"
- y="62"
- x="298"
- height="27"
- width="44"
- id="rect5806"
- style="color:#000000;fill:url(#linearGradient5840);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <path
- sodipodi:nodetypes="sscsscsss"
- inkscape:connector-curvature="0"
- id="path5808"
- d="M 298.41236,62 C 298.18248,62 298,62.181715 298,62.410634 l 0,11.815805 c 1.52647,-0.617796 9.57138,-5.313111 20.58744,-4.326436 8.69319,0.778613 9.46199,4.841397 21.61795,6.084632 0.63834,0.06527 1.23556,-0.09702 1.79461,-0.121446 l 0,-13.452555 C 342,62.181715 341.81752,62 341.58765,62 z"
- style="color:#000000;fill:#ffffff;fill-opacity:0.1254902;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- transform="matrix(0,1,-1,0,0,0)"
- ry="2.1703689"
- rx="2.2517214"
- y="-319"
- x="67.03595"
- height="17"
- width="13.928329"
- id="rect5810"
- style="fill:url(#radialGradient6011);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.57194108;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
- <rect
- transform="matrix(0,1,-1,0,0,0)"
- style="fill:url(#linearGradient6009);fill-opacity:1;fill-rule:evenodd;stroke:#c4a000;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.8;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
- id="rect5812"
- width="13"
- height="16"
- x="67.5"
- y="-318.50003"
- rx="1.6989782"
- ry="1.6375958" />
- <rect
- ry="1.3708601"
- rx="1.4222498"
- y="-318.358"
- x="66.713745"
- height="15.981206"
- width="12.965498"
- id="rect5814"
- style="opacity:0.44943824;fill:none;stroke:url(#radialGradient6007);stroke-width:1.00000608;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.8;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
- transform="matrix(0.00182552,0.99999833,-0.99999665,-0.00258966,0,0)" />
- <path
- sodipodi:nodetypes="ccccccccccccccc"
- inkscape:connector-curvature="0"
- d="m 312.98117,76.998772 4.77911,0 m -4.77911,-3.015818 4.81883,0 m -14.6,3.015818 4.7455,0 m -4.69808,-3.015818 4.69808,0 m -4.74235,-2.999064 4.74235,0 m 0,-2.783875 0,11.590736 m 5.03567,0.0093 0,-8.816161 4.77898,0"
- style="fill:none;stroke:#534917;stroke-width:0.40000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new"
- id="path5816" />
- <g
- transform="scale(0.99692491,1.0030846)"
- style="font-size:3.35809374px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;display:inline;enable-background:new;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
- id="text5818">
- <path
- style="line-height:125%;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
- d="m 322.99971,84.505959 c -0.32371,0.232981 -1.54949,0.04907 -0.57167,0.557469 1.30174,0.111492 0.90098,-1.166102 0.16184,-1.291557 0.7756,0.107934 0.81615,-0.650871 0.0161,-0.415116 -1.167,0.423486 -0.30987,0.983754 0.39371,1.149204 z"
- id="path3148"
- inkscape:connector-curvature="0" />
- <path
- style="line-height:125%;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
- d="m 324.52575,83.720165 c 0.58322,0.03859 0.10268,1.927499 0.68071,0.994317 -0.3454,-0.72254 0.65411,-1.459071 0.67298,-0.433284 -0.1754,1.210945 0.81092,0.431071 0.38687,-0.3259 -0.30544,-1.052506 -1.70368,-0.501021 -2.4567,-0.441665 0.0358,0.422654 -0.24246,1.331187 0.16648,1.501906 0.58935,-0.152916 -0.24835,-1.362377 0.54972,-1.295373"
- id="path3150"
- inkscape:connector-curvature="0" />
- <path
- style="line-height:125%;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
- d="m 327.4337,83.337343 c -0.70375,-0.234044 -0.80517,0.751699 -0.003,0.36018 0.96307,0.47219 -1.53569,0.210894 -0.53946,1.184024 1.15222,0.871793 1.96139,-1.044388 0.78064,-1.523536 -0.0776,-0.02067 -0.15937,-0.0125 -0.23867,-0.02067 z m 0.34254,1.232423 c -1.23331,0.556156 -0.29753,-0.917646 0,0 z"
- id="path3152"
- inkscape:connector-curvature="0" />
- <path
- style="line-height:125%;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
- d="m 328.92638,83.454876 c -0.71121,-0.25821 -0.25734,2.460253 0.0886,1.181193 -0.23749,-0.835217 0.28101,-0.801149 0.77477,-1.147657 -0.21432,-0.248059 -0.60833,-0.147961 -0.8634,-0.03354 z"
- id="path3154"
- inkscape:connector-curvature="0" />
- <path
- style="line-height:125%;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
- d="m 331.15846,84.959302 c -0.13091,-0.370672 -1.13688,-0.707435 -0.41974,-1.235716 1.0052,-0.210009 -0.3378,-0.211313 -0.25368,-0.824831 -0.82724,0.270344 -0.32313,1.166161 -0.20457,1.867126 0.16445,0.336794 0.58411,0.319444 0.87799,0.193421 z"
- id="path3156"
- inkscape:connector-curvature="0" />
- <path
- style="line-height:125%;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
- d="m 332.36092,84.213805 c -0.34598,1.156552 2.30829,0.778865 0.87676,0.398324 -1.11605,-0.394633 0.0921,-1.041939 0.53419,-1.056156 -0.28714,-0.59917 -1.58123,-0.02864 -1.41095,0.657832 z"
- id="path3158"
- inkscape:connector-curvature="0" />
- <path
- style="line-height:125%;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
- d="m 334.87136,83.337343 c -0.70375,-0.234044 -0.80517,0.7517 -0.003,0.36018 0.96308,0.472187 -1.53573,0.210908 -0.53944,1.184035 1.15222,0.871768 1.96152,-1.044324 0.78072,-1.523548 -0.0776,-0.02067 -0.15935,-0.01249 -0.23866,-0.02067 m 0.34252,1.23242 c -0.79103,0.509837 -0.62218,-0.701893 0.0231,-0.122198 l -0.0231,0.122198 -1e-5,0 z"
- id="path3160"
- inkscape:connector-curvature="0" />
- <path
- style="line-height:125%;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
- d="m 336.36403,83.454876 c -0.71123,-0.258235 -0.25735,2.460259 0.0886,1.181193 -0.23749,-0.835217 0.28101,-0.801149 0.77477,-1.147658 -0.21432,-0.248055 -0.60832,-0.147962 -0.86339,-0.03354 z"
- id="path3162"
- inkscape:connector-curvature="0" />
- <path
- style="line-height:125%;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
- d="m 337.43085,84.207089 c -0.19412,0.926634 1.81011,1.235668 1.60519,0.181973 0,-0.575565 0,-1.151129 0,-1.726694 -0.6641,-0.140942 -0.24181,1.169719 -1.07378,0.721555 -0.32992,0.120291 -0.56299,0.471056 -0.53139,0.823167 m 0.90333,0.460059 c -1.26081,-0.05566 0.4577,-1.896907 0.30375,-0.395608 0.045,0.197727 -0.0297,0.498815 -0.30375,0.395608 z"
- id="path3164"
- inkscape:connector-curvature="0" />
- </g>
- <rect
- style="color:#000000;fill:url(#linearGradient5866);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect5850"
- width="29.999918"
- height="17.999855"
- x="304.00003"
- y="135.00011"
- rx="0.98426384"
- ry="0.98426384" />
- <path
- style="color:#000000;fill:#ffffff;fill-opacity:0.1254902;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- d="m 304.28119,135.00013 c -0.15674,0 -0.28115,0.12252 -0.28115,0.27686 l 0,7.96657 c 1.04078,-0.41652 6.52593,-3.58226 14.03685,-2.91701 5.92717,0.52497 6.45133,3.26422 14.73948,4.10245 0.43522,0.0441 0.84241,-0.0654 1.22358,-0.082 l 0,-9.07012 c 0,-0.15435 -0.12441,-0.27686 -0.28115,-0.27686 z"
- id="path5852"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="sscsscsss" />
- <rect
- ry="1.7391665"
- rx="1.7391665"
- y="183"
- x="303"
- height="14"
- width="22"
- id="rect5912"
- style="color:#000000;fill:url(#linearGradient5926);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <path
- sodipodi:nodetypes="sscsscsss"
- inkscape:connector-curvature="0"
- id="path5914"
- d="m 303.21305,182.94658 c -0.11472,0 -0.20579,0.0955 -0.20579,0.21585 l 0,6.21093 c 0.76181,-0.32475 4.77672,-2.79283 10.27441,-2.27419 4.33843,0.40929 4.72211,2.54486 10.78869,3.19837 0.31857,0.0342 0.61662,-0.051 0.89562,-0.0639 l 0,-7.07126 c 0,-0.12034 -0.091,-0.21585 -0.20579,-0.21585 z"
- style="color:#000000;fill:#ffffff;fill-opacity:0.1254902;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="color:#000000;fill:url(#linearGradient5965);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect5951"
- width="15.999992"
- height="12"
- x="303"
- y="223"
- rx="1.1520458"
- ry="1.1520458" />
- <path
- style="color:#000000;fill:#ffffff;fill-opacity:0.1254902;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- d="m 303.13151,222.99567 c -0.0836,0 -0.14994,0.0743 -0.14994,0.16804 l 0,4.83532 c 0.55508,-0.25282 3.4805,-2.17427 7.48634,-1.77049 3.16115,0.31863 3.44071,1.98122 7.86106,2.48999 0.23212,0.0267 0.4493,-0.0398 0.65259,-0.0497 l 0,-5.50511 c 0,-0.0938 -0.0663,-0.16804 -0.14995,-0.16804 z"
- id="path5953"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="sscsscsss" />
- <g
- id="g6001">
- <rect
- transform="matrix(0,1,-1,0,0,0)"
- style="fill:#edd400;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5993);stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.8;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
- id="rect5957"
- width="9"
- height="11"
- x="224.5"
- y="-315.5"
- rx="0.77868956"
- ry="0.75055641" />
- <path
- sodipodi:nodetypes="ccccccccccc"
- inkscape:connector-curvature="0"
- d="m 305.4,227.52877 3.11391,0 m -3.11391,2.99452 3.11391,0 m 0,-5.12329 0,7.2 m 3.00306,0 0,-5.07126 3.08303,0 m -3.08303,2.99453 3.08303,0"
- style="fill:none;stroke:#997e00;stroke-width:0.80000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new"
- id="path5959" />
- </g>
- <use
- x="0"
- y="0"
- xlink:href="#g6001"
- id="use6005"
- transform="translate(1,-39)"
- width="400"
- height="300" />
- <rect
- style="fill:url(#radialGradient6021);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.57194108;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
- id="rect6013"
- width="11.786495"
- height="14.87607"
- x="137.10687"
- y="-320.93796"
- rx="2.2517214"
- ry="2.1703689"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- ry="1.6375959"
- rx="1.6989781"
- y="-320.50052"
- x="137.49954"
- height="14.001008"
- width="11.000917"
- id="rect6015"
- style="fill:url(#linearGradient6023);fill-opacity:1;fill-rule:evenodd;stroke:#c4a000;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.8;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- transform="matrix(0.00188775,0.99999822,-0.99999686,-0.00250432,0,0)"
- style="opacity:0.44943824;fill:none;stroke:url(#radialGradient6025);stroke-width:1.00000584;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.8;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
- id="rect6017"
- width="10.971724"
- height="13.984559"
- x="136.73004"
- y="-320.22476"
- rx="1.4222493"
- ry="1.3708594" />
- <path
- id="path6019"
- style="fill:none;stroke:#534917;stroke-width:0.40000004;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new"
- d="m 315.67112,145.03765 4.18202,0 m -12.74115,0 4.15261,0 m -4.14987,-4.08993 4.14987,0 m 0,-2.85579 0,9.80836 m 4.40652,0.008 0,-6.96046 4.18192,0"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccccccccc" />
- <g
- transform="scale(0.99692489,1.0030846)"
- style="font-size:3.35809374px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;display:inline;enable-background:new;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
- id="text5818-1">
- <path
- style="line-height:125%;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
- d="m 324.73265,150.20183 c -0.1498,0.47294 -1.22187,-0.24989 -0.92803,0.39893 0.44803,0.21962 1.36154,0.19425 1.34952,-0.46486 -0.17549,-0.36152 -1.51481,-0.69478 -0.48028,-0.74481 0.77118,0.0816 0.18308,-0.57638 -0.27856,-0.35109 -0.764,-0.0395 -0.81521,1.01459 -0.0215,0.98616 0.12766,0.0373 0.2619,0.0795 0.35874,0.17574"
- id="path3194"
- inkscape:connector-curvature="0" />
- <path
- style="line-height:125%;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
- d="m 326.25869,149.41603 c 0.71846,0.0386 -0.14498,1.60083 0.68772,1.20383 0.0179,-0.41554 -0.12296,-1.60217 0.61952,-1.07011 0.0999,0.36387 0.0235,0.75779 0.0461,1.13566 0.71789,0.15007 0.31762,-0.83289 0.37072,-1.2446 -0.21322,-0.68735 -0.99215,-0.22592 -1.47668,-0.33668 -0.39956,-0.045 -1.20695,-0.18263 -0.99616,0.501 0,0.36015 0,0.72031 0,1.08047 0.50746,0.18919 0.39911,-0.29755 0.40297,-0.60366 0.0437,-0.24774 -0.15038,-0.67967 0.25649,-0.65789 l 0.0894,-0.008"
- id="path3196"
- inkscape:connector-curvature="0" />
- <path
- style="line-height:125%;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
- d="m 329.16664,149.03321 c -0.32716,-0.17538 -0.99565,0.36781 -0.46833,0.39802 0.30912,-0.2484 1.20575,0.25077 0.50658,0.30317 -0.65596,-0.19946 -1.1852,0.74136 -0.40594,0.95373 0.35502,0.006 0.923,0.0745 1.13792,-0.16201 -0.11738,-0.48714 0.21614,-1.29662 -0.46842,-1.46339 -0.0987,-0.0238 -0.20056,-0.0318 -0.30182,-0.0295 m 0.34253,1.23242 c -0.26325,0.40537 -1.05186,-0.22392 -0.32028,-0.23605 0.18832,-0.0694 0.38958,0.007 0.32028,0.23605 z"
- id="path3198"
- inkscape:connector-curvature="0" />
- <path
- style="line-height:125%;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
- d="m 330.65932,149.15075 c -0.50816,-0.27071 -0.26674,0.61692 -0.31559,0.93657 0.0344,0.27813 -0.15175,0.76409 0.32991,0.60519 0.15485,-0.16454 0.0353,-0.49128 0.0731,-0.72395 -0.11713,-0.47484 0.15253,-0.66492 0.64507,-0.56399 0.51608,-0.4521 -0.53351,-0.42473 -0.73236,-0.25382"
- id="path3200"
- inkscape:connector-curvature="0" />
- <path
- style="line-height:125%;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
- d="m 332.8914,150.65517 c 0.15406,-0.45772 -0.90016,-0.23396 -0.57789,-0.85702 -0.0342,-0.26324 -0.023,-0.48106 0.30169,-0.38543 0.5643,0.0893 0.15789,-0.63836 -0.27811,-0.35519 0.15554,-0.33148 -0.27666,-0.72568 -0.4369,-0.31336 0.22561,0.36229 -0.64372,0.41043 -0.0911,0.66216 0.22765,0.45317 -0.1117,1.46905 0.77408,1.30723 0.10405,-0.0111 0.20641,-0.0336 0.30793,-0.0583"
- id="path3202"
- inkscape:connector-curvature="0" />
- </g>
- </g>
- <g
- inkscape:groupmode="layer"
- id="layer5"
- inkscape:label="hires"
- style="display:inline">
- <g
- inkscape:groupmode="layer"
- id="layer7"
- inkscape:label="card"
- style="display:inline">
- <rect
- style="opacity:0.9;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter5758);enable-background:accumulate"
- id="rect5716"
- width="234.22455"
- height="137.04115"
- x="31.293058"
- y="94.979431"
- rx="5.1461554"
- ry="4.75" />
- <rect
- style="color:#000000;fill:url(#linearGradient5538);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect5530"
- width="236.75"
- height="144.25"
- x="29.75"
- y="86.25"
- rx="7.8895049"
- ry="7.8895049" />
- <path
- style="color:#000000;fill:#ffffff;fill-opacity:0.1254902;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- d="m 31.96875,86.25 c -1.236888,0 -2.21875,0.981862 -2.21875,2.21875 l 0,63.84375 c 8.213435,-3.3381 51.500517,-28.70807 110.77449,-23.37684 46.77528,4.20707 50.91189,26.15933 116.31926,32.87684 3.4347,0.35275 6.64817,-0.52413 9.65625,-0.65625 l 0,-72.6875 c 0,-1.236888 -0.98186,-2.21875 -2.21875,-2.21875 z"
- id="rect5546"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="sscsscsss" />
- </g>
- <g
- inkscape:groupmode="layer"
- id="layer6"
- inkscape:label="chip"
- style="display:inline"
- sodipodi:insensitive="true">
- <rect
- style="fill:url(#radialGradient3610);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.57194108;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
- id="rect9523"
- width="56.384705"
- height="63.111481"
- x="119.12219"
- y="-114.04798"
- rx="8.1474466"
- ry="8.1474466"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- ry="6.1474447"
- rx="6.1474452"
- y="-112.58131"
- x="120.67642"
- height="60.178139"
- width="53.294991"
- id="rect9525"
- style="fill:url(#linearGradient5640);fill-opacity:1;fill-rule:evenodd;stroke:#c4a000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.8;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- transform="matrix(0.001679,0.99999859,-0.99999604,-0.00281563,0,0)"
- style="opacity:0.44943824;fill:none;stroke:url(#radialGradient5642);stroke-width:1.00000632;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.8;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
- id="rect9527"
- width="51.223022"
- height="58.07003"
- x="121.48322"
- y="-111.24284"
- rx="5.1461554"
- ry="5.1461334" />
- <path
- id="path4425"
- style="fill:none;stroke:#282e2f;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;enable-background:new"
- d="m 93.01004,159.80439 19.08411,0 m -19.1169,-12.22749 19.10314,0 m -59.17981,12.22749 18.80887,0 m -18.812733,-12.22749 18.812733,0 m -18.81815,-12.22749 18.90251,0 m -0.0844,-14.18495 0,52.24742 m 21.23733,0.0613 0,-38.10229 19.12426,-0.0214"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccccccccccccc" />
- <text
- xml:space="preserve"
- style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
- x="152.5"
- y="210.5"
- id="text5551"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- x="152.5"
- y="210.5"
- id="tspan5555"
- style="font-size:18px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold">smart card</tspan></text>
- </g>
- </g>
- </g>
-</svg>
diff --git a/gcr/tests/.gitignore b/gcr/tests/.gitignore
deleted file mode 100644
index f30fd7b9..00000000
--- a/gcr/tests/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-/ui-test-certificate
-/ui-test-details
-/ui-test-key
-/ui-test-unlock-options
-/test-ui-selector
diff --git a/gcr/tests/Makefile.am b/gcr/tests/Makefile.am
deleted file mode 100644
index 5872ff9f..00000000
--- a/gcr/tests/Makefile.am
+++ /dev/null
@@ -1,68 +0,0 @@
-
-INCLUDES = \
- -I$(top_builddir) \
- -I$(top_srcdir) \
- -DSRCDIR="\"@abs_srcdir@\"" \
- -DGCR_API_SUBJECT_TO_CHANGE \
- -DGCK_API_SUBJECT_TO_CHANGE \
- -DGCR_COMPILATION \
- $(GLIB_CFLAGS) \
- $(GTK_CFLAGS) \
- $(LIBGCRYPT_CFLAGS)
-
-LDADD = \
- $(top_builddir)/gcr/libgcr-testable.la \
- $(top_builddir)/egg/libegg.la \
- $(top_builddir)/egg/libegg-entry-buffer.la \
- $(top_builddir)/gck/libgck-testable.la \
- $(GTK_LIBS) \
- $(GLIB_LIBS) \
- $(LIBGCRYPT_LIBS)
-
-TEST_PROGS = \
- test-util \
- test-secret-exchange \
- test-simple-certificate \
- test-certificate \
- test-certificate-chain \
- test-fingerprint \
- test-pkcs11-certificate \
- test-openpgp \
- test-openssh \
- test-trust \
- test-parser \
- test-record \
- test-memory-icon \
- test-gnupg-key \
- test-gnupg-collection \
- test-gnupg-process
-
-check_PROGRAMS = $(TEST_PROGS)
-
-test: $(TEST_PROGS)
- chmod -f 700 $(srcdir)/files/gnupg-homedir
- gtester --verbose -m $(TEST_MODE) --g-fatal-warnings $(TEST_PROGS)
-
-check-local: test
-
-all-local: $(check_PROGRAMS)
-
-EXTRA_DIST = \
- files
-
-# ------------------------------------------------------------------
-
-noinst_PROGRAMS = \
- frob-certificate \
- frob-combo-selector \
- frob-gnupg-selector \
- frob-key \
- frob-tree-selector \
- frob-openpgp \
- frob-parser \
- frob-unlock \
- frob-unlock-options
-
-frob_unlock_SOURCES = \
- frob-unlock.c \
- ../gcr-viewer-window.c
diff --git a/gcr/tests/files/RSA_Root_Certificate_1.pem b/gcr/tests/files/RSA_Root_Certificate_1.pem
deleted file mode 100644
index f6cdfcd0..00000000
--- a/gcr/tests/files/RSA_Root_Certificate_1.pem
+++ /dev/null
@@ -1,19 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlD
-ZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIElu
-Yy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMgUG9saWN5IFZhbGlkYXRp
-b24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNv
-bS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYy
-NjAwMjIzM1oXDTE5MDYyNjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
-IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4x
-NTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMgUG9saWN5IFZhbGlkYXRpb24g
-QXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8x
-IDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3
-DQEBAQUAA4GNADCBiQKBgQDjmFGWHOjVsQaBalfDcnWTq8+epvzzFlLWLU2f
-NUSoLgRNB0mKOCn1dzfnt6td3zZxFJmP3MKS8edgkpfs2Ejcv8ECIMYkpChM
-MFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89HBFx1cQqYJJgpp0lZpd34
-t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliEZwgs3x/b
-e0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJn0Wu
-PIqpsHEzXcjFV9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/A
-PhmcGcwTTYJBtYze4D1gCCAPRX5ron+jjBXu
------END CERTIFICATE-----
diff --git a/gcr/tests/files/RSA_Security_1024_v3.pem b/gcr/tests/files/RSA_Security_1024_v3.pem
deleted file mode 100644
index 94e0ad13..00000000
--- a/gcr/tests/files/RSA_Security_1024_v3.pem
+++ /dev/null
@@ -1,16 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICXDCCAcWgAwIBAgIQCgEBAQAAAnwAAAALAAAAAjANBgkqhkiG9w0BAQUF
-ADA6MRkwFwYDVQQKExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0Eg
-U2VjdXJpdHkgMTAyNCBWMzAeFw0wMTAyMjIyMTAxNDlaFw0yNjAyMjIyMDAx
-NDlaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAbBgNVBAsTFFJT
-QSBTZWN1cml0eSAxMDI0IFYzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
-gQDV3f5mCc8kPD6ugU5OisRpgFtZO9+5TUzKtS3DJy08rwBCbbwoppbPf9dY
-rIMKo1W1exeQFYRMiu4mmdxY78c4pqqv0I5CyGLXq6yp+0p9v+r+Ek3d/yYt
-bzZUaMjShFbuklNhCbM/OZuoyZu9zp9+1BlqFikYvtc6adwlWzMaUQIDAQAB
-o2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSME
-GDAWgBTEwBykB5T9zU0B1FTapQxf3q4FWjAdBgNVHQ4EFgQUxMAcpAeU/c1N
-AdRU2qUMX96uBVowDQYJKoZIhvcNAQEFBQADgYEAPy1q4yZDlX2Jl2X7deRy
-HUZXxGFraZ8SmyzVWujAovBDleMf6XbN3Ou8k6BlCsdNT1+nr6JGFLkM88y9
-am63nd4lQtBU/55oc2PcJOsiv6hy8l4A4Q1OOkNumU4/iXgDmMrzVcydro7B
-qkWY+o8aoI2II/EVQQ2lRj6RP4vr93E=
------END CERTIFICATE-----
diff --git a/gcr/tests/files/RSA_Security_2048_v3.pem b/gcr/tests/files/RSA_Security_2048_v3.pem
deleted file mode 100644
index 86c907eb..00000000
--- a/gcr/tests/files/RSA_Security_2048_v3.pem
+++ /dev/null
@@ -1,22 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUF
-ADA6MRkwFwYDVQQKExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0Eg
-U2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAyMjIyMDM5MjNaFw0yNjAyMjIyMDM5
-MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAbBgNVBAsTFFJT
-QSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37
-RqtBaB4Y6lXIL5F4iSj7Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E
-0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgbWhOHV4PR8CDn6E8jQrAApX2J
-6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iHKrtjEAMq
-s6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzD
-uvsf9/UP+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2Mw
-YTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAW
-gBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4EFgQUB8NRMKSq6UWuNST6
-/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmYv/3V
-EhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5g
-EydxiKRz44Rj0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+
-f00/FGj1EVDVwfSQpQgdMWD/YIwjVAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJq
-aHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395nzIlQnQFgCi/vcEk
-llgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA
-pKnXwiJPZ9d37CAFYd4=
------END CERTIFICATE-----
diff --git a/gcr/tests/files/Thawte_Personal_Basic_CA.pem b/gcr/tests/files/Thawte_Personal_Basic_CA.pem
deleted file mode 100644
index 22c2a8db..00000000
--- a/gcr/tests/files/Thawte_Personal_Basic_CA.pem
+++ /dev/null
@@ -1,20 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDITCCAoqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMC
-WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3du
-MRowGAYDVQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlm
-aWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFBl
-cnNvbmFsIEJhc2ljIENBMSgwJgYJKoZIhvcNAQkBFhlwZXJzb25hbC1iYXNp
-Y0B0aGF3dGUuY29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVow
-gcsxCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNV
-BAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAm
-BgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xITAfBgNV
-BAMTGFRoYXd0ZSBQZXJzb25hbCBCYXNpYyBDQTEoMCYGCSqGSIb3DQEJARYZ
-cGVyc29uYWwtYmFzaWNAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOB
-jQAwgYkCgYEAvLyTU23AUE+CFeZIlDWmWr5vQvoPR+53dXLdjUmbllegeNTK
-P1GzaQuRdhciB5dqxFGTS+CN7zeVoQxN2jSQHReJl+A1OFdKwPQIcOk8RHtQ
-fmGakOMj04gRRif1CwcOu93RfyAKiLlWCy4cgNrx454p7xS9CkT7G1sY0b8j
-kyECAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOB
-gQAt4plrsD16iddZopQBHyvdEktTwq1/qqcAXJFAVyVKOKqEcLnZgA+le1z7
-c8a914phXAPjLSeoF+CEhULcXpvGt7Jtu3Sv5D/Lp7ew4F2+eIMllNLbgQ95
-B21P9DkVWlIBe94y1k049hJcBlDfBVu9FEuh3ym6O0GN92NWod8isQ==
------END CERTIFICATE-----
diff --git a/gcr/tests/files/Thawte_Personal_Freemail_CA.pem b/gcr/tests/files/Thawte_Personal_Freemail_CA.pem
deleted file mode 100644
index 565a4be1..00000000
--- a/gcr/tests/files/Thawte_Personal_Freemail_CA.pem
+++ /dev/null
@@ -1,21 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDLTCCApagAwIBAgIBADANBgkqhkiG9w0BAQQFADCB0TELMAkGA1UEBhMC
-WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3du
-MRowGAYDVQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlm
-aWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UEAxMbVGhhd3RlIFBl
-cnNvbmFsIEZyZWVtYWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJzb25hbC1m
-cmVlbWFpbEB0aGF3dGUuY29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIz
-NTk1OVowgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUx
-EjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENvbnN1bHRp
-bmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24x
-JDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBDQTErMCkGCSqG
-SIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTCBnzANBgkq
-hkiG9w0BAQEFAAOBjQAwgYkCgYEA1GnX1LCUZFtx6UfYDFG26nKRsIRefS0N
-j3sS34UldSh0OkIsYyeflXtL734Zhx2G6qPduc6WZBrCFG5ErHzmj+hND3Ef
-QDimAKOHePb5lIZererAXnbr2RSjXW56fAylS1V/Bhkpf56aJtVquzgkCGqY
-x7Hao5iR/Xnb5VrEHLkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
-hkiG9w0BAQQFAAOBgQDH7JJ+Tvj1lqVnYiqk8E0RYNBvjWBYYawmu1I1XAjP
-MPuoSpaKH2JCI4wXD/S6ZJwXrEcp352YXtJsYHFcoqzceePnbgBHH7UNKOgC
-neSa/RP0ptl8sfjcXyMmCZGAc9AUG95DqYMl8uacLxXK/qarigd1iwzdUYRr
-5PjRzneigQ==
------END CERTIFICATE-----
diff --git a/gcr/tests/files/Thawte_Personal_Premium_CA.pem b/gcr/tests/files/Thawte_Personal_Premium_CA.pem
deleted file mode 100644
index 688c3ae1..00000000
--- a/gcr/tests/files/Thawte_Personal_Premium_CA.pem
+++ /dev/null
@@ -1,21 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDKTCCApKgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBzzELMAkGA1UEBhMC
-WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3du
-MRowGAYDVQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlm
-aWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEjMCEGA1UEAxMaVGhhd3RlIFBl
-cnNvbmFsIFByZW1pdW0gQ0ExKjAoBgkqhkiG9w0BCQEWG3BlcnNvbmFsLXBy
-ZW1pdW1AdGhhd3RlLmNvbTAeFw05NjAxMDEwMDAwMDBaFw0yMDEyMzEyMzU5
-NTlaMIHPMQswCQYDVQQGEwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIw
-EAYDVQQHEwlDYXBlIFRvd24xGjAYBgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5n
-MSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMSMw
-IQYDVQQDExpUaGF3dGUgUGVyc29uYWwgUHJlbWl1bSBDQTEqMCgGCSqGSIb3
-DQEJARYbcGVyc29uYWwtcHJlbWl1bUB0aGF3dGUuY29tMIGfMA0GCSqGSIb3
-DQEBAQUAA4GNADCBiQKBgQDJZtn4B0TPuYwu8KHvE0VsBd/eJxZRNkERbGw7
-7f4QfRKe5ZtCmv5gMcNmt3M6SK5O0DI3lIi1DbbZ8/JE2dWIEt12TfIa/G8j
-Hnrx2JhFTgcQ7xZC0EN1bUre4qrJMf8fAHB8Zs8QJQi6+u4A6UYDZicRFTuq
-W/KY3TZCstqIdQIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3
-DQEBBAUAA4GBAGk2ifc0KjNyL2071CKyuG+axTZmDhs8obF1Wub9NdP4qPIH
-b4Vnjt4rueIXsDqg8A6iAJrf8xQVbrvIhVqYgPn/vnQdPfP+MCXRNzRn+qVx
-eTBhKXLA4CxM+1bkOqhv5TJZUtt1KFBZDPgLGeSs2a+WjS9Q2wfD6h+rM+D1
-KzGJ
------END CERTIFICATE-----
diff --git a/gcr/tests/files/Thawte_Premium_Server_CA.pem b/gcr/tests/files/Thawte_Premium_Server_CA.pem
deleted file mode 100644
index aa37cfc9..00000000
--- a/gcr/tests/files/Thawte_Premium_Server_CA.pem
+++ /dev/null
@@ -1,21 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMC
-WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3du
-MR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2Vy
-dGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3Rl
-IFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNl
-cnZlckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1
-OVowgc4xCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQ
-BgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMUVGhhd3RlIENvbnN1bHRpbmcg
-Y2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24x
-ITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3
-DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0B
-AQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhI
-NTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQug2SBhRz1JPL
-lyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/qgeN
-9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B
-AQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI
-hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZ
-a4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcU
-Qg==
------END CERTIFICATE-----
diff --git a/gcr/tests/files/Thawte_Server_CA.pem b/gcr/tests/files/Thawte_Server_CA.pem
deleted file mode 100644
index ac4e25bf..00000000
--- a/gcr/tests/files/Thawte_Server_CA.pem
+++ /dev/null
@@ -1,20 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMC
-WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3du
-MR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2Vy
-dGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3Rl
-IFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0
-ZS5jb20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkG
-A1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2Fw
-ZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UE
-CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQ
-VGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRz
-QHRoYXd0ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I
-/1Zr5s9dtuoMaHVHoqrC2oQl/Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC
-6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg71CcEJRCXL+eQbcAoQpnX
-TEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzARMA8G
-A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWD
-TSEwjsrZqG9JGubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6e
-QNuozDJ0uW8NxuOzRAvZim+aKZuZGCg70eNAKJpaPNW15yAbi8qkq43pUdni
-TCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc=
------END CERTIFICATE-----
diff --git a/gcr/tests/files/Thawte_Time_Stamping_CA.pem b/gcr/tests/files/Thawte_Time_Stamping_CA.pem
deleted file mode 100644
index fecbd15e..00000000
--- a/gcr/tests/files/Thawte_Time_Stamping_CA.pem
+++ /dev/null
@@ -1,18 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICoTCCAgqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBizELMAkGA1UEBhMC
-WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmls
-bGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhhd3RlIENlcnRpZmlj
-YXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcgQ0EwHhcNOTcw
-MTAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBizELMAkGA1UEBhMCWkExFTAT
-BgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzAN
-BgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24x
-HzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcgQ0EwgZ8wDQYJKoZIhvcN
-AQEBBQADgY0AMIGJAoGBANYrWHhhRYZT6jR7UZztsOYuGA7+4F+oJ9O0yeB8
-WU4WDnNUYMF/9p8u6TqFJBU820cEY8OexJQaWt9MevPZQx08EHp5JduQ/vBR
-5zDWQQD9nyjfeb6Uu522FOMjhdepQeBMpHmwKxqL8vg7ij5FrHGSALSQQZj7
-X+36ty6K+Ig3AgMBAAGjEzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcN
-AQEEBQADgYEAZ9viwuaHPUCDhjc1fR/OmsMMZiCouqoEiYbC9RAIDb/LogWK
-0E02PvTX72nGXuSwlG9KuefeW4i2e9vjJ+V2w/A1wcu1J5szedyQpgCed/r8
-zSeUQhac0xxo7L9c3eWpexAKMnRUEzGLhQOEkbdYATAUOK8oyvyxUBkZCayJ
-SdM=
------END CERTIFICATE-----
diff --git a/gcr/tests/files/ca-certificates.crt b/gcr/tests/files/ca-certificates.crt
deleted file mode 100644
index c30335f8..00000000
--- a/gcr/tests/files/ca-certificates.crt
+++ /dev/null
@@ -1,2560 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEuDCCA6CgAwIBAgIBBDANBgkqhkiG9w0BAQUFADCBtDELMAkGA1UEBhMCQlIx
-EzARBgNVBAoTCklDUC1CcmFzaWwxPTA7BgNVBAsTNEluc3RpdHV0byBOYWNpb25h
-bCBkZSBUZWNub2xvZ2lhIGRhIEluZm9ybWFjYW8gLSBJVEkxETAPBgNVBAcTCEJy
-YXNpbGlhMQswCQYDVQQIEwJERjExMC8GA1UEAxMoQXV0b3JpZGFkZSBDZXJ0aWZp
-Y2Fkb3JhIFJhaXogQnJhc2lsZWlyYTAeFw0wMTExMzAxMjU4MDBaFw0xMTExMzAy
-MzU5MDBaMIG0MQswCQYDVQQGEwJCUjETMBEGA1UEChMKSUNQLUJyYXNpbDE9MDsG
-A1UECxM0SW5zdGl0dXRvIE5hY2lvbmFsIGRlIFRlY25vbG9naWEgZGEgSW5mb3Jt
-YWNhbyAtIElUSTERMA8GA1UEBxMIQnJhc2lsaWExCzAJBgNVBAgTAkRGMTEwLwYD
-VQQDEyhBdXRvcmlkYWRlIENlcnRpZmljYWRvcmEgUmFpeiBCcmFzaWxlaXJhMIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwPMudwX/hvm+Uh2b/lQAcHVA
-isamaLkWdkwP9/S/tOKIgRrL6Oy+ZIGlOUdd6uYtk9Ma/3pUpgcfNAj0vYm5gsyj
-Qo9emsc+x6m4VWwk9iqMZSCK5EQkAq/Ut4n7KuLE1+gdftwdIgxfUsPt4CyNrY50
-QV57KM2UT8x5rrmzEjr7TICGpSUAl2gVqe6xaii+bmYR1QrmWaBSAG59LrkrjrYt
-bRhFboUDe1DK+6T8s5L6k8c8okpbHpa9veMztDVC9sPJ60MWXh6anVKo1UcLcbUR
-yEeNvZneVRKAAU6ouwdjDvwlsaKydFKwed0ToQ47bmUKgcm+wV3eTRk36UOnTwID
-AQABo4HSMIHPME4GA1UdIARHMEUwQwYFYEwBAQAwOjA4BggrBgEFBQcCARYsaHR0
-cDovL2FjcmFpei5pY3BicmFzaWwuZ292LmJyL0RQQ2FjcmFpei5wZGYwPQYDVR0f
-BDYwNDAyoDCgLoYsaHR0cDovL2FjcmFpei5pY3BicmFzaWwuZ292LmJyL0xDUmFj
-cmFpei5jcmwwHQYDVR0OBBYEFIr68VeEERM1kEL6V0lUaQ2kxPA3MA8GA1UdEwEB
-/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAZA5c1
-U/hgIh6OcgLAfiJgFWpvmDZWqlV30/bHFpj8iBobJSm5uDpt7TirYh1Uxe3fQaGl
-YjJe+9zd+izPRbBqXPVQA34EXcwk4qpWuf1hHriWfdrx8AcqSqr6CuQFwSr75Fos
-SzlwDADa70mT7wZjAmQhnZx2xJ6wfWlT9VQfS//JYeIc7Fue2JNLd00UOSMMaiK/
-t79enKNHEA2fupH3vEigf5Eh4bVAN5VohrTm6MY53x7XQZZr1ME7a55lFEnSeT0u
-mlOAjR2mAbvSM5X5oSZNrmetdzyTj2flCM8CC7MLab0kkdngRIlUBGHF1/S5nmPb
-K+9A46sd33oqK8n8
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290
-IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB
-IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA
-Y2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO
-BgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi
-MCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ
-ARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
-CgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ
-8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6
-zWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y
-fk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7
-w2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc
-G8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k
-epKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q
-laegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ
-QUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU
-fslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826
-YreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w
-ggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY
-gBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe
-MBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0
-IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy
-dC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw
-czovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0
-dHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl
-aHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC
-AQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg
-b3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB
-ACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc
-nWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg
-18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c
-gr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl
-Jzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY
-sONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T
-SCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF
-CpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum
-GCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk
-zk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW
-omTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDtTCCAp2gAwIBAgIRANAeQJAAAEZSAAAAAQAAAAQwDQYJKoZIhvcNAQEF
-BQAwgYkxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJEQzETMBEGA1UEBxMKV2Fz
-aGluZ3RvbjEXMBUGA1UEChMOQUJBLkVDT00sIElOQy4xGTAXBgNVBAMTEEFC
-QS5FQ09NIFJvb3QgQ0ExJDAiBgkqhkiG9w0BCQEWFWFkbWluQGRpZ3NpZ3Ry
-dXN0LmNvbTAeFw05OTA3MTIxNzMzNTNaFw0wOTA3MDkxNzMzNTNaMIGJMQsw
-CQYDVQQGEwJVUzELMAkGA1UECBMCREMxEzARBgNVBAcTCldhc2hpbmd0b24x
-FzAVBgNVBAoTDkFCQS5FQ09NLCBJTkMuMRkwFwYDVQQDExBBQkEuRUNPTSBS
-b290IENBMSQwIgYJKoZIhvcNAQkBFhVhZG1pbkBkaWdzaWd0cnVzdC5jb20w
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx0xHgeVVDBwhMywVC
-AOINg0Y95JO6tgbTDVm9PsHOQ2cBiiGo77zM0KLMsFWWU4RmBQDaREmA2FQK
-pSWGlO1jVv9wbKOhGdJ4vmgqRF4vz8wYXke8OrFGPR7wuSw0X4x8TAgpnUBV
-6zx9g9618PeKgw6hTLQ6pbNfWiKX7BmbwQVo/ea3qZGULOR4SCQaJRk665Wc
-OQqKz0Ky8BzVX/tr7WhWezkscjiw7pOp03t3POtxA6k4ShZsiSrK2jMTecJV
-jO2cu/LLWxD4LmE1xilMKtAqY9FlWbT4zfn0AIS2V0KFnTKo+SpU+/94Qby9
-cSj0u5C8/5Y0BONFnqFGKECBAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8C
-AQgwDQYJKoZIhvcNAQEFBQADggEBAARvJYbk5pYntNlCwNDJALF/VD6Hsm0k
-qS8Kfv2kRLD4VAe9G52dyntQJHsRW0mjpr8SdNWJt7cvmGQlFLdh6X9ggGvT
-ZOirvRrWUfrAtF13Gn9kCF55xgVM8XrdTX3O5kh7VNJhkoHWG9YA8A6eKHeg
-TYjHInYZw8eeG6Z3ePhfm1bR8PIXrI6dWeYf/le22V7hXZ9F7GFoGUHhsiAm
-/lowdiT/QHI8eZ98IkirRs3bs4Ysj78FQdPB4xTjQRcm0HyncUwZ6EoPclgx
-fexgeqMiKL0ZJGA/O4dzwGvky663qyVDslUte6sGDnVdNOVdc22esnVApVnJ
-TzFxiNmIf1Q=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIID5jCCAs6gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMC
-VVMxHTAbBgNVBAoTFEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNB
-bWVyaWNhIE9ubGluZSBJbmMuMTcwNQYDVQQDEy5BT0wgVGltZSBXYXJuZXIg
-Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyOTA2MDAw
-MFoXDTM3MTEyMDE1MDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRB
-T0wgVGltZSBXYXJuZXIgSW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUg
-SW5jLjE3MDUGA1UEAxMuQU9MIFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAJnej8Mlo2k06AX3dLm/WpcZuS+U0pPlLYnKhHw/EEMbjIt8hFj4JHxI
-zyr9wBXZGH6EGhfT257XyuTZ16pYUYfw8ItITuLCxFlpMGK2MKKMCxGZYTVt
-fu/FsRkGIBKOQuHfD5YQUqjPnF+VFNivO3ULMSAfRC+iYkGzuxgh28pxPIzs
-trkNn+9R7017EvILDOGsQI93f7DKeHEMXRZxcKLXwjqFzQ6axOAAsNUl6twr
-5JQtOJyJQVdkKGUZHLZEtMgxa44Be3ZZJX8VHIQIfHNlIAqhBC4aMqiaILGc
-LCFZ5/vP7nAtCMpjPiybkxlqpMKX/7eGV4iFbJ4VFitNLLMCAwEAAaNjMGEw
-DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUoTYwFsuGkABFgFOxj8jYPXy+
-XxIwHwYDVR0jBBgwFoAUoTYwFsuGkABFgFOxj8jYPXy+XxIwDgYDVR0PAQH/
-BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQCKIBilvrMvtKaEAEAwKfq0FHNM
-eUWn9nDg6H5kHgqVfGphwu9OH77/yZkfB2FK4V1Mza3u0FIy2VkyvNp5ctZ7
-CegCgTXTCt8RHcl5oIBN/lrXVtbtDyqvpxh1MwzqwWEFT2qaifKNuZ8u77Bf
-WgDrvq2g+EQFZ7zLBO+eZMXpyD8Fv8YvBxzDNnGGyjhmSs3WuEvGbKeXO/oT
-LW4jYYehY0KswsuXn2Fozy1MBJ3XJU8KDk2QixhWqJNIV9xvrr2eZ1d3iVCz
-vhGbRWeDhhmH05i9CBoWH1iCC+GWaQVLjuyDUTEH1dSf/1l7qG6Fz9NLqUmw
-X7A5KGgOc90lmt4S
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIF5jCCA86gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMC
-VVMxHTAbBgNVBAoTFEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNB
-bWVyaWNhIE9ubGluZSBJbmMuMTcwNQYDVQQDEy5BT0wgVGltZSBXYXJuZXIg
-Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyOTA2MDAw
-MFoXDTM3MDkyODIzNDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRB
-T0wgVGltZSBXYXJuZXIgSW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUg
-SW5jLjE3MDUGA1UEAxMuQU9MIFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
-ggIBALQ3WggWmRToVbEbJGv8x4vmh6mJ7ouZzU9AhqS2TcnZsdw8TQ2FTBVs
-RotSeJ/4I/1n9SQ6aF3Q92RhQVSji6UI0ilbm2BPJoPRYxJWSXakFsKlnUWs
-i4SVqBax7J/qJBrvuVdcmiQhLE0OcR+mrF1FdAOYxFSMFkpBd4aVdQxHAWZg
-/BXxD+r1FHjHDtdugRxev17nOirYlxcwfACtCJ0zr7iZYYCLqJV+FNwSbKTQ
-2O9ASQI2+W6p1h2WVgSysy0WVoaP2SBXgM1nEG2wTPDaRrbqJS5Gr42whTg0
-ixQmgiusrpkLjhTXUr2eacOGAgvqdnUxCc4zGSGFQ+aJLZ8lN2fxI2rSAG2X
-+Z/nKcrdH9cG6rjJuQkhn8g/BsXS6RJGAE57COtCPStIbp1n3UsC5ETzkxml
-J85per5n0/xQpCyrw2u544BMzwVhSyvcG7mm0tCq9Stz+86QNZ8MUhy/XCFh
-EVsVS6kkUfykXPcXnbDS+gfpj1bkGoxoigTTfFrjnqKhynFbotSg5ymFXQNo
-Kk/SBtc9+cMDLz9l+WceR0DTYw/j1Y75hauXTLPXJuuWCpTehTacyH+BCQJJ
-Kg71ZDIMgtG6aoIbs0t0EfOMd9afv9w3pKdVBC/UMejTRrkDfNoSTllkt1Ex
-MVCgyhwn2RAurda9EGYrw7AiShJbAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMB
-Af8wHQYDVR0OBBYEFE9pbQN+nZ8HGEO8txBO1b+pxCAoMB8GA1UdIwQYMBaA
-FE9pbQN+nZ8HGEO8txBO1b+pxCAoMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG
-9w0BAQUFAAOCAgEAO/Ouyuguh4X7ZVnnrREUpVe8WJ8kEle7+z802u6teio0
-cnAxa8cZmIDJgt43d15Ui47y6mdPyXSEkVYJ1eV6moG2gcKtNuTxVBFT8zRF
-ASbI5Rq8NEQh3q0l/HYWdyGQgJhXnU7q7C+qPBR7V8F+GBRn7iTGvboVsNIY
-vbdVgaxTwOjdaRITQrcCtQVBynlQboIOcXKTRuidDV29rs4prWPVVRaAMCf/
-drr3uNZK49m1+VLQTkCpx+XCMseqdiThawVQ68W/ClTluUI8JPu3B5wwn3la
-5uBAUhX0/Kr0VvlEl4ftDmVyXr4m+02kLQgH3thcoNyBM5kYJRF3p+v9WAks
-mWsbivNSPxpNSGDxoPYzAlOL7SUJuA0t7Zdz7NeWH45gDtoQmy8YJPamTQr5
-O8t1wswvziRpyQoijlmn94IM19drNZxDAGrElWe6nEXLuA4399xOAU++CrYD
-062KRffaJ00psUjf5BHklka9bAI+1lHIlRcBFanyqqryvy9lG2/QuRqT9Y41
-xICHPpQvZuTpqP9BnHAqTyo5GJUefvthATxRCC4oGKQWDzH9OmwjkyB24f0H
-hdFbP9IcczLd+rn4jM8Ch3qaluTtT4mNU0OrDhPAARW0eTjb/G49nlG2uBOL
-Z8/5fNkiHfZdxRwBL5joeiQYvITX+txyW/fBOmg=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJT
-RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4
-dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5h
-bCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzEL
-MAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1B
-ZGRUcnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1
-c3QgRXh0ZXJuYWwgQ0EgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBALf3GjPm8gAELTngTlvtH7xsD821+iO2zt6bETOXpClMfZOfvUq8
-k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfwTz/oMp50
-ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504
-B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDez
-eWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5
-aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0WicCAwEAAaOB
-3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0PBAQD
-AgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6
-xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
-cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdv
-cmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJ
-KoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
-j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5R
-xNKWt9x+Tu5w/Rw56wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjT
-K3rMUUKhemPR5ruhxSvCNr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1
-n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHx
-REzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49O
-hgQ=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJT
-RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRU
-UCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3Qw
-HhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQswCQYDVQQGEwJT
-RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRU
-UCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3Qw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwze
-xODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY654eyNAbFvAWlA3yCyykQruGI
-gb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWroulpOj0O
-M3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1Lc
-sRVlIPo1Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5
-mqRJjox0r26kmqPZm9I4XJuiGMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG
-9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8wHQYDVR0OBBYEFJWxtPCU
-tr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTADAQH/
-MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQsw
-CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFk
-ZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAx
-IENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxtZBsfzQ3duQH6lmM0
-MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph
-iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9
-tTEv2dB8Xfjea4MYeDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL
-/bscVjby/rK25Xa71SJlpz/+0WatC7xrmYbvP33zGDLKe8bjq2RGlfgmadlV
-g3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vjccweGyBECMB6
-tkD9xOQ14R0WHNC8K47Wcdk=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJT
-RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRU
-UCBOZXR3b3JrMSAwHgYDVQQDExdBZGRUcnVzdCBQdWJsaWMgQ0EgUm9vdDAe
-Fw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJBgNVBAYTAlNF
-MRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ
-IE5ldHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+
-A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbunyNu9DnLoblv8n75XYcmYZ4c
-+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1id9NEHif2
-P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKX
-C1sIXzSGAa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8R
-s3iQhCBSWxHveNCD9tVIkNAwHM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9
-BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0GA1UdDgQWBBSBPjfYkrAf
-d59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zCB
-jgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkG
-A1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRU
-cnVzdCBUVFAgTmV0d29yazEgMB4GA1UEAxMXQWRkVHJ1c3QgUHVibGljIENB
-IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4JNojVhaTdt02KLmu
-G7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL
-+YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbj
-PGsye/Kf8Lb93/AoGEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bY
-GozH7ZxOmuASu7VqTITh4SINhwBk/ox9Yjllpu9CtoAlEmEBqCQTcAARJl/6
-NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9HEufOX1362Kqx
-My3ZdvJOOjMMK7MtkAY=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJT
-RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRU
-UCBOZXR3b3JrMSMwIQYDVQQDExpBZGRUcnVzdCBRdWFsaWZpZWQgQ0EgUm9v
-dDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcxCzAJBgNVBAYT
-AlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3Qg
-VFRQIE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBS
-b290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoek
-n0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx64r1EW7tTw2R0hIYLUkVAcKk
-IhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3KP0q6p6z
-sLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1t
-UvznoD1oL/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R
-+Bg6Ot4l2ffTQO2kBhLEO+GRwVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvES
-a0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HUMIHRMB0GA1UdDgQWBBQ5
-lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUw
-AwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkw
-ZzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQL
-ExRBZGRUcnVzdCBUVFAgTmV0d29yazEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVh
-bGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBABmrder4i2Vh
-lRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG
-GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx9
-5dr6h+sNNVJn0J6XdgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKF
-Yqa0p9m9N5xotS1WfbC3P6CxB9bpT9zeRXEwMn8bLgn5v1Kh7sKAPgZcLlVA
-wRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDBiFrRHnGTHyQw
-dOUeqN48Jzd/g66ed8/wMLH/S5noxqE=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJV
-UzEcMBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1l
-cmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4X
-DTAyMDUyODA2MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkGA1UEBhMCVVMx
-HDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJp
-Y2EgT25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCa
-xlCyfqXfaE0bfA+2l2h9LaaLl+lkhsmj76CGv2BlnEtUiMJIxUo5vxTjWVXl
-GbR0yLQFOVwWpeKVBeASrlmLojNoWBym1BW32J/X3HGrfpq/m44zDyL9Hy7n
-BzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsWOqMFf6Dch9Wc/HKpoH145Lcx
-VR5lu9RhsCFg7RAycsWSJR74kEoYeEfffjA3PlAb2xzTa5qGUwew76wGePiE
-mf4hjUyAtgyC9mZweRrTT6PP8c9GsEsPPt2IYriMqQkoO3rHl+Ee5fSfwMCu
-JKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
-HQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAUAK3Zo/Z5
-9m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUA
-A4IBAQB8itEfGDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkF
-Zu90821fnZmv9ov761KyBZiibyrFVL0lvV+uyIbqRizBs73B6UlwGBaXCBOM
-IOAbLjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft3OJvx8Fi8eNy1gTI
-dGcL+oiroQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43g
-Kd8hdIaC2y+CMMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j
-8uB9Gr784N/Xx6dssPmuujz9dLQR6FgNgLzTqIA6me11zEZ7
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJV
-UzEcMBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1l
-cmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4X
-DTAyMDUyODA2MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkGA1UEBhMCVVMx
-HDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJp
-Y2EgT25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIw
-DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssN
-t79Hc9PwVU3dxgz6sWYFas14tNwC206B89enfHG8dWOgXeMHDEjsJcQDIPT/
-DjsS/5uN4cbVG7RtIuOx238hZK+GvFciKtZHgVdEglZTvYYUAQv8f3SkWq7x
-uhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2JxhP7JsowtS013wMPgwr38oE
-18aO6lhOqKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9BoInLRBYBbV4Bbkv2wxr
-kJB+FFk4u5QkE+XRnRTf04JNRvCAOVIyD+OEsnpD8l7eXz8d3eOyG6ChKiMD
-bi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0gBe4lL8BPeraunzgWGcX
-uVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67Xnfn6KVu
-Y8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEqZ8A9
-W6Wa6897GqidFEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZ
-o2C7HK2JNDJiuEMhBnIMoVxtRsX6Kc8w3onccVvdtjc+31D1uAclJuW8tf48
-ArO3+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnjB453cMor9H124Hhn
-AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3Op
-aaEg5+31IqEjFNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNee
-MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypL
-M7PmG2tZTiLMubekJcmnxPBUlgtk87FYT15R/LKXeydlwuXK5w0MJXti4/qf
-tIe3RUavg6WXSIylvfEWK5t2LHo1YGwRgJfMqZJS5ivmae2p+DYtLHe/YUjR
-Ywu5W1LtGLBDQiKmsXeu3mnFzcccobGlHBD7GL4acN3Bkku+KVqdPzW+5X1R
-+FXgJXUjhx5c3LqdsKyzadsXg8n33gy8CNyRnqjQ1xU3c6U1uPx+xURABsPr
-+CKAXEfOAuMRn0T//ZoyzH1kUQ7rVyZ2OuMeIjzCpjbdGe+n/BLzJsBZMYVM
-nNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgOZtMADjMSW7yV5TKQqLPGbIOt
-d+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2FAjgQ5ANh1NolNscI
-WC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUXOm/9riW99XJZ
-ZLF0KjhfGEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPbAZO1XB4Y
-3WRayhgoPmMEEf0cjQAPuDffZ4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQlZvqz
-2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuPcX/9XhmgD0uRuMRUvAaw
-RY8mkaKO/qk=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQG
-EwJJRTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0
-MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUx
-MjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNV
-BAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZ
-QmFsdGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAKMEuyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+h
-Xe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gR
-QKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/CG9VwcPCP
-wBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1
-pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNT
-Px8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkC
-AwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1BE3wMBIGA1Ud
-EwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUA
-A4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkT
-I7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
-jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/
-oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67
-G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
-RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYT
-AlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNl
-cnR1bSBDQTAeFw0wMjA2MTExMDQ2MzlaFw0yNzA2MTExMDQ2MzlaMD4xCzAJ
-BgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNV
-BAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-AM6xwS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYV
-M42sLQnFdvkrOYCJ5JdLkKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/Ox
-LjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ89eVgw1BS7Bqa/j8D35in2fE
-7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/KUz/iDsaW
-VhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu
-/qpGWX7PNSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYD
-VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESS
-bLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+GXYkHAQaTOs9qmdvLdTN
-/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvgGrZg
-FCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqT
-E5s7FCMTY5w/0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5x
-O/fIR/RpbxXyEV6DHpx8Uq79AtoSqFlnGNu8cN2bsWntgM6JQEhqDjXKKWYV
-IZQs6GAqm4VKQPNriiTsBhYscw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJH
-QjEbMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxm
-b3JkMRowGAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFB
-IENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIz
-MTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu
-Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENB
-IExpbWl0ZWQxITAfBgNVBAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL5AnfRu4ep2hxxNRUSO
-vkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhGC1Pqy0wk
-wLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfH
-dr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf04
-9vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULi
-mAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cmez6KJcfA3Z3m
-NWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEKIz6W
-8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB
-Af8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
-QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwu
-Y29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG
-9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
-7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHC
-v8S5dIa2LX1rzNLzRt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdV
-CYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAV
-GI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C12yxow+ev+to
-51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJH
-QjEbMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxm
-b3JkMRowGAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEkMCIGA1UEAwwbU2Vj
-dXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4
-MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIg
-TWFuY2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2Rv
-IENBIExpbWl0ZWQxJDAiBgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2
-aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMBxM4KK0HDr
-c4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP9nQ95IDC
-+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8
-j6ysNstcrbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWC
-iIxe004MeuoIkbY2qitC++rCoznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtG
-Cd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3Vp6ea5EQz6YiO/O1R65Nx
-Tq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4EFgQU
-PNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB
-/wQFMAMBAf8wgYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2Rv
-Y2EuY29tL1NlY3VyZUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDmgN6A1hjNo
-dHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlmaWNhdGVTZXJ2aWNl
-cy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm
-4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiF
-Gv45jN5bBAS0VPmjZ55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXG
-De+X3EyrEeFryzHRbPtIgKvcnDe4IRRLDXE97IMzbtFuMhbsmMcWi1mmNKsF
-Vy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6PwpCikFcSF9CfU
-a7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6s
-Cx1HRR3B7Hzs/Sk=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJH
-QjEbMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxm
-b3JkMRowGAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDElMCMGA1UEAwwcVHJ1
-c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEwMDAwMDBaFw0y
-ODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVy
-IE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9k
-byBDQSBMaW1pdGVkMSUwIwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNl
-cnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA33FvNlhT
-WvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh73TkVvFVI
-xO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9
-C1t2ul/y/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/
-oJOlh0Hyt3BAd9i+FHzjqMB6juljatEPmsbS9Is6FARW1O24zG71++IsWL1/
-T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsSivnkBbA7kUlcsutT6vif
-R4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1UdDgQW
-BBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T
-AQH/BAUwAwEB/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21v
-ZG9jYS5jb20vVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMuY3JsMDqgOKA2
-hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENlcnRpZmljYXRlU2Vy
-dmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw
-uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdT
-mw7pSqBYaWcOrp32pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+C
-l5EfKNsYEYwq5GWDVxISjBc/lDb+XbDABHcTuPQV1T84zJQ6VdCsmPW6AF/g
-hhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0lR+4viMi14QVF
-wL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOj
-GM9O9y5Xt5hwXsjEeLBi
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDKTCCApKgAwIBAgIENnAVljANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQG
-EwJVUzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREw
-DwYDVQQLEwhEU1RDQSBFMTAeFw05ODEyMTAxODEwMjNaFw0xODEyMTAxODQw
-MjNaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVy
-ZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUxMIGdMA0GCSqGSIb3DQEB
-AQUAA4GLADCBhwKBgQCgbIGpzzQeJN3+hijM3oMv+V7UQtLodGBmE5gGHKlR
-EmlvMVW5SXIACH7TpWJENySZj9mDSI+ZbZUTu0M7LklOiDfBu1h//uG9+Lth
-zfNHwJmm8fOR6Hh8AMthyUQncWlVSn5JTe2io74CTADKAqjuAQIxZA9SLRN0
-dja1erQtcQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBoBgNVHR8E
-YTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwg
-U2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTExDTALBgNV
-BAMTBENSTDEwKwYDVR0QBCQwIoAPMTk5ODEyMTAxODEwMjNagQ8yMDE4MTIx
-MDE4MTAyM1owCwYDVR0PBAQDAgEGMB8GA1UdIwQYMBaAFGp5fpFpRhgTCgJ3
-pVlbYJglDqL4MB0GA1UdDgQWBBRqeX6RaUYYEwoCd6VZW2CYJQ6i+DAMBgNV
-HRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3
-DQEBBQUAA4GBACIS2Hod3IEGtgllsofIH160L+nEHvI8wbsEkBFKg05+k7lN
-QseSJqBcNJo4cvj9axY+IO6CizEqkzaFI4iKPANo08kJD038bKTaKHKTDomA
-sH3+gG9lbRgzl4vCa4nuYD3Im+9/KzJic5PLPON74nZ4RbyhkwS7hp86W0N6
-w4pl
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIID2DCCAsACEQDQHkCLAAACfAAAAAIAAAABMA0GCSqGSIb3DQEBBQUAMIGp
-MQswCQYDVQQGEwJ1czENMAsGA1UECBMEVXRhaDEXMBUGA1UEBxMOU2FsdCBM
-YWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENv
-LjERMA8GA1UECxMIRFNUQ0EgWDExFjAUBgNVBAMTDURTVCBSb290Q0EgWDEx
-ITAfBgkqhkiG9w0BCQEWEmNhQGRpZ3NpZ3RydXN0LmNvbTAeFw05ODEyMDEx
-ODE4NTVaFw0wODExMjgxODE4NTVaMIGpMQswCQYDVQQGEwJ1czENMAsGA1UE
-CBMEVXRhaDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0Rp
-Z2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgWDEx
-FjAUBgNVBAMTDURTVCBSb290Q0EgWDExITAfBgkqhkiG9w0BCQEWEmNhQGRp
-Z3NpZ3RydXN0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-ANLGJrbnpT3BxGjVUG9TxW9JEwm4ryxIjRRqoxdfWvnTLnUv2Chi0ZMv/E3U
-q4flCMeZ55I/db3rJbQVwZsZPdJEjdd0IG03Ao9pk1uKxBmd9LIO/BZsubEF
-koPRhSxglD5FVaDZqwgh5mDoO3TymVBRaNADLbGAvqPYUrBEzUNKcI5YhZXh
-TizWLUFv1oTnyJhEykfbLCSlaSbPa7gnYsP0yXqSI+0TZ4KuRS5F5X5yP4Wd
-lGIQ5jyRoa13AOAV7POEgHJ6jm5gl8ckWRA0g1vhpaRptlc1HHhZxtMvOnNn
-7pTKBBMFYgZwI7P0fO5F2WQLW0mqpEPOJsREEmy43XkCAwEAATANBgkqhkiG
-9w0BAQUFAAOCAQEAojeyP2n714Z5VEkxlTMr89EJFEliYIalsBHiUMIdBlc+
-LegzZL6bqq1fG03UmZWii5rJYnK1aerZWKs17RWiQ9a2vAd5ZWRzfdd5ynvV
-WlHG4VMElo04z6MXrDlxawHDi1M8Y+nuecDkvpIyZHqzH5eUYr3qsiAVlfuX
-8ngvYzZAOONGDx3drJXK50uQe7FLqdTF65raqtWjlBRGjS0f8zrWkzr2Pnn8
-6Oawde3uPclwx12qgUtGJRzHbBXjlU4PqjI3lAoXJJIThFjSY28r9+ZbYgsT
-F7ANUkz+/m9c4pFuHf2kYtdo+o56T9II2pPc8JIRetDccpMMc5NihWjQ9A==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDKTCCApKgAwIBAgIENm7TzjANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQG
-EwJVUzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREw
-DwYDVQQLEwhEU1RDQSBFMjAeFw05ODEyMDkxOTE3MjZaFw0xODEyMDkxOTQ3
-MjZaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVy
-ZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUyMIGdMA0GCSqGSIb3DQEB
-AQUAA4GLADCBhwKBgQC/k48Xku8zExjrEH9OFr//Bo8qhbxe+SSmJIi2A7fB
-w18DW9Fvrn5C6mYjuGODVvsoLeE4i7TuqAHhzhy2iCoiRoX7n6dwqUcUP87e
-ZfCocfdPJmyMvMa1795JJ/9IKn3oTQPMx7JSxhcxEzu1TdvIxPbDDyQq2gyd
-55FbgM2UnQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBoBgNVHR8E
-YTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwg
-U2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTIxDTALBgNV
-BAMTBENSTDEwKwYDVR0QBCQwIoAPMTk5ODEyMDkxOTE3MjZagQ8yMDE4MTIw
-OTE5MTcyNlowCwYDVR0PBAQDAgEGMB8GA1UdIwQYMBaAFB6CTShlgDzJQW6s
-NS5ay97u+DlbMB0GA1UdDgQWBBQegk0oZYA8yUFurDUuWsve7vg5WzAMBgNV
-HRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3
-DQEBBQUAA4GBAEeNg61i8tuwnkUiBbmi1gMOOHLnnvx75pO2mqWilMg0HZHR
-xdf0CiUPPXiBng+xZ8SQTGPdXqfiup/1902lMXucKS1M/mQ+7LZT/uqb7YLb
-dHVLB3luHtgZg3Pe9T7Qtd7nS2h9Qy4qIOF+oHhEngj1mPnHfxsb1gYgAlih
-w6ID
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIID2DCCAsACEQDQHkCLAAB3bQAAAAEAAAAEMA0GCSqGSIb3DQEBBQUAMIGp
-MQswCQYDVQQGEwJ1czENMAsGA1UECBMEVXRhaDEXMBUGA1UEBxMOU2FsdCBM
-YWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENv
-LjERMA8GA1UECxMIRFNUQ0EgWDIxFjAUBgNVBAMTDURTVCBSb290Q0EgWDIx
-ITAfBgkqhkiG9w0BCQEWEmNhQGRpZ3NpZ3RydXN0LmNvbTAeFw05ODExMzAy
-MjQ2MTZaFw0wODExMjcyMjQ2MTZaMIGpMQswCQYDVQQGEwJ1czENMAsGA1UE
-CBMEVXRhaDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0Rp
-Z2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgWDIx
-FjAUBgNVBAMTDURTVCBSb290Q0EgWDIxITAfBgkqhkiG9w0BCQEWEmNhQGRp
-Z3NpZ3RydXN0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-ANx18IzAdZaawGIfJvfE4Zrq4FZzW5nNAUSoCLbVp9oaBBg5kkp4o4HC9Xd6
-ULRw/5qrxsfKboNPQpj7Jgva3G3WqZlVUmfpKAOS3OWwBZoPFflrWXJW8vo5
-/Kpo7g8fEIMv/J36F5bdguPmRX3AS4BEH+0s4IT9kVySVGkl5WJp3OXuAFK9
-MwutdQKFp2RQLcUZGTDAJtvJ0/0uma1ZtQtN1EGuhUhDWdy3qOKi3sOP17ih
-YqZoUFLkzzGnlIXan0YyF1bl8utmPRL/Q9uY73fPy4GNNLHGUEom0eQ+QVCv
-bK4iNC7Va26Dunm4dmVI2gkpZGMiuftHdoWMhkTLCdsCAwEAATANBgkqhkiG
-9w0BAQUFAAOCAQEAtTYOXeFhKFoRZcA/gwN5Tb4opgsHAlKFzfiR0BBstWog
-WxyQ2TA8xkieil5k+aFxd+8EJx8H6+Qm93N0yUQYGmbT4EOvkTvRyyzYdFQ6
-HE3K1GjNI3wdEJ5F6fYAbqbNGf9PLCmPV03Ed5K+4EwJ+11EhmYhqLkyolbV
-6YyDfFk/xPEL553snr2cGA4+wjl5KLcDDQjLxufZATdQEOzMYRZA1K8xdHv8
-PzGn0EdzMzkbzE5q10mDEQb+64JYMzJM8FasHpwvVpp7wUocpf1VNs78lk30
-sPDst2yC7S8xmUJMqbINuBVd8d+6ybVK1GSYsyapMMj9puyrliGtf8J4tg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEgzCCA+ygAwIBAgIEOJ725DANBgkqhkiG9w0BAQQFADCBtDEUMBIGA1UE
-ChMLRW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9HQ0NB
-X0NQUyBpbmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsT
-HChjKSAyMDAwIEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1
-c3QubmV0IENsaWVudCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMDAy
-MDcxNjE2NDBaFw0yMDAyMDcxNjQ2NDBaMIG0MRQwEgYDVQQKEwtFbnRydXN0
-Lm5ldDFAMD4GA1UECxQ3d3d3LmVudHJ1c3QubmV0L0dDQ0FfQ1BTIGluY29y
-cC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDIwMDAg
-RW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5uZXQgQ2xp
-ZW50IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQCTdLS25MVL1qFof2LV7PdRV7NySpj10InJrWPNTTVRaoTU
-rcloeW+46xHbh65cJFET8VQlhK8pK5/jgOLZy93GRUk0iJBeAZfv6lOm3fzB
-3ksqJeTpNfpVBQbliXrqpBFXO/x8PTbNZzVtpKklWb1m9fkn5JVn1j+SgF7y
-NH0rhQIDAQABo4IBnjCCAZowEQYJYIZIAYb4QgEBBAQDAgAHMIHdBgNVHR8E
-gdUwgdIwgc+ggcyggcmkgcYwgcMxFDASBgNVBAoTC0VudHJ1c3QubmV0MUAw
-PgYDVQQLFDd3d3cuZW50cnVzdC5uZXQvR0NDQV9DUFMgaW5jb3JwLiBieSBy
-ZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMjAwMCBFbnRydXN0
-Lm5ldCBMaW1pdGVkMTMwMQYDVQQDEypFbnRydXN0Lm5ldCBDbGllbnQgQ2Vy
-dGlmaWNhdGlvbiBBdXRob3JpdHkxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw
-IoAPMjAwMDAyMDcxNjE2NDBagQ8yMDIwMDIwNzE2NDY0MFowCwYDVR0PBAQD
-AgEGMB8GA1UdIwQYMBaAFISLdP3FjcD/J20gN0V8/i3OutN9MB0GA1UdDgQW
-BBSEi3T9xY3A/ydtIDdFfP4tzrrTfTAMBgNVHRMEBTADAQH/MB0GCSqGSIb2
-fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0BAQQFAAOBgQBObzWA
-O9GK9Q6nIMstZVXQkvTnhLUGJoMShAusO7JE7r3PQNsgDrpuFOow4DtifH+L
-a3xKp9U1PL6oXOpLu5OOgGarDyn9TS2/GpsKkMWr2tGzhtQvJFJcem3G8v7l
-TRowjJDyutdKPkN+1MhQGof4T4HHdguEOnKdzmVml64mXg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIElTCCA/6gAwIBAgIEOJsRPDANBgkqhkiG9w0BAQQFADCBujEUMBIGA1UE
-ChMLRW50cnVzdC5uZXQxPzA9BgNVBAsUNnd3dy5lbnRydXN0Lm5ldC9TU0xf
-Q1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc
-KGMpIDIwMDAgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVz
-dC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
-Fw0wMDAyMDQxNzIwMDBaFw0yMDAyMDQxNzUwMDBaMIG6MRQwEgYDVQQKEwtF
-bnRydXN0Lm5ldDE/MD0GA1UECxQ2d3d3LmVudHJ1c3QubmV0L1NTTF9DUFMg
-aW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykg
-MjAwMCBFbnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5l
-dCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0G
-CSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHwV9OcfHO8GCGD9JYf9Mzly0XonUw
-tZZkJi9ow0SrqHXmAGc0V55lxyKbc+bT3QgON1WqJUaBbL3+qPZ1V1eMkGxK
-wz6LS0MKyRFWmponIpnPVZ5h2QLifLZ8OAfc439PmrkDQYC2dWcTC5/oVzbI
-XQA23mYU2m52H083jIITiQIDAQABo4IBpDCCAaAwEQYJYIZIAYb4QgEBBAQD
-AgAHMIHjBgNVHR8EgdswgdgwgdWggdKggc+kgcwwgckxFDASBgNVBAoTC0Vu
-dHJ1c3QubmV0MT8wPQYDVQQLFDZ3d3cuZW50cnVzdC5uZXQvU1NMX0NQUyBp
-bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAy
-MDAwIEVudHJ1c3QubmV0IExpbWl0ZWQxOjA4BgNVBAMTMUVudHJ1c3QubmV0
-IFNlY3VyZSBTZXJ2ZXIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxDTALBgNV
-BAMTBENSTDEwKwYDVR0QBCQwIoAPMjAwMDAyMDQxNzIwMDBagQ8yMDIwMDIw
-NDE3NTAwMFowCwYDVR0PBAQDAgEGMB8GA1UdIwQYMBaAFMtswGvjuz7L/CKc
-/vuLkpyw8m4iMB0GA1UdDgQWBBTLbMBr47s+y/winP77i5KcsPJuIjAMBgNV
-HRMEBTADAQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkq
-hkiG9w0BAQQFAAOBgQBi24GRzsiad0Iv7L0no1MPUBvqTpLwqa+poLpIYcvv
-yQbvH9X07t9WLebKahlzqlO+krNQAraFJnJj2HVQYnUUt7NQGj/KEQALhUVp
-bbalrlHhStyCP2yMNLJ3a9kC9n8O6mUE8c1UyrrJzOCE98g+EZfTYAkYvAX/
-bIkz8OwVDw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UE
-ChMLRW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNf
-MjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsT
-HChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1
-c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEy
-MjQxNzUwNTFaFw0xOTEyMjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0
-Lm5ldDFAMD4GA1UECxQ3d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29y
-cC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkg
-RW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5uZXQgQ2Vy
-dGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4
-QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/EC
-DNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuXMlBvPci6Zgzj
-/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzWnLLP
-KQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZd
-enoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH
-4QIDAQABo3QwcjARBglghkgBhvhCAQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB
-0RGAvtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdERgL7YibkIozH5oSQJ
-FrlwMB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0B
-AQUFAAOCAQEAWUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFh
-fGPjK50xA3B20qMooPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVU
-KcgF7bISKo30Axv/55IQh7A6tcOdBTcSo8f0FbnVpDkWm1M6I5HxqIKiaoho
-wXkCIryqptau37AUX7iH0N18f3v/rxzP5tsHrV7bhZ3QKw0z2wTR5klAEyt2
-+z7pnIkPFc4YsIV4IU9rTw76NmfNB/L/CNDi3tm/Kq+4h4YhPATKt5Rof888
-6ZjXOP/swNlQ8C5LWK5Gb9Auw2DaclVyvUxFnmG6v4SBkgPR0ml8xQ==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIE7TCCBFagAwIBAgIEOAOR7jANBgkqhkiG9w0BAQQFADCByTELMAkGA1UE
-BhMCVVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MUgwRgYDVQQLFD93d3cuZW50
-cnVzdC5uZXQvQ2xpZW50X0NBX0luZm8vQ1BTIGluY29ycC4gYnkgcmVmLiBs
-aW1pdHMgbGlhYi4xJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExp
-bWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENsaWVudCBDZXJ0aWZpY2F0
-aW9uIEF1dGhvcml0eTAeFw05OTEwMTIxOTI0MzBaFw0xOTEwMTIxOTU0MzBa
-MIHJMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxSDBGBgNV
-BAsUP3d3dy5lbnRydXN0Lm5ldC9DbGllbnRfQ0FfSW5mby9DUFMgaW5jb3Jw
-LiBieSByZWYuIGxpbWl0cyBsaWFiLjElMCMGA1UECxMcKGMpIDE5OTkgRW50
-cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5uZXQgQ2xpZW50
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GL
-ADCBhwKBgQDIOpleMRffrCdvkHvkGf9FozTC28GoT/Bo6oT9n3V5z8GKUZSv
-x1cDR2SerYIbWtp/N3hHuzeYEpbOxhN979IMMFGpOZ5V+Pux5zDeg7K6PvHV
-iTs7hbqqdCz+PzFur5GVbgbUB01LLFZHGARS2g4Qk79jkJvh34zmAqTmT173
-iwIBA6OCAeAwggHcMBEGCWCGSAGG+EIBAQQEAwIABzCCASIGA1UdHwSCARkw
-ggEVMIHkoIHhoIHepIHbMIHYMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50
-cnVzdC5uZXQxSDBGBgNVBAsUP3d3dy5lbnRydXN0Lm5ldC9DbGllbnRfQ0Ff
-SW5mby9DUFMgaW5jb3JwLiBieSByZWYuIGxpbWl0cyBsaWFiLjElMCMGA1UE
-CxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50
-cnVzdC5uZXQgQ2xpZW50IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYD
-VQQDEwRDUkwxMCygKqAohiZodHRwOi8vd3d3LmVudHJ1c3QubmV0L0NSTC9D
-bGllbnQxLmNybDArBgNVHRAEJDAigA8xOTk5MTAxMjE5MjQzMFqBDzIwMTkx
-MDEyMTkyNDMwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUxPucKXuXzUyW
-/O5bs8qZdIuV6kwwHQYDVR0OBBYEFMT7nCl7l81MlvzuW7PKmXSLlepMMAwG
-A1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZI
-hvcNAQEEBQADgYEAP66K8ddmAwWePvrqHEa7pFuPeJoSSJn59DXeDDYHAmsQ
-OokUgZwxpnyyQbJq5wcBoUv5nyU7lsqZwz6hURzzwy5E97BnRqqS5TvaHBkU
-ODDV4qIxJS7x7EU47fgGWANzYrAQMY9Av2TgXD7FTx/aEkP/TOYGJqibGapE
-PHayXOw=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UE
-BhMCVVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50
-cnVzdC5uZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
-MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UE
-AxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eTAeFw05OTA1MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQsw
-CQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3
-dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlh
-Yi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVkMTow
-OAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp
-b24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDNKIM0
-VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/I0dNxScZgSYMVHIN
-iC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3wkrYKZImZNHk
-mGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OCAdcwggHT
-MBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHboIHY
-pIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5
-BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChs
-aW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBM
-aW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNo
-dHRwOi8vd3d3LmVudHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAi
-gA8xOTk5MDUyNTE2MDk0MFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMC
-AQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYE
-FPAXYhNVPbP/CgBr+1CEl/PtYtAaMAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9
-B0EABAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEAkNwwAvpkdMKn
-CqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN95K+8cPV1ZVqBLssziY2Zcgx
-xufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd2cNgQ4xYDiKWL2KjLB+6
-rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQG
-EwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1
-cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4
-MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgx
-LTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0
-eTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2R
-FGiYCh7+2gRvE4RiIcPRfM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO
-/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuv
-K9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAGA1UdHwRp
-MGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEt
-MCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
-MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjAL
-BgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gjIBBPM5iQn9Qw
-HQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMBAf8w
-GgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GB
-AFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
-7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2u
-FHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJV
-UzEcMBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1
-aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNpbmVzcyBDQS0xMB4XDTk5MDYyMTA0
-MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMxHDAaBgNVBAoT
-E0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJl
-IEdsb2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
-gYkCgYEAuucXkAJlsTRVPEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQy
-td4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzNqfTWK8D3+ZmqY6KxRwIP1ORR
-OhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxnhcXIw2EC
-AwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8w
-HwYDVR0jBBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6o
-oHRyUGtEt8kj2Puo/7NXa2hsMA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf
-2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okENI7SS+RkAZ70Br83gcfxa
-z2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIYNMR1
-pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJV
-UzEcMBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1
-aWZheCBTZWN1cmUgZUJ1c2luZXNzIENBLTEwHhcNOTkwNjIxMDQwMDAwWhcN
-MjAwNjIxMDQwMDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMTRXF1aWZh
-eCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2lu
-ZXNzIENBLTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fe
-k6lfWg0XTzQaDJj0ItlZ1MRoRvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5
-/VGcqiTZ9J2DKocKIdMSODRsjQBuWqDZQu4aIZX5UkxVWsUPOE9G+m34LjXW
-HXzr4vCwdYDIqROsvojvOm6rXyo4YgKwEnv+j6YDAgMBAAGjZjBkMBEGCWCG
-SAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEp4
-MlIR21kWNl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRKeDJSEdtZFjZe38EUNkBq
-R3xMoTANBgkqhkiG9w0BAQQFAAOBgQB1W6ibAxHm6VZMzfmpTMANmvPMZWnm
-JXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5lSE/9dR+WB5Hh1Q+WKG1
-tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN/Bf+KpYr
-tWKmpj29f5JZzVoqgrI3eQ==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQG
-EwJVUzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlm
-YXggU2VjdXJlIGVCdXNpbmVzcyBDQS0yMB4XDTk5MDYyMzEyMTQ0NVoXDTE5
-MDYyMzEyMTQ0NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkVxdWlmYXgg
-U2VjdXJlMSYwJAYDVQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0Et
-MjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF
-7Y6yEb3+6+e0dMKP/wXn2Z0GvxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKD
-pkWNYmi7hRsgcDKqQM2mll/EcTc/BPO3QSQ5BxoeLmFYoBIL5aXfxavqN3HM
-HMg3OrmXUqesxWoklE6ce8/AatbfIb0CAwEAAaOCAQkwggEFMHAGA1UdHwRp
-MGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORXF1aWZheCBT
-ZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0y
-MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTkwNjIzMTIxNDQ1WjAL
-BgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9euSBIplBqy/3YIHqngnYw
-HQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQFMAMBAf8w
-GgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GB
-AAyGgq3oThr1jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy
-0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkt
-y3D1E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUmV+GRMOrN
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgw
-FgYDVQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRy
-dXN0IFNvbHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVyVHJ1c3Qg
-R2xvYmFsIFJvb3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEzMjM1OTAwWjB1
-MQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYD
-VQQLEx5HVEUgQ3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMT
-GkdURSBDeWJlclRydXN0IEdsb2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQCVD6C28FCc6HrHiM3dFw4usJTQGz0O9pTAipTHBsiQl8i4
-ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTSr41tiGeA5u2ylc9yMcqlHHK6XALn
-ZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X404Wqk2kmhXBIgD8SFcd5tB8F
-LztimQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAG3rGwnpXtlR22ciYaQqPEh3
-46B8pt5zohQDhT37qw4wxYMWM4ETCJ57NE7fQMh017l93PR2VX2bY1QY6fDq
-81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OFNMQkpw0PlZPvy5TYnh+d
-XIVtx6quTx8itc2VrbqnzPmrC3p/
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIB+jCCAWMCAgGjMA0GCSqGSIb3DQEBBAUAMEUxCzAJBgNVBAYTAlVTMRgw
-FgYDVQQKEw9HVEUgQ29ycG9yYXRpb24xHDAaBgNVBAMTE0dURSBDeWJlclRy
-dXN0IFJvb3QwHhcNOTYwMjIzMjMwMTAwWhcNMDYwMjIzMjM1OTAwWjBFMQsw
-CQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMRwwGgYDVQQD
-ExNHVEUgQ3liZXJUcnVzdCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
-iQKBgQC45k+625h8cXyvRLfTD0bZZOWTwUKOx7pJjTUteueLveUFMVnGsS8K
-DPufpz+iCWaEVh43KRuH6X4MypqfpX/1FZSj1aJGgthoTNE3FQZor734sLPw
-KfWVWgkWYXcKIiXUT0Wqx73llt/51KiOQswkwB6RJ0q1bQaAYznEol44AwID
-AQABMA0GCSqGSIb3DQEBBAUAA4GBABKzdcZfHeFhVYAA1IFLezEPI2PnPfMD
-+fQ2qLvZ46WXTeorKeDWanOB5sCJo9Px4KWlIjeaY8JIILTbcuPI9tl8vrGv
-U9oUtCG41tWW4/5ODFlitppK+ULdjG+BqXH/9ApybW1EDp3zdHSo1TRJ6V6e
-6bR64eVaH4QwnNOfpSXY
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYT
-AlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVz
-dCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBC
-MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UE
-AxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEH
-CIjaWC9mOSm9BXiLnTjoBbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlC
-GDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet8u5fa9IAjbkU+BQVNdnARqN7
-csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+VcT4wt/lAj
-Nvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdRe
-JivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQAB
-o1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9
-qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1luMrMTjANBgkq
-hkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Qzxpe
-R+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWV
-Yrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
-PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot
-2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeX
-xx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
-Mw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDdTCCAl2gAwIBAgILAgAAAAAA1ni3lAUwDQYJKoZIhvcNAQEEBQAwVzEL
-MAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNV
-BAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05
-ODA5MDExMjAwMDBaFw0xNDAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkw
-FwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw
-GQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUA
-A4IBDwAwggEKAoIBAQDaDuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR
-4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc
-71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4
-bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgK
-OOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMW
-ea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DP
-AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIABjAdBgNVHQ4EFgQUYHtmGkUNl8qJ
-UC99BM00qP/8/UswDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOC
-AQEArqqf/LfSyx9fOSkoGJ40yWxPbxrwZKJwSk8ThptgKJ7ogUmYfQq75bCd
-PTbbjwVR/wkxKh/diXeeDy5slQTthsu0AD+EAk2AaioteAuubyuig0SDH81Q
-gkwkr733pbTIWg/050deSY43lv6aiAU62cDbKYfmGZZHpzqmjIs8d/5GY6dT
-2iHRrH5Jokvmw2dZL7OKDrssvamqQnw1wdh/1acxOk5jQzmvCLBhNIzTmKlD
-NPYPhyk7ncJWWJh3w/cbrPad+D6qp1RF8PX51TFl/mtYnHGzHtdS6jIX/EBg
-Hcl5JLL2bP2oZg6C3ZjL2sJETy6ge/L3ayx2EYRGinij4w==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIH6jCCB1OgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARIxCzAJBgNVBAYT
-AkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEu
-MCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5s
-LjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1
-MjEuMCwGA1UECxMlSVBTIENBIENMQVNFMSBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eTEuMCwGA1UEAxMlSVBTIENBIENMQVNFMSBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eTEeMBwGCSqGSIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTAx
-MTIyOTAwNTkzOFoXDTI1MTIyNzAwNTkzOFowggESMQswCQYDVQQGEwJFUzES
-MBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJjZWxvbmExLjAsBgNV
-BAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZpY2VzIHMubC4xKzAp
-BgNVBAoUImlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEItNjA5Mjk0NTIxLjAs
-BgNVBAsTJUlQUyBDQSBDTEFTRTEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx
-LjAsBgNVBAMTJUlQUyBDQSBDTEFTRTEgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkxHjAcBgkqhkiG9w0BCQEWD2lwc0BtYWlsLmlwcy5lczCBnzANBgkqhkiG
-9w0BAQEFAAOBjQAwgYkCgYEA4FEnpwvdr9G5Q1uCN0VWcu+atsIS7ywSzHb5
-BlmvXSHU0lq4oNTzav3KaY1mSPd05u42veiWkXWmcSjK5yISMmmwPh5r9FBS
-YmL9Yzt9fuzuOOpi9GyocY3h6YvJP8a1zZRCb92CRTzo3wno7wpVqVZHYUxJ
-ZHMQKD/Kvwn/xi8CAwEAAaOCBEowggRGMB0GA1UdDgQWBBTrsxl588GlHKzc
-uh9morKbadB4CDCCAUQGA1UdIwSCATswggE3gBTrsxl588GlHKzcuh9morKb
-adB4CKGCARqkggEWMIIBEjELMAkGA1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNl
-bG9uYTESMBAGA1UEBxMJQmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJu
-ZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBzLmwuMSswKQYDVQQKFCJpcHNAbWFp
-bC5pcHMuZXMgQy5JLkYuICBCLTYwOTI5NDUyMS4wLAYDVQQLEyVJUFMgQ0Eg
-Q0xBU0UxIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVJUFMg
-Q0EgQ0xBU0UxIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcN
-AQkBFg9pcHNAbWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8E
-BQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUH
-AwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIB
-FgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcw
-GgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0Bt
-YWlsLmlwcy5lczBBBglghkgBhvhCAQ0ENBYyQ0xBU0UxIENBIENlcnRpZmlj
-YXRlIGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5lcy8wKQYJYIZIAYb4QgEC
-BBwWGmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMDoGCWCGSAGG+EIBBAQt
-FitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJDTEFTRTEuY3Js
-MD8GCWCGSAGG+EIBAwQyFjBodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL3Jl
-dm9jYXRpb25DTEFTRTEuaHRtbD8wPAYJYIZIAYb4QgEHBC8WLWh0dHA6Ly93
-d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbENMQVNFMS5odG1sPzA6BglghkgB
-hvhCAQgELRYraHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9wb2xpY3lDTEFT
-RTEuaHRtbDBzBgNVHR8EbDBqMDGgL6AthitodHRwOi8vd3d3Lmlwcy5lcy9p
-cHMyMDAyL2lwczIwMDJDTEFTRTEuY3JsMDWgM6Axhi9odHRwOi8vd3d3YmFj
-ay5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xBU0UxLmNybDAvBggrBgEFBQcB
-AQQjMCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9vY3NwLmlwcy5lcy8wDQYJKoZI
-hvcNAQEFBQADgYEAK9Dr/drIyllq2tPMMi7JVBuKYn4VLenZMdMu9Ccj/1ur
-xUq2ckCuU3T0vAW0xtnIyXf7t/k0f3gA+Nak5FI/LEpjV4F1Wo7ojPsCwJTG
-Kbqz3Bzosq/SLmJbGqmODszFV0VRFOlOHIilkfSj945RyKm+hjM+5i9Ibq9U
-kE6tsSU=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIH6jCCB1OgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARIxCzAJBgNVBAYT
-AkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEu
-MCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5s
-LjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1
-MjEuMCwGA1UECxMlSVBTIENBIENMQVNFMyBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eTEuMCwGA1UEAxMlSVBTIENBIENMQVNFMyBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eTEeMBwGCSqGSIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTAx
-MTIyOTAxMDE0NFoXDTI1MTIyNzAxMDE0NFowggESMQswCQYDVQQGEwJFUzES
-MBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJjZWxvbmExLjAsBgNV
-BAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZpY2VzIHMubC4xKzAp
-BgNVBAoUImlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEItNjA5Mjk0NTIxLjAs
-BgNVBAsTJUlQUyBDQSBDTEFTRTMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx
-LjAsBgNVBAMTJUlQUyBDQSBDTEFTRTMgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkxHjAcBgkqhkiG9w0BCQEWD2lwc0BtYWlsLmlwcy5lczCBnzANBgkqhkiG
-9w0BAQEFAAOBjQAwgYkCgYEAqxf+DrDGaBtT8FK+n/ra+osTBLsBjzLZH49N
-zjaY2uQARIwo2BNEKqRrThckQpzTiKRBgtYj+4vJhuW5qYIF3PHeH+AMmVWY
-8jjsbJ0gA8DvqqPGZARRLXgNo9KoOtYkTOmWehisEyMiG3zoMRGzXwmqMHBx
-RiVrSXGAK5UBsh8CAwEAAaOCBEowggRGMB0GA1UdDgQWBBS4k/8uy9wsjqLn
-ev42USGjmFsMNDCCAUQGA1UdIwSCATswggE3gBS4k/8uy9wsjqLnev42USGj
-mFsMNKGCARqkggEWMIIBEjELMAkGA1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNl
-bG9uYTESMBAGA1UEBxMJQmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJu
-ZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBzLmwuMSswKQYDVQQKFCJpcHNAbWFp
-bC5pcHMuZXMgQy5JLkYuICBCLTYwOTI5NDUyMS4wLAYDVQQLEyVJUFMgQ0Eg
-Q0xBU0UzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVJUFMg
-Q0EgQ0xBU0UzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcN
-AQkBFg9pcHNAbWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8E
-BQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUH
-AwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIB
-FgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcw
-GgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0Bt
-YWlsLmlwcy5lczBBBglghkgBhvhCAQ0ENBYyQ0xBU0UzIENBIENlcnRpZmlj
-YXRlIGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5lcy8wKQYJYIZIAYb4QgEC
-BBwWGmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMDoGCWCGSAGG+EIBBAQt
-FitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJDTEFTRTMuY3Js
-MD8GCWCGSAGG+EIBAwQyFjBodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL3Jl
-dm9jYXRpb25DTEFTRTMuaHRtbD8wPAYJYIZIAYb4QgEHBC8WLWh0dHA6Ly93
-d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbENMQVNFMy5odG1sPzA6BglghkgB
-hvhCAQgELRYraHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9wb2xpY3lDTEFT
-RTMuaHRtbDBzBgNVHR8EbDBqMDGgL6AthitodHRwOi8vd3d3Lmlwcy5lcy9p
-cHMyMDAyL2lwczIwMDJDTEFTRTMuY3JsMDWgM6Axhi9odHRwOi8vd3d3YmFj
-ay5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xBU0UzLmNybDAvBggrBgEFBQcB
-AQQjMCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9vY3NwLmlwcy5lcy8wDQYJKoZI
-hvcNAQEFBQADgYEAF2VcmZVDAyevJuXr0LMXI/dDqsfwfewPxqmurpYPdikc
-4gYtfibFPPqhwYHOU7BC0ZdXGhd+pFFhxu7pXu8Fuuu9D6eSb9ijBmgpjnn1
-/7/5p6/ksc7C0YBCJwUENPjDfxZ4IwwHJPJGR607VNCv1TGyr33I6unUVtkO
-E7LFRVA=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIH9zCCB2CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARQxCzAJBgNVBAYT
-AkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEu
-MCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5s
-LjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1
-MjEvMC0GA1UECxMmSVBTIENBIENMQVNFQTEgQ2VydGlmaWNhdGlvbiBBdXRo
-b3JpdHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUExIENlcnRpZmljYXRpb24g
-QXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwHhcN
-MDExMjI5MDEwNTMyWhcNMjUxMjI3MDEwNTMyWjCCARQxCzAJBgNVBAYTAkVT
-MRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwG
-A1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5sLjEr
-MCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEv
-MC0GA1UECxMmSVBTIENBIENMQVNFQTEgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUExIENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwgZ8wDQYJ
-KoZIhvcNAQEBBQADgY0AMIGJAoGBALsw19zQVL01Tp/FTILq0VA8R5j8m2md
-d81u4D/u6zJfX5/S0HnllXNEITLgCtud186Nq1KLK3jgm1t99P1tCeWu4Wwd
-ByOgF9H5fahGRpEiqLJpxq339fWUoTCUvQDMRH/uxJ7JweaPCjbB/SQ9AaD1
-e+J8eGZDi09Z8pvZ+kmzAgMBAAGjggRTMIIETzAdBgNVHQ4EFgQUZyaW56G/
-2LUDnf473P7yiuYV3TAwggFGBgNVHSMEggE9MIIBOYAUZyaW56G/2LUDnf47
-3P7yiuYV3TChggEcpIIBGDCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlC
-YXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIElu
-dGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBz
-QG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0GA1UECxMmSVBT
-IENBIENMQVNFQTEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMT
-JklQUyBDQSBDTEFTRUExIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJ
-KoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAM
-BgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMBBggrBgEFBQcDAgYI
-KwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYB
-BAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEE
-BAMCAAcwGgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGB
-D2lwc0BtYWlsLmlwcy5lczBCBglghkgBhvhCAQ0ENRYzQ0xBU0VBMSBDQSBD
-ZXJ0aWZpY2F0ZSBpc3N1ZWQgYnkgaHR0cDovL3d3dy5pcHMuZXMvMCkGCWCG
-SAGG+EIBAgQcFhpodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyLzA7BglghkgB
-hvhCAQQELhYsaHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xB
-U0VBMS5jcmwwQAYJYIZIAYb4QgEDBDMWMWh0dHA6Ly93d3cuaXBzLmVzL2lw
-czIwMDIvcmV2b2NhdGlvbkNMQVNFQTEuaHRtbD8wPQYJYIZIAYb4QgEHBDAW
-Lmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbENMQVNFQTEuaHRt
-bD8wOwYJYIZIAYb4QgEIBC4WLGh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIv
-cG9saWN5Q0xBU0VBMS5odG1sMHUGA1UdHwRuMGwwMqAwoC6GLGh0dHA6Ly93
-d3cuaXBzLmVzL2lwczIwMDIvaXBzMjAwMkNMQVNFQTEuY3JsMDagNKAyhjBo
-dHRwOi8vd3d3YmFjay5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xBU0VBMS5j
-cmwwLwYIKwYBBQUHAQEEIzAhMB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5p
-cHMuZXMvMA0GCSqGSIb3DQEBBQUAA4GBAH66iqyAAIQVCtWYUQxkxZwCWINm
-yq0eB81+atqAB98DNEock8RLWCA1NnHtogo1EqWmZaeFaQoO42Hu6r4okzPV
-7Oi+xNtff6j5YzHIa5biKcJboOeXNp13XjFr/tOn2yrb25aLH2betgPAK7N4
-1lUH5Y85UN4HI3LmvSAUS7SG
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIH9zCCB2CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARQxCzAJBgNVBAYT
-AkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEu
-MCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5s
-LjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1
-MjEvMC0GA1UECxMmSVBTIENBIENMQVNFQTMgQ2VydGlmaWNhdGlvbiBBdXRo
-b3JpdHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUEzIENlcnRpZmljYXRpb24g
-QXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwHhcN
-MDExMjI5MDEwNzUwWhcNMjUxMjI3MDEwNzUwWjCCARQxCzAJBgNVBAYTAkVT
-MRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwG
-A1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5sLjEr
-MCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEv
-MC0GA1UECxMmSVBTIENBIENMQVNFQTMgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUEzIENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwgZ8wDQYJ
-KoZIhvcNAQEBBQADgY0AMIGJAoGBAO6AAPYaZC6tasiDsYun7o/ZttvNG7uG
-BiJ2MwwSbUhWYdLcgiViL5/SaTBlA0IjWLxH3GvWdV0XPOH/8lhneaDBgbHU
-VqLyjRGZ/fZ98cfEXgIqmuJKtROKAP2Md4bm15T1IHUuDky/dMQ/gT6DtKM4
-Ninn6Cr1jIhBqoCm42zvAgMBAAGjggRTMIIETzAdBgNVHQ4EFgQUHp9XUEe2
-YZM50yz82l09BXW3mQIwggFGBgNVHSMEggE9MIIBOYAUHp9XUEe2YZM50yz8
-2l09BXW3mQKhggEcpIIBGDCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlC
-YXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIElu
-dGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBz
-QG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0GA1UECxMmSVBT
-IENBIENMQVNFQTMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMT
-JklQUyBDQSBDTEFTRUEzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJ
-KoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAM
-BgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMBBggrBgEFBQcDAgYI
-KwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYB
-BAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEE
-BAMCAAcwGgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGB
-D2lwc0BtYWlsLmlwcy5lczBCBglghkgBhvhCAQ0ENRYzQ0xBU0VBMyBDQSBD
-ZXJ0aWZpY2F0ZSBpc3N1ZWQgYnkgaHR0cDovL3d3dy5pcHMuZXMvMCkGCWCG
-SAGG+EIBAgQcFhpodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyLzA7BglghkgB
-hvhCAQQELhYsaHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xB
-U0VBMy5jcmwwQAYJYIZIAYb4QgEDBDMWMWh0dHA6Ly93d3cuaXBzLmVzL2lw
-czIwMDIvcmV2b2NhdGlvbkNMQVNFQTMuaHRtbD8wPQYJYIZIAYb4QgEHBDAW
-Lmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbENMQVNFQTMuaHRt
-bD8wOwYJYIZIAYb4QgEIBC4WLGh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIv
-cG9saWN5Q0xBU0VBMy5odG1sMHUGA1UdHwRuMGwwMqAwoC6GLGh0dHA6Ly93
-d3cuaXBzLmVzL2lwczIwMDIvaXBzMjAwMkNMQVNFQTMuY3JsMDagNKAyhjBo
-dHRwOi8vd3d3YmFjay5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xBU0VBMy5j
-cmwwLwYIKwYBBQUHAQEEIzAhMB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5p
-cHMuZXMvMA0GCSqGSIb3DQEBBQUAA4GBAEo9IEca2on0eisxeewBwMwB9dbB
-/MjD81ACUZBYKp/nNQlbMAqBACVHr9QPDp5gJqiVp4MI3y2s6Q73nMify5NF
-8bpqxmdRSmlPa/59Cy9SKcJQrSRE7SOzSMtEQMEDlQwKeAYSAfWRMS1Jjbs/
-RU4s4OjNtckUFQzjB4ObJnXv
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIH9zCCB2CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARwxCzAJBgNVBAYT
-AkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEu
-MCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5s
-LjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1
-MjEzMDEGA1UECxMqSVBTIENBIENoYWluZWQgQ0FzIENlcnRpZmljYXRpb24g
-QXV0aG9yaXR5MTMwMQYDVQQDEypJUFMgQ0EgQ2hhaW5lZCBDQXMgQ2VydGlm
-aWNhdGlvbiBBdXRob3JpdHkxHjAcBgkqhkiG9w0BCQEWD2lwc0BtYWlsLmlw
-cy5lczAeFw0wMTEyMjkwMDUzNThaFw0yNTEyMjcwMDUzNThaMIIBHDELMAkG
-A1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNlbG9uYTESMBAGA1UEBxMJQmFyY2Vs
-b25hMS4wLAYDVQQKEyVJUFMgSW50ZXJuZXQgcHVibGlzaGluZyBTZXJ2aWNl
-cyBzLmwuMSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5JLkYuICBCLTYw
-OTI5NDUyMTMwMQYDVQQLEypJUFMgQ0EgQ2hhaW5lZCBDQXMgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkxMzAxBgNVBAMTKklQUyBDQSBDaGFpbmVkIENBcyBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEeMBwGCSqGSIb3DQEJARYPaXBzQG1h
-aWwuaXBzLmVzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcVpJJspQg
-vJhPUOtopKdJC7/SMejHT8KGC/po/UNaivNgkjWZOLtNA1IhW/A3mTXhQSCB
-hYEFcYGdtJUZqV92NC5jNzVXjrQfQj8VXOF6wV8TGDIxya2+o8eDZh65nAQT
-y2nBBt4wBrszo7Uf8I9vzv+W6FS+ZoCua9tBhDaiPQIDAQABo4IEQzCCBD8w
-HQYDVR0OBBYEFKGtMbH5PuEXpsirNPxShwkeYlJBMIIBTgYDVR0jBIIBRTCC
-AUGAFKGtMbH5PuEXpsirNPxShwkeYlJBoYIBJKSCASAwggEcMQswCQYDVQQG
-EwJFUzESMBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJjZWxvbmEx
-LjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZpY2VzIHMu
-bC4xKzApBgNVBAoUImlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEItNjA5Mjk0
-NTIxMzAxBgNVBAsTKklQUyBDQSBDaGFpbmVkIENBcyBDZXJ0aWZpY2F0aW9u
-IEF1dGhvcml0eTEzMDEGA1UEAxMqSVBTIENBIENoYWluZWQgQ0FzIENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5p
-cHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRk
-MGIGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggr
-BgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYK
-KwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0RBBMwEYEPaXBz
-QG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBCBglg
-hkgBhvhCAQ0ENRYzQ2hhaW5lZCBDQSBDZXJ0aWZpY2F0ZSBpc3N1ZWQgYnkg
-aHR0cDovL3d3dy5pcHMuZXMvMCkGCWCGSAGG+EIBAgQcFhpodHRwOi8vd3d3
-Lmlwcy5lcy9pcHMyMDAyLzA3BglghkgBhvhCAQQEKhYoaHR0cDovL3d3dy5p
-cHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0FDLmNybDA8BglghkgBhvhCAQMELxYt
-aHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9yZXZvY2F0aW9uQ0FDLmh0bWw/
-MDkGCWCGSAGG+EIBBwQsFipodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL3Jl
-bmV3YWxDQUMuaHRtbD8wNwYJYIZIAYb4QgEIBCoWKGh0dHA6Ly93d3cuaXBz
-LmVzL2lwczIwMDIvcG9saWN5Q0FDLmh0bWwwbQYDVR0fBGYwZDAuoCygKoYo
-aHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0FDLmNybDAyoDCg
-LoYsaHR0cDovL3d3d2JhY2suaXBzLmVzL2lwczIwMDIvaXBzMjAwMkNBQy5j
-cmwwLwYIKwYBBQUHAQEEIzAhMB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5p
-cHMuZXMvMA0GCSqGSIb3DQEBBQUAA4GBAERyMJ1WWKJBGyi3leGmGpVfp3hA
-K+/blkr8THFj2XOVvQLiogbHvpcqk4A0hgP63Ng9HgfNHnNDJGD1HWHc3Jag
-vPsd4+cSACczAsDAK1M92GsDgaPb1pOVIO/Tln4mkImcJpvNb2ar7QMiRDjM
-Wb2f2/YHogF/JsRj9SVCXmK9
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICtzCCAiACAQAwDQYJKoZIhvcNAQEEBQAwgaMxCzAJBgNVBAYTAkVTMRIw
-EAYDVQQIEwlCQVJDRUxPTkExEjAQBgNVBAcTCUJBUkNFTE9OQTEZMBcGA1UE
-ChMQSVBTIFNlZ3VyaWRhZCBDQTEYMBYGA1UECxMPQ2VydGlmaWNhY2lvbmVz
-MRcwFQYDVQQDEw5JUFMgU0VSVklET1JFUzEeMBwGCSqGSIb3DQEJARYPaXBz
-QG1haWwuaXBzLmVzMB4XDTk4MDEwMTIzMjEwN1oXDTA5MTIyOTIzMjEwN1ow
-gaMxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCQVJDRUxPTkExEjAQBgNVBAcT
-CUJBUkNFTE9OQTEZMBcGA1UEChMQSVBTIFNlZ3VyaWRhZCBDQTEYMBYGA1UE
-CxMPQ2VydGlmaWNhY2lvbmVzMRcwFQYDVQQDEw5JUFMgU0VSVklET1JFUzEe
-MBwGCSqGSIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMIGfMA0GCSqGSIb3DQEB
-AQUAA4GNADCBiQKBgQCsT1J0nznqjtwlxLyYXZhkJAk8IbPMGbWOlI6H0fg3
-PqHILVikgDVboXVsHUUMH2Fjal5vmwpMwci4YSM1gf/+rHhwLWjhOgeYlQJU
-3c0jt4BT18g3RXIGJBK6E2Ehim51KODFDzT9NthFf+G4Nu+z4cYgjui0OLzh
-PvYR3oydAQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBACzzw3lYJN7GO9HgQmm4
-7mSzPWIBubOE3yN93ZjPEKn+ANgilgUTB1RXxafey9m4iEL2mdsUdx+2/iU9
-4aI+A6mB0i1sR/WWRowiq8jMDQ6XXotBtDvECgZAHd1G9AHduoIuPD14cJ58
-GNCr+Lh3B0Zx8coLY1xq+XKU1QFPoNtC
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIIODCCB6GgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCAR4xCzAJBgNVBAYT
-AkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEu
-MCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5s
-LjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1
-MjE0MDIGA1UECxMrSVBTIENBIFRpbWVzdGFtcGluZyBDZXJ0aWZpY2F0aW9u
-IEF1dGhvcml0eTE0MDIGA1UEAxMrSVBTIENBIFRpbWVzdGFtcGluZyBDZXJ0
-aWZpY2F0aW9uIEF1dGhvcml0eTEeMBwGCSqGSIb3DQEJARYPaXBzQG1haWwu
-aXBzLmVzMB4XDTAxMTIyOTAxMTAxOFoXDTI1MTIyNzAxMTAxOFowggEeMQsw
-CQYDVQQGEwJFUzESMBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJj
-ZWxvbmExLjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZp
-Y2VzIHMubC4xKzApBgNVBAoUImlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEIt
-NjA5Mjk0NTIxNDAyBgNVBAsTK0lQUyBDQSBUaW1lc3RhbXBpbmcgQ2VydGlm
-aWNhdGlvbiBBdXRob3JpdHkxNDAyBgNVBAMTK0lQUyBDQSBUaW1lc3RhbXBp
-bmcgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHjAcBgkqhkiG9w0BCQEWD2lw
-c0BtYWlsLmlwcy5lczCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvLju
-VqWajOY2ycJioGaBjRrVetJznw6EZLqVtJCneK/K/lRhW86yIFcBrkSSQxA4
-Efdo/BdApWgnMjvEp+ZCccWZ73b/K5Uk9UmSGGjKALWkWi9uy9YbLA1UZ2t6
-KaFYq6JaANZbuxjC3/YeE1Z2m6Vo4pjOxgOKNNtMg0GmqaMCAwEAAaOCBIAw
-ggR8MB0GA1UdDgQWBBSL0BBQCYHynQnVDmB4AyKiP8jKZjCCAVAGA1UdIwSC
-AUcwggFDgBSL0BBQCYHynQnVDmB4AyKiP8jKZqGCASakggEiMIIBHjELMAkG
-A1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNlbG9uYTESMBAGA1UEBxMJQmFyY2Vs
-b25hMS4wLAYDVQQKEyVJUFMgSW50ZXJuZXQgcHVibGlzaGluZyBTZXJ2aWNl
-cyBzLmwuMSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5JLkYuICBCLTYw
-OTI5NDUyMTQwMgYDVQQLEytJUFMgQ0EgVGltZXN0YW1waW5nIENlcnRpZmlj
-YXRpb24gQXV0aG9yaXR5MTQwMgYDVQQDEytJUFMgQ0EgVGltZXN0YW1waW5n
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNA
-bWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsG
-A1UdJQRkMGIGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUF
-BwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGC
-NwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0RBBMw
-EYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5l
-czBHBglghkgBhvhCAQ0EOhY4VGltZXN0YW1waW5nIENBIENlcnRpZmljYXRl
-IGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5lcy8wKQYJYIZIAYb4QgECBBwW
-Gmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMEAGCWCGSAGG+EIBBAQzFjFo
-dHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJUaW1lc3RhbXBpbmcu
-Y3JsMEUGCWCGSAGG+EIBAwQ4FjZodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAy
-L3Jldm9jYXRpb25UaW1lc3RhbXBpbmcuaHRtbD8wQgYJYIZIAYb4QgEHBDUW
-M2h0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbFRpbWVzdGFtcGlu
-Zy5odG1sPzBABglghkgBhvhCAQgEMxYxaHR0cDovL3d3dy5pcHMuZXMvaXBz
-MjAwMi9wb2xpY3lUaW1lc3RhbXBpbmcuaHRtbDB/BgNVHR8EeDB2MDegNaAz
-hjFodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJUaW1lc3RhbXBp
-bmcuY3JsMDugOaA3hjVodHRwOi8vd3d3YmFjay5pcHMuZXMvaXBzMjAwMi9p
-cHMyMDAyVGltZXN0YW1waW5nLmNybDAvBggrBgEFBQcBAQQjMCEwHwYIKwYB
-BQUHMAGGE2h0dHA6Ly9vY3NwLmlwcy5lcy8wDQYJKoZIhvcNAQEFBQADgYEA
-ZbrBzAAalZHK6Ww6vzoeFAh8+4Pua2JR0zORtWB5fgTYXXk36MNbsMRnLWha
-sl8OCvrNPzpFoeo2zyYepxEoxZSPhExTCMWTs/zif/WN87GphV+I3pGW7hdb
-rqXqcGV4LCFkAZXOzkw+UPS2Wctjjba9GNSHSl/c7+lW8AoM6HU=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQG
-EwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9v
-dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEuMCwGA1UEAxMlUXVvVmFkaXMg
-Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAzMTkxODMzMzNa
-Fw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9W
-YWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24g
-QXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2G1
-lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMukJ0KX0J+D
-isPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj18
-2d6UajtLF8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Sp
-x2zY7ilKhSoGFPlU5tPaZQeLYzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZ
-yH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWenAScOospUxbF6lR1xHkop
-igPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4wPQYI
-KwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFk
-aXNvZmZzaG9yZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREw
-ggENMIIBCQYJKwYBBAG+WAABMIH7MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlh
-bmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmljYXRlIGJ5IGFueSBw
-YXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
-ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRp
-ZmljYXRpb24gcHJhY3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmlj
-YXRlIFBvbGljeS4wIgYIKwYBBQUHAgEWFmh0dHA6Ly93d3cucXVvdmFkaXMu
-Ym0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGuBgNVHSMEgaYw
-gaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJN
-MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6tlCLMA4GA1UdDwEB/wQEAwIB
-BjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lofFIk3Wdv
-OXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10
-buYWnuulLsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe
-/QKZnAzNCgVPx7uOpHX6Sm2xgI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6
-isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQW
-xFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQ
-NiOKSnQ2+Q==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlD
-ZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIElu
-Yy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMgUG9saWN5IFZhbGlkYXRp
-b24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNv
-bS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYy
-NjAwMjIzM1oXDTE5MDYyNjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
-IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4x
-NTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMgUG9saWN5IFZhbGlkYXRpb24g
-QXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8x
-IDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3
-DQEBAQUAA4GNADCBiQKBgQDjmFGWHOjVsQaBalfDcnWTq8+epvzzFlLWLU2f
-NUSoLgRNB0mKOCn1dzfnt6td3zZxFJmP3MKS8edgkpfs2Ejcv8ECIMYkpChM
-MFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89HBFx1cQqYJJgpp0lZpd34
-t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliEZwgs3x/b
-e0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJn0Wu
-PIqpsHEzXcjFV9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/A
-PhmcGcwTTYJBtYze4D1gCCAPRX5ron+jjBXu
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICXDCCAcWgAwIBAgIQCgEBAQAAAnwAAAALAAAAAjANBgkqhkiG9w0BAQUF
-ADA6MRkwFwYDVQQKExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0Eg
-U2VjdXJpdHkgMTAyNCBWMzAeFw0wMTAyMjIyMTAxNDlaFw0yNjAyMjIyMDAx
-NDlaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAbBgNVBAsTFFJT
-QSBTZWN1cml0eSAxMDI0IFYzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
-gQDV3f5mCc8kPD6ugU5OisRpgFtZO9+5TUzKtS3DJy08rwBCbbwoppbPf9dY
-rIMKo1W1exeQFYRMiu4mmdxY78c4pqqv0I5CyGLXq6yp+0p9v+r+Ek3d/yYt
-bzZUaMjShFbuklNhCbM/OZuoyZu9zp9+1BlqFikYvtc6adwlWzMaUQIDAQAB
-o2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSME
-GDAWgBTEwBykB5T9zU0B1FTapQxf3q4FWjAdBgNVHQ4EFgQUxMAcpAeU/c1N
-AdRU2qUMX96uBVowDQYJKoZIhvcNAQEFBQADgYEAPy1q4yZDlX2Jl2X7deRy
-HUZXxGFraZ8SmyzVWujAovBDleMf6XbN3Ou8k6BlCsdNT1+nr6JGFLkM88y9
-am63nd4lQtBU/55oc2PcJOsiv6hy8l4A4Q1OOkNumU4/iXgDmMrzVcydro7B
-qkWY+o8aoI2II/EVQQ2lRj6RP4vr93E=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUF
-ADA6MRkwFwYDVQQKExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0Eg
-U2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAyMjIyMDM5MjNaFw0yNjAyMjIyMDM5
-MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAbBgNVBAsTFFJT
-QSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37
-RqtBaB4Y6lXIL5F4iSj7Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E
-0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgbWhOHV4PR8CDn6E8jQrAApX2J
-6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iHKrtjEAMq
-s6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzD
-uvsf9/UP+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2Mw
-YTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAW
-gBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4EFgQUB8NRMKSq6UWuNST6
-/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmYv/3V
-EhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5g
-EydxiKRz44Rj0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+
-f00/FGj1EVDVwfSQpQgdMWD/YIwjVAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJq
-aHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395nzIlQnQFgCi/vcEk
-llgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA
-pKnXwiJPZ9d37CAFYd4=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJK
-UDEYMBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0
-eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEwHhcNMDMwOTMwMDQyMDQ5WhcNMjMw
-OTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMPU0VDT00gVHJ1
-c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RD
-QTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8
-V6UMbXaKL0u/ZPtM7orw8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpx
-xpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uMDPpVmDvY6CKhS3E4eayXkmmz
-iX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX5HA49LY6
-tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819
-uZKAnDfdDJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/L
-TX7s1vqr2b1/VPKl6Xn62dZ2JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZ
-aNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g0dNq
-/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94
-nK9NrvjVT8+amCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5
-Bw+SUEmK3TGXX8npN6o7WWWXlDLJs58+OmJYxUmtYg5xpTKqL8aJdkNAExNn
-PaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ6rBK+1YWc26sTfci
-oU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
-FL39vmwLAw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDIDCCAgigAwIBAgIBJDANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJG
-STEPMA0GA1UEChMGU29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MxIENB
-MB4XDTAxMDQwNjEwNDkxM1oXDTIxMDQwNjEwNDkxM1owOTELMAkGA1UEBhMC
-RkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJhIENsYXNzMSBD
-QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALWJHytPZwp5/8Ue
-+H887dF+2rDNbS82rDTG29lkFwhjMDMiikzujrsPDUJVyZ0upe/3p4zDq7mX
-y47vPxVnqIJyY1MPQYx9EJUkoVqlBvqSV536pQHydekfvFYmUk54GWVYVQNY
-wBSujHxVX3BbdyMGNpfzJLWaRpXk3w0LBUXl0fIdgrvGE+D+qnr9aTCU89JF
-hfzyMlsy3uhsXR/LpCJ0sICOXZT3BgBLqdReLjVQCfOAl/QMF6452F/NM8Ec
-yonCIvdFEu1eEpOdY6uCLrnrQkFEy0oaAIINnvmLVz5MxxftLItyM19yejhW
-1ebZrgUaHXVFsculJRwSVzb9IjcCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB
-/zARBgNVHQ4ECgQIR+IMi/ZTiFIwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEB
-BQUAA4IBAQCLGrLJXWG04bkruVPRsoWdd44W7hE928Jj2VuXZfsSZ9gqXLar
-5V7DtxYvyOirHYr9qxp81V9jz9yw3Xe5qObSIjiHBxTZ/75Wtf0HDjxVyhbM
-p6Z3N/vbXB9OWQaHowND9Rart4S9Tu+fMTfwRvFAttEMpWT4Y14h21VOTzF2
-nBBhjrZTOqMRvq9tfB69ri3iDGnHhVNoomG6xT60eVR4ngrHAr5i0RGCS2Uv
-kVrCqIexVmiUefkl98HVrhq4uz2PqYo4Ffdz0Fpg0YCw8NzVUM1O7pJIae2y
-Ix4wzMiUyLb1O4Z/P6Yun/Y+LLWSlj7fLJOK/4GMDw9ZIRlXvVWa
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJG
-STEPMA0GA1UEChMGU29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENB
-MB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQwNjA3Mjk0MFowOTELMAkGA1UEBhMC
-RkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJhIENsYXNzMiBD
-QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE
-+hY3/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gX
-GM2RX/uJ4+q/Tl18GybTdXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQ
-TiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMGf+dJQMjFAbJUWmYdPfz56TwK
-noG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8PtOFCx4j1
-P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURr
-BGAgcVeHnfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB
-/zARBgNVHQ4ECgQISqCqWITTXjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEB
-BQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt0jSv9zilzqsWuasvfDXL
-rNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEIcbCd
-jdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr4
-50kkkdAdavphOe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6
-Tk6ezAyNlNzZRZxe7EJQY670XcSxEtzKO6gunRRaBXW37Ndj4ro1tgQIkeja
-nZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLHllpwrN9M
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQG
-EwJOTDEeMBwGA1UEChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQD
-Ex1TdGFhdCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQTAeFw0wMjEyMTcwOTIz
-NDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4wHAYDVQQKExVT
-dGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRl
-cmxhbmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEAmNK1URF6gaYUmHFtvsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rF
-DBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02PjLwYdjeFnejKScfST5gTCaI+
-Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGcaC1Hoi6Ce
-UJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7l
-r7HcsBthvJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4Zl
-kuxEK7COudxwC0barbxjiDn622r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGO
-MAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRVHSAAMDwwOgYIKwYBBQUH
-AgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9vdC1w
-b2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg
-0zTBLL9s+DANBgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k
-/rvuFbQvBgwp8qiSpGEN/KtcCFtREytNwiphyPgJWPwtArI5fZlmgb9uXJVF
-IGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbwMVcoEoJz6TMvplW0
-C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y
-nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBp
-IzlWYGeQiy52OfsRiJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYV
-wSR8MnwDHTuhWEUykw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDXDCCAsWgAwIBAgICA+owDQYJKoZIhvcNAQEEBQAwgbwxCzAJBgNVBAYT
-AkRFMRAwDgYDVQQIEwdIYW1idXJnMRAwDgYDVQQHEwdIYW1idXJnMTowOAYD
-VQQKEzFUQyBUcnVzdENlbnRlciBmb3IgU2VjdXJpdHkgaW4gRGF0YSBOZXR3
-b3JrcyBHbWJIMSIwIAYDVQQLExlUQyBUcnVzdENlbnRlciBDbGFzcyAyIENB
-MSkwJwYJKoZIhvcNAQkBFhpjZXJ0aWZpY2F0ZUB0cnVzdGNlbnRlci5kZTAe
-Fw05ODAzMDkxMTU5NTlaFw0xMTAxMDExMTU5NTlaMIG8MQswCQYDVQQGEwJE
-RTEQMA4GA1UECBMHSGFtYnVyZzEQMA4GA1UEBxMHSGFtYnVyZzE6MDgGA1UE
-ChMxVEMgVHJ1c3RDZW50ZXIgZm9yIFNlY3VyaXR5IGluIERhdGEgTmV0d29y
-a3MgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTEp
-MCcGCSqGSIb3DQEJARYaY2VydGlmaWNhdGVAdHJ1c3RjZW50ZXIuZGUwgZ8w
-DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANo46O0yAClxgwENv4wB3NrGrTmk
-qYov1YtcaF9QxmL1Zr3KkSLsqh1R1z2zUbKDTl3LSbDwTFXlay3HhQswHJJO
-gtTKAu33b77c4OMUuAVT8pr0VotanoWT0bSCVq5Nu6hLVxa8/vhYnvgpjbB7
-zXjJT6yLZwzxnPv8V5tXXE8NAgMBAAGjazBpMA8GA1UdEwEB/wQFMAMBAf8w
-DgYDVR0PAQH/BAQDAgGGMDMGCWCGSAGG+EIBCAQmFiRodHRwOi8vd3d3LnRy
-dXN0Y2VudGVyLmRlL2d1aWRlbGluZXMwEQYJYIZIAYb4QgEBBAQDAgAHMA0G
-CSqGSIb3DQEBBAUAA4GBAIRS+yjf/x91AbwBvgRWl2p0QiQxg/lGsQaKic+W
-LDO/jLVfenKhhQbOhvgFjuj5Jcrag4wGrOs2bYWRNAQ29ELw+HkuCkhcq8xR
-T3h2oNmsGb0q0WkEKJHKNhAngFdb0lz1wlurZIFjdFH0l7/NEij3TWZ/p/Ac
-ASZ4smZHcFFk
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDXDCCAsWgAwIBAgICA+swDQYJKoZIhvcNAQEEBQAwgbwxCzAJBgNVBAYT
-AkRFMRAwDgYDVQQIEwdIYW1idXJnMRAwDgYDVQQHEwdIYW1idXJnMTowOAYD
-VQQKEzFUQyBUcnVzdENlbnRlciBmb3IgU2VjdXJpdHkgaW4gRGF0YSBOZXR3
-b3JrcyBHbWJIMSIwIAYDVQQLExlUQyBUcnVzdENlbnRlciBDbGFzcyAzIENB
-MSkwJwYJKoZIhvcNAQkBFhpjZXJ0aWZpY2F0ZUB0cnVzdGNlbnRlci5kZTAe
-Fw05ODAzMDkxMTU5NTlaFw0xMTAxMDExMTU5NTlaMIG8MQswCQYDVQQGEwJE
-RTEQMA4GA1UECBMHSGFtYnVyZzEQMA4GA1UEBxMHSGFtYnVyZzE6MDgGA1UE
-ChMxVEMgVHJ1c3RDZW50ZXIgZm9yIFNlY3VyaXR5IGluIERhdGEgTmV0d29y
-a3MgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTEp
-MCcGCSqGSIb3DQEJARYaY2VydGlmaWNhdGVAdHJ1c3RjZW50ZXIuZGUwgZ8w
-DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALa0wTUFLg2N7KBAahwOJ6ZQkmtQ
-GwfeLud2zODa/ISoXoxjaitN2U4CdhHBC/KNecoAtvGwDtf7pBc9r6tpepYn
-v68zoZoqWarEtTcI8hKlMbZD9TKWcSgoq40oht+77uMMfTDWw1Krj10nnGvA
-o+cFa1dJRLNu6mTP0o56UHd3AgMBAAGjazBpMA8GA1UdEwEB/wQFMAMBAf8w
-DgYDVR0PAQH/BAQDAgGGMDMGCWCGSAGG+EIBCAQmFiRodHRwOi8vd3d3LnRy
-dXN0Y2VudGVyLmRlL2d1aWRlbGluZXMwEQYJYIZIAYb4QgEBBAQDAgAHMA0G
-CSqGSIb3DQEBBAUAA4GBABY9xs3Bu4VxhUafPiCPUSiZ7C1FIWMjWwS7TJC4
-iJIETb19AaM/9uzO8d7+feXhPrvGq14L3T2WxMup1Pkm5gZOngylerpuw3yC
-GdHHsbHD2w2Om0B8NwvxXej9H5CIpQ5ON2QhqE6NtJ/x3kit1VYYUimLRzQS
-CdS7kjXvD9s0
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEKzCCAxOgAwIBAgIEOsylTDANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQG
-EwJESzEVMBMGA1UEChMMVERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50
-ZXJuZXQgUm9vdCBDQTAeFw0wMTA0MDUxNjMzMTdaFw0yMTA0MDUxNzAzMTda
-MEMxCzAJBgNVBAYTAkRLMRUwEwYDVQQKEwxUREMgSW50ZXJuZXQxHTAbBgNV
-BAsTFFREQyBJbnRlcm5ldCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEAxLhAvJHVYx/XmaCLDEAedLdInUaMArLgJF/wGROnN4Nr
-XceO+YQwzho7+vvOi20jxsNuZp+Jpd/gQlBn+h9sHvTQBda/ytZO5GhgbEaq
-HF1j4QeGDmUApy6mcca8uYGoOn0a0vnRrEvLznWv3Hv6gXPU/Lq9QYjUdLP5
-Xjg6PEOo0pVOd20TDJ2PeAG3WiAfAzc14izbSysseLlJ28TQx5yc5IogCSEW
-Vmb/Bexb4/DPqyQkXsN/cHoSxNK1EKC2IeGNeGlVRGn1ypYcNIUXJXfi9i8n
-mHj9eQY6otZaQ8H/7AQ77hPv01ha/5Lr7K7a8jcDR0G2l8ktCkEiu7vmpwID
-AQABo4IBJTCCASEwEQYJYIZIAYb4QgEBBAQDAgAHMGUGA1UdHwReMFwwWqBY
-oFakVDBSMQswCQYDVQQGEwJESzEVMBMGA1UEChMMVERDIEludGVybmV0MR0w
-GwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTENMAsGA1UEAxMEQ1JMMTAr
-BgNVHRAEJDAigA8yMDAxMDQwNTE2MzMxN1qBDzIwMjEwNDA1MTcwMzE3WjAL
-BgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUbGQBx/2FbazI2p5QCIUItTxWqFAw
-HQYDVR0OBBYEFGxkAcf9hW2syNqeUAiFCLU8VqhQMAwGA1UdEwQFMAMBAf8w
-HQYJKoZIhvZ9B0EABBAwDhsIVjUuMDo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
-A4IBAQBOQ8zR3R0QGwZ/t6T609lN+yOfI1Rb5osvBCiLtSdtiaHsmGnc540m
-gwV5dOy0uaOXwTUA/RXaOYE6lTGQ3pfphqiZdwzlWqCE/xIWrG64jcN7ksKs
-LtB9KOy282A4aW8+2ARVPp7MVdK6/rtHBNcK2RYKNCn1WBPVT8+PVkuzHu7T
-mHnaCB4Mb7j4Fifvwm899qNLPg7kbWzbO0ESm70NRyN/PErQr8Cv9u8btRXE
-64PECV90i9kR+8JWsTz4cMo0jUNAE4z9mQNUecYu6oah9jrUCbz0vGbMPVjQ
-V0kK7iXiQe4T+Zs4NNEA9X7nlB38aQNiuJkFBT1reBK9sG9l
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFGTCCBAGgAwIBAgIEPki9xDANBgkqhkiG9w0BAQUFADAxMQswCQYDVQQG
-EwJESzEMMAoGA1UEChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBDQTAeFw0w
-MzAyMTEwODM5MzBaFw0zNzAyMTEwOTA5MzBaMDExCzAJBgNVBAYTAkRLMQww
-CgYDVQQKEwNUREMxFDASBgNVBAMTC1REQyBPQ0VTIENBMIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEArGL2YSCyz8DGhdfjeebM7fI5kqSXLmSj
-hFuHnEz9pPPEXyG9VhDr2y5h7JNp46PMvZnDBfwGuMo2HP6QjklMxFaaL1a8
-z3sM8W9Hpg1DTeLpHTk0zY0s2RKY+ePhwUp8hjjEqcRhiNJerxomTdXkoCJH
-hNlktxmW/OwZ5LKXJk5KTMuPJItUGBxIYXvViGjaXbXqzRowwYCDdlCqT9HU
-3Tjw7xb04QxQBr/q+3pJoSgrHPb8FTKjdGqPqcNiKXEx5TukYBdedObaE+3p
-Hx8b0bJoc8YQNHVGEBDjkAB2QMuLt0MJIf+rTpPGWOmlgtt3xDqZsXKVSQTw
-tyv6e1mO3QIDAQABo4ICNzCCAjMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
-Af8EBAMCAQYwgewGA1UdIASB5DCB4TCB3gYIKoFQgSkBAQEwgdEwLwYIKwYB
-BQUHAgEWI2h0dHA6Ly93d3cuY2VydGlmaWthdC5kay9yZXBvc2l0b3J5MIGd
-BggrBgEFBQcCAjCBkDAKFgNUREMwAwIBARqBgUNlcnRpZmlrYXRlciBmcmEg
-ZGVubmUgQ0EgdWRzdGVkZXMgdW5kZXIgT0lEIDEuMi4yMDguMTY5LjEuMS4x
-LiBDZXJ0aWZpY2F0ZXMgZnJvbSB0aGlzIENBIGFyZSBpc3N1ZWQgdW5kZXIg
-T0lEIDEuMi4yMDguMTY5LjEuMS4xLjARBglghkgBhvhCAQEEBAMCAAcwgYEG
-A1UdHwR6MHgwSKBGoESkQjBAMQswCQYDVQQGEwJESzEMMAoGA1UEChMDVERD
-MRQwEgYDVQQDEwtUREMgT0NFUyBDQTENMAsGA1UEAxMEQ1JMMTAsoCqgKIYm
-aHR0cDovL2NybC5vY2VzLmNlcnRpZmlrYXQuZGsvb2Nlcy5jcmwwKwYDVR0Q
-BCQwIoAPMjAwMzAyMTEwODM5MzBagQ8yMDM3MDIxMTA5MDkzMFowHwYDVR0j
-BBgwFoAUYLWF7FZkfhIZJ2cdUBVLc647+RIwHQYDVR0OBBYEFGC1hexWZH4S
-GSdnHVAVS3OuO/kSMB0GCSqGSIb2fQdBAAQQMA4bCFY2LjA6NC4wAwIEkDAN
-BgkqhkiG9w0BAQUFAAOCAQEACromJkbTc6gJ82sLMJn9iuFXehHTuJTXCRBu
-o7E4A9G28kNBKWKnctj7fAXmMXAnVBhOinxO5dHKjHiIzxvTkIvmI/gLDjND
-fZziChmPyQE+dF10yYscA+UYyAFMP8uXBV2YcaaYb7Z8vTd/vuGTJW1v8Aqt
-FxjhA7wHKcitJuj4YfD9IQl+mo6paH1IYnK9AOoBmbgGglGBTvH1tJFUuSN6
-AJqfXY3gPGS5GhKSKseCRHI53OI8xthV9RVOyAUO28bQYqbsFbS1AoLbrIyi
-gfCbmTH1ICCoiGEKB5+U/NDXG8wuF/MEJ3Zn61SD/aSQfgY9BKNDLdr8C2Lq
-L19iUw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDITCCAoqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMC
-WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3du
-MRowGAYDVQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlm
-aWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFBl
-cnNvbmFsIEJhc2ljIENBMSgwJgYJKoZIhvcNAQkBFhlwZXJzb25hbC1iYXNp
-Y0B0aGF3dGUuY29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVow
-gcsxCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNV
-BAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAm
-BgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xITAfBgNV
-BAMTGFRoYXd0ZSBQZXJzb25hbCBCYXNpYyBDQTEoMCYGCSqGSIb3DQEJARYZ
-cGVyc29uYWwtYmFzaWNAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOB
-jQAwgYkCgYEAvLyTU23AUE+CFeZIlDWmWr5vQvoPR+53dXLdjUmbllegeNTK
-P1GzaQuRdhciB5dqxFGTS+CN7zeVoQxN2jSQHReJl+A1OFdKwPQIcOk8RHtQ
-fmGakOMj04gRRif1CwcOu93RfyAKiLlWCy4cgNrx454p7xS9CkT7G1sY0b8j
-kyECAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOB
-gQAt4plrsD16iddZopQBHyvdEktTwq1/qqcAXJFAVyVKOKqEcLnZgA+le1z7
-c8a914phXAPjLSeoF+CEhULcXpvGt7Jtu3Sv5D/Lp7ew4F2+eIMllNLbgQ95
-B21P9DkVWlIBe94y1k049hJcBlDfBVu9FEuh3ym6O0GN92NWod8isQ==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDLTCCApagAwIBAgIBADANBgkqhkiG9w0BAQQFADCB0TELMAkGA1UEBhMC
-WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3du
-MRowGAYDVQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlm
-aWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UEAxMbVGhhd3RlIFBl
-cnNvbmFsIEZyZWVtYWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJzb25hbC1m
-cmVlbWFpbEB0aGF3dGUuY29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIz
-NTk1OVowgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUx
-EjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENvbnN1bHRp
-bmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24x
-JDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBDQTErMCkGCSqG
-SIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTCBnzANBgkq
-hkiG9w0BAQEFAAOBjQAwgYkCgYEA1GnX1LCUZFtx6UfYDFG26nKRsIRefS0N
-j3sS34UldSh0OkIsYyeflXtL734Zhx2G6qPduc6WZBrCFG5ErHzmj+hND3Ef
-QDimAKOHePb5lIZererAXnbr2RSjXW56fAylS1V/Bhkpf56aJtVquzgkCGqY
-x7Hao5iR/Xnb5VrEHLkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
-hkiG9w0BAQQFAAOBgQDH7JJ+Tvj1lqVnYiqk8E0RYNBvjWBYYawmu1I1XAjP
-MPuoSpaKH2JCI4wXD/S6ZJwXrEcp352YXtJsYHFcoqzceePnbgBHH7UNKOgC
-neSa/RP0ptl8sfjcXyMmCZGAc9AUG95DqYMl8uacLxXK/qarigd1iwzdUYRr
-5PjRzneigQ==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDKTCCApKgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBzzELMAkGA1UEBhMC
-WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3du
-MRowGAYDVQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlm
-aWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEjMCEGA1UEAxMaVGhhd3RlIFBl
-cnNvbmFsIFByZW1pdW0gQ0ExKjAoBgkqhkiG9w0BCQEWG3BlcnNvbmFsLXBy
-ZW1pdW1AdGhhd3RlLmNvbTAeFw05NjAxMDEwMDAwMDBaFw0yMDEyMzEyMzU5
-NTlaMIHPMQswCQYDVQQGEwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIw
-EAYDVQQHEwlDYXBlIFRvd24xGjAYBgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5n
-MSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMSMw
-IQYDVQQDExpUaGF3dGUgUGVyc29uYWwgUHJlbWl1bSBDQTEqMCgGCSqGSIb3
-DQEJARYbcGVyc29uYWwtcHJlbWl1bUB0aGF3dGUuY29tMIGfMA0GCSqGSIb3
-DQEBAQUAA4GNADCBiQKBgQDJZtn4B0TPuYwu8KHvE0VsBd/eJxZRNkERbGw7
-7f4QfRKe5ZtCmv5gMcNmt3M6SK5O0DI3lIi1DbbZ8/JE2dWIEt12TfIa/G8j
-Hnrx2JhFTgcQ7xZC0EN1bUre4qrJMf8fAHB8Zs8QJQi6+u4A6UYDZicRFTuq
-W/KY3TZCstqIdQIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3
-DQEBBAUAA4GBAGk2ifc0KjNyL2071CKyuG+axTZmDhs8obF1Wub9NdP4qPIH
-b4Vnjt4rueIXsDqg8A6iAJrf8xQVbrvIhVqYgPn/vnQdPfP+MCXRNzRn+qVx
-eTBhKXLA4CxM+1bkOqhv5TJZUtt1KFBZDPgLGeSs2a+WjS9Q2wfD6h+rM+D1
-KzGJ
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMC
-WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3du
-MR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2Vy
-dGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3Rl
-IFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNl
-cnZlckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1
-OVowgc4xCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQ
-BgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMUVGhhd3RlIENvbnN1bHRpbmcg
-Y2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24x
-ITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3
-DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0B
-AQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhI
-NTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQug2SBhRz1JPL
-lyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/qgeN
-9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B
-AQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI
-hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZ
-a4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcU
-Qg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMC
-WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3du
-MR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2Vy
-dGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3Rl
-IFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0
-ZS5jb20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkG
-A1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2Fw
-ZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UE
-CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQ
-VGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRz
-QHRoYXd0ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I
-/1Zr5s9dtuoMaHVHoqrC2oQl/Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC
-6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg71CcEJRCXL+eQbcAoQpnX
-TEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzARMA8G
-A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWD
-TSEwjsrZqG9JGubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6e
-QNuozDJ0uW8NxuOzRAvZim+aKZuZGCg70eNAKJpaPNW15yAbi8qkq43pUdni
-TCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICoTCCAgqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBizELMAkGA1UEBhMC
-WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmls
-bGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhhd3RlIENlcnRpZmlj
-YXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcgQ0EwHhcNOTcw
-MTAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBizELMAkGA1UEBhMCWkExFTAT
-BgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzAN
-BgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24x
-HzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcgQ0EwgZ8wDQYJKoZIhvcN
-AQEBBQADgY0AMIGJAoGBANYrWHhhRYZT6jR7UZztsOYuGA7+4F+oJ9O0yeB8
-WU4WDnNUYMF/9p8u6TqFJBU820cEY8OexJQaWt9MevPZQx08EHp5JduQ/vBR
-5zDWQQD9nyjfeb6Uu522FOMjhdepQeBMpHmwKxqL8vg7ij5FrHGSALSQQZj7
-X+36ty6K+Ig3AgMBAAGjEzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcN
-AQEEBQADgYEAZ9viwuaHPUCDhjc1fR/OmsMMZiCouqoEiYbC9RAIDb/LogWK
-0E02PvTX72nGXuSwlG9KuefeW4i2e9vjJ+V2w/A1wcu1J5szedyQpgCed/r8
-zSeUQhac0xxo7L9c3eWpexAKMnRUEzGLhQOEkbdYATAUOK8oyvyxUBkZCayJ
-SdM=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEZDCCA0ygAwIBAgIQRL4Mi1AAJLQR0zYwS8AzdzANBgkqhkiG9w0BAQUF
-ADCBozELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0
-IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEw
-HwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzApBgNVBAMTIlVU
-Ti1VU0VSRmlyc3QtTmV0d29yayBBcHBsaWNhdGlvbnMwHhcNOTkwNzA5MTg0
-ODM5WhcNMTkwNzA5MTg1NzQ5WjCBozELMAkGA1UEBhMCVVMxCzAJBgNVBAgT
-AlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVT
-RVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVz
-dC5jb20xKzApBgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBBcHBsaWNh
-dGlvbnMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz+5Gh5DZV
-hawGNFugmliy+LUPBXeDrjKxdpJo7CNKyXY/45y2N3kDuatpjQclthln5LAb
-GHNhSuh+zdMvZOOmfAz6F4CjDUeJT1FxL+78P/m4FoCHiZMlIJpDgmkkdihZ
-NaEdwH+DBmQWICzTSaSFtMBhf1EI+GgVkYDLpdXuOzr0hAReYFmnjDRy7rh4
-xdE7EkpvfmUnuaRVxblvQ6TFHSyZwFKkeEwVs0CYCGtDxgGwenv1axwiP8vv
-/6jQOkt2FZ7S0cYu49tXGzKiuG/ohqY/cKvlcJKrRB5AUPuco2LkbG6gyN7i
-gEL66S/ozjIEj3yNtxyjNTwV3Z7DrpelAgMBAAGjgZEwgY4wCwYDVR0PBAQD
-AgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFPqGydvguul49Uuo1hXf
-8NPhahQ8ME8GA1UdHwRIMEYwRKBCoECGPmh0dHA6Ly9jcmwudXNlcnRydXN0
-LmNvbS9VVE4tVVNFUkZpcnN0LU5ldHdvcmtBcHBsaWNhdGlvbnMuY3JsMA0G
-CSqGSIb3DQEBBQUAA4IBAQCk8yXM0dSRgyLQzDKrm5ZONJFUICU0YV8qAhXh
-i6r/fWRRzwr/vH3YIWp4yy9Rb/hCHTO967V7lMPDqaAt39EpHx3+jz+7qEUq
-f9FuVSTiuwL7MT++6LzsQCv4AdRWOOTKRIK1YSAhZ2X28AvnNPilwpyjXEAf
-hZOVBt5P1CeptqX8Fs1zMT+4ZSfP1FMa8Kxun08FDAOBp4QpxFq9ZFdyrTvP
-NximmMatBrTcCKME1SmklpoSZ0qMYEWd8SOasACcaLWYUNPvji6SZbFIPiG+
-FTAqDbUMo2s/rn9X9R+WfN9v3YIwLGUbQErNaLly7HF27FSOH4UMAWr6pjis
-H8SE
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUF
-ADCBkzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0
-IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEw
-HwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZBgNVBAMTElVU
-TiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2
-MzBaMIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNh
-bHQgTGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsx
-ITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTEbMBkGA1UEAxMS
-VVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+O
-GQ0SR+ysraP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrr
-U0icvvIpOxboGqBMpsn0GFlowHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrL
-Z9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA9P4yPykqlXvY8qdOD1R8
-oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv33i+
-Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4Gr
-MIGoMAsGA1UdDwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRT
-MtGzz3/64PGgXYVOktKeRR20TzA9BgNVHR8ENjA0MDKgMKAuhixodHRwOi8v
-Y3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dDLmNybDAqBgNVHSUE
-IzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3
-DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHc
-rpY6CiM+iVnJowftGzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuM
-FrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0I3KgqgHf35g+FFCgMSa9KOlaMCZ1
-+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXxEZ4du5A/EkdO
-jtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jF
-VkwPDPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEojCCA4qgAwIBAgIQRL4Mi1AAJLQR0zYlJWfJiTANBgkqhkiG9w0BAQUF
-ADCBrjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0
-IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEw
-HwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xNjA0BgNVBAMTLVVU
-Ti1VU0VSRmlyc3QtQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBFbWFpbDAe
-Fw05OTA3MDkxNzI4NTBaFw0xOTA3MDkxNzM2NThaMIGuMQswCQYDVQQGEwJV
-UzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYD
-VQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93
-d3cudXNlcnRydXN0LmNvbTE2MDQGA1UEAxMtVVROLVVTRVJGaXJzdC1DbGll
-bnQgQXV0aGVudGljYXRpb24gYW5kIEVtYWlsMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAsjmFpPJ9q0E7YkY3rs3BYHW8OWX5ShpHornMSMxq
-mNVNNRm5pELlzkniii8efNIxB8dOtINknS4p1aJkxIW9hVE1eaROaJB7HHqk
-kqgX8pgV8pPMyaQylbsMTzC9mKALi+VuG6JG+ni8om+rWV6lL8/K2m2qL+us
-obNqqrcuZzWLeeEeaYji5kbNoKXqvgvOdjp6Dpvq/NonWz1zHyLmSGHGTPNp
-saguG7bUMSAsvIKKjqQOpdeJQ/wWWq8dcdcRWdq6hw2v+vPhwvCkxWeM1tZU
-Ot4KpLoDd7NlyP0e03RiqhjKaJMeoYV+9Udly/hNVyh00jT/MLbu9mIwFIws
-6wIDAQABo4G5MIG2MAsGA1UdDwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0G
-A1UdDgQWBBSJgmd9xJ0mcABLtFBIfN49rgRufTBYBgNVHR8EUTBPME2gS6BJ
-hkdodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLVVTRVJGaXJzdC1DbGll
-bnRBdXRoZW50aWNhdGlvbmFuZEVtYWlsLmNybDAdBgNVHSUEFjAUBggrBgEF
-BQcDAgYIKwYBBQUHAwQwDQYJKoZIhvcNAQEFBQADggEBALFtYV2mGn98q0rk
-MPxTbyUkxsrt4jFcKw7u7mFVbwQ+zznexRtJlOTrIEy05p5QLnLZjfWqo7NK
-2lYcYJeA3IKirUq9iiv/Cwm0xtcgBEXkzYABurorbs6q15L+5K/r9CYdFip/
-bDCVNy8zEqx/3cfREYxRmLLQo5HQrfafnoOTHh1CuEava2bwm3/q4wMC5QJR
-warVNZ1yQAOJujEdxRBoUp7fooXFXAimeOZTT7Hot9MUnpOmw2TjrH5xzbyf
-6QMbzPvprDHBr3wVdAKZw7JHpsIyYdfHb0gkUSeh1YdV8nuPmD0Wnu51tvjQ
-jvLzxq4oW6fw8zYX/MMF08oDSlQ=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUF
-ADCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0
-IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEw
-HwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVU
-Ti1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5
-MTgxOTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQH
-Ew5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3
-b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNV
-BAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3DQEBAQUA
-A4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZ
-FvfgIXlIwrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6N
-q9Bq/bkqVRcQVLMZ8Jr28bFdtqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEH
-OG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8i4fDidNdoI6yqqr2jmmI
-BsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjfPe58
-BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhb
-AgMBAAGjgbkwgbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYD
-VR0OBBYEFKFyXyYbKJhDlV0HN9WFlp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWG
-M2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LUhhcmR3
-YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF
-BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0o
-XnWO6y1n7k57K9cM//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjA
-bPLPSbtNk28GpgoiskliCE7/yMgUsogWXecB5BKV5UU0s4tpvc+0hY91UZ59
-Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2lzvukJDKxA4f
-Fm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchq
-J/kniCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0q
-UZ6B+dQ7XnASfxAynB67nfhmqA==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEZjCCA06gAwIBAgIQRL4Mi1AAJLQR0zYt4LNfGzANBgkqhkiG9w0BAQUF
-ADCBlTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0
-IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEw
-HwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHTAbBgNVBAMTFFVU
-Ti1VU0VSRmlyc3QtT2JqZWN0MB4XDTk5MDcwOTE4MzEyMFoXDTE5MDcwOTE4
-NDAzNlowgZUxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UEBxMO
-U2FsdCBMYWtlIENpdHkxHjAcBgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29y
-azEhMB8GA1UECxMYaHR0cDovL3d3dy51c2VydHJ1c3QuY29tMR0wGwYDVQQD
-ExRVVE4tVVNFUkZpcnN0LU9iamVjdDCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAM6qgT+jo2F4qjEAVZURnicPHxzfOpuCaDDASmEd8S8O+r55
-96Uj71VRloTN2+O5bj4x2AogZ8f02b+U60cEPgLOKqJdhwQJ9jCdGIqXsqoc
-/EHSoTbL+z2RuufZcDX65OeQw5ujm9M89RKZd7G3CeBo5hy485RjiGpq/gt2
-yb70IuRnuasaXnfBhQfdDWy/7gbHd2pBnqcP1/vulBe3/IW+pKvEHDHd17bR
-5PDv3xaPslKT16HUiaEHLr/hARJCHhrh2JU022R5KP+6LhHC5ehbkkj7RwvC
-bNqtMoNB86XlQXD9ZZBt+vpRxPm9lisZBCzTbafc8H9vg2XiaquHhnUCAwEA
-AaOBrzCBrDALBgNVHQ8EBAMCAcYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
-FgQU2u1kdBScFDyr3ZmpvVsoTYs8ydgwQgYDVR0fBDswOTA3oDWgM4YxaHR0
-cDovL2NybC51c2VydHJ1c3QuY29tL1VUTi1VU0VSRmlyc3QtT2JqZWN0LmNy
-bDApBgNVHSUEIjAgBggrBgEFBQcDAwYIKwYBBQUHAwgGCisGAQQBgjcKAwQw
-DQYJKoZIhvcNAQEFBQADggEBAAgfUrE3RHjb/c652pWWmKpVZIC1WkDdIaXF
-wfNfLEzIR1pp6ujwNTX00CXzyKakh0q9G7FzCL3Uw8q2NbtZhncxzaeAFK4T
-7/yxSPlrJSUtUbYsbUXBmMiKVl0+7kNOPmsnjtA6S4ULX9Ptaqd1y9Fahy85
-dRNacrACgZ++8A+EVCBibGnU4U3GDZlDAQ0Slox4nb9QorFEqmrPF3rPbw/U
-+CRVX/A0FklmPlBGyWNxODFiuGK581OtbLUrohKqGU8J2l7nk8aOFAj+8DCA
-GKCGhU3IfdeLA/5u1fedFqySLKAj5ZyRUh+U3xeUc8OzwcFxBSAAeL0TUh2o
-Ps0AH8g=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlD
-ZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIElu
-Yy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEgUG9saWN5IFZhbGlkYXRp
-b24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNv
-bS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYy
-NTIyMjM0OFoXDTE5MDYyNTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
-IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4x
-NTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEgUG9saWN5IFZhbGlkYXRpb24g
-QXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8x
-IDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3
-DQEBAQUAA4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9YLqdUHAZu9OqNSLwxlBfw
-8068srg1knaw0KWlAdcAAxIiGQj4/xEjm84H9b9pGib+TunRf50sQB1ZaG6m
-+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCmDuJWBQ8YTfwggtFzVXSN
-dnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0LBwGlN+V
-YH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLWI8so
-gTLDAHkY7FkXicnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPw
-nXS3qT6gpf+2SQMT2iLM7XGCK5nPOrf1LXLI
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlD
-ZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIElu
-Yy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRp
-b24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNv
-bS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYy
-NjAwMTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
-IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4x
-NTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24g
-QXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8x
-IDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3
-DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc
-65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQ
-b7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QSv4dk+NoS/zcn
-wbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZSWI4
-OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZ
-oDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwC
-W/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICPTCCAaYCEQDNun9W8N/kvFT+IqyzcqpVMA0GCSqGSIb3DQEBAgUAMF8x
-CzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UE
-CxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eTAeFw05NjAxMjkwMDAwMDBaFw0yODA4MDEyMzU5NTlaMF8xCzAJBgNV
-BAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xh
-c3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCB
-nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5Rm/baNWYS2ZSHH2Z965jeu3
-noaACpEO+jglr0aIguVzqKCbJF0NH8xlbgyw0FaEGIeaBpsQoXPftFg5a27B
-9hXVqKg/qhIGjTGsf7A01480Z4gJzRQR4k5FVmkfeAKA2txHkSm7NsljXMXg
-1y2He6G3MrB7MLoqLzGq7qNn2tsCAwEAATANBgkqhkiG9w0BAQIFAAOBgQBM
-P7iLxmjf7kMzDl3ppssHhE16M/+SG/Q2rdiVIjZoEWx8QszznC7EBz8UsA9P
-/5CSdvnivErpj82ggAr3xSnxgiJduLHdgSOjeyUVRjB5FvjqBUuUfx3CHMjj
-t/QQQDwTw18fU+hI5Ia0e6E1sHslurjTjqs/OJ0ANACY89FxlA==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDAjCCAmsCEEzH6qqYPnHTkxD4PTqJkZIwDQYJKoZIhvcNAQEFBQAwgcEx
-CzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UE
-CxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAt
-IEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBU
-cnVzdCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVow
-gcExCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoG
-A1UECxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5j
-LiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2ln
-biBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq
-0Lq+Fi24g9TK0g+8djHKlNgdk4xWArzZbxpvUjZudVYKVdPfQ4chEWWKfo+9
-Id5rMj8bhDSVBZ1BNeuS65bdqlk/AVNtmU/t5eIqWpDBucSmFc/IReumXY6c
-PvBkJHalzasab7bYe1FhbqZ/h8jit+U03EGI6glAvnOSPWvndQIDAQABMA0G
-CSqGSIb3DQEBBQUAA4GBAKlPww3HZ74sy9mozS11534Vnjty637rXC0Jh9Zr
-bWB85a7FkCMMXErQr7Fd88e2CtvgFZMN3QO8x3aKtd1Pw5sTdbgBwObJW2ul
-uIncrKTdcu1OofdPvAbT6shkdHvClUGcZXNY8ZCaPGqxmMnEh7zPRW1F4m4i
-P/68DzFc6PLZ
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQCLW3VWhFSFCwDPrzhIzrGkMA0GCSqGSIb3DQEBBQUAMIHK
-MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNV
-BAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5
-IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBD
-BgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlm
-aWNhdGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3
-MTYyMzU5NTlaMIHKMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24s
-IEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNV
-BAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQg
-dXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFBy
-aW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAN2E1Lm0+afY8wR4nN493GwTFtl63SRR
-ZsDHJlkNrAYIwpTRMx/wgzUfbhvI3qpuFU5UJ+/EbRrsC+MO8ESlV8dAWB6j
-Rx9x7GD2bZTIGDnt/kIYVt/kTEkQeE4BdjVjEjbdZrwBBDajVWjVojYJrKsh
-JlQGrT/KFOCsyq0GHZXi+J3x4GD/wn91K0zM2v6HmSHquv4+VNfSWXjbPG7P
-oBMAGrgnoeS+Z5bKoMWznN3JdZ7rMJpfo83ZrngZPyPpXNspva1VyBtUjGP2
-6KbqxzcSXKMpHgLZ2x87tNcPVkeBFQRKr4Mn0cVYiMHd9qqnoxjaaKptEVHh
-v2Vrn5Z20T0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAq2aN17O6x5q25lXQ
-BfGfMY1aqtmqRiYPce2lrVNWYgFHKkTp/j90CxObufRNG7LRX7K20ohcs5/N
-y9Sn2WCVhDr4wTcdYcrnsMXlkdpUpqwxga6X3s0IrLjAl4B/bnKk52kTlWUf
-xJM8/XmPBNQ+T+r3ns7NZ3xPZQL/kYVUc8f/NveGLezQXk//EZ9yBta4GvFM
-DSZl4kSAHsef493oCtrspSCAaWihT37ha88HQfqDjrw43bAuEbFrskLMmrz5
-SCJ5ShkPshw+IHTZasO+8ih4E1Z5T21Q6huwtVexN2ZYI/PcD98Kh8TvhgXV
-OBRgmaNL3gaWcSzy27YfpO8/7g==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDnjCCAwegAwIBAgIQK2jUo0aexTsoCas4XX8nIDANBgkqhkiG9w0BAQUF
-ADBfMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1
-BgNVBAsTLkNsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwHhcNMDAwODA0MDAwMDAwWhcNMDQwODAzMjM1OTU5WjCBpzEX
-MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczov
-L3d3dy52ZXJpc2lnbi5jb20vUlBBIChjKTAwMS4wLAYDVQQDEyVDbGFzcyAx
-IFB1YmxpYyBQcmltYXJ5IE9DU1AgUmVzcG9uZGVyMIGfMA0GCSqGSIb3DQEB
-AQUAA4GNADCBiQKBgQC57V56Ondfzl86UvzNZPdxtW9qlsZZklWUXS9bLsER
-6iaKy6eBPPZaRN56Ey/9WlHZezcmSsAnPwQDalbBgyzhb1upVFAkSsYuekyh
-WzdUJCExH6F4GHansXDaItBq/gdiQMb39pt9DAa4S8co5GYjhFHvRreT2IEz
-y+U2rMboBQIDAQABo4IBEDCCAQwwIAYDVR0RBBkwF6QVMBMxETAPBgNVBAMT
-CE9DU1AgMS0xMDEGA1UdHwQqMCgwJqAkoCKGIGh0dHA6Ly9jcmwudmVyaXNp
-Z24uY29tL3BjYTEuY3JsMBMGA1UdJQQMMAoGCCsGAQUFBwMJMEIGCCsGAQUF
-BwEBBDYwNDAyBggrBgEFBQcwAaYmFiRodHRwOi8vb2NzcC52ZXJpc2lnbi5j
-b20vb2NzcC9zdGF0dXMwRAYDVR0gBD0wOzA5BgtghkgBhvhFAQcBATAqMCgG
-CCsGAQUFBwIBFhxodHRwczovL3d3dy52ZXJpc2lnbi5jb20vUlBBMAkGA1Ud
-EwQCMAAwCwYDVR0PBAQDAgeAMA0GCSqGSIb3DQEBBQUAA4GBAHCQ3bjkvlMX
-fH8C6dX3i5mTMWCNfuZgayTvYKzSzpHegG0JpNO4OOVEynJeDS3Bd5y9LAN4
-KY2kpXeH9fErJq3MB2w6VFoo4AnzTQoEytRYaQuns/XdAaXn3PAfusFdkI2z
-6k/BEVmXarIrE7HarZehs7GgIFvKMquNzxPwHynD
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEC0b/EoXjaOR6+f/9YtFvgswDQYJKoZIhvcNAQECBQAwXzEL
-MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQL
-Ey5DbGFzcyAyIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
-aXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UE
-BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
-cyAyIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGf
-MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2WoujDWojg4BrzzmH9CETMwZM
-JaLtVRKXxaeAufqDwSCg+i8VDXyhYGt+eSz6Bg86rvYbb7HS/y8oUl+DfUvE
-erf4Zh+AVPy3wo5ZShRXRtGak75BkQO7FYCTXOvnzAhsPz6zSvz/S2wj1VCC
-JkQZjiPDceoZJEcEnnW/yKYAHwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBAIob
-K/o5wXTXXtgZZKJYSi034DNHD6zt96rbHuSLBlxgJ8pFUs4W7z8GZOeUaHxg
-MxURaa+dYo2jA1Rrpr7l7gUYYAS/QoD90KioHgE796Ncr6Pc5iaAIzy4RHT3
-Cq5Ji2F4zCS/iIqnDupzGUH9TQPwiNHleI2lKk/2lw0Xd8rY
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDAzCCAmwCEQC5L2DMiJ+hekYJuFtwbIqvMA0GCSqGSIb3DQEBBQUAMIHB
-MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNV
-BAsTM0NsYXNzIDIgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRo
-b3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNpZ24sIEluYy4g
-LSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24g
-VHJ1c3QgTmV0d29yazAeFw05ODA1MTgwMDAwMDBaFw0yODA4MDEyMzU5NTla
-MIHBMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6
-BgNVBAsTM0NsYXNzIDIgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNpZ24sIElu
-Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNp
-Z24gVHJ1c3QgTmV0d29yazCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
-p4gBIXQs5xoD8JjhlzwPIQjxnNuX6Zr8wgQGE75fUsjMHiwSViy4AWkszJkf
-rbCWrnkE8hM5wXuYuggs6MKEEyyqaekJ9MepAqRCwiNPStjwDqL7MWzJ5m+Z
-Jwf15vRMeJ5t60aG+rmGyVTyssSv1EYcWskVMP8NbPUtDm3Of3cCAwEAATAN
-BgkqhkiG9w0BAQUFAAOBgQByLvl/0fFx+8Se9sVeUYpAmLho+Jscg9jinb3/
-7aHmZuovCfTK1+qlK5X2JGCGTUQug6XELaDTrnhpb3LabK4I8GOSN+a7xDAX
-rXfMSTWqz9iP0b63GJZHc2pUIjRkLbYWm1lbtFFZOrMLFPQS32eg9K0yZF6x
-RnInjBJ7xUS0rg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEGTCCAwECEGFwy0mMX5hFKeewptlQW3owDQYJKoZIhvcNAQEFBQAwgcox
-CzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UE
-CxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkg
-VmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMG
-A1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZp
-Y2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTk5MTAwMTAwMDAwMFoXDTM2MDcx
-NjIzNTk1OVowgcoxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwg
-SW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazE6MDgGA1UE
-CxMxKGMpIDE5OTkgVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1
-c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJp
-bWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEArwoNwtUs22e5LeWUJ92lvuCwTY+zYVY8
-1nzD9M0+hsuiiOLh2KRpxbXiv8GmR1BeRjmL1Za6tW8UvxDOJxOeBUebMXoT
-2B/Z0wI3i60sR/COgQanDTAM6/c8DyAd3HJG7qUCyFvDyVZpTMUYwZF7C9UT
-AJu878NIPkZgIIUq1ZC2zYugzDLdt/1AVbJQHFauzI13TccgTacxdu9okoqQ
-HgiBVrKtaaNS0MscxCM9H5n+TOgWY47GCI72MfbS+uV23bUckqNJzc0BzWjN
-qWm6o+sdDZykIKbBoMXRRkwXbdKsZj+WjOCE1Db/IlnF+RFgqF8EffIa9iVC
-YQ/ESrg+iQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0JhU8wI1NQ0kdvekh
-ktdmnLfexbjQ5F1fdiLAJvmEOjr5jLX77GDx6M4EsMjdpwOPMPOY36TmpDHf
-0xwLRtxyID+u7gU8pDM/CzmscHhzS5kr3zDCVLCoO1Wh/hYozUK9dG6A2ydE
-p85EXdQbkJgNHkKUsQAsBNB0owIFImNjzYO1+8FtYmtpdf1dcEG59b98377B
-MnMiIYtYgXsVkXq642RIsH/7NiXaldDxJBQX3RiAa0YjOVT1jmIJBB2UkKab
-5iXiQkWquJCtvgiPqQtCGJTPcjnhsUPgKM+351psE2tJs//jGHyJizNdrDPX
-p/naOlXJWBD5qu9ats9LS98q
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDnjCCAwegAwIBAgIQCUYX5h3Y1BygDKBi6HmKpzANBgkqhkiG9w0BAQUF
-ADBfMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1
-BgNVBAsTLkNsYXNzIDIgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwHhcNMDAwODAxMDAwMDAwWhcNMDQwNzMxMjM1OTU5WjCBpzEX
-MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczov
-L3d3dy52ZXJpc2lnbi5jb20vUlBBIChjKTAwMS4wLAYDVQQDEyVDbGFzcyAy
-IFB1YmxpYyBQcmltYXJ5IE9DU1AgUmVzcG9uZGVyMIGfMA0GCSqGSIb3DQEB
-AQUAA4GNADCBiQKBgQDQymMxYX9ENHwFfQs9apDLeUt3Cj9LxyPlwGItfpx+
-PoiHkdCs6E1Jh6KWkIrdBKUCP4yb6Yn+YqDiWr3I3bR45qVCkwhnAcAgTddc
-9F3as+M3plIaLExlTYqH2aij8UlUuzxcgFFoxvtJ/wtVqxXd+5rBuR10DbKM
-RF2J/J/5gwIDAQABo4IBEDCCAQwwIAYDVR0RBBkwF6QVMBMxETAPBgNVBAMT
-CE9DU1AgMS0yMDEGA1UdHwQqMCgwJqAkoCKGIGh0dHA6Ly9jcmwudmVyaXNp
-Z24uY29tL3BjYTIuY3JsMBMGA1UdJQQMMAoGCCsGAQUFBwMJMEIGCCsGAQUF
-BwEBBDYwNDAyBggrBgEFBQcwAaYmFiRodHRwOi8vb2NzcC52ZXJpc2lnbi5j
-b20vb2NzcC9zdGF0dXMwRAYDVR0gBD0wOzA5BgtghkgBhvhFAQcBATAqMCgG
-CCsGAQUFBwIBFhxodHRwczovL3d3dy52ZXJpc2lnbi5jb20vUlBBMAkGA1Ud
-EwQCMAAwCwYDVR0PBAQDAgeAMA0GCSqGSIb3DQEBBQUAA4GBAB99CW4kRnUE
-nPMmm+M5bhfvvL2iG9IChIar0ECXLMRDiDcZayKoA3FQnSDcNmAgmnMtc1Vs
-WJsswrQ0LHozQsqR2elDr88e4PXEeqs/cmMeqTfhWzuIsxOGgpBXy1f/9Fa+
-It3jl6jhvCJDwt1N2/aBnpIUnjkPE1TegtjAXjSN
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzEL
-MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQL
-Ey5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
-aXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UE
-BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
-cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGf
-MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69q
-RUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94f56TuZoAqiN91qyFomNFx3In
-zPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Olhec9vn2a
-/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtM
-EivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPw
-TtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzk
-uxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcEx
-CzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UE
-CxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAt
-IEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBU
-cnVzdCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVow
-gcExCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoG
-A1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5j
-LiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2ln
-biBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDM
-XtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4pO0M8RcPO/mn+SXX
-wc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg013gfqLptQ5GV
-j0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwIDAQABMA0G
-CSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSkU01U
-bSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i
-F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo
-1KpYoJ2daZH9
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHK
-MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNV
-BAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5
-IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBD
-BgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlm
-aWNhdGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3
-MTYyMzU5NTlaMIHKMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24s
-IEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNV
-BAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQg
-dXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFBy
-aW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2
-R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2tKmFZpGcmTNDo
-vFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUccLwg
-TS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+V
-k7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ
-Xwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJ
-OxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my
-/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
-j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoA
-Wii/gt/4uhMdUIaC/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8S
-GhJouPtmmRQURVyu565pF4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbb
-o27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh
-/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDojCCAwugAwIBAgIQLpaev7ZibOx76XPM42zBhDANBgkqhkiG9w0BAQUF
-ADBfMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1
-BgNVBAsTLkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwHhcNMDAwODA0MDAwMDAwWhcNMDQwODAzMjM1OTU5WjCBpzEX
-MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczov
-L3d3dy52ZXJpc2lnbi5jb20vUlBBIChjKTAwMS4wLAYDVQQDEyVDbGFzcyAz
-IFB1YmxpYyBQcmltYXJ5IE9DU1AgUmVzcG9uZGVyMIGfMA0GCSqGSIb3DQEB
-AQUAA4GNADCBiQKBgQDx5AgOg7t140jluNum8Lmr6Txix141W9ACVBHYydFW
-uXZLuat65s269gwE1n7WsAplrE454/H3LaMlOe+wi8++2wxdbnD0B81w9zrA
-PjUW7XiMQ8/CJi5H1oZ9nPG+1mcMIiWkymXmH3p4KC8/BdsEIb/hRWb+PLeC
-7Vq4FhW5VQIDAQABo4IBFDCCARAwIAYDVR0RBBkwF6QVMBMxETAPBgNVBAMT
-CE9DU1AgMS0zMDUGA1UdHwQuMCwwKqAooCaGJGh0dHA6Ly9jcmwudmVyaXNp
-Z24uY29tL3BjYTMuMS4xLmNybDATBgNVHSUEDDAKBggrBgEFBQcDCTBCBggr
-BgEFBQcBAQQ2MDQwMgYIKwYBBQUHMAGmJhYkaHR0cDovL29jc3AudmVyaXNp
-Z24uY29tL29jc3Avc3RhdHVzMEQGA1UdIAQ9MDswOQYLYIZIAYb4RQEHAQEw
-KjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL1JQQTAJ
-BgNVHRMEAjAAMAsGA1UdDwQEAwIHgDANBgkqhkiG9w0BAQUFAAOBgQAC9lNj
-wKke8tCLMzCPSJtMsFa0g3FKvtxQ2PW24AvbvXhP6c8JNNopSZ0Bc1qRkYJU
-LBMK03cjzzf8Y96n4/a3tWlFKEnDkdyqRxypiJksBSqNjYr6YuJatwAgXTnE
-KMLL/J6oia5bPY4S6jKy/OsU1wkVGsDNG9W1FU5B1ZbjTg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDAjCCAmsCEDKIjprS9esTR/h/xCA3JfgwDQYJKoZIhvcNAQEFBQAwgcEx
-CzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UE
-CxMzQ2xhc3MgNCBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAt
-IEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBU
-cnVzdCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVow
-gcExCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoG
-A1UECxMzQ2xhc3MgNCBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5j
-LiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2ln
-biBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC6
-8OTP+cSuhVS5B1f5j8V/aBH4xBewRNzjMHPVKmIquNDMHO0oW369atyzkSTK
-QWI8/AIBvxwWMZQFl3Zuoq29YRdsTjCG8FE3KlDHqGKB3FtKqsGgtG7rL+VX
-xbErQHDbWk2hjh+9Ax/YA9SPTJlxvOKCzFjomDqG04Y48wApHwIDAQABMA0G
-CSqGSIb3DQEBBQUAA4GBAIWMEsGnuVAVess+rLhDityq3RS6iYF+ATwjcSGI
-L4LcY/oCRaxFWdcqWERbt5+BO5JoPeI3JPV7bI92NZYJqFmduc4jq3TWg/0y
-cyfYaT5DdPauxYma51N86Xv2S/PBZYPejYqcPIiNOVn8qj8ijaHBZlCBckzt
-ImRPT8qAkbYp
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHK
-MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNV
-BAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5
-IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBD
-BgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlm
-aWNhdGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3
-MTYyMzU5NTlaMIHKMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24s
-IEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNV
-BAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQg
-dXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFBy
-aW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYl
-S+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaStBO3IFsJ+mGuqPKljYXC
-KtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM8BDc
-VHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdL
-MEYH5IBtptiWLugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XY
-ufTsgsbSPZUd5cBPhMnZo0QoBmrXRazwa2rvTl/4EYIeOGM0ZlDUPpNz+jDD
-Zq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAj/ola09b5KROJ1Wr
-IhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt
-mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csK
-vE+MW8VLADsfKoKmfjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluP
-QSjA1egtTaRezarZ7c7c2NU8Qh0XwRJdRTjDOPP8hS6DRkiy1yBfkjaP53kP
-mF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtGUPMxxY8BqHTr
-9Xgn2uf3ZkPznoM+IKrDNWCRzg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICNDCCAaECEAKtZn5ORf5eV288mBle3cAwDQYJKoZIhvcNAQECBQAwXzEL
-MAkGA1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMu
-MS4wLAYDVQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9y
-aXR5MB4XDTk0MTEwOTAwMDAwMFoXDTEwMDEwNzIzNTk1OVowXzELMAkGA1UE
-BhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYD
-VQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGb
-MA0GCSqGSIb3DQEBAQUAA4GJADCBhQJ+AJLOesGugz5aqomDV6wlAXYMra6O
-LDfO6zV4ZFQD5YRAUcm/jwjiioII0haGN1XpsSECrXZogZoFokvJSyVmIlZs
-iAeP94FZbYQHZXATcXY+m3dM41CJVphIuR2nKRoTLkoRWZweFdVJVCxzOmmC
-sZc5nG1wZ0jl3S3WyB57AgMBAAEwDQYJKoZIhvcNAQECBQADfgBl3X7hsuyw
-4jrg7HFGmhkRuNPHoLQDQCYCPgmc4RKz0Vr2N6W3YQO2WxZpO8ZECAyIUwxr
-l0nHPjXcbLm7qt9cuzovk2C2qUtN8iD3zV9/ZHuO3ABc1/p3yjkWWW8O6tO1
-g39NTUJWdrTJXwT4OPjr0l91X817/OWOgHz8UA==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDnzCCAwygAwIBAgIRAP9F1SddJPuzwjkkU1fhT94wDQYJKoZIhvcNAQEF
-BQAwXzELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5
-LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24g
-QXV0aG9yaXR5MB4XDTAwMDgwNDAwMDAwMFoXDTA0MDgwMzIzNTk1OVowgZ4x
-FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
-cnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQgaHR0cHM6
-Ly93d3cudmVyaXNpZ24uY29tL1JQQSAoYykwMDElMCMGA1UEAxMcU2VjdXJl
-IFNlcnZlciBPQ1NQIFJlc3BvbmRlcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
-gYkCgYEAuFGZZIUO7rMKaPC/Y3YdU/X8oXiMM+6f9L452psPTUepjyDoS0S9
-zs17kNEw6JDEJXuJKN699pMd/7n/krWpjeSuzOLDB4Nqo3IQASdiIqY1Jjkt
-ns9gDPxHpNfQQninHWzQy08VpykKtJVFxLHnWgnXOZXYHTWewr2zXcEMSx8C
-AwEAAaOCAR0wggEZMCAGA1UdEQQZMBekFTATMREwDwYDVQQDEwhPQ1NQIDEt
-NDA+BgNVHR8ENzA1MDOgMaAvhi1odHRwOi8vY3JsLnZlcmlzaWduLmNvbS9S
-U0FTZWN1cmVTZXJ2ZXItcC5jcmwwEwYDVR0lBAwwCgYIKwYBBQUHAwkwQgYI
-KwYBBQUHAQEENjA0MDIGCCsGAQUFBzABpiYWJGh0dHA6Ly9vY3NwLnZlcmlz
-aWduLmNvbS9vY3NwL3N0YXR1czBEBgNVHSAEPTA7MDkGC2CGSAGG+EUBBwEB
-MCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9SUEEw
-CQYDVR0TBAIwADALBgNVHQ8EBAMCB4AwDQYJKoZIhvcNAQEFBQADfgAAsxBT
-ZpxJky4xoAJC0lhXfmah/huKYRhQQCweK0Gl1tv/rAgcWgVtAlwqtpZPR9u+
-TtvOzLqGuBjOsRKRX2P380g+zPFNE+RtCZR4AJLLoyCdBgtqoEMHztEZbI8Y
-dZqfFzP9qSa44+LewqjEWop/mNYHBmvMVp6GcM7U7w==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDzTCCAzagAwIBAgIQU2GyYK7bcY6nlLMTM/QHCTANBgkqhkiG9w0BAQUF
-ADCBwTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTww
-OgYDVQQLEzNDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24g
-QXV0aG9yaXR5IC0gRzIxOjA4BgNVBAsTMShjKSAxOTk4IFZlcmlTaWduLCBJ
-bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAsTFlZlcmlT
-aWduIFRydXN0IE5ldHdvcmswHhcNMDAwOTI2MDAwMDAwWhcNMTAwOTI1MjM1
-OTU5WjCBpTEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
-cmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBh
-dCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTAwMSwwKgYDVQQD
-EyNWZXJpU2lnbiBUaW1lIFN0YW1waW5nIEF1dGhvcml0eSBDQTCBnzANBgkq
-hkiG9w0BAQEFAAOBjQAwgYkCgYEA0hmdZ8IAIVlizrQJIkRpivglWtvtDbc2
-fk7gu5Q+kCWHwmFHKdm9VLhjzCx9abQzNvQ3B5rB3UBU/OB4naCTuQk9I1F/
-RMIUdNsKvsvJMDRAmD7Q1yUQgZS9B0+c1lQn3y6ov8uQjI11S7zi6ESHzeZB
-CiVu6PQkAsVSD27smHUCAwEAAaOB3zCB3DAPBgNVHRMECDAGAQH/AgEAMEUG
-A1UdIAQ+MDwwOgYMYIZIAYb4RQEHFwEDMCowKAYIKwYBBQUHAgEWHGh0dHBz
-Oi8vd3d3LnZlcmlzaWduLmNvbS9ycGEwMQYDVR0fBCowKDAmoCSgIoYgaHR0
-cDovL2NybC52ZXJpc2lnbi5jb20vcGNhMy5jcmwwCwYDVR0PBAQDAgEGMEIG
-CCsGAQUFBwEBBDYwNDAyBggrBgEFBQcwAaYmFiRodHRwOi8vb2NzcC52ZXJp
-c2lnbi5jb20vb2NzcC9zdGF0dXMwDQYJKoZIhvcNAQEFBQADgYEAgnBold+2
-DcIBcBlK0lRWHqzyRUyHuPU163hLBanInTsZIS5wNEqi9YngFXVF5yg3ADQn
-Keg3S/LvRJdrF1Eaw1adPBqK9kpGRjeM+sv1ZFo4aC4cw+9wzrhGBha/937n
-tag+RaypJXUie28/sJyU58dzq6wf7iWbwBbtt8pb8BQ=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDgDCCAmigAwIBAgICAx4wDQYJKoZIhvcNAQEFBQAwYTELMAkGA1UEBhMC
-VVMxDTALBgNVBAoTBFZJU0ExLzAtBgNVBAsTJlZpc2EgSW50ZXJuYXRpb25h
-bCBTZXJ2aWNlIEFzc29jaWF0aW9uMRIwEAYDVQQDEwlHUCBSb290IDIwHhcN
-MDAwODE2MjI1MTAwWhcNMjAwODE1MjM1OTAwWjBhMQswCQYDVQQGEwJVUzEN
-MAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNl
-cnZpY2UgQXNzb2NpYXRpb24xEjAQBgNVBAMTCUdQIFJvb3QgMjCCASIwDQYJ
-KoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkBcLWqxEDwq2omYXkZAPy/mzdZ
-DK9vZBv42pWUJGkzEXDK41Z0ohdXZFwgBuHW73G3O/erwWnQSaSxBNf0V2KJ
-XLB1LRckaeNCYOTudNargFbYiCjh+20i/SN8RnNPflRzHqgsVVh1t0zzWkWl
-Ahr62p3DRcMiXvOL8WAp0sdftAw6UYPvMPjU58fy+pmjIlC++QU3o63tmsPm
-7IgbthknGziLgE3sucfFicv8GjLtI/C1AVj59o/ghalMCXI5Etuz9c9OYmTa
-xhkVOmMd6RdVoUwiPDQyRvhlV7or7zaMavrZ2UT0qt2E1w0cslSsMoW0ZA3e
-QbuxNMYBhjJk1Z8CAwEAAaNCMEAwHQYDVR0OBBYEFJ59SzS/ca3CBfYDdYDO
-qU8axCRMMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqG
-SIb3DQEBBQUAA4IBAQAhpXYUVfmtJ3CPPPTVbMjMCqujmAuKBiPFyWHbmQdp
-NSYx/scuhMKZYdQN6X0uEyt8joW2hcdLzzW2LEc9zikv2G+fiRxkk78IvXbQ
-kIqUs38oW26sTTMs7WXcFsziza6kPWKSBpUmv9+55CCmc2rBvveURNZNbyoL
-axhNdBA2aGpawWqn3TYpjLgwi08hPwAuVDAHOrqK5MOeyti12HvOdUVmB/Rt
-Ldh6yumJivIj2C/LbgA2T/vwLwHMD8AiZfSr4k5hLQOCfZEWtTDVFN5ex5D8
-ofyrEK9ca3CnB+8phuiyJccg/ybdd+95RBTEvd07xQObdyPsoOy7Wjm1zK0G
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUF
-ADBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlz
-YSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMT
-E1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2WhcNMjIwNjI0
-MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UE
-CxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAa
-BgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUA
-A4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfLF9sHP4CFT8icttD0b0/Pmdjh
-28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8bRaVK7362
-rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81
-q6UCzyr0TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtF
-Wsan9sYXiwGd/BmoKoMWuDpI/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0
-lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzsGHxBvfaLdXe6YJ2E5/4t
-AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
-A1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOC
-AQEAX/FBfXxcCLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcR
-zCSs00Rsca4BIGsDoo8Ytyk6feUWYFN4PMCvFYP3j1IzJL1kk5fui/fbGKht
-cbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pzzkWKsKZJ/0x9nXGI
-xHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu
-YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/
-hC3euiInlhBx6yLt398znM/jra6O1I7mT1GvFpLgXPYHDw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFajCCBFKgAwIBAgIEPLU9RjANBgkqhkiG9w0BAQUFADBmMRIwEAYDVQQK
-EwliZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEzMDEG
-A1UEAxMqYmVUUlVTVGVkIFJvb3QgQ0EtQmFsdGltb3JlIEltcGxlbWVudGF0
-aW9uMB4XDTAyMDQxMTA3Mzg1MVoXDTIyMDQxMTA3Mzg1MVowZjESMBAGA1UE
-ChMJYmVUUlVTVGVkMRswGQYDVQQLExJiZVRSVVNUZWQgUm9vdCBDQXMxMzAx
-BgNVBAMTKmJlVFJVU1RlZCBSb290IENBLUJhbHRpbW9yZSBJbXBsZW1lbnRh
-dGlvbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALx+xDmcjOPW
-HIb/ymKt4H8wRXqOGrO4x/nRNv8i805qX4QQ+2aBw5R5MdKR4XeOGCrDFN5R
-9U+jK7wYFuK13XneIviCfsuBH/0nLI/6l2Qijvj/YaOcGx6Sj8CoCd8JEey3
-fTGaGuqDIQY8n7pc/5TqarjDa1U0Tz0yH92BFODEPM2dMPgwqZfT7syj0B9f
-HBOB1BirlNFjw55/NZKeX0Tq7PQiXLfoPX2k+YmpkbIq2eszh+6l/ePazIjm
-iSZuxyuC0F6dWdsU7JGDBcNeDsYq0ATdcT0gTlgn/FP7eHgZFLL8kFKJOGJg
-B7Sg7KxrUNb9uShr71ItOrL/8QFArDcCAwEAAaOCAh4wggIaMA8GA1UdEwEB
-/wQFMAMBAf8wggG1BgNVHSAEggGsMIIBqDCCAaQGDysGAQQBsT4AAAEJKIOR
-MTCCAY8wggFIBggrBgEFBQcCAjCCAToaggE2UmVsaWFuY2Ugb24gb3IgdXNl
-IG9mIHRoaXMgQ2VydGlmaWNhdGUgY3JlYXRlcyBhbiBhY2tub3dsZWRnbWVu
-dCBhbmQgYWNjZXB0YW5jZSBvZiB0aGUgdGhlbiBhcHBsaWNhYmxlIHN0YW5k
-YXJkIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHVzZSwgdGhlIENlcnRpZmlj
-YXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IGFuZCB0aGUgUmVseWluZyBQYXJ0
-eSBBZ3JlZW1lbnQsIHdoaWNoIGNhbiBiZSBmb3VuZCBhdCB0aGUgYmVUUlVT
-VGVkIHdlYiBzaXRlLCBodHRwOi8vd3d3LmJldHJ1c3RlZC5jb20vcHJvZHVj
-dHNfc2VydmljZXMvaW5kZXguaHRtbDBBBggrBgEFBQcCARY1aHR0cDovL3d3
-dy5iZXRydXN0ZWQuY29tL3Byb2R1Y3RzX3NlcnZpY2VzL2luZGV4Lmh0bWww
-HQYDVR0OBBYEFEU9w6nR3D8kVpgccxiIav+DR+22MB8GA1UdIwQYMBaAFEU9
-w6nR3D8kVpgccxiIav+DR+22MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0B
-AQUFAAOCAQEASZK8o+6svfoNyYt5hhwjdrCAWXf82n+0S9/DZEtqTg6t8n1Z
-dwWtColzsPq8y9yNAIiPpqCy6qxSJ7+hSHyXEHu67RMdmgduyzFiEuhjA6p9
-beP4G3YheBufS0OM00mG9htc9i5gFdPp43t1P9ACg9AYgkHNZTfqjjJ+vWuZ
-XTARyNtIVBw74acT02pIk/c9jH8F6M7ziCpjBLjqflh8AXtb4cV97yHgjQ5d
-UX2xZ/2jvTg2xvI4hocalmhgRvsoFEdV4aeADGvi6t9NfJBIoDa9CReJf8Py
-05yc493EG931t3GzUwWJBtDLSoDByFOQtTwxiBdQn8nEDovYqAJjDQ==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFLDCCBBSgAwIBAgIEOU99hzANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQG
-EwJXVzESMBAGA1UEChMJYmVUUlVTVGVkMRswGQYDVQQDExJiZVRSVVNUZWQg
-Um9vdCBDQXMxGjAYBgNVBAMTEWJlVFJVU1RlZCBSb290IENBMB4XDTAwMDYy
-MDE0MjEwNFoXDTEwMDYyMDEzMjEwNFowWjELMAkGA1UEBhMCV1cxEjAQBgNV
-BAoTCWJlVFJVU1RlZDEbMBkGA1UEAxMSYmVUUlVTVGVkIFJvb3QgQ0FzMRow
-GAYDVQQDExFiZVRSVVNUZWQgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBANS0c3oTCjhVAb6JVuGUntS+WutKNHUbYSnE4a0IYCF4
-SP+00PpeQY1hRIfo7clY+vyTmt9P6j41ffgzeubx181vSUs9Ty1uDoM6GHh3
-o8/n9E1z2Jo7Gh2+lVPPIJfCzz4kUmwMjmVZxXH/YgmPqsWPzGCgc0rXOD8V
-cr+il7dw6K/ifhYGTPWqZCZyByWtNfwYsSbX2P8ZDoMbjNx4RWc0PfSvHI3k
-bWvtILNnmrRhyxdviTX/507AMhLn7uzf/5cwdO2NR47rtMNE5qdMf1ZD6Li8
-tr76g5fmu/vEtpO+GRg+jIG5c4gW9JZDnGdzF5DYCW5jrEq2I8QBoa2k5MUC
-AwEAAaOCAfgwggH0MA8GA1UdEwEB/wQFMAMBAf8wggFZBgNVHSAEggFQMIIB
-TDCCAUgGCisGAQQBsT4BAAAwggE4MIIBAQYIKwYBBQUHAgIwgfQagfFSZWxp
-YW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVz
-IGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0
-ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGFuZCBjZXJ0aWZpY2F0aW9u
-IHByYWN0aWNlIHN0YXRlbWVudCwgd2hpY2ggY2FuIGJlIGZvdW5kIGF0IGJl
-VFJVU1RlZCdzIHdlYiBzaXRlLCBodHRwczovL3d3dy5iZVRSVVNUZWQuY29t
-L3ZhdWx0L3Rlcm1zMDEGCCsGAQUFBwIBFiVodHRwczovL3d3dy5iZVRSVVNU
-ZWQuY29tL3ZhdWx0L3Rlcm1zMDQGA1UdHwQtMCswKaAnoCWkIzAhMRIwEAYD
-VQQKEwliZVRSVVNUZWQxCzAJBgNVBAYTAldXMB0GA1UdDgQWBBQquZtpLjub
-2M3eKjEENGvKBxirZzAfBgNVHSMEGDAWgBQquZtpLjub2M3eKjEENGvKBxir
-ZzAOBgNVHQ8BAf8EBAMCAf4wDQYJKoZIhvcNAQEFBQADggEBAHlh26Nebhax
-6nZR+csVm8tpvuaBa58oH2U+3RGFktToQb9+M70j5/Egv6S0phkBxoyNNXxl
-pE8JpNbYIxUFE6dDea/bow6be3ga8wSGWsb2jCBHOElQBp1yZzrwmAOtlmdE
-/D8QDYZN5AA7KXvOOzuZhmElQITcE2K3+spZ1gMe1lMBzW1MaFVA4e5rxyoA
-AEiCswoBw2AqDPeCNe5IhpbkdNQ96gFxugR1QKepfzk5mlWXKWWuGVUlBXJH
-0+gY3Ljpr0NzARJ0o+FcXxVdJPP55PS2Z2cS52QiivalQaYctmBjRYoQtLpG
-EK5BV2VsPyMQPyEQWbfkQN0mDCP2qq4=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIGUTCCBTmgAwIBAgIEPLVPQDANBgkqhkiG9w0BAQUFADBmMRIwEAYDVQQK
-EwliZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEzMDEG
-A1UEAxMqYmVUUlVTVGVkIFJvb3QgQ0EgLSBFbnRydXN0IEltcGxlbWVudGF0
-aW9uMB4XDTAyMDQxMTA4MjQyN1oXDTIyMDQxMTA4NTQyN1owZjESMBAGA1UE
-ChMJYmVUUlVTVGVkMRswGQYDVQQLExJiZVRSVVNUZWQgUm9vdCBDQXMxMzAx
-BgNVBAMTKmJlVFJVU1RlZCBSb290IENBIC0gRW50cnVzdCBJbXBsZW1lbnRh
-dGlvbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALr0RAOqEmq1
-Q+xVkrYwfTVXDNvzDSduTPdQqJtOK2/b9a0cS12zqcH+e0TrW6MFDR/FNCsw
-ACnxeECypP869AGIF37m1CbTukzqMvtDd5eHI8XbQ6P1KqNRXuE70mVpflUV
-m3rnafdE4Fe1FehmYA8NA/uCjqPoEXtsvsdjDheT389Lrm5zdeDzqrmkwAkb
-hepxKYhBMvnwKg5sCfJ0a2ZsUhMfGLzUPvfYbiCeyv78IZTuEyhL11xeDGbu
-6bsPwTSxfwh28z0mcMmLJR1iJAzqHHVOwBLkuhMdMCktVjMFu5dZfsZJT4nX
-LySotohAtWSSU1Yk5KKghbNekLQSM80CAwEAAaOCAwUwggMBMIIBtwYDVR0g
-BIIBrjCCAaowggGmBg8rBgEEAbE+AAACCSiDkTEwggGRMIIBSQYIKwYBBQUH
-AgIwggE7GoIBN1JlbGlhbmNlIG9uIG9yIHVzZSBvZiB0aGlzIENlcnRpZmlj
-YXRlIGNyZWF0ZXMgYW4gYWNrbm93bGVkZ21lbnQgYW5kIGFjY2VwdGFuY2Ug
-b2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29u
-ZGl0aW9ucyBvZiB1c2UsIHRoZSBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0
-YXRlbWVudCBhbmQgdGhlIFJlbHlpbmcgUGFydHkgQWdyZWVtZW50LCB3aGlj
-aCBjYW4gYmUgZm91bmQgYXQgdGhlIGJlVFJVU1RlZCB3ZWIgc2l0ZSwgaHR0
-cHM6Ly93d3cuYmV0cnVzdGVkLmNvbS9wcm9kdWN0c19zZXJ2aWNlcy9pbmRl
-eC5odG1sMEIGCCsGAQUFBwIBFjZodHRwczovL3d3dy5iZXRydXN0ZWQuY29t
-L3Byb2R1Y3RzX3NlcnZpY2VzL2luZGV4Lmh0bWwwEQYJYIZIAYb4QgEBBAQD
-AgAHMIGJBgNVHR8EgYEwfzB9oHugeaR3MHUxEjAQBgNVBAoTCWJlVFJVU1Rl
-ZDEbMBkGA1UECxMSYmVUUlVTVGVkIFJvb3QgQ0FzMTMwMQYDVQQDEypiZVRS
-VVNUZWQgUm9vdCBDQSAtIEVudHJ1c3QgSW1wbGVtZW50YXRpb24xDTALBgNV
-BAMTBENSTDEwKwYDVR0QBCQwIoAPMjAwMjA0MTEwODI0MjdagQ8yMDIyMDQx
-MTA4NTQyN1owCwYDVR0PBAQDAgEGMB8GA1UdIwQYMBaAFH1w5a44iwY/qhwa
-j/nPJDCqhIQWMB0GA1UdDgQWBBR9cOWuOIsGP6ocGo/5zyQwqoSEFjAMBgNV
-HRMEBTADAQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY2LjA6NC4wAwIEkDANBgkq
-hkiG9w0BAQUFAAOCAQEAKrgXzh8QlOu4mre5X+za95IkrNySO8cgjfKZ5V04
-ocI07cUTWVwFtStPYZuR+0H8/NU8TZh2BvWBfevdkObRVlTa4y0MnxEylCIB
-evZsLHRnBMylj44ss0O1lKLQfelifwa+JwGDnjr9iu6YQ0pr17WXOzq/T220
-Y/ozADQuLW2WyXvKmWO6vvT2MKAtmJbpVkQFqUSjYRDrgqFnXbxdJ3Wqiig2
-KjiS2d2kXgClzMx8KSreKJCrt+G2/30lC0DYqjSjLd4H61/OCt3Kfjp9JsFi
-aDrmLzfzgYYhxKlkqu9FNtEaZnz46TfW1mG+oq1I59/mdP7TbX3SJdysYlep
-9w==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFaDCCBFCgAwIBAgIQO1nHe81bV569N1KsdrSqGjANBgkqhkiG9w0BAQUF
-ADBiMRIwEAYDVQQKEwliZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBS
-b290IENBczEvMC0GA1UEAxMmYmVUUlVTVGVkIFJvb3QgQ0EgLSBSU0EgSW1w
-bGVtZW50YXRpb24wHhcNMDIwNDExMTExODEzWhcNMjIwNDEyMTEwNzI1WjBi
-MRIwEAYDVQQKEwliZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBSb290
-IENBczEvMC0GA1UEAxMmYmVUUlVTVGVkIFJvb3QgQ0EgLSBSU0EgSW1wbGVt
-ZW50YXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkujQw
-CY5X0LkGLG9uJIAiv11DpvpPrILnHGhwhRujbrWqeNluB0s/6d/16uhUoWGK
-Di9pdRi3DOUUjXFumLhV/AyV0Jtu4S2I1DpAa5LxmZZk3tv/ePTulh1HiXzU
-vrmIdyM6CeYEnm2qXtLIvZpOGd+J6lsOfsPktPDgaTuID0GQ+NRxQyTBjyZL
-O1bp/4xsN+lFrYWMU8NghpBKlsmzVLC7F/AcRdnUGxlkVgoZ98zh/4avflhe
-rHqQH8koOUV7orbHnB/ahdQhhlkwk75TMzf270HPM8ercmsl9fNTGwxMLvF1
-S++gh/f+ihXQbNXL+WhTuXAVE8L1LvtDNXUtAgMBAAGjggIYMIICFDAMBgNV
-HRMEBTADAQH/MIIBtQYDVR0gBIIBrDCCAagwggGkBg8rBgEEAbE+AAADCSiD
-kTEwggGPMEEGCCsGAQUFBwIBFjVodHRwOi8vd3d3LmJldHJ1c3RlZC5jb20v
-cHJvZHVjdHNfc2VydmljZXMvaW5kZXguaHRtbDCCAUgGCCsGAQUFBwICMIIB
-OhqCATZSZWxpYW5jZSBvbiBvciB1c2Ugb2YgdGhpcyBDZXJ0aWZpY2F0ZSBj
-cmVhdGVzIGFuIGFja25vd2xlZGdtZW50IGFuZCBhY2NlcHRhbmNlIG9mIHRo
-ZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlv
-bnMgb2YgdXNlLCB0aGUgQ2VydGlmaWNhdGlvbiBQcmFjdGljZSBTdGF0ZW1l
-bnQgYW5kIHRoZSBSZWx5aW5nIFBhcnR5IEFncmVlbWVudCwgd2hpY2ggY2Fu
-IGJlIGZvdW5kIGF0IHRoZSBiZVRSVVNUZWQgd2ViIHNpdGUsIGh0dHA6Ly93
-d3cuYmV0cnVzdGVkLmNvbS9wcm9kdWN0c19zZXJ2aWNlcy9pbmRleC5odG1s
-MAsGA1UdDwQEAwIBBjAfBgNVHSMEGDAWgBSp7BR++dlDzFMrFK3P9/BZiUHN
-GTAdBgNVHQ4EFgQUqewUfvnZQ8xTKxStz/fwWYlBzRkwDQYJKoZIhvcNAQEF
-BQADggEBANuXsHXqDMTBmMpWBcCorSZIry0g6IHHtt9DwSwddUvUQo3neqh0
-3GZCWYez9Wlt2ames30cMcH1VOJZJEnl7r05pmuKmET7m9cqg5c0Lcd9NUwt
-NLg+DcTsiCevnpL9UGGCqGAHFFPMZRPB9kdEadIxyKbdLrML3kqNWz2rDcI1
-UqJWN8wyiyiFQpyRQHpwKzg21eFzGh/l+n5f3NacOzDq28BbJ1zTcwfBwvNM
-m2+fG8oeqqg4MwlYsq78B+g23FW6L09A/nq9BqaBwZMifIYRCgZ3SK41ty8y
-mmFei74pnykkiFY5LKjSq5YDWtRIn7lAhAuYaPsBQ9Yb4gmxlxw=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJC
-TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0
-aWZpY2F0aW9uIEF1dGhvcml0eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0
-aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAzMTkxODMzMzNaFw0yMTAzMTcxODMz
-MzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUw
-IwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVR
-dW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Yp
-li4kVEAkOPcahdxYTMukJ0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2D
-rOpm2RgbaIr1VxqYuvXtdj182d6UajtLF8HVj71lODqV0D1VNk7feVcxKh7YWWVJ
-WCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeLYzcS19Dsw3sgQUSj7cug
-F+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWenAScOospU
-xbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCC
-Ak4wPQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVv
-dmFkaXNvZmZzaG9yZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREw
-ggENMIIBCQYJKwYBBAG+WAABMIH7MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNl
-IG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBh
-c3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy
-ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
-Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYI
-KwYBBQUHAgEWFmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3T
-KbkGGew5Oanwl4Rqy+/fMIGuBgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rq
-y+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1p
-dGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYD
-VQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6tlCL
-MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSk
-fnIYj9lofFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf8
-7C9TqnN7Az10buYWnuulLsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1R
-cHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2xgI4JVrmcGmD+XcHXetwReNDWXcG31a0y
-mQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQW
-xFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQNiOK
-SnQ2+Q==
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIETzCCAzegAwIBAgIEO63vKTANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJQTDEfMB0GA1UE
-ChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2Fjamkg
-U2lnbmV0MRswGQYDVQQDExJDQyBTaWduZXQgLSBSb290Q0EwHhcNMDEwOTIzMTQxODE3WhcNMTEw
-OTIzMTMxODE3WjB1MQswCQYDVQQGEwJQTDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5v
-LjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MR8wHQYDVQQDExZDQyBTaWdu
-ZXQgLSBDQSBLbGFzYSAxMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4SRW9Q58g5DY1Hw7h
-gCRKBEdPdGn0MFHsfw7rlu/oQm7IChI/uWd9q5wwo77YojtTDjRnpgZsjqBeynX8T90vFILqsY2K
-5CF1OESalwvVr3sZiQX79lisuFKat92u6hBFikFIVxfHHB67Af+g7u0dEHdDW7lwy81MwFYxBTRy
-9wIDAQABo4IBbTCCAWkwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwggEEBgNVHSAE
-gfwwgfkwgfYGDSsGAQQBvj8CAQoBAQAwgeQwgZoGCCsGAQUFBwICMIGNGoGKQ2VydHlmaWthdCB3
-eXN0YXdpb255IHpnb2RuaWUgeiBkb2t1bWVudGVtOiAiUG9saXR5a2EgQ2VydHlmaWthY2ppIGRs
-YSBSb290Q0EiLiBDZXJ0eWZpa2F0IHd5c3Rhd2lvbnkgcHJ6ZXogUm9vdENBIHcgaGllcmFyY2hp
-aSBDQyBTaWduZXQuMEUGCCsGAQUFBwIBFjlodHRwOi8vd3d3LnNpZ25ldC5wbC9yZXBvenl0b3Jp
-dW0vZG9rdW1lbnR5L3BjX3Jvb3RjYS50eHQwHwYDVR0jBBgwFoAUwJvFIw0C4aZOSGsfAOnjmhQb
-sa8wHQYDVR0OBBYEFMODHtVZd1T7TftXR/nEI1zR54njMA0GCSqGSIb3DQEBBQUAA4IBAQBRIHQB
-FIGh8Jpxt87AgSLwIEEk4+oGy769u3NtoaR0R3WNMdmt7fXTi0tyTQ9V4AIszxVjhnUPaKnF1KYy
-f8Tl+YTzk9ZfFkZ3kCdSaILZAOIrmqWNLPmjUQ5/JiMGho0e1YmWUcMci84+pIisTsytFzVP32/W
-+sz2H4FQAvOIMmxB7EJX9AdbnXn9EXZ+4nCqi0ft5z96ZqOJJiCB3vSaoYg+wdkcvb6souMJzuc2
-uptXtR1Xf3ihlHaGW+hmnpcwFA6AoNrom6Vgzk6U1ienx0Cw28BhRSKqzKkyXkuK8gRflZUx84uf
-tXncwKJrMiE3lvgOOBITRzcahirLer4c
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIE9zCCA9+gAwIBAgIEPL/xoTANBgkqhkiG9w0BAQUFADB2MQswCQYDVQQGEwJQTDEfMB0GA1UE
-ChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2Fjamkg
-U2lnbmV0MSAwHgYDVQQDExdDQyBTaWduZXQgLSBQQ0EgS2xhc2EgMjAeFw0wMjA0MTkxMDI5NTNa
-Fw0xNzA0MTgxMjUzMDdaMHUxCzAJBgNVBAYTAlBMMR8wHQYDVQQKExZUUCBJbnRlcm5ldCBTcC4g
-eiBvLm8uMSQwIgYDVQQLExtDZW50cnVtIENlcnR5ZmlrYWNqaSBTaWduZXQxHzAdBgNVBAMTFkND
-IFNpZ25ldCAtIENBIEtsYXNhIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqgLJu
-QqY4yavbSgHg8CyfKTx4BokNSDOVz4eD9vptUr11Kqd06ED1hlH7Sg0goBFAfntNU/QTKwSBaNui
-me7C4sSEdgsKrPoAhGb4Mq8y7Ty7RqZz7mkzNMqzL2L2U4yQ2QjvpH8MH0IBqOWEcpSkpwnrCDIm
-RoTfd+YlZWKi2JceQixUUYIQ45Ox8+x8hHbvvZdgqtcvo8PW27qoHkp/7hMuJ44kDAGrmxffBXl/
-OBRZp0uO1CSLcMcVJzyr2phKhy406MYdWrtNPEluGs0GFDzd0nrIctiWAO4cmct4S72S9Q6e//0G
-O9f3/Ca5Kb2I1xYLj/xE+HgjHX9aD2MhAgMBAAGjggGMMIIBiDAPBgNVHRMBAf8EBTADAQH/MA4G
-A1UdDwEB/wQEAwIBBjCB4wYDVR0gBIHbMIHYMIHVBg0rBgEEAb4/AhQKAQEAMIHDMHUGCCsGAQUF
-BwICMGkaZ0NlcnR5ZmlrYXQgd3lzdGF3aW9ueSB6Z29kbmllIHogZG9rdW1lbnRlbTogIlBvbGl0
-eWthIENlcnR5ZmlrYWNqaSBQQ0EyIC0gQ2VydHlmaWthdHkgVXJ6ZWRvdyBLbGFzeSAyIi4wSgYI
-KwYBBQUHAgEWPmh0dHA6Ly93d3cuc2lnbmV0LnBsL3JlcG96eXRvcml1bS9kb2t1bWVudHkva2xh
-c2EyL3BjX3BjYTIudHh0MD8GA1UdHwQ4MDYwNKAyoDCGLmh0dHA6Ly93d3cuc2lnbmV0LnBsL3Jl
-cG96eXRvcml1bS9jcmwvcGNhMi5jcmwwHwYDVR0jBBgwFoAUwGxGyl2CfpYHRonE82AVXO08kMIw
-HQYDVR0OBBYEFLtFBlILy4HNKVSzvHxBTM0HDowlMA0GCSqGSIb3DQEBBQUAA4IBAQBWTsCbqXrX
-hBBev5v5cIuc6gJM8ww7oR0uMQRZoFSqvQUPWBYM2/TLI/f8UM9hSShUVj3zEsSj/vFHagUVmzuV
-Xo5u0WK8iaqATSyEVBhADHrPG6wYcLKJlagge/ILA0m+SieyP2sjYD9MUB9KZIEyBKv0429UuDTw
-6P7pslxMWJBSNyQxaLIs0SRKsqZZWkc7ZYAj2apSkBMX2Is1oHA+PwkF6jQMwCao/+CndXPUzfCF
-6caa9WwW31W26MlXCvSmJgfiTPwGvm4PkPmOnmWZ3CczzhHl4q7ztHFzshJH3sZWDnrWwBFjzz5e
-Pr3WHV1wA7EY6oT4zBx+2gT9XBTB
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEUzCCAzugAwIBAgIEPq+qjzANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQGEwJQTDE3MDUGA1UE
-ChMuQ1ppQyBDZW50cmFzdCBTQSB3IGltaWVuaXUgTWluaXN0cmEgR29zcG9kYXJraTEZMBcGA1UE
-AxMQQ1ppQyBDZW50cmFzdCBTQTAeFw0wMzA0MzAxMDUwNTVaFw0wODA0MjgxMDUwNTVaMGgxCzAJ
-BgNVBAYTAlBMMR8wHQYDVQQKExZUUCBJbnRlcm5ldCBTcC4geiBvLm8uMR8wHQYDVQQDExZDQyBT
-aWduZXQgLSBDQSBLbGFzYSAzMRcwFQYDVQQFEw5OdW1lciB3cGlzdTogNDCCASIwDQYJKoZIhvcN
-AQEBBQADggEPADCCAQoCggEBALVdeOM62cPH2NERFxbS5FIp/HSv3fgesdVsTUFxZbGtE+/E0RMl
-KZQJHH9emx7vRYubsi4EOLCjYsCOTFvgGRIpZzx7R7T5c0Di5XFkRU4gjBl7aHJoKb5SLzGlWdoX
-GsekVtl6keEACrizV2EafqjI8cnBWY7OxQ1ooLQp5AeFjXg+5PT0lO6TUZAubqjFbhVbxSWjqvdj
-93RGfyYE76MnNn4c2xWySD07n7uno06TC0IJe6+3WSX1h+76VsIFouWBXOoM7cxxiLjoqdBVu24+
-P8e81SukE7qEvOwDPmk9ZJFtt1nBNg8a1kaixcljrA/43XwOPz6qnJ+cIj/xywECAwEAAaOCAQow
-ggEGMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMDMGA1UdIAEB/wQpMCcwJQYEVR0g
-ADAdMBsGCCsGAQUFBwIBFg93d3cuY2VudHJhc3QucGwwgY4GA1UdIwSBhjCBg4AU2a7r85Cp1iJN
-W0Ca1LR6VG3996ShZaRjMGExCzAJBgNVBAYTAlBMMTcwNQYDVQQKEy5DWmlDIENlbnRyYXN0IFNB
-IHcgaW1pZW5pdSBNaW5pc3RyYSBHb3Nwb2RhcmtpMRkwFwYDVQQDExBDWmlDIENlbnRyYXN0IFNB
-ggQ9/0sQMB0GA1UdDgQWBBR7Y8wZkHq0zrY7nn1tFSdQ0PlJuTANBgkqhkiG9w0BAQUFAAOCAQEA
-ldt/svO5c1MU08FKgrOXCGEbEPbQxhpM0xcd6Iv3dCo6qugEgjEs9Qm5CwUNKMnFsvR27cJWUvZb
-MVcvwlwCwclOdwF6u/QRS8bC2HYErhYo9bp9yuxxzuow2A94c5fPqfVrjXy+vDouchAm6+A5Wjzv
-J8wxVFDCs+9iGACmyUWr/JGXCYiQIbQkwlkRKHHlan9ymKf1NvIej/3EpeT8fKr6ywxGuhAfqofW
-pg3WJY/RCB4lTzD8vZGNwfMFGkWhJkypad3i9w3lGmDVpsHaWtCgGfd0H7tUtWPkP+t7EjIRCD9J
-HYnTR+wbbewc5vOI+UobR15ynGfFIaSIiMTVtQ==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEejCCA2KgAwIBAgIEP4vk6TANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQGEwJQ
-TDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2Vu
-dHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MR8wHQYDVQQDExZDQyBTaWduZXQgLSBD
-QSBLbGFzYSAyMB4XDTAzMTAxNDExNTgyMloXDTE3MDQxODEyNTMwN1owdzELMAkG
-A1UEBhMCUEwxHzAdBgNVBAoTFlRQIEludGVybmV0IFNwLiB6IG8uby4xJDAiBgNV
-BAsTG0NlbnRydW0gQ2VydHlmaWthY2ppIFNpZ25ldDEhMB8GA1UEAxMYQ0MgU2ln
-bmV0IC0gT0NTUCBLbGFzYSAyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCo
-VCsaBStblXQYVNthe3dvaCrfvKpPXngh4almm988iIlEv9CVTaAdCfaJNihvA+Vs
-Qw8++ix1VqteMQE474/MV/YaXigP0Zr0QB+g+/7PWVlv+5U9Gzp9+Xx4DJay8AoI
-iB7Iy5Qf9iZiHm5BiPRIuUXT4ZRbZRYPh0/76vgRsQIDAQABo4IBkjCCAY4wDgYD
-VR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMJMEEGA1UdHwQ6MDgwNqA0
-oDKGMGh0dHA6Ly93d3cuc2lnbmV0LnBsL3JlcG96eXRvcml1bS9jcmwva2xhc2Ey
-LmNybDCB2AYDVR0gBIHQMIHNMIHKBg4rBgEEAb4/AoFICgwBADCBtzBsBggrBgEF
-BQcCAjBgGl5DZXJ0eWZpa2F0IHd5ZGFueSB6Z29kbmllIHogZG9rdW1lbnRlbSAi
-UG9saXR5a2EgQ2VydHlmaWthY2ppIC0gQ2VydHlmaWthdHkgcmVzcG9uZGVyb3cg
-T0NTUCIuMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnNpZ25ldC5wbC9yZXBvenl0
-b3JpdW0vZG9rdW1lbnR5L3BjX29jc3BfMV8wLnBkZjAfBgNVHSMEGDAWgBS7RQZS
-C8uBzSlUs7x8QUzNBw6MJTAdBgNVHQ4EFgQUKEVrOY7cEHvsVgvoyZdytlbtgwEw
-CQYDVR0TBAIwADANBgkqhkiG9w0BAQUFAAOCAQEAQrRg5MV6dxr0HU2IsLInxhvt
-iUVmSFkIUsBCjzLoewOXA16d2oDyHhI/eE+VgAsp+2ANjZu4xRteHIHoYMsN218M
-eD2MLRsYS0U9xxAFK9gDj/KscPbrrdoqLvtPSMhUb4adJS9HLhvUe6BicvBf3A71
-iCNe431axGNDWKnpuj2KUpj4CFHYsWCXky847YtTXDjri9NIwJJauazsrSjK+oXp
-ngRS506mdQ7vWrtApkh8zhhWp7duCkjcCo1O8JxqYr2qEW1fXmgOISe010v2mmuv
-hHxPyVwoAU4KkOw0nbXZn53yak0is5+XmAjh0wWue44AssHrjC9nUh3mkLt6eQ==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEezCCA2OgAwIBAgIEP4vnLzANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJQ
-TDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEfMB0GA1UEAxMWQ0Mg
-U2lnbmV0IC0gQ0EgS2xhc2EgMzEXMBUGA1UEBRMOTnVtZXIgd3Bpc3U6IDQwHhcN
-MDMxMDE0MTIwODAwWhcNMDgwNDI4MTA1MDU1WjB3MQswCQYDVQQGEwJQTDEfMB0G
-A1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2VudHJ1bSBD
-ZXJ0eWZpa2FjamkgU2lnbmV0MSEwHwYDVQQDExhDQyBTaWduZXQgLSBPQ1NQIEts
-YXNhIDMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM/9GwvARNuCVN+PqZmO
-4FqH8vTqhenUyqRkmAVT4YhLu0a9AXeLAYVDu+NTkYzsAUMAfu55rIKHNLlm6WbF
-KvLiKKz4p4pbUr+ToPcwl/TDotidloUdBAxDg0SL+PmQqACZDe3seJho2IYf2vDL
-/G4TLMbKmNB0mlWFuN0f4fJNAgMBAAGjggGgMIIBnDAOBgNVHQ8BAf8EBAMCB4Aw
-EwYDVR0lBAwwCgYIKwYBBQUHAwkwTwYDVR0fBEgwRjBEoEKgQIY+aHR0cDovL3d3
-dy5zaWduZXQucGwva3dhbGlmaWtvd2FuZS9yZXBvenl0b3JpdW0vY3JsL2tsYXNh
-My5jcmwwgdgGA1UdIASB0DCBzTCBygYOKwYBBAG+PwKCLAoCAQAwgbcwbAYIKwYB
-BQUHAgIwYBpeQ2VydHlmaWthdCB3eWRhbnkgemdvZG5pZSB6IGRva3VtZW50ZW0g
-IlBvbGl0eWthIENlcnR5ZmlrYWNqaSAtIENlcnR5ZmlrYXR5IHJlc3BvbmRlcm93
-IE9DU1AiLjBHBggrBgEFBQcCARY7aHR0cDovL3d3dy5zaWduZXQucGwvcmVwb3p5
-dG9yaXVtL2Rva3VtZW50eS9wY19vY3NwXzFfMC5wZGYwHwYDVR0jBBgwFoAUe2PM
-GZB6tM62O559bRUnUND5SbkwHQYDVR0OBBYEFG4jnCMvBALRQXtmDn9TyXQ/EKP+
-MAkGA1UdEwQCMAAwDQYJKoZIhvcNAQEFBQADggEBACXrKG5Def5lpRwmZom3UEDq
-bl7y4U3qomG4B+ok2FVZGgPZti+ZgvrenPj7PtbYCUBPsCSTNrznKinoT3gD9lQQ
-xkEHwdc6VD1GlFp+qI64u0+wS9Epatrdf7aBnizrOIB4LJd4E2TWQ6trspetjMIU
-upyWls1BmYUxB91R7QkTiAUSNZ87s3auhZuG4f0V0JLVCcg2rn7AN1rfMkgxCbHk
-GxiQbYWFljl6aatxR3odnnzVUe1I8uoY2JXpmmUcOG4dNGuQYziyKG3mtXCQWvug
-5qi9Mf3KUh1oSTKx6HfLjjNl1+wMB5Mdb8LF0XyZLdJM9yIZh7SBRsYm9QiXevY=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFGjCCBAKgAwIBAgIEPL7eEDANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJQTDEfMB0GA1UE
-ChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2Fjamkg
-U2lnbmV0MRswGQYDVQQDExJDQyBTaWduZXQgLSBSb290Q0EwHhcNMDIwNDE4MTQ1NDA4WhcNMjYw
-OTIxMTU0MjE5WjB2MQswCQYDVQQGEwJQTDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5v
-LjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MSAwHgYDVQQDExdDQyBTaWdu
-ZXQgLSBQQ0EgS2xhc2EgMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM7BrBlbN5ma
-M5eg0BOTqoZ+9NBDvU8Lm5rTdrMswFTCathzpVVLK/JD4K3+4oCZ9SRAspEXE4gvwb08ASY6w5s+
-HpRkeJw8YzMFR5kDZD5adgnCAy4vDfIXYZgppXPaTQ8wnfUZ7BZ7Zfa7QBemUIcJIzJBB0UqgtxW
-Ceol9IekpBRVmuuSA6QG0Jkm+pGDJ05yj2eQG8jTcBENM7sVA8rGRMyFA4skSZ+D0OG6FS2xC1i9
-JyN0ag1yII/LPx8HK5J4W9MaPRNjAEeaa2qI9EpchwrOxnyVbQfSedCG1VRJfAsE/9tT9CMUPZ3x
-W20QjQcSZJqVcmGW9gVsXKQOVLsCAwEAAaOCAbMwggGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P
-AQH/BAQDAgEGMIIBBAYDVR0gBIH8MIH5MIH2Bg0rBgEEAb4/AgEKAQEBMIHkMIGaBggrBgEFBQcC
-AjCBjRqBikNlcnR5ZmlrYXQgd3lzdGF3aW9ueSB6Z29kbmllIHogZG9rdW1lbnRlbTogIlBvbGl0
-eWthIENlcnR5ZmlrYWNqaSBkbGEgUm9vdENBIi4gQ2VydHlmaWthdCB3eXN0YXdpb255IHByemV6
-IFJvb3RDQSB3IGhpZXJhcmNoaWkgQ0MgU2lnbmV0LjBFBggrBgEFBQcCARY5aHR0cDovL3d3dy5z
-aWduZXQucGwvcmVwb3p5dG9yaXVtL2Rva3VtZW50eS9wY19yb290Y2EudHh0MEQGA1UdHwQ9MDsw
-OaA3oDWGM2h0dHA6Ly93d3cuc2lnbmV0LnBsL3JlcG96eXRvcml1bS9yb290Y2Evcm9vdGNhLmNy
-bDAfBgNVHSMEGDAWgBTAm8UjDQLhpk5Iax8A6eOaFBuxrzAdBgNVHQ4EFgQUwGxGyl2CfpYHRonE
-82AVXO08kMIwDQYJKoZIhvcNAQEFBQADggEBABp1TAUsa+BeVWg4cjowc8yTJ5XN3GvN96GObMkx
-UGY7U9kVrLI71xBgoNVyzXTiMNDBvjh7vdPWjpl5SDiRpnnKiOFXA43HvNWzUaOkTu1mxjJsZsan
-ot1Xt6j0ZDC+03FjLHdYMyM9kSWp6afb4980EPYZCcSzgM5TOGfJmNii5Tq468VFKrX+52Aou1G2
-2Ohu+EEOlOrG7ylKv1hHUJJCjwN0ZVEIn1nDbrU9FeGCz8J9ihVUvnENEBbBkU37PWqWuHitKQDV
-tcwTwJJdR8cmKq3NmkwAm9fPacidQLpaw0WkuGrS+fEDhu1Nhy9xELP6NA9GRTCNxm/dXlcwnmY=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFGjCCBAKgAwIBAgIEPV0tNDANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJQTDEfMB0GA1UE
-ChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2Fjamkg
-U2lnbmV0MRswGQYDVQQDExJDQyBTaWduZXQgLSBSb290Q0EwHhcNMDIwODE2MTY0OTU2WhcNMjYw
-OTIxMTU0MjE5WjB2MQswCQYDVQQGEwJQTDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5v
-LjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MSAwHgYDVQQDExdDQyBTaWdu
-ZXQgLSBQQ0EgS2xhc2EgMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALN3LanJtdue
-Ne6geWUTFENa+lEuzqELcoqhYB+a/tJcPEkc6TX/bYPzalRRjqs+quMP6KZTU0DixOrV+K7iWaqA
-iQ913HX5IBLmKDCrTVW/ZvSDpiBKbxlHfSNuJxAuVT6HdbzK7yAW38ssX+yS2tZYHZ5FhZcfqzPE
-OpO94mAKcBUhk6T/ki0evXX/ZvvktwmF3hKattzwtM4JMLurAEl8SInyEYULw5JdlfcBez2Tg6Db
-w34hA1A+ckTwhxzecrB8TUe2BnQKOs9vr2cCACpFFcOmPkM0Drtjctr1QHm1tYSqRFRf9VcV5tfC
-3P8QqoK4ONjtLPHc9x5NE1uK/FMCAwEAAaOCAbMwggGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P
-AQH/BAQDAgEGMIIBBAYDVR0gBIH8MIH5MIH2Bg0rBgEEAb4/AgEKAQECMIHkMIGaBggrBgEFBQcC
-AjCBjRqBikNlcnR5ZmlrYXQgd3lzdGF3aW9ueSB6Z29kbmllIHogZG9rdW1lbnRlbTogIlBvbGl0
-eWthIENlcnR5ZmlrYWNqaSBkbGEgUm9vdENBIi4gQ2VydHlmaWthdCB3eXN0YXdpb255IHByemV6
-IFJvb3RDQSB3IGhpZXJhcmNoaWkgQ0MgU2lnbmV0LjBFBggrBgEFBQcCARY5aHR0cDovL3d3dy5z
-aWduZXQucGwvcmVwb3p5dG9yaXVtL2Rva3VtZW50eS9wY19yb290Y2EudHh0MEQGA1UdHwQ9MDsw
-OaA3oDWGM2h0dHA6Ly93d3cuc2lnbmV0LnBsL3JlcG96eXRvcml1bS9yb290Y2Evcm9vdGNhLmNy
-bDAfBgNVHSMEGDAWgBTAm8UjDQLhpk5Iax8A6eOaFBuxrzAdBgNVHQ4EFgQUXvthcPHlH5BgGhlM
-ErJNXWlhlgAwDQYJKoZIhvcNAQEFBQADggEBACIce95Mvn710KCAISA0CuHD4aznTU6pLoCDShW4
-7OR+GTpJUm1coTcUqlBHV9mra4VFrBcBuOkHZoBLq/jmE0QJWnpSEULDcH9J3mF0nqO9SM+mWyJG
-dsJF/XU/7smummgjMNQXwzQTtWORF+6v5KUbWX85anO2wR+M6YTBWC55zWpWi4RG3vkHFs5Ze2oF
-JTlpuxw9ZgxTnWlwI9QR2MvEhYIUMKMOWxw1nt0kKj+5TCNQQGh/VJJ1dsiroGh/io1DOcePEhKz
-1Ag52y6Wf0nJJB9yk0sFakqZH18F7eQecQImgZyyeRtsG95leNugB3BXWCW+KxwiBrtQTXv4dTE=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEzzCCA7egAwIBAgIEO6ocGTANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJQTDEfMB0GA1UE
-ChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2Fjamkg
-U2lnbmV0MRswGQYDVQQDExJDQyBTaWduZXQgLSBSb290Q0EwHhcNMDEwOTIwMTY0MjE5WhcNMjYw
-OTIxMTU0MjE5WjBxMQswCQYDVQQGEwJQTDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5v
-LjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MRswGQYDVQQDExJDQyBTaWdu
-ZXQgLSBSb290Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrr2vydnNpELfGW3Ks
-ARiDhJvwDtUe4AbWev+OfMc3+vA29nX8ZmIwno3gmItjo5DbUCCRiCMq5c9epcGu+kg4a3BJChVX
-REl8gVh0ST15rr3RKrSc4VgsvQzl0ZUraeQLl8JoRT5PLsUj3qwF78jUCQVckiiLVcnGfZtFCm+D
-CJXliQBDMB9XFAUEiO/DtEBs0B7wJGx7lgJeJpQUcGiaOPjcJDYOk7rNAYmmD2gWeSlepufO8luU
-YG/YDxTC4mqhRqfa4MnVO5dqy+ICj2UvUpHbZDB0KfGRibgBYeQP1kuqgIzJN4UqknVAJb0aMBSP
-l+9k2fAUdchx1njlbdcbAgMBAAGjggFtMIIBaTAPBgNVHRMBAf8EBTADAQH/MIIBBAYDVR0gBIH8
-MIH5MIH2Bg0rBgEEAb4/AgEKAQEAMIHkMIGaBggrBgEFBQcCAjCBjRqBikNlcnR5ZmlrYXQgd3lz
-dGF3aW9ueSB6Z29kbmllIHogZG9rdW1lbnRlbTogIlBvbGl0eWthIENlcnR5ZmlrYWNqaSBkbGEg
-Um9vdENBIi4gQ2VydHlmaWthdCB3eXN0YXdpb255IHByemV6IFJvb3RDQSB3IGhpZXJhcmNoaWkg
-Q0MgU2lnbmV0LjBFBggrBgEFBQcCARY5aHR0cDovL3d3dy5zaWduZXQucGwvcmVwb3p5dG9yaXVt
-L2Rva3VtZW50eS9wY19yb290Y2EudHh0MB0GA1UdDgQWBBTAm8UjDQLhpk5Iax8A6eOaFBuxrzAf
-BgNVHSMEGDAWgBTAm8UjDQLhpk5Iax8A6eOaFBuxrzAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcN
-AQEFBQADggEBAGnY5QmYqnnO9OqFOWZxxb25UHRnaRF6IV9aaGit5BZufZj2Tq3v8L3SgE34GOoI
-cdRMMG5JEpEU4mN/Ef3oY6Eo+7HfqaPHI4KFmbDSPiK5s+wmf+bQSm0Yq5/h4ZOdcAESlLQeLSt1
-CQk2JoKQJ6pyAf6xJBgWEIlm4RXE4J3324PUiOp83kW6MDvaa1xY976WyInr4rwoLgxVl11LZeKW
-ha0RJJxJgw/NyWpKG7LWCm1fglF8JH51vZNndGYq1iKtfnrIOvLZq6bzaCiZm1EurD8HE6P7pmAB
-KK6o3C2OXlNfNIgwkDN/cDqk5TYsTkrpfriJPdxXBH8hQOkW89g=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIID/TCCA2agAwIBAgIEP4/gkTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQGEwJQTDEfMB0GA1UE
-ChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2Fjamkg
-U2lnbmV0MR8wHQYDVQQDExZDQyBTaWduZXQgLSBDQSBLbGFzYSAxMB4XDTAzMTAxNzEyMjkwMloX
-DTExMDkyMzExMTgxN1owdjELMAkGA1UEBhMCUEwxHzAdBgNVBAoTFlRQIEludGVybmV0IFNwLiB6
-IG8uby4xJDAiBgNVBAsTG0NlbnRydW0gQ2VydHlmaWthY2ppIFNpZ25ldDEgMB4GA1UEAxMXQ0Mg
-U2lnbmV0IC0gVFNBIEtsYXNhIDEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOJYrISEtSsd
-uHajROh5/n7NGrkpYTT9NEaPe9+ucuQ37KxIbfJwXJjgUc1dw4wCkcQ12FJarD1X6mSQ4cfN/60v
-LfKI5ZD4nhJTMKlAj1pX9ScQ/MuyvKStCbn5WTkjPhjRAM0tdwXSnzuTEunfw0Oup559y3Iqxg1c
-ExflB6cfAgMBAAGjggGXMIIBkzBBBgNVHR8EOjA4MDagNKAyhjBodHRwOi8vd3d3LnNpZ25ldC5w
-bC9yZXBvenl0b3JpdW0vY3JsL2tsYXNhMS5jcmwwDgYDVR0PAQH/BAQDAgeAMBYGA1UdJQEB/wQM
-MAoGCCsGAQUFBwMIMIHaBgNVHSAEgdIwgc8wgcwGDSsGAQQBvj8CZAoRAgEwgbowbwYIKwYBBQUH
-AgIwYxphQ2VydHlmaWthdCB3eXN0YXdpb255IHpnb2RuaWUgeiBkb2t1bWVudGVtICJQb2xpdHlr
-YSBDZXJ0eWZpa2FjamkgQ0MgU2lnbmV0IC0gWm5ha293YW5pZSBjemFzZW0iLjBHBggrBgEFBQcC
-ARY7aHR0cDovL3d3dy5zaWduZXQucGwvcmVwb3p5dG9yaXVtL2Rva3VtZW50eS9wY190c2ExXzJf
-MS5wZGYwHwYDVR0jBBgwFoAUw4Me1Vl3VPtN+1dH+cQjXNHnieMwHQYDVR0OBBYEFJdDwEqtcavO
-Yd9u9tej53vWXwNBMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQEFBQADgYEAnpiQkqLCJQYXUrqMHUEz
-+z3rOqS0XzSFnVVLhkVssvXc8S3FkJIiQTUrkScjI4CToCzujj3EyfNxH6yiLlMbskF8I31JxIeB
-vueqV+s+o76CZm3ycu9hb0I4lswuxoT+q5ZzPR8Irrb51rZXlolR+7KtwMg4sFDJZ8RNgOf7tbA=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIGFTCCBX6gAwIBAgIBEDANBgkqhkiG9w0BAQUFADCBvjELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgTB0luZGlhbmExFTATBgNVBAcTDEluZGlhbmFwb2xpczEoMCYGA1UE
-ChMfU29mdHdhcmUgaW4gdGhlIFB1YmxpYyBJbnRlcmVzdDETMBEGA1UECxMKaG9z
-dG1hc3RlcjEgMB4GA1UEAxMXQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxJTAjBgkq
-hkiG9w0BCQEWFmhvc3RtYXN0ZXJAc3BpLWluYy5vcmcwHhcNMDYwODE2MjA0NjUy
-WhcNMTYwODEzMjA0NjUyWjCBvDELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB0luZGlh
-bmExFTATBgNVBAcTDEluZGlhbmFwb2xpczEoMCYGA1UEChMfU29mdHdhcmUgaW4g
-dGhlIFB1YmxpYyBJbnRlcmVzdDETMBEGA1UECxMKSG9zdG1hc3RlcjEeMBwGA1UE
-AxMVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MSUwIwYJKoZIhvcNAQkBFhZob3N0bWFz
-dGVyQHNwaS1pbmMub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
-uTlCOrOYvCe0Qszlz90rVIQkS2UDa7R+qCTkRE5ipKC+3OZXGgv2EOYk/IOuCE3D
-8+tlTAl8MwvmwOHgL0GWnjoluR95narhNiV9Px8xyL2Z8kctwrWXbEii0Ot48VcN
-IQMDW5GK8Ww5puMKZr8+bXF2HFzkt8gwaCtrojcF4fLGcm3//bR13CKWbOzacANZ
-gAi00pD70ppjJU/uNVOe5HX6x/Id+50G6jwasanEzhteYJdbbHaMqrL4J6XbTwgJ
-ZciB0ifOZkwTBvQiRJpTkTWPyn/HptMbJGOwwiNbcgtWV7QVLW1GB3HYVum47Zwp
-XcXVM4Fs4XLwfx1Ti87LGdAJJYDS5K1F2prHKW5MsmFLJg61Nd6dZPRDLJLaOPEq
-0Jxa1NdfDjJ8rXOIcuLRAozjBui23vUhfOW9z4kpVIg+c+ylV2Oh/7f+fO731P7E
-AqsTFmiU7svcvkm2OKslolpnQ+pqGFLM4laQE/Q0kjogm7LiOpRssBW/ZfZ7pPLZ
-Ru0/AXrgKwQIM8mLazwlD3wHKPRElhIkxSv4qZ95zgJo6ky/7BpzZ/OAlz3BICbN
-WQhW/MBQVFiC6ivhjDq3AzgyykLShB0eIMRN0SBfTy3/aNfIJbqLmTNookXPoSP7
-+mg5OVzVBvDv5ZskWSl8kJB1DzJbN+DOr/i8V3Ugl90CAwEAAaOCAZ0wggGZMB0G
-A1UdDgQWBBTON+buqfoMXkWdtvObUS11tnY77DCB6wYDVR0jBIHjMIHggBQHrehB
-HX+91r8bgXo/jEuI3gTS+qGBxKSBwTCBvjELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
-B0luZGlhbmExFTATBgNVBAcTDEluZGlhbmFwb2xpczEoMCYGA1UEChMfU29mdHdh
-cmUgaW4gdGhlIFB1YmxpYyBJbnRlcmVzdDETMBEGA1UECxMKaG9zdG1hc3RlcjEg
-MB4GA1UEAxMXQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxJTAjBgkqhkiG9w0BCQEW
-Fmhvc3RtYXN0ZXJAc3BpLWluYy5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zARBglg
-hkgBhvhCAQEEBAMCAQYwCQYDVR0SBAIwADArBglghkgBhvhCAQ0EHhYcVGlueUNB
-IEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAhBgNVHREEGjAYgRZob3N0bWFzdGVyQHNw
-aS1pbmMub3JnMAsGA1UdDwQEAwIBBjANBgkqhkiG9w0BAQUFAAOBgQA5HQcqwPE/
-RaN8cb8H1G34rkvSEsj4l8UIivMFEWIKnF3SQT8KVcD7j/eJuhMazwRlTs8Rnu6V
-/uTC10w7SS6gELwDqAzR4PiXTzfkW8OJemyQn6JWXKfq2pR1n4fvwEn7htjeNS69
-iFKlFXyE9j2jhGaps1CKHfe1YX0MuwO4Jw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEFTCCA36gAwIBAgIBADANBgkqhkiG9w0BAQQFADCBvjELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgTB0luZGlhbmExFTATBgNVBAcTDEluZGlhbmFwb2xpczEoMCYGA1UE
-ChMfU29mdHdhcmUgaW4gdGhlIFB1YmxpYyBJbnRlcmVzdDETMBEGA1UECxMKaG9z
-dG1hc3RlcjEgMB4GA1UEAxMXQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxJTAjBgkq
-hkiG9w0BCQEWFmhvc3RtYXN0ZXJAc3BpLWluYy5vcmcwHhcNMDMwMTE1MTYyOTE3
-WhcNMDcwMTE0MTYyOTE3WjCBvjELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB0luZGlh
-bmExFTATBgNVBAcTDEluZGlhbmFwb2xpczEoMCYGA1UEChMfU29mdHdhcmUgaW4g
-dGhlIFB1YmxpYyBJbnRlcmVzdDETMBEGA1UECxMKaG9zdG1hc3RlcjEgMB4GA1UE
-AxMXQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxJTAjBgkqhkiG9w0BCQEWFmhvc3Rt
-YXN0ZXJAc3BpLWluYy5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPB6
-rdoiLR3RodtM22LMcfwfqb5OrJNl7fwmvskgF7yP6sdD2bOfDIXhg9852jhY8/kL
-VOFe1ELAL2OyN4RAxk0rliZQVgeTgqvgkOVIBbNwgnjN6mqtuWzFiPL+NXQExq40
-I3whM+4lEiwSHaV+MYxWanMdhc+kImT50LKfkxcdAgMBAAGjggEfMIIBGzAdBgNV
-HQ4EFgQUB63oQR1/vda/G4F6P4xLiN4E0vowgesGA1UdIwSB4zCB4IAUB63oQR1/
-vda/G4F6P4xLiN4E0vqhgcSkgcEwgb4xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdJ
-bmRpYW5hMRUwEwYDVQQHEwxJbmRpYW5hcG9saXMxKDAmBgNVBAoTH1NvZnR3YXJl
-IGluIHRoZSBQdWJsaWMgSW50ZXJlc3QxEzARBgNVBAsTCmhvc3RtYXN0ZXIxIDAe
-BgNVBAMTF0NlcnRpZmljYXRpb24gQXV0aG9yaXR5MSUwIwYJKoZIhvcNAQkBFhZo
-b3N0bWFzdGVyQHNwaS1pbmMub3JnggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcN
-AQEEBQADgYEAm/Abn8c2y1nO3fgpAIslxvi9iNBZDhQtJ0VQZY6wgSfANyDOR4DW
-iexO/AlorB49KnkFS7TjCAoLOZhcg5FaNiKnlstMI5krQmau1Qnb/vGSNsE/UGms
-1ts+QYPUs0KmGEAFUri2XzLy+aQo9Kw74VBvqnxvaaMeY5yMcKNOieY=
------END CERTIFICATE-----
diff --git a/gcr/tests/files/cacert.org.cer b/gcr/tests/files/cacert.org.cer
deleted file mode 100644
index 719b0ff2..00000000
--- a/gcr/tests/files/cacert.org.cer
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/cacert.org.pem b/gcr/tests/files/cacert.org.pem
deleted file mode 100644
index e7dfc829..00000000
--- a/gcr/tests/files/cacert.org.pem
+++ /dev/null
@@ -1,41 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290
-IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB
-IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA
-Y2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO
-BgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi
-MCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ
-ARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
-CgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ
-8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6
-zWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y
-fk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7
-w2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc
-G8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k
-epKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q
-laegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ
-QUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU
-fslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826
-YreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w
-ggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY
-gBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe
-MBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0
-IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy
-dC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw
-czovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0
-dHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl
-aHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC
-AQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg
-b3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB
-ACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc
-nWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg
-18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c
-gr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl
-Jzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY
-sONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T
-SCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF
-CpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum
-GCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk
-zk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW
-omTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD
------END CERTIFICATE-----
diff --git a/gcr/tests/files/client.crt b/gcr/tests/files/client.crt
deleted file mode 100644
index a4bc2fcc..00000000
--- a/gcr/tests/files/client.crt
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/client.key b/gcr/tests/files/client.key
deleted file mode 100644
index 206f5272..00000000
--- a/gcr/tests/files/client.key
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpQIBAAKCAQEAwSA0Mz92De30Mc0A/P9vzstLERoqGhnwBw0HKbcsQ50KdcYS
-cp/Rv2WRPlxpe7kYAzzhqFMInufv1FU2uoYozuNsF1Jf5lR+SolA+E5cPb7SeJhC
-Jwf3afPvyTGaOVuLO93d8zUGU74L/741Z/YQCE5FUCO8msc2iQmnc9M1EnVZa14d
-5T0/B8aZYcpVzUiC9EUwfTzrTghnNfkJzEiD9vnqDbsDsIE+H8o7+opMMsUU0ZzV
-PZqy9j8/f4943rL6V4UdK0JO7tEGL+XiFzNl2fCrcEZPqaeMQ3vBq7azukDTrtJe
-KY06RiLl+DCykweLx8laZjIHKlSZAFHPB+bvsQIDAQABAoIBAQCQUI1RYnHIdPFO
-qZ+8bvDQ+g8tR30ApjM8QZsBrDRyjg579bhhWVY2jSJdFFdqseTkvoDt9KZzgGQy
-Kj9MYOZru3xRbSfmiWsaLbiUFJJPPaIvpa+BVS2oSjX8BYn2pJbF9MRfclc5CsIS
-qMNl3XUbj8mx2hKdIpJ5EvLD1adKE4Se6peqSZAmEHONNCsrMrQ0GSQqV3viInJr
-tc3kp3HcPffSROWqmc6jAJ77Cs3ApgJavL5RGjx30Kd+dKVq4PXZ+IhWM8dOSput
-wcyxEosiP/W2g0rDgNW2mGOVOwa/D5SnOolicHifdV7idjwLAjkyYgvmBMNSsECj
-yKBkE0gxAoGBAN8iHMumyvriHuj9bSLZ1bcyYFz7jIwUxpHTT7VqN/j/Y1BoBIBy
-ZZLDGMa+ID/brpRHzJQAKSNtbFQ0S1HTSKcFud5OWE8Rp3pQJU+sdeO3pCMWAD1z
-Q4ggF07JjTSSnK+4fcXgEN9P2OdfXy7Rj3HFpSahql55Kp5udoUdzUVFAoGBAN2S
-krlcEuqsEYjqsCJw5pctIwPMvCM51JgirrdETwSGquMklSrobH0PHMlR67gsA/9I
-UGShT0LL4UWYpBn/4xLrLbua5aHIBfQQZp9K6jDZddWS+EFL5JkO/Up4/qM6fUbH
-CuweVv1gd6i2Ti35K60mgx6MqVunaB1k8Q9P3Pl9AoGALSVtxha9Qv21W1bLWh3R
-C/v5W1baHQ2nD6I9omsXYB3sLjydjI+Y1ZT70lptk/4S2JWeYuOVb0GYhYD/LFMf
-hAu4i642V+kuhaTpp7ExOR3S6/ZrngNQSp6TmLFXDKgNY9BkQkEPqN8y971oOMTV
-zSM8QxC6s9q4MM4Q1OYuvjECgYEAsO2V1AW95T45Ukd1FktpFlaomyQlJ0vKgyFO
-unEFV+vhETfpFTY7SzGCHxAXVh1vo62u5Gwayo/a9qQIhepa/IRnJGNv8luyxU1D
-ZPeBQjija0PMkPd1NvNNNuafDuBpoNbX1ev0MqeRZVsN2pAZXE5gbUiNA+8NqEsu
-Yre3EFECgYEA13rXE76zZgsefx+2spjqJDUWEmTDd1460xTtxCCgL9dy4rW5bgwo
-MvINphSUXOwSkn8Oja/IvpN28zSj9W/ci5wU52P5w4blkBmuj8UoCjP2FN1b1OBa
-86mkwVsCYUyyI2apuwrHP77yeb8jXZb+reqSns3hU+HyO/nUTVmnews=
------END RSA PRIVATE KEY-----
diff --git a/gcr/tests/files/client.pem b/gcr/tests/files/client.pem
deleted file mode 100644
index 04bc8ac7..00000000
--- a/gcr/tests/files/client.pem
+++ /dev/null
@@ -1,18 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIC3DCCAkUCAQkwDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
-T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLExVDZXJ0aWZpY2F0
-ZSBBdXRob3JpdHkxFzAVBgNVBAMTDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
-AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0xMTAxMTgwNjA0MTFaFw0yMTAxMTUwNjA0
-MTFaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
-UExFMQ8wDQYDVQQDEwZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEgNDM/dg3t
-9DHNAPz/b87LSxEaKhoZ8AcNBym3LEOdCnXGEnKf0b9lkT5caXu5GAM84ahTCJ7n
-79RVNrqGKM7jbBdSX+ZUfkqJQPhOXD2+0niYQicH92nz78kxmjlbizvd3fM1BlO+
-C/++NWf2EAhORVAjvJrHNokJp3PTNRJ1WWteHeU9PwfGmWHKVc1IgvRFMH08604I
-ZzX5CcxIg/b56g27A7CBPh/KO/qKTDLFFNGc1T2asvY/P3+PeN6y+leFHStCTu7R
-Bi/l4hczZdnwq3BGT6mnjEN7wau2s7pA067SXimNOkYi5fgwspMHi8fJWmYyBypU
-mQBRzwfm77ECAwEAATANBgkqhkiG9w0BAQUFAAOBgQA3LuElj2QB9wQvmIxk2Jmb
-IPP2/WS8dwPoCv/N3+6nTx8yRsrILf4QsnEbbsxoYO5jW4r9Kt8m8B/M7YgnBDE9
-zlm7JbXKZf2isSm5TyT627Ymzxrzs5d+7o2eS7SN1DB6PyvRh2ye7EMbyEYD8ULi
-itDUkYkssNCVivYwVvJoMg==
------END CERTIFICATE-----
diff --git a/gcr/tests/files/collabora-ca.cer b/gcr/tests/files/collabora-ca.cer
deleted file mode 100644
index 2842c696..00000000
--- a/gcr/tests/files/collabora-ca.cer
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/der-certificate-dsa.cer b/gcr/tests/files/der-certificate-dsa.cer
deleted file mode 100755
index 024f3c1b..00000000
--- a/gcr/tests/files/der-certificate-dsa.cer
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/der-certificate.crt b/gcr/tests/files/der-certificate.crt
deleted file mode 100644
index 56fa8491..00000000
--- a/gcr/tests/files/der-certificate.crt
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/der-dsa-1024.key b/gcr/tests/files/der-dsa-1024.key
deleted file mode 100644
index 61af5251..00000000
--- a/gcr/tests/files/der-dsa-1024.key
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/der-key-PBE-MD5-DES.p8 b/gcr/tests/files/der-key-PBE-MD5-DES.p8
deleted file mode 100644
index 71b7d61b..00000000
--- a/gcr/tests/files/der-key-PBE-MD5-DES.p8
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/der-key-PBE-SHA1-3DES.p8 b/gcr/tests/files/der-key-PBE-SHA1-3DES.p8
deleted file mode 100644
index 1c37fe10..00000000
--- a/gcr/tests/files/der-key-PBE-SHA1-3DES.p8
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/der-key-PBE-SHA1-DES.p8 b/gcr/tests/files/der-key-PBE-SHA1-DES.p8
deleted file mode 100644
index 99896139..00000000
--- a/gcr/tests/files/der-key-PBE-SHA1-DES.p8
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/der-key-PBE-SHA1-RC2-40.p8 b/gcr/tests/files/der-key-PBE-SHA1-RC2-40.p8
deleted file mode 100644
index 820926cc..00000000
--- a/gcr/tests/files/der-key-PBE-SHA1-RC2-40.p8
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/der-key-PBE-SHA1-RC4-128.p8 b/gcr/tests/files/der-key-PBE-SHA1-RC4-128.p8
deleted file mode 100644
index 2888450c..00000000
--- a/gcr/tests/files/der-key-PBE-SHA1-RC4-128.p8
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/der-key-dsa.p8 b/gcr/tests/files/der-key-dsa.p8
deleted file mode 100644
index 8b61684e..00000000
--- a/gcr/tests/files/der-key-dsa.p8
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/der-key-encrypted-pkcs5.p8 b/gcr/tests/files/der-key-encrypted-pkcs5.p8
deleted file mode 100644
index 68c6b4a5..00000000
--- a/gcr/tests/files/der-key-encrypted-pkcs5.p8
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/der-key-v2-des.p8 b/gcr/tests/files/der-key-v2-des.p8
deleted file mode 100644
index 4cd80348..00000000
--- a/gcr/tests/files/der-key-v2-des.p8
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/der-key-v2-des3.p8 b/gcr/tests/files/der-key-v2-des3.p8
deleted file mode 100644
index 9e2999c8..00000000
--- a/gcr/tests/files/der-key-v2-des3.p8
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/der-key.p8 b/gcr/tests/files/der-key.p8
deleted file mode 100644
index 16505632..00000000
--- a/gcr/tests/files/der-key.p8
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/der-rsa-1024.key b/gcr/tests/files/der-rsa-1024.key
deleted file mode 100644
index 878fda5b..00000000
--- a/gcr/tests/files/der-rsa-1024.key
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/dhansak-collabora.cer b/gcr/tests/files/dhansak-collabora.cer
deleted file mode 100644
index c411e7d6..00000000
--- a/gcr/tests/files/dhansak-collabora.cer
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/email.p12 b/gcr/tests/files/email.p12
deleted file mode 100644
index d45d0f8d..00000000
--- a/gcr/tests/files/email.p12
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/generic-dsa.crt b/gcr/tests/files/generic-dsa.crt
deleted file mode 100644
index 5658a20c..00000000
--- a/gcr/tests/files/generic-dsa.crt
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/generic-dsa.key b/gcr/tests/files/generic-dsa.key
deleted file mode 100644
index cdd7ca54..00000000
--- a/gcr/tests/files/generic-dsa.key
+++ /dev/null
@@ -1,12 +0,0 @@
------BEGIN DSA PRIVATE KEY-----
-MIIBuwIBAAKBgQCdLeaVVA8HNMKFr0UUQe/bj6mJvO+I67hxn/KzCWnMjw9h6vtu
-TI06OI4XXmEHCVdUxykTkp1NSaTanoV8seEbJyyUgFQFBVaFOE8xDHp5RZghAKpd
-XFP2Yn8wj8y2VYSOveFKXj9ySj9A38nbG8mF0imBXNg/nL/EPCynR7JBVwIVAM1D
-KUetENlaaH+QeAO3IwcENMSZAoGBAJFujxH2WB5bU+sjjePwBTRev6qtYzPAXPd+
-srC747afIasS0Q/+pE0Q40bjdGNipf3fs5Cq8s0tYTYeNzAqUej1X5YI7TP+uJyR
-L7QdD06pg1BbdaAzSxnnGjf2b25IvPRdxgy1XetgOmT+qA8nXeLROgTLNOQqxG83
-ymuMi/w7AoGAfXLlo8mCQgAGy7y32k/2Onv8LXAL5hcQUEM7WQhHkU2QaXgh7sqm
-Ol4vvM97YZi5JIlR0wjP7+dZiJJnYSY5PMaGpAIk7hLGsPbJW6TnozAXwCPli1Xu
-ocubvrDWjZ/zSesnO3siGPCIuP97IqVbBKGQG/vJUwFL0ewb/+FUa78CFHgQdcw2
-4vVlnuMrqdmrfXMvzbrw
------END DSA PRIVATE KEY-----
diff --git a/gcr/tests/files/generic-dsa.pem b/gcr/tests/files/generic-dsa.pem
deleted file mode 100644
index 0d81ef21..00000000
--- a/gcr/tests/files/generic-dsa.pem
+++ /dev/null
@@ -1,22 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDkjCCAvugAwIBAgIBBDANBgkqhkiG9w0BAQUFADCBhjETMBEGCgmSJomT8ixk
-ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsTFUNlcnRp
-ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTA3MTIyMDE4NDc0N1oXDTA4MDEx
-OTE4NDc0N1owbDETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
-B0VYQU1QTEUxFDASBgNVBAMTC0dlbmVyaWMgRFNBMSYwJAYJKoZIhvcNAQkBFhdn
-ZW5lcmljLWRzYUBleGFtcGxlLmNvbTCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQCd
-LeaVVA8HNMKFr0UUQe/bj6mJvO+I67hxn/KzCWnMjw9h6vtuTI06OI4XXmEHCVdU
-xykTkp1NSaTanoV8seEbJyyUgFQFBVaFOE8xDHp5RZghAKpdXFP2Yn8wj8y2VYSO
-veFKXj9ySj9A38nbG8mF0imBXNg/nL/EPCynR7JBVwIVAM1DKUetENlaaH+QeAO3
-IwcENMSZAoGBAJFujxH2WB5bU+sjjePwBTRev6qtYzPAXPd+srC747afIasS0Q/+
-pE0Q40bjdGNipf3fs5Cq8s0tYTYeNzAqUej1X5YI7TP+uJyRL7QdD06pg1BbdaAz
-SxnnGjf2b25IvPRdxgy1XetgOmT+qA8nXeLROgTLNOQqxG83ymuMi/w7A4GEAAKB
-gH1y5aPJgkIABsu8t9pP9jp7/C1wC+YXEFBDO1kIR5FNkGl4Ie7KpjpeL7zPe2GY
-uSSJUdMIz+/nWYiSZ2EmOTzGhqQCJO4SxrD2yVuk56MwF8Aj5YtV7qHLm76w1o2f
-80nrJzt7IhjwiLj/eyKlWwShkBv7yVMBS9HsG//hVGu/oxAwDjAMBgNVHRMBAf8E
-AjAAMA0GCSqGSIb3DQEBBQUAA4GBAPRyHCHjWKKVHZ7wSJQOS/Ve8e4DWFiuP9J8
-X4/sXEg59yWjScy9EovZVj5iELZI6OqUArvwVV6w6tewK0BAed4UGp+TyTHjPuJG
-WGxBm2AhtZUlYmpHQ+gA+E9weeFNQWP1QOATmFQ+r18eNH0rUONnR3G0XUYQTgd1
-LgEYxM4t
------END CERTIFICATE-----
diff --git a/gcr/tests/files/gnupg-homedir/pubring.gpg b/gcr/tests/files/gnupg-homedir/pubring.gpg
deleted file mode 100644
index 10b1372d..00000000
--- a/gcr/tests/files/gnupg-homedir/pubring.gpg
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/gnupg-homedir/secring.gpg b/gcr/tests/files/gnupg-homedir/secring.gpg
deleted file mode 100644
index 4a21e26c..00000000
--- a/gcr/tests/files/gnupg-homedir/secring.gpg
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/gnupg-homedir/trustdb.gpg b/gcr/tests/files/gnupg-homedir/trustdb.gpg
deleted file mode 100644
index 3824098b..00000000
--- a/gcr/tests/files/gnupg-homedir/trustdb.gpg
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/gnupg-mock/mock-arguments-environ b/gcr/tests/files/gnupg-mock/mock-arguments-environ
deleted file mode 100755
index 5282a2f0..00000000
--- a/gcr/tests/files/gnupg-mock/mock-arguments-environ
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-# This script is used with test-gnupg-process
-set -euf
-
-while getopts '1:2:' arg; do
- case $arg in
- 1)
- echo $OPTARG
- ;;
- 2)
- echo $OPTARG
- ;;
- *)
- echo "invalid argument: $arg"
- exit 2
- ;;
- esac
-done
-
-echo -n $ENVIRON1 >&2
-echo $ENVIRON2 >&2
diff --git a/gcr/tests/files/gnupg-mock/mock-echo b/gcr/tests/files/gnupg-mock/mock-echo
deleted file mode 100755
index 7c4e251a..00000000
--- a/gcr/tests/files/gnupg-mock/mock-echo
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-# This script is used with test-gnupg-process
-set -euf
-
-while read line; do
- echo "$line"
-done
diff --git a/gcr/tests/files/gnupg-mock/mock-fail-exit b/gcr/tests/files/gnupg-mock/mock-fail-exit
deleted file mode 100755
index 4d5634bb..00000000
--- a/gcr/tests/files/gnupg-mock/mock-fail-exit
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-# This script is used with test-gnupg-process
-set -euf
-
-exit $1
diff --git a/gcr/tests/files/gnupg-mock/mock-fail-signal b/gcr/tests/files/gnupg-mock/mock-fail-signal
deleted file mode 100755
index decf8a4b..00000000
--- a/gcr/tests/files/gnupg-mock/mock-fail-signal
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-# This script is used with test-gnupg-process
-set -euf
-
-echo $1 > /tmp/xxx
-kill -s $1 $$
-sleep 5
diff --git a/gcr/tests/files/gnupg-mock/mock-simple-error b/gcr/tests/files/gnupg-mock/mock-simple-error
deleted file mode 100755
index 30bb6a97..00000000
--- a/gcr/tests/files/gnupg-mock/mock-simple-error
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-# This script is used with test-gnupg-process
-set -euf
-
-echo -n "line 1: " >&2
-echo "more line 1" >&2
-echo "line 2" >&2
-echo "line 3" >&2 \ No newline at end of file
diff --git a/gcr/tests/files/gnupg-mock/mock-simple-output b/gcr/tests/files/gnupg-mock/mock-simple-output
deleted file mode 100755
index 0d145fcc..00000000
--- a/gcr/tests/files/gnupg-mock/mock-simple-output
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-# This script is used with test-gnupg-process
-set -euf
-
-echo -n "simple-"
-echo -n "outp"
-echo "ut" \ No newline at end of file
diff --git a/gcr/tests/files/gnupg-mock/mock-status-and-attribute b/gcr/tests/files/gnupg-mock/mock-status-and-attribute
deleted file mode 100755
index abf8607a..00000000
--- a/gcr/tests/files/gnupg-mock/mock-status-and-attribute
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash
-
-# This script is used with test-gnupg-process
-# Needs to be run with /bin/bash in order to handle two digit
-# file descriptor redirects
-
-set -euf
-
-SFD=
-AFD=
-
-# Not real 'long' option parsing, but good enough for this
-while [ $# -gt 1 ]; do
- if [ "$1" = --status-fd ]; then
- SFD=$2
- shift
- elif [ "$1" = --attribute-fd ]; then
- AFD=$2
- shift
- fi
- shift
-done
-
-# No FD passed :(
-if [ -z "$AFD" ]; then
- exit 22
-fi
-if [ -z "$SFD" ]; then
- exit 23
-fi
-
-echo -n "1lc923g4laoeurc23rc2" >&$AFD
-echo "[GNUPG:] SCHEMA one two three four " >&$SFD
-echo -n "41lcg2r23c4gr3" >&$AFD
diff --git a/gcr/tests/files/gnupg-mock/mock-status-and-output b/gcr/tests/files/gnupg-mock/mock-status-and-output
deleted file mode 100755
index 0fd544b4..00000000
--- a/gcr/tests/files/gnupg-mock/mock-status-and-output
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-
-# This script is used with test-gnupg-process
-set -euf
-
-FD=
-
-# Not real 'long' option parsing, but good enough for this
-while [ $# -gt 1 ]; do
- if [ "$1" = --status-fd ]; then
- FD=$2
- shift
- fi
- shift
-done
-
-# No FD passed :(
-if [ -z "$FD" ]; then
- exit 22
-fi
-
-echo "Here's some output"
-echo "[GNUPG:] SCHEMA one two three four " >&$FD
-echo "More output"
diff --git a/gcr/tests/files/gnupg-mock/mock-with-homedir b/gcr/tests/files/gnupg-mock/mock-with-homedir
deleted file mode 100755
index c537e03a..00000000
--- a/gcr/tests/files/gnupg-mock/mock-with-homedir
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-# This script is used with test-gnupg-process
-set -euf
-
-HOMEDIR=
-
-# Not real 'long' option parsing, but good enough for this
-while [ $# -gt 1 ]; do
- if [ "$1" = --homedir ]; then
- HOMEDIR=$2
- shift
- fi
- shift
-done
-
-# No homedir passed :(
-if [ -z "$HOMEDIR" ]; then
- exit 22
-fi
-
-echo "DIR: $HOMEDIR"
diff --git a/gcr/tests/files/openssh_keys.pub b/gcr/tests/files/openssh_keys.pub
deleted file mode 100644
index 00d294bc..00000000
--- a/gcr/tests/files/openssh_keys.pub
+++ /dev/null
@@ -1,2 +0,0 @@
-ssh-dss AAAAB3NzaC1kc3MAAACBAL4z+ad0ZJYzMOQuGp00UJ+AijKhrPVUEYLcxBmFQonb/KIlLSWJua4Rl9DB4tDj30Y9c/oApqC4n+FIYlUZMSnxmpvcLF6aeXOiHHPvm0EDYjjyVubyYQWI7CROrrzSc+x++ha3TuJEvF3PlKlZmTKKVYEkZNjwFqYysGyPxPalAAAAFQDtDSEF9Gvnv5fQtSbbsp7j78uVBwAAAIAtNpAg/Mbd/E2241enedB9AxAbJWZ5QYnoPe6/zx5dOmU7+qz8mG6tgvF8F7IgXPabuAKslzTDGS3zgaEhWicDS3CIYik2UR8hXdxfovIEqZKZe7u02FCEoXYCEiFUAdzDGzjI7PswgtEJWWNqKeNis3HmDDha9lMkqz/3fLZGXwAAAIEAiaRPYKZDMoJG+aVZ5A3R/m2gl+mYE2MsjPKXuBKcrZ6ItA9BMe4G/An0/+E3A+DuoGxdeNNMF8U9Dy2N8Sch/Ngtg2E/FBo5geljWobJXd1jxmPtF2WAliYJXDdIt6RBVPGL9H/KSjDmBMsVd42wxVJywawzypklVZjSUuWuBMI= dsa-key@example.com
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCs8z2y0cCPYRAPkq8tAt6FC/kdfnR/p8B2ZoY0oiLNt7kQEwJfexgwLqTxWYd2fSDUSSDPrsqAxZAwLLS/eF04kXiJO2VfqAWFpTLNToERHpFF1yZQe26ELTlNNfna7LqfCRvpNDwu6AqndsT3eFt7DWvBDXbbEiTLW21Z2OFAAH/J2iCFn4c0a8Myf7IaMYcy5GG3mpk39kEO4aNV/67U7kfooek24ObwD0vlXzlsi5VZIUFOIUi0UdkNEMCtUWpfkZ1STUlmwp9HVM7xb7/9PESQKDnZdxpB09S9cIjdpDecpDlMDDEbEUECM1PIas3ndhB7gAN1i2JsPHTcXZ1 rsa-key@example.com
diff --git a/gcr/tests/files/pem-dsa-1024.key b/gcr/tests/files/pem-dsa-1024.key
deleted file mode 100644
index ccb1e7b9..00000000
--- a/gcr/tests/files/pem-dsa-1024.key
+++ /dev/null
@@ -1,12 +0,0 @@
------BEGIN DSA PRIVATE KEY-----
-MIIBuwIBAAKBgQCQ7Atgc1g5x1Tq+PZLsD/DU5jWl3K/rlQAed6i06Yfr/snYwoD
-igGj0M1ioQdFpXSifstGL08IhbecYbvpVKYKKWaK1Uu6XAenL9ixEFJJZwsznfLF
-nmSkcGTvzwtyNsXHLNVc6zKRdDC+yaAD1OSE+6qE15Vxs41rWslbtz4/ewIVAPoh
-ShOFwhv+uq2rJAokMMYH1WJxAoGALeBXUfXa7pfz1DxUWVo+lKCAco8MZsmK6+1X
-YvarFVgC2DWerR3h7DakWfvu6kjlm55qjLT1KVk2s8yIGl2VfHM5F14s/+DzDTcR
-5DDbZkjC60dKoQpKMpdFBTH/LHxpUSIMnURra2sPACYuHr6zzIYUdqpRjMVVyav5
-5fOQI/wCgYBUc0RR23nU7t8LvOvUO7bLt7hYRgO5VwgAdd0xjrWwJm1LINxe/zdr
-38TqKYOx9/AqOe1MYZ7WhxJyn/87fGlq3RttdI9WpLS+xcQ4XlKEI6O4iuZebVUA
-+Xg556SGJVmCGJw7T6jZQzjHbw5cr8mjCh7XKLufIJHVlOMlCgnqAAIVAIdvhPcJ
-1REI37DL+h8cVpwJxBPs
------END DSA PRIVATE KEY-----
diff --git a/gcr/tests/files/pem-pkcs8.key b/gcr/tests/files/pem-pkcs8.key
deleted file mode 100644
index 1f0d5edb..00000000
--- a/gcr/tests/files/pem-pkcs8.key
+++ /dev/null
@@ -1,17 +0,0 @@
------BEGIN ENCRYPTED PRIVATE KEY-----
-MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIf4lXzcHXqAICAggA
-MBQGCCqGSIb3DQMHBAhV8iKHmoUJDQSCAoDK4fY/dfIzOof1QlYV8mhr0OmhaIAe
-aaDz4rER6+OGwq7WQ32ErmHBiJRI8oQRrxy4oHTXx8TR+JxQT1io9V9jjXZCS8HT
-Ek0J69pgjPdIUnlZYV1GdJUJq7tWxTKJJFr1tsB0XzgugQLYcui4ikrZ6rHE9PVh
-SXFIEbns42xHIvtQ/j3c6ScS63UNpSsKe5pWRNgHUHpjSGPAaZogOdMfStmj3tdN
-nIH3mjIM8uisN9nyPV42aziZi5mO9F5JHlNp1H5pDAUWOKkKoXw27MgXnxvSkLAX
-HSgpPuK5ejqXu4nkciwHnr4eULV0biwqpmYEWxC4aNuog/t3DoL1gkC74J07jjUU
-3gZwxjKsAWfIKnNURsHlBAcYClug5ZWs9ru/4sc27bNV9qRKbHcgGD+nzfTXxZZ2
-BG5eSBVpYT2Jzdkpw8puSHwNW5mQcuY4E+ZEERFsW8q1raPSgYVk5rM8TiVdTD5x
-UwQG7ADidVSVTR5KGV8wmonbuDu9b61GgU7VBslEK9Lsd92FO0/u09FF6DgCcICD
-yRJ0nM0o9S9FI1lqKoxAdgWyFwrKkBVZ05IDHw+jS6r7D/2irYetPJmVO/dvi87r
-aaLvyvzU3nz4LiWHmSl2AgDanjDcxtjGoWR2cc+J0v3r/+VEOctrc5EuAnlhl9Yj
-kFcfZDfqthCNb49qNGDgQMGrKTt+Dvrka/ZZxXBN3v96L3K4O32j9c97sZ8LEFaI
-RHl91Mx2okjrT9q2+Gef2UR9XEzuFEBRBqxktltlrIQIncn6Xx/TjEvIhf2Dgo4W
-isaAwTazyZrzATTWR1JS6Hdm7Eb/nCEHAFmVUbQm0d5BDfKmnRsNaaZK
------END ENCRYPTED PRIVATE KEY-----
diff --git a/gcr/tests/files/pem-rsa-enc.key b/gcr/tests/files/pem-rsa-enc.key
deleted file mode 100644
index 65439fe6..00000000
--- a/gcr/tests/files/pem-rsa-enc.key
+++ /dev/null
@@ -1,18 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-Proc-Type: 4,ENCRYPTED
-DEK-Info: DES-EDE3-CBC,24522D4CE5F5CD7B
-
-2H/8j0HYUya7LWEUxpgjp/LVcCX7yZB7SoREdoJdcqJEBUMWVxU/2OfVB8EZupmy
-7YHcnn5v1JwwtmAXAtqM9JGlvNWaRr1m4zDrhJn1fY3tu8YGtMR49IOZmOUBK+X+
-IxWAwaFDqLntuGZZnAmRJtgFVYVABEs5yM9zgoCGDaU4WMK3caD7Jnw8jH5m0nqQ
-XiQ1y1dHxFJmAgG0b5h2z7zjQTmmXd3IhXqSqsE/9ryruCCYa0Z7aAN5oAmO89I9
-gOyy3J4h76mTNFfF5btV4Jllwd4LkgGOmm69UxAyUTGzwYJ5gxgB3xFzGBwpVlcu
-72PrQCrjZqZ6rj6cTPGUYzcyMtEw3Xd6mFhApqJpVRZwNWUAMMJwHl2oWwKcIxfV
-y+OftRX6kc+cunrxCkl9aKuHDoJPEq+/Uh+AEXqir+942Vull0WPyuWUjaPKR1xJ
-poYsNfHRWq+klKCggQQL6jwuVbDLhbaXfgaNBQO1XMracgfmnO1PQPw8JSQ5iOkm
-Ybt2oHAEnrEWxZGn1PfRq6Z8HAbBlQpfmG7SMJZdQjlndKA6GR+tN5krKfpj6uak
-0eklm0Nb0YcDzJ3qqHXxIimK3Kh/WRZ1hVTnX4mS9u3HNQMo5Ov6z8OQN+Q45ffi
-ZDFkVwUTEJ+iwmCG7XnxX0v8Bv5LZmAnPu95KQTp4Ds0AZ6Sp+RqxvhnCO25cgWj
-+N5jHGzsDk9/Jw7rAHz8pnl3sziNBWdAk5ASPA28HCQQo5peWnWajM3Pk98+/wHY
-blTh7gw77gTake6hpiegnhNUXwGm6BXEqmyu7mPW0z5XFRb9W7bpog==
------END RSA PRIVATE KEY-----
diff --git a/gcr/tests/files/personal.p12 b/gcr/tests/files/personal.p12
deleted file mode 100644
index 7ae3d05d..00000000
--- a/gcr/tests/files/personal.p12
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/pubring.gpg b/gcr/tests/files/pubring.gpg
deleted file mode 100644
index 10b1372d..00000000
--- a/gcr/tests/files/pubring.gpg
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/secring.gpg b/gcr/tests/files/secring.gpg
deleted file mode 100644
index 4a21e26c..00000000
--- a/gcr/tests/files/secring.gpg
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/test-x509-swiss.p7b b/gcr/tests/files/test-x509-swiss.p7b
deleted file mode 100755
index d45b9e0e..00000000
--- a/gcr/tests/files/test-x509-swiss.p7b
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/unclient.p12 b/gcr/tests/files/unclient.p12
deleted file mode 100644
index 321b4475..00000000
--- a/gcr/tests/files/unclient.p12
+++ /dev/null
Binary files differ
diff --git a/gcr/tests/files/werner-koch.asc b/gcr/tests/files/werner-koch.asc
deleted file mode 100644
index eb70c972..00000000
--- a/gcr/tests/files/werner-koch.asc
+++ /dev/null
@@ -1,71 +0,0 @@
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.11 (GNU/Linux)
-
-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
-/Yn6BAmPF+6YxQo2W98rzq0THS5wKJjXmHw=
-=F0ww
------END PGP PUBLIC KEY BLOCK-----
diff --git a/gcr/tests/frob-certificate.c b/gcr/tests/frob-certificate.c
deleted file mode 100644
index a84dbc7f..00000000
--- a/gcr/tests/frob-certificate.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr/gcr.h"
-
-#include <gtk/gtk.h>
-
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-
-static void
-on_parser_parsed (GcrParser *parser, gpointer user_data)
-{
- GcrCertificateWidget *details;
- GtkDialog *dialog = GTK_DIALOG (user_data);
-
- details = g_object_new (GCR_TYPE_CERTIFICATE_WIDGET,
- "attributes", gcr_parser_get_parsed_attributes (parser),
- NULL);
-
- gtk_widget_show (GTK_WIDGET (details));
- gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (dialog)), GTK_WIDGET (details));
-
- gtk_container_set_border_width (GTK_CONTAINER (dialog), 20);
-}
-
-static void
-test_certificate (const gchar *path)
-{
- GcrParser *parser;
- GError *err = NULL;
- guchar *data;
- gsize n_data;
- GtkWidget *dialog;
-
- if (!g_file_get_contents (path, (gchar**)&data, &n_data, NULL))
- g_error ("couldn't read file: %s", path);
-
- dialog = gtk_dialog_new ();
- g_object_ref_sink (dialog);
-
- parser = gcr_parser_new ();
- g_signal_connect (parser, "parsed", G_CALLBACK (on_parser_parsed), dialog);
- if (!gcr_parser_parse_data (parser, data, n_data, &err))
- g_error ("couldn't parse data: %s", err->message);
-
- g_object_unref (parser);
- g_free (data);
-
- gtk_widget_show (dialog);
- g_signal_connect (dialog, "delete-event", G_CALLBACK (gtk_main_quit), NULL);
- gtk_main ();
-
- g_object_unref (dialog);
-}
-
-int
-main(int argc, char *argv[])
-{
- gtk_init (&argc, &argv);
- g_set_prgname ("frob-certificate");
-
- if (argc > 1)
- test_certificate (argv[1]);
- else
- test_certificate (SRCDIR "/files/der-certificate.crt");
-
- return 0;
-}
diff --git a/gcr/tests/frob-combo-selector.c b/gcr/tests/frob-combo-selector.c
deleted file mode 100644
index fd9fc868..00000000
--- a/gcr/tests/frob-combo-selector.c
+++ /dev/null
@@ -1,95 +0,0 @@
-
-#include "config.h"
-
-#include "gcr/gcr.h"
-
-#include <gtk/gtk.h>
-
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-
-static void
-on_parser_parsed (GcrParser *parser, gpointer user_data)
-{
- GcrSimpleCollection *collection = user_data;
- GcrRenderer *renderer;
-
- renderer = gcr_renderer_create (gcr_parser_get_parsed_label (parser),
- gcr_parser_get_parsed_attributes (parser));
-
- if (renderer) {
- gcr_simple_collection_add (collection, G_OBJECT (renderer));
- g_object_unref (renderer);
- }
-}
-
-static void
-add_to_selector (GcrParser *parser, const gchar *path)
-{
- GError *err = NULL;
- guchar *data;
- gsize n_data;
-
- if (!g_file_get_contents (path, (gchar**)&data, &n_data, NULL))
- g_error ("couldn't read file: %s", path);
-
- if (!gcr_parser_parse_data (parser, data, n_data, &err))
- g_error ("couldn't parse data: %s", err->message);
-
- g_free (data);
-}
-
-int
-main (int argc, char *argv[])
-{
- GcrCollection *collection;
- GcrComboSelector *selector;
- GtkDialog *dialog;
- GcrParser *parser;
- GObject *selected;
- int i;
-
- gtk_init (&argc, &argv);
-
- dialog = GTK_DIALOG (gtk_dialog_new ());
- g_object_ref_sink (dialog);
-
- collection = gcr_simple_collection_new ();
- selector = gcr_combo_selector_new (collection);
-
- gtk_widget_show (GTK_WIDGET (selector));
- gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (dialog)), GTK_WIDGET (selector));
-
- gtk_window_set_default_size (GTK_WINDOW (dialog), 550, 400);
- gtk_container_set_border_width (GTK_CONTAINER (dialog), 20);
-
- parser = gcr_parser_new ();
- g_signal_connect (parser, "parsed", G_CALLBACK (on_parser_parsed), collection);
-
- if (argc == 1) {
- add_to_selector (parser, "files/ca-certificates.crt");
- } else {
- for (i = 1; i < argc; ++i)
- add_to_selector (parser, argv[i]);
- }
-
- g_object_unref (parser);
- g_object_unref (collection);
-
- gtk_dialog_run (dialog);
-
- selected = gcr_combo_selector_get_selected (selector);
- if (selected == NULL) {
- g_print ("nothing selected\n");
- } else {
- gchar *label;
- g_object_get (selected, "label", &label, NULL);
- g_print ("selected: %s\n", label);
- }
-
- gtk_widget_destroy (GTK_WIDGET (dialog));
- g_object_unref (dialog);
-
- return 0;
-}
diff --git a/gcr/tests/frob-gnupg-selector.c b/gcr/tests/frob-gnupg-selector.c
deleted file mode 100644
index 444483ee..00000000
--- a/gcr/tests/frob-gnupg-selector.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr/gcr.h"
-#include "gcr/gcr-gnupg-collection.h"
-#include "gcr/gcr-gnupg-key.h"
-#include "gcr/gcr-list-selector-private.h"
-#include "gcr/gcr-live-search.h"
-
-#include <gtk/gtk.h>
-
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-
-static void
-on_collection_loaded (GObject *source, GAsyncResult *result, gpointer unused)
-{
- GError *error = NULL;
-
- _gcr_gnupg_collection_load_finish (GCR_GNUPG_COLLECTION (source), result, &error);
- if (error) {
- g_warning ("collection load failed: %s", error->message);
- g_clear_error (&error);
- }
-}
-
-int
-main (int argc, char *argv[])
-{
- GcrCollection *collection;
- GcrListSelector *selector;
- GtkWidget *scroll;
- GtkDialog *dialog;
- GtkWidget *search;
- GtkBox *box;
-
- gtk_init (&argc, &argv);
-
- dialog = GTK_DIALOG (gtk_dialog_new ());
- g_object_ref_sink (dialog);
-
- collection = _gcr_gnupg_collection_new (NULL);
- selector = gcr_list_selector_new (collection);
- search = _gcr_live_search_new (GTK_WIDGET (selector));
- _gcr_list_selector_set_live_search (selector, GCR_LIVE_SEARCH (search));
-
- scroll = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scroll), GTK_SHADOW_ETCHED_IN);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_container_add (GTK_CONTAINER (scroll), GTK_WIDGET (selector));
-
- box = GTK_BOX (gtk_dialog_get_content_area (dialog));
- gtk_box_pack_start (box, GTK_WIDGET (scroll), TRUE, TRUE, 0);
- gtk_box_pack_end (box, search, FALSE, TRUE, 0);
-
- gtk_widget_show (GTK_WIDGET (selector));
- gtk_widget_show (scroll);
-
- _gcr_gnupg_collection_load_async (GCR_GNUPG_COLLECTION (collection), NULL,
- on_collection_loaded, NULL);
-
- gtk_window_set_default_size (GTK_WINDOW (dialog), 550, 400);
- gtk_container_set_border_width (GTK_CONTAINER (dialog), 20);
-
- g_object_unref (collection);
-
- gtk_dialog_run (dialog);
- gtk_widget_destroy (GTK_WIDGET (dialog));
- g_object_unref (dialog);
-
- return 0;
-}
diff --git a/gcr/tests/frob-key.c b/gcr/tests/frob-key.c
deleted file mode 100644
index 3eedb493..00000000
--- a/gcr/tests/frob-key.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr/gcr.h"
-
-#include <gtk/gtk.h>
-
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-
-static void
-on_parser_parsed (GcrParser *parser, gpointer unused)
-{
- GcrKeyWidget *details;
- GtkDialog *dialog;
-
- dialog = GTK_DIALOG (gtk_dialog_new ());
- g_object_ref_sink (dialog);
-
- details = gcr_key_widget_new (gcr_parser_get_parsed_attributes (parser));
- gtk_widget_show (GTK_WIDGET (details));
- gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (dialog)), GTK_WIDGET (details));
-
- gtk_window_set_default_size (GTK_WINDOW (dialog), 550, 400);
- gtk_container_set_border_width (GTK_CONTAINER (dialog), 20);
- gtk_dialog_run (dialog);
-
- g_object_unref (dialog);
- g_object_unref (details);
-}
-
-static void
-test_key (const gchar *path)
-{
- GcrParser *parser;
- GError *err = NULL;
- guchar *data;
- gsize n_data;
-
- if (!g_file_get_contents (path, (gchar**)&data, &n_data, NULL))
- g_error ("couldn't read file: %s", path);
-
- parser = gcr_parser_new ();
- g_signal_connect (parser, "parsed", G_CALLBACK (on_parser_parsed), NULL);
- if (!gcr_parser_parse_data (parser, data, n_data, &err))
- g_error ("couldn't parse data: %s", err->message);
-
- g_object_unref (parser);
- g_free (data);
-}
-
-int
-main(int argc, char *argv[])
-{
- gtk_init (&argc, &argv);
- g_set_prgname ("frob-key");
-
- if (argc > 1)
- test_key (argv[1]);
- else
- test_key (SRCDIR "/files/pem-dsa-1024.key");
-
- return 0;
-}
diff --git a/gcr/tests/frob-openpgp.c b/gcr/tests/frob-openpgp.c
deleted file mode 100644
index b83305af..00000000
--- a/gcr/tests/frob-openpgp.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr/gcr.h"
-#include "gcr/gcr-openpgp.h"
-#include "gcr/gcr-record.h"
-
-#include "egg/egg-armor.h"
-
-static void
-on_packet_print_records (GPtrArray *records,
- const guchar *packet,
- gsize n_packet,
- gpointer user_data)
-{
- gchar *string;
- guint i;
-
- for (i = 0; i < records->len; i++) {
- string = _gcr_record_format (records->pdata[i]);
- g_print ("%s\n", string);
- g_free (string);
- }
-}
-
-static gboolean
-parse_binary (gconstpointer contents,
- gsize length)
-{
- guint packets;
-
- packets = _gcr_openpgp_parse (contents, length,
- GCR_OPENPGP_PARSE_KEYS |
- GCR_OPENPGP_PARSE_ATTRIBUTES,
- on_packet_print_records, NULL);
-
- return (packets > 0);
-}
-
-static void
-on_armor_parsed (GQuark type,
- const guchar *data,
- gsize n_data,
- const gchar *outer,
- gsize n_outer,
- GHashTable *headers,
- gpointer user_data)
-{
- const gchar *value;
- gboolean *result = user_data;
-
- value = g_hash_table_lookup (headers, "Version");
- g_assert_cmpstr (value, ==, "GnuPG v1.4.11 (GNU/Linux)");
-
- *result = parse_binary (data, n_data);
-}
-
-static gboolean
-parse_armor_or_binary (gconstpointer contents,
- gsize length)
-{
- gboolean result;
- guint parts;
-
- parts = egg_armor_parse (contents, length, on_armor_parsed, &result);
- if (parts == 0)
- result = parse_binary (contents, length);
- return result;
-}
-
-int
-main(int argc, char *argv[])
-{
- GError *error = NULL;
- gchar *contents;
- gsize length;
- int ret;
-
- g_set_prgname ("frob-openpgp");
-
- if (argc != 2) {
- g_printerr ("usage: frob-openpgp filename\n");
- return 2;
- }
-
- if (!g_file_get_contents (argv[1], &contents, &length, &error)) {
- g_printerr ("frob-openpgp: couldn't read file: %s: %s", argv[1], error->message);
- g_error_free (error);
- return 1;
- }
-
- ret = 0;
- if (!parse_armor_or_binary (contents, length)) {
- g_printerr ("frob-openpgp: no openpgp data found in data");
- ret = 1;
- }
-
- g_free (contents);
- return ret;
-}
diff --git a/gcr/tests/frob-parser.c b/gcr/tests/frob-parser.c
deleted file mode 100644
index 2459a10a..00000000
--- a/gcr/tests/frob-parser.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr/gcr-base.h"
-
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-
-static gboolean
-dump_certificate (GckAttributes *attrs, const gchar *filename)
-{
- GckAttribute *attr;
- GcrCertificate *cert;
- gchar *subject;
- gulong klass;
-
- if (!gck_attributes_find_ulong (attrs, CKA_CLASS, &klass) ||
- klass != CKO_CERTIFICATE)
- return FALSE;
-
- attr = gck_attributes_find (attrs, CKA_VALUE);
- if (!attr)
- return FALSE;
-
- cert = gcr_simple_certificate_new_static (attr->value, attr->length);
- subject = gcr_certificate_get_subject_dn (cert);
- g_print ("%s: parsed certificate: %s\n", filename, subject);
- g_free (subject);
- g_object_unref (cert);
-
- return TRUE;
-}
-
-static void
-on_parser_parsed (GcrParser *parser, gpointer user_data)
-{
- GckAttributes *attrs;
- const gchar **pointer_filename = (const gchar**)user_data;
-
- attrs = gcr_parser_get_parsed_attributes (parser);
- g_return_if_fail (attrs);
-
- if (!dump_certificate (attrs, *pointer_filename))
- g_print ("%s: parsed %s\n", *pointer_filename,
- gcr_parser_get_parsed_description (parser));
-}
-
-int
-main(int argc, char *argv[])
-{
- GcrParser *parser;
- GError *error = NULL;
- gchar *contents;
- gsize len;
- GDir *dir;
- const gchar *filename;
- gchar *path;
-
- g_type_init ();
- g_set_prgname ("frob-parser");
-
- if (argc != 2) {
- g_printerr ("usage: frob-parser directory\n");
- return 2;
- }
-
- dir = g_dir_open (argv[1], 0, &error);
- if (!dir) {
- g_printerr ("couldn't list directory: %s: %s\n", argv[1], error->message);
- g_clear_error (&error);
- return 1;
- }
-
- parser = gcr_parser_new ();
- g_signal_connect (parser, "parsed", G_CALLBACK (on_parser_parsed), &filename);
-
- for (;;) {
- filename = g_dir_read_name (dir);
- if (!filename)
- break;
- if (filename[0] == '.')
- continue;
-
- path = g_build_filename (argv[1], filename, NULL);
- g_file_get_contents (path, &contents, &len, &error);
- g_free (path);
-
- if (error) {
- g_printerr ("%s: couldn't read file: %s\n", filename, error->message);
- g_clear_error (&error);
- continue;
- }
-
- gcr_parser_parse_data (parser, (const guchar *)contents, len, &error);
- g_free (contents);
-
- if (error) {
- g_warning ("%s: couldn't parse: %s\n", filename, error->message);
- g_clear_error (&error);
- }
-
- g_print ("%s: finished parsing\n", filename);
- }
-
- g_dir_close (dir);
- g_object_unref (parser);
-
- return 0;
-}
diff --git a/gcr/tests/frob-tree-selector.c b/gcr/tests/frob-tree-selector.c
deleted file mode 100644
index 313781e6..00000000
--- a/gcr/tests/frob-tree-selector.c
+++ /dev/null
@@ -1,208 +0,0 @@
-
-#include "config.h"
-
-#include "gcr/gcr.h"
-
-#include <gtk/gtk.h>
-
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-
-#define TEST_TYPE_COLLECTION (test_collection_get_type ())
-#define TEST_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TEST_TYPE_COLLECTION, TestCollection))
-#define TEST_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TEST_TYPE_COLLECTION))
-
-typedef struct _TestCollection TestCollection;
-typedef struct _TestCollectionClass TestCollectionClass;
-typedef struct _TestCollectionPrivate TestCollectionPrivate;
-
-struct _TestCollection {
- GcrSimpleCollection parent;
- gchar *label;
-};
-
-struct _TestCollectionClass {
- GcrSimpleCollectionClass parent_class;
-};
-
-GType test_collection_get_type (void) G_GNUC_CONST;
-
-enum {
- PROP_0,
- PROP_LABEL,
-};
-
-G_DEFINE_TYPE (TestCollection, test_collection, GCR_TYPE_SIMPLE_COLLECTION);
-
-static GHashTable *all_collections = NULL;
-
-static void
-test_collection_init (TestCollection *self)
-{
-
-}
-
-static void
-test_collection_finalize (GObject *obj)
-{
- TestCollection *self = TEST_COLLECTION (obj);
- g_free (self->label);
- g_hash_table_remove (all_collections, self);
- G_OBJECT_CLASS (test_collection_parent_class)->finalize (obj);
-}
-
-static void
-test_collection_get_property (GObject *obj,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- TestCollection *self = TEST_COLLECTION (obj);
- switch (prop_id) {
- case PROP_LABEL:
- g_value_set_string (value, self->label);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
- break;
- }
-}
-
-static void
-test_collection_class_init (TestCollectionClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- gobject_class->get_property = test_collection_get_property;
- gobject_class->finalize = test_collection_finalize;
-
- g_object_class_install_property (gobject_class, PROP_LABEL,
- g_param_spec_string ("label", "label", "label", NULL, G_PARAM_READABLE));
-}
-
-static GcrSimpleCollection *
-test_collection_instance (const gchar *label)
-{
- TestCollection *collection = NULL;
-
- g_assert (label);
-
- if (!all_collections) {
- all_collections = g_hash_table_new (g_str_hash, g_str_equal);
- } else {
- collection = g_hash_table_lookup (all_collections, label);
- if (collection != NULL)
- return g_object_ref (collection);
- }
-
- collection = g_object_new (TEST_TYPE_COLLECTION, NULL);
- collection->label = g_strdup (label);
- g_hash_table_insert (all_collections, collection->label, collection);
- return GCR_SIMPLE_COLLECTION (collection);
-}
-
-static void
-on_parser_parsed (GcrParser *parser, gpointer user_data)
-{
- GcrSimpleCollection *collection = user_data;
- GcrSimpleCollection *testcol;
- GcrRenderer *renderer;
- gchar *group;
-
- renderer = gcr_renderer_create (gcr_parser_get_parsed_label (parser),
- gcr_parser_get_parsed_attributes (parser));
- if (renderer == NULL)
- return;
-
- if (GCR_IS_CERTIFICATE (renderer))
- group = gcr_certificate_get_subject_part (GCR_CERTIFICATE (renderer), "O");
- else
- group = g_strdup (G_OBJECT_TYPE_NAME (renderer));
-
-
- testcol = test_collection_instance (group);
- if (!gcr_simple_collection_contains (collection, G_OBJECT (testcol)))
- gcr_simple_collection_add (collection, G_OBJECT (testcol));
-
- gcr_simple_collection_add (GCR_SIMPLE_COLLECTION (testcol), G_OBJECT (renderer));
- g_object_unref (renderer);
- g_object_unref (testcol);
- g_free (group);
-}
-
-static void
-add_to_selector (GcrParser *parser, const gchar *path)
-{
- GError *err = NULL;
- guchar *data;
- gsize n_data;
-
- if (!g_file_get_contents (path, (gchar**)&data, &n_data, NULL))
- g_error ("couldn't read file: %s", path);
-
- if (!gcr_parser_parse_data (parser, data, n_data, &err))
- g_error ("couldn't parse data: %s", err->message);
-
- g_free (data);
-}
-
-int
-main (int argc, char *argv[])
-{
- GcrCollection *collection;
- GcrTreeSelector *selector;
- GtkDialog *dialog;
- GcrParser *parser;
- GtkWidget *scroll;
- GList *selected, *l;
- int i;
-
- gtk_init (&argc, &argv);
-
- dialog = GTK_DIALOG (gtk_dialog_new ());
- g_object_ref_sink (dialog);
-
- collection = gcr_simple_collection_new ();
- selector = gcr_tree_selector_new (collection, GCR_CERTIFICATE_COLUMNS);
-
- scroll = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scroll), GTK_SHADOW_ETCHED_IN);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_container_add (GTK_CONTAINER (scroll), GTK_WIDGET (selector));
- gtk_widget_show_all (scroll);
-
- gtk_widget_show (GTK_WIDGET (selector));
- gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (dialog)), GTK_WIDGET (scroll), TRUE, TRUE, 0);
-
- gtk_window_set_default_size (GTK_WINDOW (dialog), 550, 400);
- gtk_container_set_border_width (GTK_CONTAINER (dialog), 20);
-
- parser = gcr_parser_new ();
- g_signal_connect (parser, "parsed", G_CALLBACK (on_parser_parsed), collection);
-
- if (argc == 1) {
- add_to_selector (parser, SRCDIR "/files/ca-certificates.crt");
- } else {
- for (i = 1; i < argc; ++i)
- add_to_selector (parser, argv[i]);
- }
-
- g_object_unref (parser);
- g_object_unref (collection);
-
- gtk_dialog_run (dialog);
-
- selected = gcr_tree_selector_get_selected (selector);
- for (l = selected; l; l = g_list_next (l)) {
- gchar *label;
- g_object_get (l->data, "label", &label, NULL);
- g_print ("selected: %s\n", label);
- g_free (label);
- }
- g_list_free (selected);
-
- gtk_widget_destroy (GTK_WIDGET (dialog));
- g_object_unref (dialog);
-
- return 0;
-}
diff --git a/gcr/tests/frob-unlock-options.c b/gcr/tests/frob-unlock-options.c
deleted file mode 100644
index fdcf116e..00000000
--- a/gcr/tests/frob-unlock-options.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2010 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr/gcr.h"
-
-#include <gtk/gtk.h>
-
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-
-static void
-test_unlock_options (void)
-{
- GcrUnlockOptionsWidget *unlock;
- GtkDialog *dialog;
-
- dialog = GTK_DIALOG (gtk_dialog_new ());
- g_object_ref_sink (dialog);
-
- unlock = GCR_UNLOCK_OPTIONS_WIDGET (gcr_unlock_options_widget_new ());
- gtk_widget_show (GTK_WIDGET (unlock));
- gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (dialog)), GTK_WIDGET (unlock));
-
- gcr_unlock_options_widget_set_sensitive (unlock, GCR_UNLOCK_OPTION_IDLE, FALSE,
- "This is a test of the tooltip.");
- gcr_unlock_options_widget_set_sensitive (unlock, GCR_UNLOCK_OPTION_ALWAYS, TRUE, NULL);
- gcr_unlock_options_widget_set_label (unlock, GCR_UNLOCK_OPTION_IDLE, "Disabled label test");
- gcr_unlock_options_widget_set_ttl (unlock, 80);
- gcr_unlock_options_widget_set_choice (unlock, GCR_UNLOCK_OPTION_ALWAYS);
-
- gtk_window_set_default_size (GTK_WINDOW (dialog), 400, 400);
- gtk_dialog_run (dialog);
-
- g_printerr ("choice: %s\n",
- gcr_unlock_options_widget_get_choice (unlock));
-
- g_printerr ("ttl: %u\n",
- gcr_unlock_options_widget_get_ttl (unlock));
-
- g_printerr ("idle sensitive: %s\n",
- gcr_unlock_options_widget_get_sensitive (unlock, GCR_UNLOCK_OPTION_IDLE) ? "T" : "F");
-
- g_printerr ("always sensitive: %s\n",
- gcr_unlock_options_widget_get_sensitive (unlock, GCR_UNLOCK_OPTION_ALWAYS) ? "T" : "F");
-
- g_printerr ("label: %s\n",
- gcr_unlock_options_widget_get_label (unlock, GCR_UNLOCK_OPTION_ALWAYS));
-
- g_object_unref (dialog);
-}
-
-int
-main(int argc, char *argv[])
-{
- gtk_init (&argc, &argv);
- g_set_prgname ("frob-unlock-options");
-
- test_unlock_options ();
-
- return 0;
-}
diff --git a/gcr/tests/frob-unlock.c b/gcr/tests/frob-unlock.c
deleted file mode 100644
index b39f218f..00000000
--- a/gcr/tests/frob-unlock.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * gnome-keyring
- *
- * Copyright (C) 2011 Collabora Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Author: Stef Walter <stefw@collabora.co.uk>
- */
-
-#include "config.h"
-
-#include "gcr/gcr.h"
-#include "gcr/gcr-unlock-renderer.h"
-#include "gcr/gcr-viewer-window.h"
-
-#include <gtk/gtk.h>
-
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-
-static gboolean
-delete_event(GtkWidget *widget,
- GdkEvent *event,
- gpointer data)
-{
- gtk_main_quit ();
- return FALSE;
-}
-
-static void
-on_parser_parsed (GcrParser *parser, gpointer unused)
-{
-
-}
-
-static void
-on_parser_authenticate (GcrParser *parser,
- gint count,
- gpointer user_data)
-{
- GcrUnlockRenderer *renderer;
- GtkWindow *window;
-
- window = GTK_WINDOW (gcr_viewer_window_new ());
- g_object_ref_sink (window);
-
- renderer = _gcr_unlock_renderer_new_for_parsed (parser);
- gcr_viewer_add_renderer (GCR_VIEWER (window), GCR_RENDERER (renderer));
- g_object_unref (renderer);
-
- gtk_window_set_default_size (window, 550, 400);
- gtk_container_set_border_width (GTK_CONTAINER (window), 20);
-
- g_signal_connect (window, "delete-event", G_CALLBACK (delete_event), NULL);
- gtk_widget_show (GTK_WIDGET (window));
-
- gtk_main ();
-
- g_object_unref (window);
-
-}
-
-static void
-test_key (const gchar *path)
-{
- GcrParser *parser;
- GError *err = NULL;
- guchar *data;
- gsize n_data;
-
- if (!g_file_get_contents (path, (gchar**)&data, &n_data, NULL))
- g_error ("couldn't read file: %s", path);
-
- parser = gcr_parser_new ();
- g_signal_connect (parser, "parsed", G_CALLBACK (on_parser_parsed), NULL);
- g_signal_connect (parser, "authenticate", G_CALLBACK (on_parser_authenticate), NULL);
- if (!gcr_parser_parse_data (parser, data, n_data, &err))
- g_error ("couldn't parse data: %s", err->message);
-
- g_object_unref (parser);
- g_free (data);
-}
-
-int
-main(int argc, char *argv[])
-{
- gtk_init (&argc, &argv);
- g_set_prgname ("frob-unlock");
-
- if (argc > 1) {
- test_key (argv[1]);
- } else {
- test_key (SRCDIR "/files/email.p12");
- }
-
- return 0;
-}
diff --git a/gcr/tests/test-certificate-chain.c b/gcr/tests/test-certificate-chain.c
deleted file mode 100644
index 715bd495..00000000
--- a/gcr/tests/test-certificate-chain.c
+++ /dev/null
@@ -1,658 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/*
- Copyright (C) 2010 Collabora Ltd
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gcr/gcr-base.h"
-#include "gcr/gcr-internal.h"
-
-#include "egg/egg-asn1x.h"
-#include "egg/egg-asn1-defs.h"
-#include "egg/egg-testing.h"
-
-#include "gck/gck-mock.h"
-#include "gck/gck-test.h"
-
-#include "pkcs11/pkcs11.h"
-#include "pkcs11/pkcs11x.h"
-
-#include <glib.h>
-
-#include <errno.h>
-#include <string.h>
-
-/* ---------------------------------------------------------------------------
- * A Mock certificate that checks that it's always called on the
- * same thread. A GcrCertificate implemented on top of a non-thread-safe
- * crypto library would require this behavior.
- */
-
-GType mock_certificate_get_type (void);
-
-#define MOCK_CERTIFICATE(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), mock_certificate_get_type (), MockCertificate))
-
-typedef struct _MockCertificate {
- GObject parent;
- GThread *created_on;
- gpointer data;
- gsize n_data;
-} MockCertificate;
-
-typedef struct _MockCertificateClass {
- GObjectClass parent_class;
-} MockCertificateClass;
-
-static void mock_certificate_iface (GcrCertificateIface *iface);
-G_DEFINE_TYPE_WITH_CODE (MockCertificate, mock_certificate, G_TYPE_OBJECT,
- GCR_CERTIFICATE_MIXIN_IMPLEMENT_COMPARABLE ();
- G_IMPLEMENT_INTERFACE (GCR_TYPE_CERTIFICATE, mock_certificate_iface);
-);
-
-static void
-mock_certificate_init (MockCertificate *self)
-{
- self->created_on = g_thread_self ();
-}
-
-static void
-mock_certificate_finalize (GObject *obj)
-{
- MockCertificate *self = MOCK_CERTIFICATE (obj);
- g_assert (self->created_on == g_thread_self ());
- g_free (self->data);
- G_OBJECT_CLASS (mock_certificate_parent_class)->finalize (obj);
-}
-
-static void
-mock_certificate_class_init (MockCertificateClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- gobject_class->finalize = mock_certificate_finalize;
- gobject_class->get_property = gcr_certificate_mixin_get_property;
- gcr_certificate_mixin_class_init (gobject_class);
-}
-
-static gconstpointer
-mock_certificate_real_get_der_data (GcrCertificate *base, gsize *n_data)
-{
- MockCertificate *self = MOCK_CERTIFICATE (base);
- g_assert (self->created_on == g_thread_self ());
- *n_data = self->n_data;
- return self->data;
-}
-
-static void
-mock_certificate_iface (GcrCertificateIface *iface)
-{
- iface->get_der_data = (gpointer)mock_certificate_real_get_der_data;
-}
-
-static GcrCertificate*
-mock_certificate_new (gconstpointer data, gsize n_data)
-{
- MockCertificate *self = g_object_new (mock_certificate_get_type (), NULL);
- self->data = g_memdup (data, n_data);
- self->n_data = n_data;
- g_assert (self->created_on == g_thread_self ());
- return GCR_CERTIFICATE (self);
-}
-
-/* ----------------------------------------------------------------------------
- * TESTS
- */
-
-typedef struct {
- GcrCertificate *cert_self;
- GcrCertificate *cert_ca;
- GcrCertificate *cert_signed;
- CK_FUNCTION_LIST funcs;
-} Test;
-
-static void
-setup (Test *test, gconstpointer unused)
-{
- GList *modules = NULL;
- CK_FUNCTION_LIST_PTR f;
- gchar *contents;
- gsize n_contents;
- const gchar *uris[2];
- CK_RV rv;
- GckModule *module;
-
- rv = gck_mock_C_GetFunctionList (&f);
- gck_assert_cmprv (rv, ==, CKR_OK);
- memcpy (&test->funcs, f, sizeof (test->funcs));
-
- /* Open a session */
- rv = (test->funcs.C_Initialize) (NULL);
- gck_assert_cmprv (rv, ==, CKR_OK);
-
- g_assert (!modules);
- module = gck_module_new (&test->funcs);
- modules = g_list_prepend (modules, module);
- gcr_pkcs11_set_modules (modules);
- uris[0] = GCK_MOCK_SLOT_ONE_URI;
- uris[1] = NULL;
- gcr_pkcs11_set_trust_lookup_uris (uris);
- gcr_pkcs11_set_trust_store_uri (GCK_MOCK_SLOT_ONE_URI);
- gck_list_unref_free (modules);
-
- /* A self-signed certificate */
- if (!g_file_get_contents (SRCDIR "/files/der-certificate.crt", &contents, &n_contents, NULL))
- g_assert_not_reached ();
- test->cert_self = gcr_simple_certificate_new ((const guchar *)contents, n_contents);
- g_free (contents);
-
- /* A signed certificate */
- if (!g_file_get_contents (SRCDIR "/files/dhansak-collabora.cer", &contents, &n_contents, NULL))
- g_assert_not_reached ();
- test->cert_signed = mock_certificate_new (contents, n_contents);
- g_free (contents);
-
- /* The signer for the above certificate */
- if (!g_file_get_contents (SRCDIR "/files/collabora-ca.cer", &contents, &n_contents, NULL))
- g_assert_not_reached ();
- test->cert_ca = mock_certificate_new (contents, n_contents);
- g_free (contents);
-}
-
-static void
-add_certificate_to_module (GcrCertificate *certificate)
-{
- GckAttributes *attrs;
- gconstpointer data;
- gsize n_data, n_subject;
- gpointer subject;
-
- data = gcr_certificate_get_der_data (certificate, &n_data);
- g_assert (data);
-
- subject = gcr_certificate_get_subject_raw (certificate, &n_subject);
- g_assert (subject);
-
- /* Add a certificate to the module */
- attrs = gck_attributes_new ();
- gck_attributes_add_data (attrs, CKA_VALUE, data, n_data);
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_CERTIFICATE);
- gck_attributes_add_ulong (attrs, CKA_CERTIFICATE_TYPE, CKC_X_509);
- gck_attributes_add_data (attrs, CKA_SUBJECT, subject, n_subject);
- gck_mock_module_take_object (attrs);
-
- g_free (subject);
-}
-
-static void
-add_anchor_to_module (GcrCertificate *certificate, const gchar *purpose)
-{
- GckAttributes *attrs;
- gconstpointer data;
- gsize n_data;
-
- data = gcr_certificate_get_der_data (certificate, &n_data);
- g_assert (data);
-
- /* And add a pinned certificate for the signed certificate */
- attrs = gck_attributes_new ();
- gck_attributes_add_data (attrs, CKA_X_CERTIFICATE_VALUE, data, n_data);
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_X_TRUST_ASSERTION);
- gck_attributes_add_ulong (attrs, CKA_X_ASSERTION_TYPE, CKT_X_ANCHORED_CERTIFICATE);
- gck_attributes_add_string (attrs, CKA_X_PURPOSE, purpose);
- gck_mock_module_take_object (attrs);
-}
-
-static void
-add_pinned_to_module (GcrCertificate *certificate, const gchar *purpose, const gchar *host)
-{
- GckAttributes *attrs;
- gconstpointer data;
- gsize n_data;
-
- data = gcr_certificate_get_der_data (certificate, &n_data);
- g_assert (data);
-
- /* And add a pinned certificate for the signed certificate */
- attrs = gck_attributes_new ();
- gck_attributes_add_data (attrs, CKA_X_CERTIFICATE_VALUE, data, n_data);
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_X_TRUST_ASSERTION);
- gck_attributes_add_ulong (attrs, CKA_X_ASSERTION_TYPE, CKT_X_PINNED_CERTIFICATE);
- gck_attributes_add_string (attrs, CKA_X_PURPOSE, purpose);
- gck_attributes_add_string (attrs, CKA_X_PEER, host);
- gck_mock_module_take_object (attrs);
-}
-
-static void
-teardown (Test *test, gconstpointer unused)
-{
- CK_RV rv;
-
- g_object_unref (test->cert_self);
- g_object_unref (test->cert_signed);
- g_object_unref (test->cert_ca);
-
- rv = (test->funcs.C_Finalize) (NULL);
- gck_assert_cmprv (rv, ==, CKR_OK);
-}
-
-static void
-test_new (Test *test, gconstpointer unused)
-{
- GcrCertificateChain *chain;
-
- chain = gcr_certificate_chain_new ();
-
- g_assert_cmpuint (gcr_certificate_chain_get_status (chain), ==,
- GCR_CERTIFICATE_CHAIN_UNKNOWN);
- g_assert_cmpuint (gcr_certificate_chain_get_length (chain), ==, 0);
-
- g_assert (gcr_certificate_chain_get_endpoint (chain) == NULL);
-
- g_object_unref (chain);
-}
-
-static void
-test_new_with_cert (Test *test, gconstpointer unused)
-{
- GcrCertificateChain *chain;
- GcrCertificate *check;
- guint status, length;
-
- chain = gcr_certificate_chain_new ();
- gcr_certificate_chain_add (chain, test->cert_signed);
- gcr_certificate_chain_add (chain, test->cert_ca);
-
- g_assert_cmpuint (gcr_certificate_chain_get_status (chain), ==,
- GCR_CERTIFICATE_CHAIN_UNKNOWN);
- g_assert_cmpuint (gcr_certificate_chain_get_length (chain), ==, 2);
-
- status = G_MAXUINT;
- length = 0;
- g_object_get (chain, "status", &status, "length", &length, NULL);
- g_assert_cmpuint (status, ==, GCR_CERTIFICATE_CHAIN_UNKNOWN);
- g_assert_cmpuint (length, ==, 2);
-
- check = gcr_certificate_chain_get_certificate (chain, 1);
- g_assert (check == test->cert_ca);
-
- /* Not yet completed */
- check = gcr_certificate_chain_get_anchor (chain);
- g_assert (check == NULL);
-
- check = gcr_certificate_chain_get_endpoint (chain);
- g_assert (check == test->cert_signed);
-
- g_object_unref (chain);
-}
-
-static void
-test_selfsigned (Test *test, gconstpointer unused)
-{
- GcrCertificateChain *chain;
- GError *error = NULL;
-
- chain = gcr_certificate_chain_new ();
-
- /* Add a self-signed certificate */
- gcr_certificate_chain_add (chain, test->cert_self);
-
- if (!gcr_certificate_chain_build (chain, GCR_PURPOSE_CLIENT_AUTH,
- NULL, 0, NULL, &error))
- g_assert_not_reached ();
- g_assert_no_error (error);
-
- g_assert_cmpuint (gcr_certificate_chain_get_status (chain), ==,
- GCR_CERTIFICATE_CHAIN_SELFSIGNED);
-
- g_object_unref (chain);
-}
-
-static void
-test_incomplete (Test *test, gconstpointer unused)
-{
- GcrCertificateChain *chain;
- GError *error = NULL;
-
- chain = gcr_certificate_chain_new ();
-
- /* Add a signed certificate */
- gcr_certificate_chain_add (chain, test->cert_signed);
-
- if (!gcr_certificate_chain_build (chain, GCR_PURPOSE_CLIENT_AUTH,
- NULL, 0, NULL, &error))
- g_assert_not_reached ();
- g_assert_no_error (error);
-
- g_assert_cmpuint (gcr_certificate_chain_get_status (chain), ==,
- GCR_CERTIFICATE_CHAIN_INCOMPLETE);
-
- g_object_unref (chain);
-}
-
-static void
-test_empty (Test *test, gconstpointer unused)
-{
- GcrCertificateChain *chain;
- GError *error = NULL;
-
- chain = gcr_certificate_chain_new ();
-
- /* Add no certificate */
-
- if (!gcr_certificate_chain_build (chain, GCR_PURPOSE_CLIENT_AUTH,
- NULL, 0, NULL, &error))
- g_assert_not_reached ();
- g_assert_no_error (error);
-
- g_assert_cmpuint (gcr_certificate_chain_get_status (chain), ==,
- GCR_CERTIFICATE_CHAIN_UNKNOWN);
-
- g_object_unref (chain);
-}
-
-static void
-test_trim_extras (Test *test, gconstpointer unused)
-{
- GcrCertificateChain *chain;
- GError *error = NULL;
-
- chain = gcr_certificate_chain_new ();
-
- /* Add two unrelated certificates */
- gcr_certificate_chain_add (chain, test->cert_self);
- gcr_certificate_chain_add (chain, test->cert_signed);
-
- g_assert_cmpuint (gcr_certificate_chain_get_length (chain), ==, 2);
-
- if (!gcr_certificate_chain_build (chain, GCR_PURPOSE_CLIENT_AUTH,
- NULL, 0, NULL, &error))
- g_assert_not_reached ();
- g_assert_no_error (error);
-
- g_assert_cmpuint (gcr_certificate_chain_get_status (chain), ==,
- GCR_CERTIFICATE_CHAIN_SELFSIGNED);
- g_assert_cmpuint (gcr_certificate_chain_get_length (chain), ==, 1);
-
- g_object_unref (chain);
-}
-
-static void
-fetch_async_result (GObject *source, GAsyncResult *result, gpointer user_data)
-{
- *((GAsyncResult**)user_data) = result;
- g_object_ref (result);
- egg_test_wait_stop ();
-}
-
-static void
-test_complete_async (Test *test, gconstpointer unused)
-{
- GcrCertificateChain *chain;
- GError *error = NULL;
- GAsyncResult *result = NULL;
-
- chain = gcr_certificate_chain_new ();
-
- /* Add a whole bunch of certificates */
- gcr_certificate_chain_add (chain, test->cert_signed);
- gcr_certificate_chain_add (chain, test->cert_ca);
- gcr_certificate_chain_add (chain, test->cert_self);
-
- gcr_certificate_chain_build_async (chain, GCR_PURPOSE_CLIENT_AUTH,
- NULL, 0, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- if (!gcr_certificate_chain_build_finish (chain, result, &error))
- g_assert_not_reached ();
- g_assert_no_error (error);
- g_object_unref (result);
-
- g_assert_cmpuint (gcr_certificate_chain_get_status (chain), ==,
- GCR_CERTIFICATE_CHAIN_SELFSIGNED);
- g_assert_cmpuint (gcr_certificate_chain_get_length (chain), ==, 2);
-
- g_object_unref (chain);
-}
-
-static void
-test_with_anchor (Test *test, gconstpointer unused)
-{
- GcrCertificateChain *chain;
- GError *error = NULL;
-
- chain = gcr_certificate_chain_new ();
-
- /* Two certificates in chain with ca trust anchor */
- gcr_certificate_chain_add (chain, test->cert_signed);
- gcr_certificate_chain_add (chain, test->cert_ca);
- add_anchor_to_module (test->cert_ca, GCR_PURPOSE_CLIENT_AUTH);
-
- g_assert_cmpuint (gcr_certificate_chain_get_length (chain), ==, 2);
-
- if (!gcr_certificate_chain_build (chain, GCR_PURPOSE_CLIENT_AUTH,
- NULL, 0, NULL, &error))
- g_assert_not_reached ();
- g_assert_no_error (error);
-
- g_assert_cmpuint (gcr_certificate_chain_get_status (chain), ==,
- GCR_CERTIFICATE_CHAIN_ANCHORED);
- g_assert_cmpuint (gcr_certificate_chain_get_length (chain), ==, 2);
- g_assert (gcr_certificate_chain_get_anchor (chain) == test->cert_ca);
-
- g_object_unref (chain);
-}
-
-static void
-test_with_anchor_and_lookup_ca (Test *test, gconstpointer unused)
-{
- GcrCertificateChain *chain;
- GError *error = NULL;
-
- chain = gcr_certificate_chain_new ();
-
- /* One signed certificate, with CA in pkcs11, and trust anchor */
- gcr_certificate_chain_add (chain, test->cert_signed);
- add_certificate_to_module (test->cert_ca);
- add_anchor_to_module (test->cert_ca, GCR_PURPOSE_CLIENT_AUTH);
-
- g_assert_cmpuint (gcr_certificate_chain_get_length (chain), ==, 1);
-
- if (!gcr_certificate_chain_build (chain, GCR_PURPOSE_CLIENT_AUTH,
- NULL, 0, NULL, &error))
- g_assert_not_reached ();
- g_assert_no_error (error);
-
- g_assert_cmpuint (gcr_certificate_chain_get_status (chain), ==,
- GCR_CERTIFICATE_CHAIN_ANCHORED);
- g_assert_cmpuint (gcr_certificate_chain_get_length (chain), ==, 2);
- g_assert (gcr_certificate_chain_get_anchor (chain) != NULL);
-
- g_object_unref (chain);
-}
-
-static void
-test_with_pinned (Test *test, gconstpointer unused)
-{
- GcrCertificateChain *chain;
- GError *error = NULL;
-
- chain = gcr_certificate_chain_new ();
-
- /* One certificate, and add CA to pkcs11 */
- gcr_certificate_chain_add (chain, test->cert_signed);
- gcr_certificate_chain_add (chain, test->cert_ca);
- add_pinned_to_module (test->cert_signed, GCR_PURPOSE_CLIENT_AUTH, "pinned.example.com");
-
- g_assert_cmpuint (gcr_certificate_chain_get_length (chain), ==, 2);
-
- /* But we don't allow the lookup to happen */
- if (!gcr_certificate_chain_build (chain, GCR_PURPOSE_CLIENT_AUTH,
- "pinned.example.com", 0, NULL, &error))
- g_assert_not_reached ();
- g_assert_no_error (error);
-
- g_assert_cmpuint (gcr_certificate_chain_get_status (chain), ==,
- GCR_CERTIFICATE_CHAIN_PINNED);
- g_assert_cmpuint (gcr_certificate_chain_get_length (chain), ==, 1);
- g_assert (gcr_certificate_chain_get_anchor (chain) == NULL);
-
- g_object_unref (chain);
-}
-
-static void
-test_without_lookups (Test *test, gconstpointer unused)
-{
- GcrCertificateChain *chain;
- GError *error = NULL;
-
- chain = gcr_certificate_chain_new ();
-
- /* One certificate, and add CA to pkcs11 */
- gcr_certificate_chain_add (chain, test->cert_signed);
- add_certificate_to_module (test->cert_ca);
-
- g_assert_cmpuint (gcr_certificate_chain_get_length (chain), ==, 1);
-
- /* But we don't allow the lookup to happen */
- if (!gcr_certificate_chain_build (chain, GCR_PURPOSE_CLIENT_AUTH,
- NULL, GCR_CERTIFICATE_CHAIN_NO_LOOKUPS,
- NULL, &error))
- g_assert_not_reached ();
- g_assert_no_error (error);
-
- g_assert_cmpuint (gcr_certificate_chain_get_status (chain), ==,
- GCR_CERTIFICATE_CHAIN_INCOMPLETE);
- g_assert_cmpuint (gcr_certificate_chain_get_length (chain), ==, 1);
- g_assert (gcr_certificate_chain_get_anchor (chain) == NULL);
-
- g_object_unref (chain);
-}
-
-static void
-test_with_lookup_error (Test *test, gconstpointer unused)
-{
- GcrCertificateChain *chain;
- GError *error = NULL;
-
- /* Make the lookup fail */
- test->funcs.C_GetAttributeValue = gck_mock_fail_C_GetAttributeValue;
-
- chain = gcr_certificate_chain_new ();
-
- /* Two certificates in chain with ca trust anchor */
- gcr_certificate_chain_add (chain, test->cert_signed);
- add_certificate_to_module (test->cert_ca);
-
- g_assert_cmpuint (gcr_certificate_chain_get_length (chain), ==, 1);
-
- if (gcr_certificate_chain_build (chain, GCR_PURPOSE_CLIENT_AUTH,
- NULL, 0, NULL, &error))
- g_assert_not_reached ();
- g_assert_error (error, GCK_ERROR, CKR_FUNCTION_FAILED);
- g_clear_error (&error);
-
- g_assert_cmpuint (gcr_certificate_chain_get_status (chain), ==,
- GCR_CERTIFICATE_CHAIN_UNKNOWN);
-
- g_object_unref (chain);
-}
-
-static void
-test_with_anchor_error (Test *test, gconstpointer unused)
-{
- GcrCertificateChain *chain;
- GError *error = NULL;
-
- /* Make the lookup fail */
- test->funcs.C_GetAttributeValue = gck_mock_fail_C_GetAttributeValue;
-
- chain = gcr_certificate_chain_new ();
-
- /* Two certificates in chain with ca trust anchor */
- gcr_certificate_chain_add (chain, test->cert_signed);
- add_certificate_to_module (test->cert_ca);
-
- if (gcr_certificate_chain_build (chain, GCR_PURPOSE_CLIENT_AUTH,
- NULL, 0, NULL, &error))
- g_assert_not_reached ();
- g_assert_error (error, GCK_ERROR, CKR_FUNCTION_FAILED);
- g_clear_error (&error);
-
- g_assert_cmpuint (gcr_certificate_chain_get_status (chain), ==,
- GCR_CERTIFICATE_CHAIN_UNKNOWN);
-
- g_object_unref (chain);
-}
-
-static void
-test_with_anchor_error_async (Test *test, gconstpointer unused)
-{
- GcrCertificateChain *chain;
- GError *error = NULL;
- GAsyncResult *result;
-
- /* Make the lookup fail */
- test->funcs.C_GetAttributeValue = gck_mock_fail_C_GetAttributeValue;
-
- chain = gcr_certificate_chain_new ();
-
- /* Two certificates in chain with ca trust anchor */
- gcr_certificate_chain_add (chain, test->cert_signed);
- add_certificate_to_module (test->cert_ca);
-
- gcr_certificate_chain_build_async (chain, GCR_PURPOSE_CLIENT_AUTH,
- NULL, 0, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- if (gcr_certificate_chain_build_finish (chain, result, &error))
- g_assert_not_reached ();
- g_assert_error (error, GCK_ERROR, CKR_FUNCTION_FAILED);
- g_clear_error (&error);
- g_object_unref (result);
-
- g_assert_cmpuint (gcr_certificate_chain_get_status (chain), ==,
- GCR_CERTIFICATE_CHAIN_UNKNOWN);
-
- g_object_unref (chain);
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
- g_set_prgname ("test-certificate-chain");
-
- g_test_add ("/gcr/certificate-chain/new", Test, NULL, setup, test_new, teardown);
- g_test_add ("/gcr/certificate-chain/new_with_cert", Test, NULL, setup, test_new_with_cert, teardown);
- g_test_add ("/gcr/certificate-chain/selfsigned", Test, NULL, setup, test_selfsigned, teardown);
- g_test_add ("/gcr/certificate-chain/incomplete", Test, NULL, setup, test_incomplete, teardown);
- g_test_add ("/gcr/certificate-chain/empty", Test, NULL, setup, test_empty, teardown);
- g_test_add ("/gcr/certificate-chain/trim_extras", Test, NULL, setup, test_trim_extras, teardown);
- g_test_add ("/gcr/certificate-chain/complete_async", Test, NULL, setup, test_complete_async, teardown);
- g_test_add ("/gcr/certificate-chain/with_anchor", Test, NULL, setup, test_with_anchor, teardown);
- g_test_add ("/gcr/certificate-chain/with_anchor_and_lookup_ca", Test, NULL, setup, test_with_anchor_and_lookup_ca, teardown);
- g_test_add ("/gcr/certificate-chain/with_pinned", Test, NULL, setup, test_with_pinned, teardown);
- g_test_add ("/gcr/certificate-chain/without_lookups", Test, NULL, setup, test_without_lookups, teardown);
- g_test_add ("/gcr/certificate-chain/with_lookup_error", Test, NULL, setup, test_with_lookup_error, teardown);
- g_test_add ("/gcr/certificate-chain/with_anchor_error", Test, NULL, setup, test_with_anchor_error, teardown);
- g_test_add ("/gcr/certificate-chain/with_anchor_error_async", Test, NULL, setup, test_with_anchor_error_async, teardown);
-
- return egg_tests_run_in_thread_with_loop ();
-}
diff --git a/gcr/tests/test-certificate.c b/gcr/tests/test-certificate.c
deleted file mode 100644
index 6fb68c98..00000000
--- a/gcr/tests/test-certificate.c
+++ /dev/null
@@ -1,279 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/*
- Copyright (C) 2010 Collabora Ltd
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gcr/gcr-base.h"
-#include "gcr/gcr-internal.h"
-
-#include "egg/egg-testing.h"
-
-#include <glib.h>
-
-#include <errno.h>
-#include <string.h>
-
-typedef struct {
- GcrCertificate *certificate;
- GcrCertificate *dsa_cert;
- GcrCertificate *dhansak_cert;
-} Test;
-
-static void
-setup (Test *test, gconstpointer unused)
-{
- gchar *contents;
- gsize n_contents;
-
- if (!g_file_get_contents (SRCDIR "/files/der-certificate.crt", &contents, &n_contents, NULL))
- g_assert_not_reached ();
- test->certificate = gcr_simple_certificate_new ((const guchar *)contents, n_contents);
- g_assert (test->certificate);
- g_free (contents);
-
- if (!g_file_get_contents (SRCDIR "/files/der-certificate-dsa.cer", &contents, &n_contents, NULL))
- g_assert_not_reached ();
- test->dsa_cert = gcr_simple_certificate_new ((const guchar *)contents, n_contents);
- g_assert (test->dsa_cert);
- g_free (contents);
-
- if (!g_file_get_contents (SRCDIR "/files/dhansak-collabora.cer", &contents, &n_contents, NULL))
- g_assert_not_reached ();
- test->dhansak_cert = gcr_simple_certificate_new ((const guchar *)contents, n_contents);
- g_assert (test->certificate);
- g_free (contents);
-}
-
-static void
-teardown (Test *test, gconstpointer unused)
-{
- g_object_unref (test->certificate);
- g_object_unref (test->dsa_cert);
- g_object_unref (test->dhansak_cert);
-}
-
-static void
-test_issuer_cn (Test *test, gconstpointer unused)
-{
- gchar *cn = gcr_certificate_get_issuer_cn (test->certificate);
- g_assert (cn);
- g_assert_cmpstr (cn, ==, "http://www.valicert.com/");
- g_free (cn);
-}
-
-static void
-test_issuer_dn (Test *test, gconstpointer unused)
-{
- gchar *dn = gcr_certificate_get_issuer_dn (test->certificate);
- g_assert (dn);
- g_assert_cmpstr (dn, ==, "L=ValiCert Validation Network, O=ValiCert, Inc., OU=ValiCert Class 3 Policy Validation Authority, CN=http://www.valicert.com/, EMAIL=info@valicert.com");
- g_free (dn);
-}
-
-static void
-test_issuer_part (Test *test, gconstpointer unused)
-{
- gchar *part = gcr_certificate_get_issuer_part (test->certificate, "l");
- g_assert (part);
- g_assert_cmpstr (part, ==, "ValiCert Validation Network");
- g_free (part);
-}
-
-static void
-test_issuer_raw (Test *test, gconstpointer unused)
-{
- gpointer der;
- gsize n_der;
-
- der = gcr_certificate_get_issuer_raw (test->certificate, &n_der);
- g_assert (der);
- egg_assert_cmpsize (n_der, ==, 190);
- g_free (der);
-}
-
-static void
-test_subject_cn (Test *test, gconstpointer unused)
-{
- gchar *cn = gcr_certificate_get_subject_cn (test->certificate);
- g_assert (cn);
- g_assert_cmpstr (cn, ==, "http://www.valicert.com/");
- g_free (cn);
-
- cn = gcr_certificate_get_subject_cn (test->dhansak_cert);
- g_assert (cn);
- g_assert_cmpstr (cn, ==, "dhansak.collabora.co.uk");
- g_free (cn);
-}
-
-static void
-test_subject_dn (Test *test, gconstpointer unused)
-{
- gchar *dn = gcr_certificate_get_subject_dn (test->certificate);
- g_assert (dn);
- g_assert_cmpstr (dn, ==, "L=ValiCert Validation Network, O=ValiCert, Inc., OU=ValiCert Class 3 Policy Validation Authority, CN=http://www.valicert.com/, EMAIL=info@valicert.com");
- g_free (dn);
-
- dn = gcr_certificate_get_subject_dn (test->dhansak_cert);
- g_assert (dn);
- g_assert_cmpstr (dn, ==, "CN=dhansak.collabora.co.uk, EMAIL=sysadmin@collabora.co.uk");
- g_free (dn);
-
-}
-
-static void
-test_subject_part (Test *test, gconstpointer unused)
-{
- gchar *part = gcr_certificate_get_subject_part (test->certificate, "OU");
- g_assert (part);
- g_assert_cmpstr (part, ==, "ValiCert Class 3 Policy Validation Authority");
- g_free (part);
-
- part = gcr_certificate_get_subject_part (test->dhansak_cert, "EMAIL");
- g_assert (part);
- g_assert_cmpstr (part, ==, "sysadmin@collabora.co.uk");
- g_free (part);
-
-}
-
-static void
-test_subject_raw (Test *test, gconstpointer unused)
-{
- gpointer der;
- gsize n_der;
-
- der = gcr_certificate_get_subject_raw (test->certificate, &n_der);
- g_assert (der);
- egg_assert_cmpsize (n_der, ==, 190);
- g_free (der);
-
- der = gcr_certificate_get_subject_raw (test->dhansak_cert, &n_der);
- g_assert (der);
- egg_assert_cmpsize (n_der, ==, 77);
- g_free (der);
-}
-
-static void
-test_issued_date (Test *test, gconstpointer unused)
-{
- GDate *date = gcr_certificate_get_issued_date (test->certificate);
- g_assert (date);
- g_assert_cmpuint (g_date_get_year (date), ==, 1999);
- g_assert_cmpuint (g_date_get_month (date), ==, 6);
- g_assert_cmpuint (g_date_get_day (date), ==, 26);
- g_date_free (date);
-}
-
-static void
-test_expiry_date (Test *test, gconstpointer unused)
-{
- GDate *date = gcr_certificate_get_expiry_date (test->certificate);
- g_assert (date);
- g_assert_cmpuint (g_date_get_year (date), ==, 2019);
- g_assert_cmpuint (g_date_get_month (date), ==, 6);
- g_assert_cmpuint (g_date_get_day (date), ==, 26);
- g_date_free (date);
-}
-
-static void
-test_serial_number (Test *test, gconstpointer unused)
-{
- gsize n_serial;
- guchar *serial;
- gchar *hex;
-
- serial = gcr_certificate_get_serial_number (test->certificate, &n_serial);
- g_assert (serial);
- g_assert_cmpuint (n_serial, ==, 1);
- g_assert (memcmp (serial, "\1", n_serial) == 0);
- g_free (serial);
-
- hex = gcr_certificate_get_serial_number_hex (test->certificate);
- g_assert (hex);
- g_assert_cmpstr (hex, ==, "01");
- g_free (hex);
-}
-
-static void
-test_fingerprint (Test *test, gconstpointer unused)
-{
- gsize n_print;
- guchar *print = gcr_certificate_get_fingerprint (test->certificate, G_CHECKSUM_MD5, &n_print);
- g_assert (print);
- g_assert_cmpuint (n_print, ==, g_checksum_type_get_length (G_CHECKSUM_MD5));
- g_assert (memcmp (print, "\xa2\x6f\x53\xb7\xee\x40\xdb\x4a\x68\xe7\xfa\x18\xd9\x10\x4b\x72", n_print) == 0);
- g_free (print);
-}
-
-static void
-test_fingerprint_hex (Test *test, gconstpointer unused)
-{
- gchar *print = gcr_certificate_get_fingerprint_hex (test->certificate, G_CHECKSUM_MD5);
- g_assert (print);
- g_assert_cmpstr (print, ==, "A2 6F 53 B7 EE 40 DB 4A 68 E7 FA 18 D9 10 4B 72");
- g_free (print);
-}
-
-static void
-test_certificate_key_size (Test *test, gconstpointer unused)
-{
- guint key_size = gcr_certificate_get_key_size (test->certificate);
- g_assert_cmpuint (key_size, ==, 1024);
-
- key_size = gcr_certificate_get_key_size (test->dsa_cert);
- g_assert_cmpuint (key_size, ==, 1024);
-}
-
-static void
-test_certificate_is_issuer (Test *test, gconstpointer unused)
-{
- gboolean ret = gcr_certificate_is_issuer (test->certificate, test->certificate);
- g_assert (ret == TRUE);
-
- ret = gcr_certificate_is_issuer (test->certificate, test->dsa_cert);
- g_assert (ret == FALSE);
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
- g_set_prgname ("test-certificate");
-
- g_test_add ("/gcr/certificate/issuer_cn", Test, NULL, setup, test_issuer_cn, teardown);
- g_test_add ("/gcr/certificate/issuer_dn", Test, NULL, setup, test_issuer_dn, teardown);
- g_test_add ("/gcr/certificate/issuer_part", Test, NULL, setup, test_issuer_part, teardown);
- g_test_add ("/gcr/certificate/issuer_raw", Test, NULL, setup, test_issuer_raw, teardown);
- g_test_add ("/gcr/certificate/subject_cn", Test, NULL, setup, test_subject_cn, teardown);
- g_test_add ("/gcr/certificate/subject_dn", Test, NULL, setup, test_subject_dn, teardown);
- g_test_add ("/gcr/certificate/subject_part", Test, NULL, setup, test_subject_part, teardown);
- g_test_add ("/gcr/certificate/subject_raw", Test, NULL, setup, test_subject_raw, teardown);
- g_test_add ("/gcr/certificate/issued_date", Test, NULL, setup, test_issued_date, teardown);
- g_test_add ("/gcr/certificate/expiry_date", Test, NULL, setup, test_expiry_date, teardown);
- g_test_add ("/gcr/certificate/serial_number", Test, NULL, setup, test_serial_number, teardown);
- g_test_add ("/gcr/certificate/fingerprint", Test, NULL, setup, test_fingerprint, teardown);
- g_test_add ("/gcr/certificate/fingerprint_hex", Test, NULL, setup, test_fingerprint_hex, teardown);
- g_test_add ("/gcr/certificate/certificate_key_size", Test, NULL, setup, test_certificate_key_size, teardown);
- g_test_add ("/gcr/certificate/certificate_is_issuer", Test, NULL, setup, test_certificate_is_issuer, teardown);
-
- return g_test_run ();
-}
diff --git a/gcr/tests/test-fingerprint.c b/gcr/tests/test-fingerprint.c
deleted file mode 100644
index 0270758b..00000000
--- a/gcr/tests/test-fingerprint.c
+++ /dev/null
@@ -1,212 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/*
- Copyright (C) 2010 Collabora Ltd
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-#define GCR_COMPILATION 1
-
-#include "gcr/gcr-base.h"
-#include "gcr/gcr-internal.h"
-#include "gcr/gcr-fingerprint.h"
-
-#include "gck/gck-test.h"
-
-#include "pkcs11/pkcs11n.h"
-
-#include "egg/egg-asn1x.h"
-#include "egg/egg-asn1-defs.h"
-#include "egg/egg-testing.h"
-
-#include <glib.h>
-
-#include <errno.h>
-
-typedef struct {
- gpointer cert_rsa;
- gsize n_cert_rsa;
- gpointer key_rsa;
- gsize n_key_rsa;
- gpointer cert_dsa;
- gsize n_cert_dsa;
- gpointer key_dsa;
- gsize n_key_dsa;
-} Test;
-
-static void
-setup (Test *test, gconstpointer unused)
-{
- GError *error = NULL;
-
- g_file_get_contents (SRCDIR "/files/client.crt", (gchar**)&test->cert_rsa,
- &test->n_cert_rsa, &error);
- g_assert_no_error (error);
- g_assert (test->cert_rsa);
-
- g_file_get_contents (SRCDIR "/files/client.key", (gchar**)&test->key_rsa,
- &test->n_key_rsa, &error);
- g_assert_no_error (error);
- g_assert (test->key_rsa);
-
- g_file_get_contents (SRCDIR "/files/generic-dsa.crt", (gchar**)&test->cert_dsa,
- &test->n_cert_dsa, &error);
- g_assert_no_error (error);
- g_assert (test->cert_dsa);
-
- g_file_get_contents (SRCDIR "/files/generic-dsa.key", (gchar**)&test->key_dsa,
- &test->n_key_dsa, &error);
- g_assert_no_error (error);
- g_assert (test->key_dsa);
-}
-
-static void
-teardown (Test *test, gconstpointer unused)
-{
- g_free (test->cert_rsa);
- g_free (test->key_rsa);
- g_free (test->cert_dsa);
- g_free (test->key_dsa);
-}
-
-static void
-on_parser_parsed (GcrParser *parser,
- gpointer user_data)
-{
- GckAttributes **attrs = user_data;
- g_assert (!*attrs);
- *attrs = gcr_parser_get_parsed_attributes (parser);
- g_assert (*attrs);
- gck_attributes_ref (*attrs);
-}
-
-static GckAttributes*
-parse_attributes_for_key (gpointer data, gsize n_data)
-{
- GcrParser *parser;
- GckAttributes *attrs = NULL;
- GError *error = NULL;
-
- parser = gcr_parser_new ();
- g_signal_connect (parser, "parsed", G_CALLBACK (on_parser_parsed), &attrs);
- gcr_parser_parse_data (parser, data, n_data, &error);
- g_assert_no_error (error);
- g_object_unref (parser);
-
- g_assert (attrs);
- return attrs;
-}
-
-static GckAttributes *
-build_attributes_for_cert (guchar *data,
- gsize n_data)
-{
- GckAttributes *attrs;
-
- attrs = gck_attributes_new ();
- gck_attributes_add_data (attrs, CKA_VALUE, data, n_data);
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_CERTIFICATE);
- gck_attributes_add_ulong (attrs, CKA_CERTIFICATE_TYPE, CKC_X_509);
-
- return attrs;
-}
-
-static gconstpointer
-parse_subject_public_key_info_for_cert (gpointer data, gsize n_data, gsize *n_info)
-{
- gconstpointer info;
- GNode *asn;
-
- asn = egg_asn1x_create_and_decode (pkix_asn1_tab, "Certificate", data, n_data);
- g_assert (asn);
-
- info = egg_asn1x_get_raw_element (egg_asn1x_node (asn, "tbsCertificate", "subjectPublicKeyInfo", NULL), n_info);
- g_assert (info);
-
- egg_asn1x_destroy (asn);
- return info;
-}
-
-static void
-test_rsa (Test *test, gconstpointer unused)
-{
- GckAttributes *key, *cert;
- gconstpointer info;
- gsize n_info;
- guchar *fingerprint1, *fingerprint2, *fingerprint3;
- gsize n_fingerprint1, n_fingerprint2, n_fingerprint3;
-
- key = parse_attributes_for_key (test->key_rsa, test->n_key_rsa);
- info = parse_subject_public_key_info_for_cert (test->cert_rsa, test->n_cert_rsa, &n_info);
- cert = build_attributes_for_cert (test->cert_rsa, test->n_cert_rsa);
-
- fingerprint1 = gcr_fingerprint_from_subject_public_key_info (info, n_info, G_CHECKSUM_SHA1, &n_fingerprint1);
- fingerprint2 = gcr_fingerprint_from_attributes (key, G_CHECKSUM_SHA1, &n_fingerprint2);
- fingerprint3 = gcr_fingerprint_from_attributes (cert, G_CHECKSUM_SHA1, &n_fingerprint3);
-
- egg_assert_cmpmem (fingerprint1, n_fingerprint1, ==, fingerprint2, n_fingerprint2);
- egg_assert_cmpmem (fingerprint1, n_fingerprint1, ==, fingerprint3, n_fingerprint3);
-
- g_free (fingerprint1);
- g_free (fingerprint2);
- g_free (fingerprint3);
-
- gck_attributes_unref (key);
- gck_attributes_unref (cert);
-}
-
-static void
-test_dsa (Test *test, gconstpointer unused)
-{
- GckAttributes *key, *cert;
- gconstpointer info;
- gsize n_info;
- guchar *fingerprint1, *fingerprint2, *fingerprint3;
- gsize n_fingerprint1, n_fingerprint2, n_fingerprint3;
-
- key = parse_attributes_for_key (test->key_dsa, test->n_key_dsa);
- info = parse_subject_public_key_info_for_cert (test->cert_dsa, test->n_cert_dsa, &n_info);
- cert = build_attributes_for_cert (test->cert_dsa, test->n_cert_dsa);
-
- fingerprint1 = gcr_fingerprint_from_subject_public_key_info (info, n_info, G_CHECKSUM_SHA1, &n_fingerprint1);
- fingerprint2 = gcr_fingerprint_from_attributes (key, G_CHECKSUM_SHA1, &n_fingerprint2);
- fingerprint3 = gcr_fingerprint_from_attributes (cert, G_CHECKSUM_SHA1, &n_fingerprint3);
-
- egg_assert_cmpmem (fingerprint1, n_fingerprint1, ==, fingerprint2, n_fingerprint2);
- egg_assert_cmpmem (fingerprint1, n_fingerprint1, ==, fingerprint3, n_fingerprint3);
-
- g_free (fingerprint1);
- g_free (fingerprint2);
- g_free (fingerprint3);
-
- gck_attributes_unref (key);
- gck_attributes_unref (cert);
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
-
- g_test_add ("/gcr/fingerprint/rsa", Test, NULL, setup, test_rsa, teardown);
- g_test_add ("/gcr/fingerprint/dsa", Test, NULL, setup, test_dsa, teardown);
-
- return g_test_run ();
-}
diff --git a/gcr/tests/test-gnupg-collection.c b/gcr/tests/test-gnupg-collection.c
deleted file mode 100644
index c8304a78..00000000
--- a/gcr/tests/test-gnupg-collection.c
+++ /dev/null
@@ -1,222 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/*
- Copyright (C) 2010 Collabora Ltd
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gcr/gcr-base.h"
-#include "gcr/gcr-gnupg-collection.h"
-#include "gcr/gcr-gnupg-key.h"
-#include "gcr/gcr-record.h"
-
-#include "egg/egg-testing.h"
-
-#include <glib.h>
-
-#include <errno.h>
-#include <string.h>
-
-typedef struct {
- GcrGnupgCollection *collection;
- gchar *directory;
- GHashTable *keys;
- GAsyncResult *result;
-} Test;
-
-static void
-on_collection_added (GcrCollection *collection, GObject *object, gpointer user_data)
-{
- Test *test = user_data;
- GcrGnupgKey *key;
- const gchar *keyid;
-
- g_assert (GCR_COLLECTION (test->collection) == collection);
-
- g_assert (GCR_IS_GNUPG_KEY (object));
- key = GCR_GNUPG_KEY (object);
-
- keyid = _gcr_gnupg_key_get_keyid (key);
- g_assert (keyid);
- g_assert (!g_hash_table_lookup (test->keys, keyid));
-
- g_hash_table_insert (test->keys, g_strdup (keyid), key);
-}
-
-static void
-on_collection_removed (GcrCollection *collection, GObject *object, gpointer user_data)
-{
- Test *test = user_data;
- GcrGnupgKey *key;
- const gchar *keyid;
-
- g_assert (GCR_COLLECTION (test->collection) == collection);
- g_assert (GCR_IS_GNUPG_KEY (object));
-
- keyid = _gcr_gnupg_key_get_keyid (GCR_GNUPG_KEY (object));
- key = g_hash_table_lookup (test->keys, keyid);
- g_assert (key == GCR_GNUPG_KEY (object));
-
- if (!g_hash_table_remove (test->keys, keyid))
- g_assert_not_reached ();
-}
-
-static void
-setup (Test *test, gconstpointer unused)
-{
- GcrCollection *collection;
-
- test->directory = g_build_filename (SRCDIR, "files", "gnupg-homedir", NULL);
-
- collection = _gcr_gnupg_collection_new (test->directory);
- test->collection = GCR_GNUPG_COLLECTION (collection);
-
- test->keys = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
- g_signal_connect (collection, "added", G_CALLBACK (on_collection_added), test);
- g_signal_connect (collection, "removed", G_CALLBACK (on_collection_removed), test);
-}
-
-static void
-teardown (Test *test, gconstpointer unused)
-{
- g_hash_table_destroy (test->keys);
-
- if (test->result)
- g_object_unref (test->result);
-
- g_object_unref (test->collection);
- g_free (test->directory);
-}
-
-static void
-on_async_ready (GObject *source, GAsyncResult *res, gpointer user_data)
-{
- Test *test = user_data;
- g_assert (G_OBJECT (test->collection) == source);
- g_assert (test->result == NULL);
- test->result = g_object_ref (res);
- egg_test_wait_stop ();
-}
-
-static void
-test_properties (Test *test, gconstpointer unused)
-{
- gchar *directory;
- g_object_get (test->collection, "directory", &directory, NULL);
- g_assert_cmpstr (directory, ==, test->directory);
- g_free (directory);
-}
-
-static void
-test_load (Test *test, gconstpointer unused)
-{
- GError *error = NULL;
- GcrGnupgKey *key;
- GList *l, *objects;
- GcrRecord *record;
- GHashTable *check;
-
- _gcr_gnupg_collection_load_async (test->collection, NULL, on_async_ready, test);
- egg_test_wait_until (500000);
-
- g_assert (test->result);
- _gcr_gnupg_collection_load_finish (test->collection, test->result, &error);
- g_assert_no_error (error);
-
- /* Werner Koch (a public key) */
- key = g_hash_table_lookup (test->keys, "5DE249965B0358A2");
- g_assert (GCR_IS_GNUPG_KEY (key));
- g_assert (_gcr_gnupg_key_get_secret_records (key) == NULL);
-
- /* Test Number 2 (a secret key)*/
- key = g_hash_table_lookup (test->keys, "268FEE686262C395");
- g_assert (GCR_IS_GNUPG_KEY (key));
- g_assert (_gcr_gnupg_key_get_secret_records (key));
-
- /* The length of collection should be correct */
- g_assert_cmpuint (g_hash_table_size (test->keys), ==,
- gcr_collection_get_length (GCR_COLLECTION (test->collection)));
-
- /* The list of objects should be correct */
- objects = gcr_collection_get_objects (GCR_COLLECTION (test->collection));
- g_assert_cmpuint (g_hash_table_size (test->keys), ==, g_list_length (objects));
- check = g_hash_table_new (g_str_hash, g_str_equal);
- for (l = objects; l != NULL; l = g_list_next (l)) {
- g_assert (GCR_IS_GNUPG_KEY (l->data));
- key = g_hash_table_lookup (test->keys, _gcr_gnupg_key_get_keyid (l->data));
- g_assert (key == l->data);
- g_hash_table_replace (check, (gchar*)_gcr_gnupg_key_get_keyid (l->data), "");
- }
- g_assert_cmpuint (g_hash_table_size (check), ==, g_hash_table_size (test->keys));
- g_hash_table_destroy (check);
- g_list_free (objects);
-
- /* Phillip R. Zimmerman's key should have a photo */
- key = g_hash_table_lookup (test->keys, "C7463639B2D7795E");
- g_assert (GCR_IS_GNUPG_KEY (key));
- record = _gcr_records_find (_gcr_gnupg_key_get_public_records (key), GCR_RECORD_SCHEMA_XA1);
- g_assert (record);
-}
-
-static void
-test_reload (Test *test, gconstpointer unused)
-{
- GError *error = NULL;
- GcrGnupgKey *key;
-
- _gcr_gnupg_collection_load_async (test->collection, NULL, on_async_ready, test);
- egg_test_wait_until (500);
- g_assert (test->result);
- _gcr_gnupg_collection_load_finish (test->collection, test->result, &error);
- g_assert_no_error (error);
-
- g_object_unref (test->result);
- test->result = NULL;
-
- _gcr_gnupg_collection_load_async (test->collection, NULL, on_async_ready, test);
- egg_test_wait_until (500000);
- g_assert (test->result);
- _gcr_gnupg_collection_load_finish (test->collection, test->result, &error);
- g_assert_no_error (error);
-
- /* Werner Koch (a public key) */
- key = g_hash_table_lookup (test->keys, "5DE249965B0358A2");
- g_assert (GCR_IS_GNUPG_KEY (key));
- g_assert (_gcr_gnupg_key_get_secret_records (key) == NULL);
-
- /* Test Number 2 (a secret key)*/
- key = g_hash_table_lookup (test->keys, "268FEE686262C395");
- g_assert (GCR_IS_GNUPG_KEY (key));
- g_assert (_gcr_gnupg_key_get_secret_records (key));
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
- g_set_prgname ("test-gnupg-collection");
-
- g_test_add ("/gcr/gnupg-collection/properties", Test, NULL, setup, test_properties, teardown);
- g_test_add ("/gcr/gnupg-collection/load", Test, NULL, setup, test_load, teardown);
- g_test_add ("/gcr/gnupg-collection/reload", Test, NULL, setup, test_reload, teardown);
-
- return egg_tests_run_in_thread_with_loop ();
-}
diff --git a/gcr/tests/test-gnupg-key.c b/gcr/tests/test-gnupg-key.c
deleted file mode 100644
index 59008041..00000000
--- a/gcr/tests/test-gnupg-key.c
+++ /dev/null
@@ -1,228 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/*
- Copyright (C) 2011 Collabora Ltd
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gcr/gcr-record.h"
-#include "gcr/gcr-gnupg-key.h"
-#include "gcr/gcr-gnupg-records.h"
-
-#include "egg/egg-testing.h"
-
-#include <glib.h>
-
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-
-typedef struct {
- GPtrArray *records;
- GPtrArray *pubset;
- GPtrArray *secset;
- GcrGnupgKey *key;
-} Test;
-
-static void
-setup (Test *test, gconstpointer unused)
-{
- GPtrArray *records;
-
- records = g_ptr_array_new_with_free_func (_gcr_record_free);
- g_ptr_array_add (records, _gcr_record_parse_colons ("pub:f:1024:17:6C7EE1B8621CC013:899817715:1055898235::m:::scESC:", -1));
- g_ptr_array_add (records, _gcr_record_parse_colons ("fpr:::::::::ECAF7590EB3443B5C7CF3ACB6C7EE1B8621CC013:", -1));
- g_ptr_array_add (records, _gcr_record_parse_colons ("uid:f::::::::Werner Koch <wk@g10code.com>:\n", -1));
- g_ptr_array_add (records, _gcr_record_parse_colons ("uid:f::::::::Werner Koch <wk@gnupg.org>:\n", -1));
- g_ptr_array_add (records, _gcr_record_parse_colons ("sub:f:1536:16:06AD222CADF6A6E1:919537416:1036177416:::::e:\n", -1));
- g_ptr_array_add (records, _gcr_record_parse_colons ("fpr:::::::::CF8BCC4B18DE08FCD8A1615906AD222CADF6A6E1:\n", -1));
- g_ptr_array_add (records, _gcr_record_parse_colons ("sub:r:1536:20:5CE086B5B5A18FF4:899817788:1025961788:::::esc:\n", -1));
- g_ptr_array_add (records, _gcr_record_parse_colons ("fpr:::::::::AB059359A3B81F410FCFF97F5CE086B5B5A18FF4:", -1));
- test->records = records;
-
- test->key = _gcr_gnupg_key_new (records, NULL);
-
- records = g_ptr_array_new_with_free_func (_gcr_record_free);
- g_ptr_array_add (records, _gcr_record_parse_colons ("pub:u:2048:1:4842D952AFC000FD:1305189489:::u:::scESC:", -1));
- g_ptr_array_add (records, _gcr_record_parse_colons ("uid:u::::1305189849::D0A8FA7B15DC4BE3F8F03A49C372F2718C78AFC0::Dr. Strangelove <lovingbomb@example.com>:", -1));
- g_ptr_array_add (records, _gcr_record_parse_colons ("uid:u::::1305189489::D449F1605254754B0BBFA424FC34E50609103BBB::Test Number 1 (unlimited) <test-number-1@example.com>:", -1));
- g_ptr_array_add (records, _gcr_record_parse_colons ("sub:u:2048:1:4852132BBED15014:1305189489::::::e:", -1));
- test->pubset = records;
-
- records = g_ptr_array_new_with_free_func (_gcr_record_free);
- g_ptr_array_add (records, _gcr_record_parse_colons ("sec::2048:1:4842D952AFC000FD:1305189489::::::::::", -1));
- g_ptr_array_add (records, _gcr_record_parse_colons ("uid:::::::D449F1605254754B0BBFA424FC34E50609103BBB::Test Number 1 (unlimited) <test-number-1@example.com>:", -1));
- g_ptr_array_add (records, _gcr_record_parse_colons ("uid:::::::D0A8FA7B15DC4BE3F8F03A49C372F2718C78AFC0::Dr. Strangelove <lovingbomb@example.com>:", -1));
- g_ptr_array_add (records, _gcr_record_parse_colons ("ssb::2048:1:4852132BBED15014:1305189489::::::::::", -1));
- test->secset = records;
-}
-
-static void
-teardown (Test *test, gconstpointer unused)
-{
- g_object_unref (test->key);
- g_assert (!GCR_IS_GNUPG_KEY (test->key));
-
- g_ptr_array_unref (test->records);
- g_ptr_array_unref (test->pubset);
- g_ptr_array_unref (test->secset);
-}
-
-static void
-test_label (Test *test, gconstpointer unused)
-{
- gchar *label;
-
- g_object_get (test->key, "label", &label, NULL);
- g_assert_cmpstr (label, ==, "Werner Koch <wk@g10code.com>");
-
- g_free (label);
-}
-
-static void
-test_markup (Test *test, gconstpointer unused)
-{
- gchar *markup;
-
- g_object_get (test->key, "markup", &markup, NULL);
- g_assert_cmpstr (markup, ==, "Werner Koch\n<small>wk@g10code.com</small>");
-
- g_free (markup);
-}
-
-static void
-test_description (Test *test, gconstpointer unused)
-{
- gchar *description;
-
- g_object_get (test->key, "description", &description, NULL);
- g_assert_cmpstr (description, ==, "PGP Key");
-
- g_free (description);
-}
-
-static void
-test_records (Test *test, gconstpointer unused)
-{
- GPtrArray *records;
-
- g_object_get (test->key, "public-records", &records, NULL);
- g_assert (records == test->records);
-
- _gcr_gnupg_key_set_public_records (test->key, records);
- g_assert (records == _gcr_gnupg_key_get_public_records (test->key));
-
- g_ptr_array_unref (records);
-}
-
-static void
-test_keyid (Test *test, gconstpointer unused)
-{
- gchar *keyid;
-
- g_object_get (test->key, "keyid", &keyid, NULL);
- g_assert_cmpstr (keyid, ==, "6C7EE1B8621CC013");
-
- g_free (keyid);
-
- g_assert_cmpstr (_gcr_gnupg_key_get_keyid (test->key), ==, "6C7EE1B8621CC013");
-}
-
-static void
-test_short_keyid (Test *test, gconstpointer unused)
-{
- gchar *keyid;
-
- g_object_get (test->key, "short-keyid", &keyid, NULL);
- g_assert_cmpstr (keyid, ==, "621CC013");
-
- g_free (keyid);
-}
-
-static void
-test_keyid_for_records (Test *test, gconstpointer unused)
-{
- const gchar *keyid;
-
- keyid = _gcr_gnupg_records_get_keyid (test->records);
- g_assert_cmpstr (keyid, ==, "6C7EE1B8621CC013");
-}
-
-static void
-test_with_secret (Test *test, gconstpointer unused)
-{
- GcrGnupgKey *key;
- GPtrArray *secset;
-
- key = _gcr_gnupg_key_new (test->pubset, test->secset);
- g_assert (GCR_IS_GNUPG_KEY (key));
-
- g_object_get (key, "secret-records", &secset, NULL);
- g_assert (secset == _gcr_gnupg_key_get_secret_records (key));
- g_object_set (key, "secret-records", secset, NULL);
-
- g_object_unref (key);
-}
-
-static void
-test_no_change_keyid (Test *test, gconstpointer unused)
-{
- if (g_test_trap_fork (50000, G_TEST_TRAP_SILENCE_STDERR)) {
- /* Changing the keyid. This should fail with a warning */
- _gcr_gnupg_key_set_public_records (test->key, test->pubset);
- exit (0);
- }
-
- g_test_trap_assert_failed ();
- g_test_trap_assert_stderr ("*fingerprint is no longer the same:*");
-}
-
-static void
-test_secret_mismatched_keyid (Test *test, gconstpointer unused)
-{
- if (g_test_trap_fork (50000, G_TEST_TRAP_SILENCE_STDERR)) {
- /* Different keyid for secret part. This should fail with a warning */
- _gcr_gnupg_key_set_secret_records (test->key, test->secset);
- exit (0);
- }
-
- g_test_trap_assert_failed ();
- g_test_trap_assert_stderr ("*pub and sec parts are not the same:*");
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
-
- g_test_add ("/gcr/gnupg-key/label", Test, NULL, setup, test_label, teardown);
- g_test_add ("/gcr/gnupg-key/description", Test, NULL, setup, test_description, teardown);
- g_test_add ("/gcr/gnupg-key/markup", Test, NULL, setup, test_markup, teardown);
- g_test_add ("/gcr/gnupg-key/records", Test, NULL, setup, test_records, teardown);
- g_test_add ("/gcr/gnupg-key/keyid", Test, NULL, setup, test_keyid, teardown);
- g_test_add ("/gcr/gnupg-key/short_keyid", Test, NULL, setup, test_short_keyid, teardown);
- g_test_add ("/gcr/gnupg-key/keyid_for_records", Test, NULL, setup, test_keyid_for_records, teardown);
- g_test_add ("/gcr/gnupg-key/with_secret", Test, NULL, setup, test_with_secret, teardown);
- g_test_add ("/gcr/gnupg-key/no_change_keyid", Test, NULL, setup, test_no_change_keyid, teardown);
- g_test_add ("/gcr/gnupg-key/secret_mismatched_keyid", Test, NULL, setup, test_secret_mismatched_keyid, teardown);
-
- return g_test_run ();
-}
diff --git a/gcr/tests/test-gnupg-process.c b/gcr/tests/test-gnupg-process.c
deleted file mode 100644
index 740b2329..00000000
--- a/gcr/tests/test-gnupg-process.c
+++ /dev/null
@@ -1,600 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/*
- Copyright (C) 2011 Collabora Ltd
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gcr/gcr-base.h"
-#include "gcr/gcr-callback-output-stream.h"
-#include "gcr/gcr-gnupg-process.h"
-
-#include "egg/egg-testing.h"
-
-#include <glib.h>
-
-#include <errno.h>
-#include <string.h>
-
-#define WAIT 50000
-
-typedef struct {
- GcrGnupgProcess *process;
- GAsyncResult *result;
- GString *output_buf;
- GString *error_buf;
- GString *attribute_buf;
- GcrRecord *record;
-} Test;
-
-static void
-setup (Test *test, gconstpointer unused)
-{
- test->output_buf = g_string_new ("");
- test->error_buf = g_string_new ("");
- test->attribute_buf = g_string_new ("");
-}
-
-static void
-teardown (Test *test, gconstpointer unused)
-{
- g_assert (!test->result);
- g_assert (!test->process);
- if (test->output_buf)
- g_string_free (test->output_buf, TRUE);
- if (test->error_buf)
- g_string_free (test->error_buf, TRUE);
- if (test->attribute_buf)
- g_string_free (test->attribute_buf, TRUE);
- _gcr_record_free (test->record);
-}
-
-static void
-test_create (Test *test, gconstpointer unused)
-{
- gchar *value;
-
- test->process = _gcr_gnupg_process_new ("/the/directory", "/path/to/executable");
-
- g_object_get (test->process, "directory", &value, NULL);
- g_assert_cmpstr (value, ==, "/the/directory");
- g_free (value);
-
- g_object_get (test->process, "executable", &value, NULL);
- g_assert_cmpstr (value, ==, "/path/to/executable");
- g_free (value);
-
- g_clear_object (&test->process);
-}
-
-static void
-on_async_ready (GObject *source, GAsyncResult *result, gpointer user_data)
-{
- Test *test = user_data;
-
- g_assert (G_OBJECT (test->process) == source);
- g_assert (test->result == NULL);
- g_assert (g_async_result_get_source_object (result) == source);
-
- test->result = g_object_ref (result);
- egg_test_wait_stop ();
-}
-
-static gchar*
-build_script_path (const gchar *name)
-{
- gchar *path;
-
- path = g_build_filename (SRCDIR, "files", "gnupg-mock", name, NULL);
-
- return path;
-}
-
-static gssize
-on_process_output_data (gconstpointer buffer,
- gsize count,
- GCancellable *cancellable,
- gpointer user_data,
- GError **error)
-{
- Test *test = user_data;
- g_string_append_len (test->output_buf, buffer, count);
- return count;
-}
-
-static gssize
-on_process_attribute_data (gconstpointer buffer,
- gsize count,
- GCancellable *cancellable,
- gpointer user_data,
- GError **error)
-{
- Test *test = user_data;
- g_string_append_len (test->attribute_buf, buffer, count);
- return count;
-}
-
-static void
-on_process_error_line (GcrGnupgProcess *process, const gchar *line, gpointer user_data)
-{
- Test *test = user_data;
-
- g_assert (process == test->process);
- g_assert (line);
- g_assert (!strchr (line, '\n'));
-
- g_string_append_printf (test->error_buf, "%s\n", line);
-}
-
-static void
-on_process_status_record (GcrGnupgProcess *process, GcrRecord *record, gpointer user_data)
-{
- Test *test = user_data;
-
- g_assert (process == test->process);
- g_assert (record);
-
- g_assert (!test->record);
- test->record = _gcr_record_copy (record);
-}
-
-static void
-test_run_simple_output (Test *test, gconstpointer unused)
-{
- const gchar *argv[] = { NULL };
- GOutputStream *output;
- GError *error = NULL;
- gboolean ret;
- gchar *script;
-
- script = build_script_path ("mock-simple-output");
- test->process = _gcr_gnupg_process_new (NULL, script);
- g_free (script);
-
- output = _gcr_callback_output_stream_new (on_process_output_data, test, NULL);
- _gcr_gnupg_process_set_output_stream (test->process, output);
- g_object_unref (output);
-
- _gcr_gnupg_process_run_async (test->process, argv, NULL, 0, NULL, on_async_ready, test);
- egg_test_wait_until (WAIT);
-
- g_assert (test->result);
- ret = _gcr_gnupg_process_run_finish (test->process, test->result, &error);
- g_assert_no_error (error);
- g_assert (ret == TRUE);
-
- g_assert_cmpstr ("simple-output\n", ==, test->output_buf->str);
-
- g_clear_object (&test->result);
- g_clear_object (&test->process);
-}
-
-static void
-test_run_simple_error (Test *test, gconstpointer unused)
-{
- const gchar *argv[] = { NULL };
- GError *error = NULL;
- gchar *script;
- gboolean ret;
-
- script = build_script_path ("mock-simple-error");
- test->process = _gcr_gnupg_process_new (NULL, script);
- g_free (script);
-
- g_signal_connect (test->process, "error-line", G_CALLBACK (on_process_error_line), test);
-
- _gcr_gnupg_process_run_async (test->process, argv, NULL, 0, NULL, on_async_ready, test);
- egg_test_wait_until (WAIT);
-
- g_assert (test->result);
- ret = _gcr_gnupg_process_run_finish (test->process, test->result, &error);
- g_assert_no_error (error);
- g_assert (ret == TRUE);
-
- g_assert_cmpstr ("line 1: more line 1\nline 2\nline 3\n", ==, test->error_buf->str);
-
- g_clear_object (&test->result);
- g_clear_object (&test->process);
-}
-
-static void
-test_run_status_and_output (Test *test, gconstpointer unused)
-{
- const gchar *argv[] = { NULL };
- GOutputStream *output;
- GError *error = NULL;
- gchar *script;
- gboolean ret;
-
- script = build_script_path ("mock-status-and-output");
- test->process = _gcr_gnupg_process_new (NULL, script);
- g_free (script);
-
- output = _gcr_callback_output_stream_new (on_process_output_data, test, NULL);
- _gcr_gnupg_process_set_output_stream (test->process, output);
- g_object_unref (output);
-
- g_signal_connect (test->process, "status-record", G_CALLBACK (on_process_status_record), test);
-
- _gcr_gnupg_process_run_async (test->process, argv, NULL, GCR_GNUPG_PROCESS_WITH_STATUS,
- NULL, on_async_ready, test);
- egg_test_wait_until (WAIT);
-
- g_assert (test->result);
- ret = _gcr_gnupg_process_run_finish (test->process, test->result, &error);
- g_assert_no_error (error);
- g_assert (ret == TRUE);
-
- g_assert (test->record);
- g_assert_cmpstr (_gcr_record_get_raw (test->record, 0), ==, "SCHEMA");
- g_assert_cmpstr (_gcr_record_get_raw (test->record, 1), ==, "one");
- g_assert_cmpstr (_gcr_record_get_raw (test->record, 2), ==, "two");
- g_assert_cmpstr (_gcr_record_get_raw (test->record, 3), ==, "three");
- g_assert_cmpstr (_gcr_record_get_raw (test->record, 4), ==, "four");
- g_assert_cmpstr (_gcr_record_get_raw (test->record, 5), ==, NULL);
- g_assert_cmpstr ("Here's some output\nMore output\n", ==, test->output_buf->str);
-
- g_clear_object (&test->result);
- g_clear_object (&test->process);
-}
-
-static void
-test_run_status_and_attribute (Test *test, gconstpointer unused)
-{
- const gchar *argv[] = { NULL };
- GOutputStream *output;
- GError *error = NULL;
- gchar *script;
- gboolean ret;
-
- script = build_script_path ("mock-status-and-attribute");
- test->process = _gcr_gnupg_process_new (NULL, script);
- g_free (script);
-
- output = _gcr_callback_output_stream_new (on_process_attribute_data, test, NULL);
- _gcr_gnupg_process_set_attribute_stream (test->process, output);
- g_object_unref (output);
-
- g_signal_connect (test->process, "status-record", G_CALLBACK (on_process_status_record), test);
-
- _gcr_gnupg_process_run_async (test->process, argv, NULL,
- GCR_GNUPG_PROCESS_WITH_STATUS | GCR_GNUPG_PROCESS_WITH_ATTRIBUTES,
- NULL, on_async_ready, test);
- egg_test_wait_until (WAIT);
-
- g_assert (test->result);
- ret = _gcr_gnupg_process_run_finish (test->process, test->result, &error);
- g_assert_no_error (error);
- g_assert (ret == TRUE);
-
- g_assert (test->record);
- g_assert_cmpstr (_gcr_record_get_raw (test->record, 0), ==, "SCHEMA");
- g_assert_cmpstr (_gcr_record_get_raw (test->record, 1), ==, "one");
- g_assert_cmpstr (_gcr_record_get_raw (test->record, 2), ==, "two");
- g_assert_cmpstr (_gcr_record_get_raw (test->record, 3), ==, "three");
- g_assert_cmpstr (_gcr_record_get_raw (test->record, 4), ==, "four");
- g_assert_cmpstr (_gcr_record_get_raw (test->record, 5), ==, NULL);
- g_assert_cmpstr ("1lc923g4laoeurc23rc241lcg2r23c4gr3", ==, test->attribute_buf->str);
-
- g_clear_object (&test->result);
- g_clear_object (&test->process);
-}
-
-
-static void
-test_run_arguments_and_environment (Test *test, gconstpointer unused)
-{
- GError *error = NULL;
- GOutputStream *output;
- gchar *script;
- gboolean ret;
-
- const gchar *argv[] = {
- "-1", "value1",
- "-2", "value2",
- NULL
- };
-
- const gchar *envp[] = {
- "ENVIRON1=VALUE1",
- "ENVIRON2=VALUE2",
- NULL
- };
-
- script = build_script_path ("mock-arguments-environ");
- test->process = _gcr_gnupg_process_new (NULL, script);
- g_free (script);
-
- output = _gcr_callback_output_stream_new (on_process_output_data, test, NULL);
- _gcr_gnupg_process_set_output_stream (test->process, output);
- g_object_unref (output);
-
- g_signal_connect (test->process, "error-line", G_CALLBACK (on_process_error_line), test);
-
- _gcr_gnupg_process_run_async (test->process, argv, envp, 0, NULL, on_async_ready, test);
- egg_test_wait_until (WAIT);
-
- g_assert (test->result);
- ret = _gcr_gnupg_process_run_finish (test->process, test->result, &error);
- if (error) {
- g_printerr ("%s\n", test->error_buf->str);
- g_assert_no_error (error);
- }
- g_assert (ret == TRUE);
-
- g_assert_cmpstr ("value1\nvalue2\n", ==, test->output_buf->str);
- g_assert_cmpstr ("VALUE1VALUE2\n", ==, test->error_buf->str);
-
- g_clear_object (&test->result);
- g_clear_object (&test->process);
-}
-
-static void
-test_run_with_homedir (Test *test, gconstpointer unused)
-{
- const gchar *argv[] = { NULL };
- GOutputStream *output;
- GError *error = NULL;
- gchar *script;
- gchar *check;
- gboolean ret;
-
- script = build_script_path ("mock-with-homedir");
- test->process = _gcr_gnupg_process_new (SRCDIR, script);
- g_free (script);
-
- output = _gcr_callback_output_stream_new (on_process_output_data, test, NULL);
- _gcr_gnupg_process_set_output_stream (test->process, output);
- g_object_unref (output);
-
- _gcr_gnupg_process_run_async (test->process, argv, NULL, 0, NULL, on_async_ready, test);
- egg_test_wait_until (WAIT);
-
- g_assert (test->result);
- ret = _gcr_gnupg_process_run_finish (test->process, test->result, &error);
- g_assert_no_error (error);
- g_assert (ret == TRUE);
-
- check = g_strdup_printf ("DIR: %s\n", SRCDIR);
- g_assert_cmpstr (check, ==, test->output_buf->str);
- g_free (check);
-
- g_clear_object (&test->result);
- g_clear_object (&test->process);
-}
-
-static void
-test_run_with_input_and_output (Test *test,
- gconstpointer unused)
-{
- const gchar *argv[] = { NULL };
- const gchar *data = "one\ntwenty two\nthree\nfourty four\n";
- GInputStream *input;
- GOutputStream *output;
- GError *error = NULL;
- GString *string;
- gchar *script;
- gboolean ret;
-
- script = build_script_path ("mock-echo");
- test->process = _gcr_gnupg_process_new (SRCDIR, script);
- g_free (script);
-
- input = g_memory_input_stream_new_from_data ((gpointer)data, -1, NULL);
- output = g_memory_output_stream_new (NULL, 0, g_realloc, g_free);
-
- _gcr_gnupg_process_set_input_stream (test->process, input);
- _gcr_gnupg_process_set_output_stream (test->process, output);
-
- _gcr_gnupg_process_run_async (test->process, argv, NULL, 0, NULL, on_async_ready, test);
- egg_test_wait_until (WAIT);
-
- g_assert (test->result);
- ret = _gcr_gnupg_process_run_finish (test->process, test->result, &error);
- g_assert_no_error (error);
- g_assert (ret == TRUE);
-
- string = g_string_new_len (g_memory_output_stream_get_data (G_MEMORY_OUTPUT_STREAM (output)),
- g_memory_output_stream_get_data_size (G_MEMORY_OUTPUT_STREAM (output)));
- g_assert_cmpstr (data, ==, string->str);
- g_string_free (string, TRUE);
-
- g_clear_object (&input);
- g_clear_object (&output);
- g_clear_object (&test->result);
- g_clear_object (&test->process);
-
-}
-
-static void
-test_run_bad_executable (Test *test, gconstpointer unused)
-{
- GError *error = NULL;
- gchar *script;
- const gchar *argv[] = { NULL };
- gboolean ret;
-
- script = build_script_path ("mock-invalid");
- test->process = _gcr_gnupg_process_new (NULL, script);
- g_free (script);
-
- _gcr_gnupg_process_run_async (test->process, argv, NULL, 0, NULL, on_async_ready, test);
- egg_test_wait_until (WAIT);
-
- g_assert (test->result);
- ret = _gcr_gnupg_process_run_finish (test->process, test->result, &error);
- g_assert_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_NOENT);
- g_clear_error (&error);
- g_assert (ret == FALSE);
-
- g_clear_object (&test->result);
- g_clear_object (&test->process);
-}
-
-static void
-test_run_fail_exit (Test *test, gconstpointer unused)
-{
- GError *error = NULL;
- gchar *script;
- const gchar *argv[] = { "55" };
- gboolean ret;
-
- script = build_script_path ("mock-fail-exit");
- test->process = _gcr_gnupg_process_new (NULL, script);
- g_free (script);
-
- _gcr_gnupg_process_run_async (test->process, argv, NULL, 0, NULL, on_async_ready, test);
- egg_test_wait_until (WAIT);
-
- g_assert (test->result);
- ret = _gcr_gnupg_process_run_finish (test->process, test->result, &error);
- g_assert_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED);
- g_assert_cmpstr (error->message, ==, "Gnupg process exited with code: 55");
- g_clear_error (&error);
- g_assert (ret == FALSE);
-
- g_clear_object (&test->result);
- g_clear_object (&test->process);
-}
-
-static void
-test_run_fail_signal (Test *test, gconstpointer unused)
-{
- GError *error = NULL;
- gchar *script;
- const gchar *argv[] = { "15" };
- gboolean ret;
-
- script = build_script_path ("mock-fail-signal");
- test->process = _gcr_gnupg_process_new (NULL, script);
- g_free (script);
-
- _gcr_gnupg_process_run_async (test->process, argv, NULL, 0, NULL, on_async_ready, test);
- egg_test_wait_until (WAIT);
-
- g_assert (test->result);
- ret = _gcr_gnupg_process_run_finish (test->process, test->result, &error);
- g_assert_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED);
- g_assert_cmpstr (error->message, ==, "Gnupg process was terminated with signal: 15");
- g_clear_error (&error);
- g_assert (ret == FALSE);
-
- g_clear_object (&test->result);
- g_clear_object (&test->process);
-}
-
-static void
-test_run_and_cancel (Test *test, gconstpointer unused)
-{
- GError *error = NULL;
- gchar *script;
- const gchar *argv[] = { "15" };
- GCancellable *cancellable;
- gboolean ret;
-
- cancellable = g_cancellable_new ();
-
- script = build_script_path ("mock-simple-output");
- test->process = _gcr_gnupg_process_new (NULL, script);
- g_free (script);
-
- _gcr_gnupg_process_run_async (test->process, argv, NULL, 0, cancellable, on_async_ready, test);
- g_cancellable_cancel (cancellable);
- egg_test_wait_until (WAIT);
-
- g_assert (test->result);
- ret = _gcr_gnupg_process_run_finish (test->process, test->result, &error);
- g_assert_error (error, G_IO_ERROR, G_IO_ERROR_CANCELLED);
- g_clear_error (&error);
- g_assert (ret == FALSE);
-
- g_object_unref (cancellable);
- g_clear_object (&test->result);
- g_clear_object (&test->process);
-}
-
-static gssize
-on_process_output_cancel (gconstpointer buffer,
- gsize count,
- GCancellable *cancellable,
- gpointer user_data,
- GError **error)
-{
- g_cancellable_cancel (cancellable);
- g_cancellable_set_error_if_cancelled (cancellable, error);
- return -1;
-}
-
-static void
-test_run_and_cancel_later (Test *test, gconstpointer unused)
-{
- GError *error = NULL;
- GOutputStream *output;
- gchar *script;
- const gchar *argv[] = { "15" };
- GCancellable *cancellable;
- gboolean ret;
-
- cancellable = g_cancellable_new ();
-
- script = build_script_path ("mock-simple-output");
- test->process = _gcr_gnupg_process_new (NULL, script);
- output = _gcr_callback_output_stream_new (on_process_output_cancel, NULL, NULL);
- _gcr_gnupg_process_set_output_stream (test->process, output);
- g_object_unref (output);
- g_free (script);
-
- _gcr_gnupg_process_run_async (test->process, argv, NULL, 0, cancellable, on_async_ready, test);
- egg_test_wait_until (WAIT);
-
- g_assert (test->result);
- ret = _gcr_gnupg_process_run_finish (test->process, test->result, &error);
- g_assert_error (error, G_IO_ERROR, G_IO_ERROR_CANCELLED);
- g_clear_error (&error);
- g_assert (ret == FALSE);
-
- g_object_unref (cancellable);
- g_clear_object (&test->result);
- g_clear_object (&test->process);
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
- g_set_prgname ("test-gnupg-process");
-
- g_test_add ("/gcr/gnupg-process/create", Test, NULL, setup, test_create, teardown);
- g_test_add ("/gcr/gnupg-process/run_simple_output", Test, NULL, setup, test_run_simple_output, teardown);
- g_test_add ("/gcr/gnupg-process/run_simple_error", Test, NULL, setup, test_run_simple_error, teardown);
- g_test_add ("/gcr/gnupg-process/run_status_and_output", Test, NULL, setup, test_run_status_and_output, teardown);
- g_test_add ("/gcr/gnupg-process/run_status_and_attribute", Test, NULL, setup, test_run_status_and_attribute, teardown);
- g_test_add ("/gcr/gnupg-process/run_arguments_and_environment", Test, NULL, setup, test_run_arguments_and_environment, teardown);
- g_test_add ("/gcr/gnupg-process/run_with_homedir", Test, NULL, setup, test_run_with_homedir, teardown);
- g_test_add ("/gcr/gnupg-process/run_with_input_and_output", Test, NULL, setup, test_run_with_input_and_output, teardown);
- g_test_add ("/gcr/gnupg-process/run_bad_executable", Test, NULL, setup, test_run_bad_executable, teardown);
- g_test_add ("/gcr/gnupg-process/run_fail_exit", Test, NULL, setup, test_run_fail_exit, teardown);
- g_test_add ("/gcr/gnupg-process/run_fail_signal", Test, NULL, setup, test_run_fail_signal, teardown);
- g_test_add ("/gcr/gnupg-process/run_and_cancel", Test, NULL, setup, test_run_and_cancel, teardown);
- g_test_add ("/gcr/gnupg-process/run_and_cancel_later", Test, NULL, setup, test_run_and_cancel_later, teardown);
-
- return egg_tests_run_in_thread_with_loop ();
-}
diff --git a/gcr/tests/test-memory-icon.c b/gcr/tests/test-memory-icon.c
deleted file mode 100644
index c232be19..00000000
--- a/gcr/tests/test-memory-icon.c
+++ /dev/null
@@ -1,206 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/*
- Copyright (C) 2011 Collabora Ltd
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gcr/gcr-memory-icon.h"
-
-#include "egg/egg-testing.h"
-
-#include <glib.h>
-
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-
-typedef struct {
- GIcon *icon;
- GAsyncResult *result;
-} Test;
-
-static const guint8 test_data[256] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
- 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
- 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
- 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
- 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
-};
-
-static void
-setup (Test *test, gconstpointer unused)
-{
- test->icon = _gcr_memory_icon_new ("application/octet-stream",
- test_data, sizeof (test_data));
-}
-
-static void
-teardown (Test *test, gconstpointer unused)
-{
- g_object_unref (test->icon);
- if (test->result)
- g_object_unref (test->result);
-}
-
-static void
-test_equal_same (Test *test, gconstpointer unused)
-{
- g_assert (g_icon_equal (test->icon, test->icon) == TRUE);
-}
-
-static void
-test_equal_not (Test *test, gconstpointer unused)
-{
- GIcon *icon;
-
- icon = g_themed_icon_new ("folder");
- g_assert (g_icon_equal (test->icon, icon) == FALSE);
- g_object_unref (icon);
-}
-
-static void
-test_equal_data (Test *test, gconstpointer unused)
-{
- GIcon *icon;
-
- icon = _gcr_memory_icon_new ("application/octet-stream",
- test_data, sizeof (test_data));
- g_assert (g_icon_equal (test->icon, icon) == TRUE);
- g_assert_cmpuint (g_icon_hash (test->icon), ==, g_icon_hash (icon));
- g_object_unref (icon);
-}
-
-static void
-test_different_type (Test *test, gconstpointer unused)
-{
- GIcon *icon;
-
- icon = _gcr_memory_icon_new ("application/x-other",
- test_data, sizeof (test_data));
- g_assert (g_icon_equal (test->icon, icon) == FALSE);
- g_assert_cmpuint (g_icon_hash (test->icon), !=, g_icon_hash (icon));
- g_object_unref (icon);
-}
-
-static void
-test_different_offset (Test *test, gconstpointer unused)
-{
- GIcon *icon;
-
- icon = _gcr_memory_icon_new_full ("application/octet-stream", (gpointer)test_data,
- sizeof (test_data) - 16, 16, NULL);
- g_assert (g_icon_equal (test->icon, icon) == FALSE);
- g_assert_cmpuint (g_icon_hash (test->icon), !=, g_icon_hash (icon));
- g_object_unref (icon);
-}
-
-static void
-test_load_sync (Test *test, gconstpointer unused)
-{
- GError *error = NULL;
- GInputStream *is;
- gchar buf[1024];
- gsize length;
- gchar *type;
-
- is = g_loadable_icon_load (G_LOADABLE_ICON (test->icon), 0, &type, NULL, &error);
- g_assert (is != NULL);
- g_assert_no_error (error);
- g_assert_cmpstr (type, ==, "application/octet-stream");
-
- if (!g_input_stream_read_all (is, buf, sizeof (buf), &length, NULL, &error))
- g_assert_not_reached ();
- g_assert_no_error (error);
- egg_assert_cmpsize (length, ==, sizeof (test_data));
- egg_assert_cmpmem (buf, length, ==, test_data, sizeof (test_data));
-
- g_free (type);
- g_object_unref (is);
-}
-
-static void
-on_async_ready (GObject *source, GAsyncResult *result, gpointer user_data)
-{
- Test *test = user_data;
-
- g_assert (G_OBJECT (test->icon) == source);
- g_assert (test->result == NULL);
- g_assert (g_async_result_get_source_object (result) == source);
-
- test->result = g_object_ref (result);
- egg_test_wait_stop ();
-}
-
-static void
-test_load_async (Test *test, gconstpointer unused)
-{
- GError *error = NULL;
- GInputStream *is;
- gchar buf[1024];
- gsize length;
- gchar *type;
-
- g_loadable_icon_load_async (G_LOADABLE_ICON (test->icon), 0, NULL, on_async_ready, test);
- egg_test_wait_until (500);
-
- g_assert (test->result);
- is = g_loadable_icon_load_finish (G_LOADABLE_ICON (test->icon), test->result, &type, &error);
- g_assert (is != NULL);
- g_assert_no_error (error);
- g_assert_cmpstr (type, ==, "application/octet-stream");
-
- if (!g_input_stream_read_all (is, buf, sizeof (buf), &length, NULL, &error))
- g_assert_not_reached ();
- g_assert_no_error (error);
- egg_assert_cmpsize (length, ==, sizeof (test_data));
- egg_assert_cmpmem (buf, length, ==, test_data, sizeof (test_data));
-
- g_free (type);
- g_object_unref (is);
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
-
- g_test_add ("/gcr/memory-icon/equal_same", Test, NULL, setup, test_equal_same, teardown);
- g_test_add ("/gcr/memory-icon/equal_not", Test, NULL, setup, test_equal_not, teardown);
- g_test_add ("/gcr/memory-icon/equal_data", Test, NULL, setup, test_equal_data, teardown);
- g_test_add ("/gcr/memory-icon/different_type", Test, NULL, setup, test_different_type, teardown);
- g_test_add ("/gcr/memory-icon/different_offset", Test, NULL, setup, test_different_offset, teardown);
- g_test_add ("/gcr/memory-icon/load_sync", Test, NULL, setup, test_load_sync, teardown);
- g_test_add ("/gcr/memory-icon/load_async", Test, NULL, setup, test_load_async, teardown);
-
- return egg_tests_run_in_thread_with_loop ();
-}
diff --git a/gcr/tests/test-openpgp.c b/gcr/tests/test-openpgp.c
deleted file mode 100644
index be41f407..00000000
--- a/gcr/tests/test-openpgp.c
+++ /dev/null
@@ -1,354 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/*
- Copyright (C) 2011 Collabora Ltd
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gcr/gcr.h"
-#include "gcr/gcr-openpgp.h"
-#include "gcr/gcr-record.h"
-
-#include "egg/egg-armor.h"
-#include "egg/egg-testing.h"
-
-#include <gcrypt.h>
-#include <glib.h>
-#include <string.h>
-
-typedef struct {
- const gchar *name;
- const gchar **records;
- const gchar *filename;
- const gchar *version;
- GcrOpenpgpParseFlags flags;
-} Fixture;
-
-static const gchar *werner_koch_records[] = {
- "pub:e:1024:17:68B7AB8957548DCD:899816990:1136043547::o:::sca:\n"
- "fpr:::::::::6BD9050FD8FC941B43412DCC68B7AB8957548DCD:\n"
- "uid:e::::1102866526::B712A25DC2ABEF1579696C2925859931078C2C3E::Werner Koch (gnupg sig) <dd9jn@gnu.org>:\n",
-
- "pub:e:1024:17:5DE249965B0358A2:921520361:1247335656::o:::sc:\n"
- "fpr:::::::::A4D94E92B0986AB5EE9DCD755DE249965B0358A2:\n"
- "uid:e::::1113145458::F5B5738FAFB7543A01BAB31A6D767FBC789FF8A8::Werner Koch <wk@gnupg.org>:\n"
- "uid:e::::1113145466::60095F7DAD08129CCE39E15BEB6BBE21937E3AA6::Werner Koch <wk@g10code.com>:\n"
- "uid:e::::921520362::392B892CF897AD0F03EB26343C4C20A48B36513E::Werner Koch:\n"
- "uid:e::::1113145466::3E000C0F7D13A3C57C633C16ABDC97F12EAF16C1::Werner Koch <werner@fsfe.org>:\n"
- "sub:e:1024:17:60784E94010A57ED:1079892559:1199124559:::::s:\n"
- "sub:e:2048:1:7299C628B604F148:1079892777:1136052777:::::e:\n"
- "sub:e:2048:1:35E52D69C3680A6E:1136137762:1199123362:::::e:\n",
-
- "pub:e:1024:1:53B620D01CE0C630:1136130759:1230738759::o:::sc:\n"
- "fpr:::::::::7B96D396E6471601754BE4DB53B620D01CE0C630:\n"
- "uid:e::::1136130760::142B958D9816ECF810DBB83BD257E5C7DB36C99A::Werner Koch (dist sig) <dd9jn@gnu.org>:\n",
-
- NULL
-};
-
-static const gchar *werner_sig_records[] = {
- "pub:e:1024:17:68B7AB8957548DCD:899816990:1136043547::o:::sca:\n"
- "fpr:::::::::6BD9050FD8FC941B43412DCC68B7AB8957548DCD:\n"
- "uid:e::::1102866526::B712A25DC2ABEF1579696C2925859931078C2C3E::Werner Koch (gnupg sig) <dd9jn@gnu.org>:\n"
- "sig:::17:68B7AB8957548DCD:1102866526:::::13x:\n",
-
- "pub:e:1024:17:5DE249965B0358A2:921520361:1247335656::o:::sc:\n"
- "fpr:::::::::A4D94E92B0986AB5EE9DCD755DE249965B0358A2:\n"
- "uid:e::::1113145458::F5B5738FAFB7543A01BAB31A6D767FBC789FF8A8::Werner Koch <wk@gnupg.org>:\n"
- "sig:::17:5DE249965B0358A2:1113145458:::::13x:\n"
- "uid:e::::1113145466::60095F7DAD08129CCE39E15BEB6BBE21937E3AA6::Werner Koch <wk@g10code.com>:\n"
- "sig:::17:5DE249965B0358A2:1113145466:::::13x:\n"
- "uid:e::::921520362::392B892CF897AD0F03EB26343C4C20A48B36513E::Werner Koch:\n"
- "sig:::17:5DE249965B0358A2:921520362:::::13x:\n"
- "uid:e::::1113145466::3E000C0F7D13A3C57C633C16ABDC97F12EAF16C1::Werner Koch <werner@fsfe.org>:\n"
- "sig:::17:5DE249965B0358A2:1113145466:::::13x:\n"
- "sub:e:1024:17:60784E94010A57ED:1079892559:1199124559:::::s:\n"
- "sig:::17:5DE249965B0358A2:1148562461:::::18x:\n"
- "sub:e:2048:1:7299C628B604F148:1079892777:1136052777:::::e:\n"
- "sig:::17:5DE249965B0358A2:1079892777:::::18x:\n"
- "sub:e:2048:1:35E52D69C3680A6E:1136137762:1199123362:::::e:\n"
- "sig:::17:5DE249965B0358A2:1136137762:::::18x:\n",
-
- "pub:e:1024:1:53B620D01CE0C630:1136130759:1230738759::o:::sc:\n"
- "fpr:::::::::7B96D396E6471601754BE4DB53B620D01CE0C630:\n"
- "uid:e::::1136130760::142B958D9816ECF810DBB83BD257E5C7DB36C99A::Werner Koch (dist sig) <dd9jn@gnu.org>:\n"
- "sig:::1:53B620D01CE0C630:1136130760:::::13x:\n",
-
- NULL
-};
-
-static const gchar *pubring_records[] = {
- "pub:o:2048:1:4842D952AFC000FD:1305189489:::o:::scSCE:\n"
- "fpr:::::::::61A6EA3E0115080227A32EC94842D952AFC000FD:\n"
- "uid:o::::1305189489::D449F1605254754B0BBFA424FC34E50609103BBB::Test Number 1 (unlimited) <test-number-1@example.com>:\n"
- "uid:o::::1305189849::D0A8FA7B15DC4BE3F8F03A49C372F2718C78AFC0::Dr. Strangelove <lovingbomb@example.com>:\n"
- "sub:o:2048:1:4852132BBED15014:1305189489::::::e:\n",
-
- "pub:e:1024:1:268FEE686262C395:1305189628:1305276028::o:::sc:\n"
- "fpr:::::::::A4853C22EA82C8ADC6692751268FEE686262C395:\n"
- "uid:e::::1305189628::2E9D48BD771DA765D2B48A0233D0E8F393F6E839::Test Number 2 (all gone) <test-number-2@example.com>:\n"
- "sub:e:1024:1:C5877FABF4772E4F:1305189628:1305276028:::::e:\n",
-
- "pub:e:1024:17:68B7AB8957548DCD:899816990:1136043547::o:::sca:\n"
- "fpr:::::::::6BD9050FD8FC941B43412DCC68B7AB8957548DCD:\n"
- "uid:e::::1102866526::B712A25DC2ABEF1579696C2925859931078C2C3E::Werner Koch (gnupg sig) <dd9jn@gnu.org>:\n",
-
- "pub:e:1024:17:5DE249965B0358A2:921520361:1247335656::o:::sc:\n"
- "fpr:::::::::A4D94E92B0986AB5EE9DCD755DE249965B0358A2:\n"
- "uid:e::::1113145458::F5B5738FAFB7543A01BAB31A6D767FBC789FF8A8::Werner Koch <wk@gnupg.org>:\n"
- "uid:e::::1113145466::60095F7DAD08129CCE39E15BEB6BBE21937E3AA6::Werner Koch <wk@g10code.com>:\n"
- "uid:e::::921520362::392B892CF897AD0F03EB26343C4C20A48B36513E::Werner Koch:\n"
- "uid:e::::1113145466::3E000C0F7D13A3C57C633C16ABDC97F12EAF16C1::Werner Koch <werner@fsfe.org>:\n"
- "sub:e:1024:17:60784E94010A57ED:1079892559:1199124559:::::s:\n"
- "sub:e:2048:1:7299C628B604F148:1079892777:1136052777:::::e:\n"
- "sub:e:2048:1:35E52D69C3680A6E:1136137762:1199123362:::::e:\n",
-
- "pub:o:1024:17:C7463639B2D7795E:978642983:::o:::scSCE:\n"
- "fpr:::::::::055FC78F112193492C4F37AFC7463639B2D7795E:\n"
- "rvk:o::17::::::3FC732041D23E9EA66DDB5009C9DBC21DF74DC61:80:\n"
- "uid:o::::978642983::44C6F00AAE524A8955CAB76F2BB16126530BB203::Philip R. Zimmermann <prz@mit.edu>:\n"
- "uid:o::::978643127::BD93DF0D0D564E85F73ECBECFFB1B5BA5FF2838D::Philip R. Zimmermann <prz@acm.org>:\n"
- "uat:o::::978751266::E0F87F37495D4ED247BB66A08D7360D8D81F9976::1 3391:\n"
- "uat:o::::1013326898::10A2C49F62C540090ECD679C518AACAA8E960BA5::1 3479:\n"
- "uid:o::::1052692250::09D1F68A1C44AC42E7FCC5615EEDBB0FD581DCDE::Philip R. Zimmermann <prz@philzimmermann.com>:\n"
- "sub:o:3072:16:C4EB1C56A8E92834:978642983::::::e:\n",
-
- "pub:o:4096:1:DB698D7199242560:1012189561:::o:::scSCEA:\n"
- "fpr:::::::::7D92FD313AB6F3734CC59CA1DB698D7199242560:\n"
- "uid:o::::1012189561::0E5FC22DD5518890217F20F1FF832597932B46C1::David M. Shaw <dshaw@jabberwocky.com>:\n"
- "sub:o:2048:16:AE2827D11643B926:1012189956:1327549956:::::e:\n"
- "sub:o:1024:17:E2665C8749E1CBC9:1012190171:1327550171:::::sca:\n",
-
- "pub:o:2048:1:9710B89BCA57AD7C:1102303986:::o:::scSC:\n"
- "fpr:::::::::50BB6FFC9719DFD2BEBB04C69710B89BCA57AD7C:\n"
- "uid:o::::1112650864::A96F758EFD5D67EA9450860C7D15A96DAA1B40E2::PGP Global Directory Verification Key:\n"
- "uat:o::::1112650864::83B0B68B95892BBCE32F04BA0FBAC6CEAD4EDE49::1 3422:\n",
-
- "pub:e:1024:1:53B620D01CE0C630:1136130759:1230738759::o:::sc:\n"
- "fpr:::::::::7B96D396E6471601754BE4DB53B620D01CE0C630:\n"
- "uid:e::::1136130760::142B958D9816ECF810DBB83BD257E5C7DB36C99A::Werner Koch (dist sig) <dd9jn@gnu.org>:\n",
-
- NULL
-};
-
-static const gchar *secring_records[] = {
- "sec::2048:1:4842D952AFC000FD:1305189489::::::::::\n"
- "fpr:::::::::61A6EA3E0115080227A32EC94842D952AFC000FD:\n"
- "uid:::::::D449F1605254754B0BBFA424FC34E50609103BBB::Test Number 1 (unlimited) <test-number-1@example.com>:\n"
- "uid:::::::D0A8FA7B15DC4BE3F8F03A49C372F2718C78AFC0::Dr. Strangelove <lovingbomb@example.com>:\n"
- "ssb::2048:1:4852132BBED15014:1305189489::::::::::\n",
-
- "sec::1024:1:268FEE686262C395:1305189628:1305276028:::::::::\n"
- "fpr:::::::::A4853C22EA82C8ADC6692751268FEE686262C395:\n"
- "uid:::::::2E9D48BD771DA765D2B48A0233D0E8F393F6E839::Test Number 2 (all gone) <test-number-2@example.com>:\n"
- "ssb::1024:1:C5877FABF4772E4F:1305189628::::::::::\n",
-
- NULL
-};
-
-static Fixture fixtures[] = {
- {
- "werner_koch",
- werner_koch_records,
- SRCDIR "/files/werner-koch.asc",
- "GnuPG v1.4.11 (GNU/Linux)",
- GCR_OPENPGP_PARSE_KEYS
- },
- {
- "werner_koch_with_sigs",
- werner_sig_records,
- SRCDIR "/files/werner-koch.asc",
- "GnuPG v1.4.11 (GNU/Linux)",
- GCR_OPENPGP_PARSE_KEYS | GCR_OPENPGP_PARSE_SIGNATURES
- },
- {
- "pubring",
- pubring_records,
- SRCDIR "/files/pubring.gpg",
- NULL,
- GCR_OPENPGP_PARSE_KEYS
- },
- {
- "secring",
- secring_records,
- SRCDIR "/files/secring.gpg",
- NULL,
- GCR_OPENPGP_PARSE_KEYS
- }
-};
-
-typedef struct {
- const gchar **at;
- const Fixture *fixture;
-} Test;
-
-static void
-setup (Test *test,
- gconstpointer data)
-{
- const Fixture *fixture = data;
- test->fixture = fixture;
- test->at = fixture->records;
-}
-
-static void
-teardown (Test *test,
- gconstpointer data)
-{
-
-}
-
-static void
-compare_fixture_with_records (const gchar *fixture,
- GPtrArray *records)
-{
- gchar *record;
- gchar **lines;
- guint i;
-
- lines = g_strsplit (fixture, "\n", -1);
- for (i = 0; i < records->len; i++) {
- record = _gcr_record_format (records->pdata[i]);
- g_assert_cmpstr (record, ==, lines[i]);
- g_free (record);
- }
-
- if (lines[i] == NULL) {
- g_test_message ("more openpgp records parsed than in fixture");
- g_assert_not_reached ();
- }
-
- g_strfreev (lines);
-}
-
-static void
-on_openpgp_packet (GPtrArray *records,
- const guchar *outer,
- gsize n_outer,
- gpointer user_data)
-{
- Test *test = user_data;
- guint seen;
-
- /* Should be parseable again */
- seen = _gcr_openpgp_parse (outer, n_outer, test->fixture->flags |
- GCR_OPENPGP_PARSE_NO_RECORDS, NULL, NULL);
- g_assert_cmpuint (seen, ==, 1);
-
- if (*(test->at) == NULL) {
- g_test_message ("more openpgp packets parsed than in fixture");
- g_assert_not_reached ();
- }
-
- compare_fixture_with_records (*(test->at), records);
- test->at++;
-}
-
-static void
-on_armor_parsed (GQuark type,
- const guchar *data,
- gsize n_data,
- const gchar *outer,
- gsize n_outer,
- GHashTable *headers,
- gpointer user_data)
-{
- Test *test = user_data;
- const gchar *value;
- guint seen;
-
- if (test->fixture->version) {
- value = g_hash_table_lookup (headers, "Version");
- g_assert_cmpstr (value, ==, test->fixture->version);
- }
-
- seen = _gcr_openpgp_parse (data, n_data, test->fixture->flags,
- on_openpgp_packet, test);
- g_assert_cmpuint (seen, >, 0);
-
- if (*(test->at) != NULL) {
- g_test_message ("less openpgp packets parsed than in fixture");
- g_assert_not_reached ();
- }
-}
-
-static void
-test_openpgp_armor (Test *test,
- gconstpointer data)
-{
- GError *error = NULL;
- gchar *armor;
- gsize length;
- guint parts;
-
- g_file_get_contents (test->fixture->filename, &armor, &length, &error);
- g_assert_no_error (error);
-
- parts = egg_armor_parse (armor, length, on_armor_parsed, test);
- g_assert_cmpuint (parts, ==, 1);
-
- g_free (armor);
-}
-
-static void
-test_openpgp_binary (Test *test,
- gconstpointer data)
-{
- GError *error = NULL;
- gchar *binary;
- gsize length;
- guint seen;
-
- g_file_get_contents (test->fixture->filename, &binary, &length, &error);
- g_assert_no_error (error);
-
- seen = _gcr_openpgp_parse (binary, length, test->fixture->flags,
- on_openpgp_packet, test);
- g_assert_cmpuint (seen, >, 0);
-
- if (*(test->at) != NULL) {
- g_test_message ("less openpgp packets parsed than in fixture");
- g_assert_not_reached ();
- }
-
- g_free (binary);
-}
-
-int
-main (int argc, char **argv)
-{
- guint i;
- gchar *test_path;
-
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
- g_set_prgname ("test-openpgp");
-
- for (i = 0; i < G_N_ELEMENTS (fixtures); i++) {
- test_path = g_strdup_printf ("/gcr/openpgp/%s", fixtures[i].name);
- if (g_str_has_suffix (fixtures[i].filename, ".asc"))
- g_test_add (test_path, Test, fixtures + i, setup, test_openpgp_armor, teardown);
- else
- g_test_add (test_path, Test, fixtures + i, setup, test_openpgp_binary, teardown);
- g_free (test_path);
- }
-
- return g_test_run ();
-}
diff --git a/gcr/tests/test-openssh.c b/gcr/tests/test-openssh.c
deleted file mode 100644
index 81634daf..00000000
--- a/gcr/tests/test-openssh.c
+++ /dev/null
@@ -1,196 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/*
- Copyright (C) 2011 Collabora Ltd
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gcr/gcr.h"
-#include "gcr/gcr-openssh.h"
-
-#include "egg/egg-testing.h"
-
-#include <gcrypt.h>
-#include <glib.h>
-#include <string.h>
-
-typedef struct {
- const gchar *expected_label;
- const gchar *expected_options;
-} Test;
-
-#define OPENSSH_PUBLIC_RSA1 \
- "2048 65537 19574029774826276058535216798260123376543523095248321838931" \
- "8476099051534660565418100376122247153936738716140984293302866595208305" \
- "7124376564328644357957081508003798389808113087527047927841196160520784" \
- "3971799891833860159372766201922902824211581515042106928142039998651198" \
- "7806024885997262427984841536983221992403267030558391252672804492615887" \
- "9294713324466630490990131504557923061505441555447586185019409756877006" \
- "5871190731807718592844942425524851665039303855329966512492845780563670" \
- "0617451083369174928502647995734856960603065454655489558179113130210712" \
- "74638931037011169213563881172297734240201883475566393175838117784693 r" \
- "sa-key@example.com\n"
-
-#define OPENSSH_PUBLIC_RSA2 \
- "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCs8z2y0cCPYRAPkq8tAt6FC/kdfnR/p" \
- "8B2ZoY0oiLNt7kQEwJfexgwLqTxWYd2fSDUSSDPrsqAxZAwLLS/eF04kXiJO2VfqAWFpTL" \
- "NToERHpFF1yZQe26ELTlNNfna7LqfCRvpNDwu6AqndsT3eFt7DWvBDXbbEiTLW21Z2OFAA" \
- "H/J2iCFn4c0a8Myf7IaMYcy5GG3mpk39kEO4aNV/67U7kfooek24ObwD0vlXzlsi5VZIUF" \
- "OIUi0UdkNEMCtUWpfkZ1STUlmwp9HVM7xb7/9PESQKDnZdxpB09S9cIjdpDecpDlMDDEbE" \
- "UECM1PIas3ndhB7gAN1i2JsPHTcXZ1 rsa-key@example.com\r\n" \
- "# Comment\n"
-
-#define OPENSSH_PUBLIC_DSA2 \
- "ssh-dss AAAAB3NzaC1kc3MAAACBAL4z+ad0ZJYzMOQuGp00UJ+AijKhrPVUEYLcxBmFQo" \
- "nb/KIlLSWJua4Rl9DB4tDj30Y9c/oApqC4n+FIYlUZMSnxmpvcLF6aeXOiHHPvm0EDYjjy" \
- "VubyYQWI7CROrrzSc+x++ha3TuJEvF3PlKlZmTKKVYEkZNjwFqYysGyPxPalAAAAFQDtDS" \
- "EF9Gvnv5fQtSbbsp7j78uVBwAAAIAtNpAg/Mbd/E2241enedB9AxAbJWZ5QYnoPe6/zx5d" \
- "OmU7+qz8mG6tgvF8F7IgXPabuAKslzTDGS3zgaEhWicDS3CIYik2UR8hXdxfovIEqZKZe7" \
- "u02FCEoXYCEiFUAdzDGzjI7PswgtEJWWNqKeNis3HmDDha9lMkqz/3fLZGXwAAAIEAiaRP" \
- "YKZDMoJG+aVZ5A3R/m2gl+mYE2MsjPKXuBKcrZ6ItA9BMe4G/An0/+E3A+DuoGxdeNNMF8" \
- "U9Dy2N8Sch/Ngtg2E/FBo5geljWobJXd1jxmPtF2WAliYJXDdIt6RBVPGL9H/KSjDmBMsV" \
- "d42wxVJywawzypklVZjSUuWuBMI= dsa-key@example.com \n"
-
-#define EXTRA_LINES_WITHOUT_KEY \
- "\n# Comment\n\n" \
- "20aa3\n" \
- "not a key\n"
-
-static void
-setup (Test *test,
- gconstpointer unused)
-{
-
-}
-
-static void
-teardown (Test *test,
- gconstpointer unused)
-{
-
-}
-
-static void
-on_openssh_pub_parse (GckAttributes *attrs,
- const gchar *label,
- const gchar *options,
- const gchar *outer,
- gsize n_outer,
- gpointer user_data)
-{
- Test *test = user_data;
- guint keys;
-
- if (test->expected_label)
- g_assert_cmpstr (label, ==, test->expected_label);
- if (test->expected_options)
- g_assert_cmpstr (options, ==, test->expected_options);
-
- /* The block should parse properly */
- keys = _gcr_openssh_pub_parse (outer, n_outer, NULL, NULL);
- g_assert_cmpuint (keys, ==, 1);
-}
-
-static void
-test_parse_v1_rsa (Test *test,
- gconstpointer unused)
-{
- const gchar *data = OPENSSH_PUBLIC_RSA1 EXTRA_LINES_WITHOUT_KEY;
- gint keys;
-
- test->expected_label = "rsa-key@example.com";
-
- keys = _gcr_openssh_pub_parse (data, strlen (data),
- on_openssh_pub_parse, test);
- g_assert_cmpint (keys, ==, 1);
-
-}
-
-static void
-test_parse_v2_rsa (Test *test,
- gconstpointer unused)
-{
- const gchar *data = OPENSSH_PUBLIC_RSA2 EXTRA_LINES_WITHOUT_KEY;
- gint keys;
-
- test->expected_label = "rsa-key@example.com";
-
- keys = _gcr_openssh_pub_parse (data, strlen (data),
- on_openssh_pub_parse, test);
- g_assert_cmpint (keys, ==, 1);
-}
-
-static void
-test_parse_v2_dsa (Test *test,
- gconstpointer unused)
-{
- const gchar *data = OPENSSH_PUBLIC_DSA2 EXTRA_LINES_WITHOUT_KEY;
- gint keys;
-
- test->expected_label = "dsa-key@example.com";
-
- keys = _gcr_openssh_pub_parse (data, strlen (data),
- on_openssh_pub_parse, test);
- g_assert_cmpint (keys, ==, 1);
-}
-
-static void
-test_parse_v1_options (Test *test,
- gconstpointer unused)
-{
- const gchar *data = "option1,option2=\"value 2\",option3 " OPENSSH_PUBLIC_RSA1;
- gint keys;
-
- test->expected_options = "option1,option2=\"value 2\",option3";
-
- keys = _gcr_openssh_pub_parse (data, strlen (data),
- on_openssh_pub_parse, test);
- g_assert_cmpint (keys, ==, 1);
-}
-
-static void
-test_parse_v2_options (Test *test,
- gconstpointer unused)
-{
- const gchar *data = "option1,option2=\"value 2\",option3 " OPENSSH_PUBLIC_RSA2;
- gint keys;
-
- test->expected_options = "option1,option2=\"value 2\",option3";
-
- keys = _gcr_openssh_pub_parse (data, strlen (data),
- on_openssh_pub_parse, test);
- g_assert_cmpint (keys, ==, 1);
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
- g_set_prgname ("test-gnupg-process");
-
- g_test_add ("/gcr/openssh/parse_v1_rsa", Test, NULL, setup, test_parse_v1_rsa, teardown);
- g_test_add ("/gcr/openssh/parse_v2_rsa", Test, NULL, setup, test_parse_v2_rsa, teardown);
- g_test_add ("/gcr/openssh/parse_v2_dsa", Test, NULL, setup, test_parse_v2_dsa, teardown);
- g_test_add ("/gcr/openssh/parse_v1_options", Test, NULL, setup, test_parse_v1_options, teardown);
- g_test_add ("/gcr/openssh/parse_v2_options", Test, NULL, setup, test_parse_v2_options, teardown);
-
- return egg_tests_run_in_thread_with_loop ();
-}
diff --git a/gcr/tests/test-parser.c b/gcr/tests/test-parser.c
deleted file mode 100644
index 6984be29..00000000
--- a/gcr/tests/test-parser.c
+++ /dev/null
@@ -1,249 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* unit-test-pkix-parser.c: Test PKIX parser
-
- Copyright (C) 2007 Stefan Walter
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stef@memberwebs.com>
-*/
-
-#include "config.h"
-
-#include "egg/egg-error.h"
-#include "egg/egg-secure-memory.h"
-
-#include "gcr/gcr-base.h"
-#include "gcr/gcr-internal.h"
-
-#include "gck/gck.h"
-
-#include <glib.h>
-#include <gcrypt.h>
-
-#include <errno.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-/*
- * Each test looks like (on one line):
- * void unit_test_xxxxx (CuTest* cu)
- *
- * Each setup looks like (on one line):
- * void unit_setup_xxxxx (void);
- *
- * Each teardown looks like (on one line):
- * void unit_teardown_xxxxx (void);
- *
- * Tests be run in the order specified here.
- */
-
-typedef struct {
- GcrParser *parser;
- const gchar* filedesc;
-} Test;
-
-static void
-ensure_block_can_be_parsed (GcrDataFormat format,
- gconstpointer block,
- gsize n_block)
-{
- GcrParser *parser;
- gboolean result;
- GError *error = NULL;
-
- g_assert (block);
- g_assert (n_block);
-
- parser = gcr_parser_new ();
- gcr_parser_format_disable (parser, -1);
- gcr_parser_format_enable (parser, format);
- result = gcr_parser_parse_data (parser, block, n_block, &error);
-
- if (!result) {
- g_critical ("The data returned from gcr_parser_get_parsed_block() "
- "cannot be parsed: %s", error->message);
- g_assert_not_reached ();
- }
-
- g_object_unref (parser);
-}
-
-static void
-parsed_item (GcrParser *par, gpointer user_data)
-{
- GckAttributes *attrs;
- const gchar *description;
- const gchar *label;
- Test *test = user_data;
- gconstpointer block;
- gsize n_block;
- GcrDataFormat format;
-
- g_assert (GCR_IS_PARSER (par));
- g_assert (par == test->parser);
-
- attrs = gcr_parser_get_parsed_attributes (test->parser);
- g_assert (attrs);
-
- description = gcr_parser_get_parsed_description (test->parser);
- label = gcr_parser_get_parsed_label (test->parser);
- block = gcr_parser_get_parsed_block (test->parser, &n_block);
- format = gcr_parser_get_parsed_format (test->parser);
- ensure_block_can_be_parsed (format, block, n_block);
-
- if (g_test_verbose ())
- g_print ("%s: '%s'\n", description, label);
-}
-
-static gboolean
-authenticate (GcrParser *par, gint state, gpointer user_data)
-{
- Test *test = user_data;
-
- g_assert (GCR_IS_PARSER (par));
- g_assert (par == test->parser);
-
- switch (state) {
- case 0:
- gcr_parser_add_password (test->parser, "booo");
- return TRUE;
- default:
- g_printerr ("decryption didn't work for: %s", test->filedesc);
- g_assert_not_reached ();
- return FALSE;
- };
-}
-
-static void
-setup (Test *test, gconstpointer unused)
-{
- test->parser = gcr_parser_new ();
- g_signal_connect (test->parser, "parsed", G_CALLBACK (parsed_item), test);
- g_signal_connect (test->parser, "authenticate", G_CALLBACK (authenticate), test);
-}
-
-static void
-teardown (Test *test, gconstpointer unused)
-{
- g_object_unref (test->parser);
-}
-
-static void
-test_parse_one (Test *test,
- gconstpointer user_data)
-{
- const gchar *path = user_data;
- gchar *contents;
- GError *error = NULL;
- gboolean result;
- gsize len;
-
- if (!g_file_get_contents (path, &contents, &len, NULL))
- g_assert_not_reached ();
-
- test->filedesc = path;
- result = gcr_parser_parse_data (test->parser, (const guchar *)contents, len, &error);
- g_assert_no_error (error);
- g_assert (result);
-
- g_free (contents);
-}
-
-static void
-test_parse_null (void)
-{
- GcrParser *parser = gcr_parser_new ();
- GError *error = NULL;
- gboolean result;
-
- result = gcr_parser_parse_data (parser, NULL, 0, &error);
- g_assert_error (error, GCR_DATA_ERROR, GCR_ERROR_UNRECOGNIZED);
- g_assert (!result);
- g_error_free (error);
-
- g_object_unref (parser);
-}
-
-static void
-test_parse_empty (void)
-{
- GcrParser *parser = gcr_parser_new ();
- GError *error = NULL;
- gboolean result;
-
- result = gcr_parser_parse_data (parser, (const guchar *)"", 0, &error);
- g_assert_error (error, GCR_DATA_ERROR, GCR_ERROR_UNRECOGNIZED);
- g_assert (!result);
- g_error_free (error);
-
- g_object_unref (parser);
-}
-
-int
-main (int argc, char **argv)
-{
- const gchar *filename;
- GError *error = NULL;
- GPtrArray *strings;
- GDir *dir;
- gchar *path;
- gchar *lower;
- gchar *test;
- int ret;
-
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
- g_set_prgname ("test-parser");
-
- strings = g_ptr_array_new_with_free_func (g_free);
- dir = g_dir_open (SRCDIR "/files", 0, &error);
- g_assert_no_error (error);
-
- for (;;) {
- filename = g_dir_read_name (dir);
- if (!filename)
- break;
- if (filename[0] == '.')
- continue;
-
- path = g_build_filename (SRCDIR "/files", filename, NULL);
-
- if (g_file_test (path, G_FILE_TEST_IS_DIR)) {
- g_free (path);
- continue;
- }
-
- lower = g_ascii_strdown (filename, -1);
- test = g_strdup_printf ("/gcr/parser/%s",
- g_strcanon (lower, "abcdefghijklmnopqrstuvwxyz012345789", '_'));
- g_free (lower);
-
- g_test_add (test, Test, path, setup, test_parse_one, teardown);
- g_ptr_array_add (strings, path);
- g_ptr_array_add (strings, test);
- }
-
- g_dir_close (dir);
-
- g_test_add_func ("/gcr/parser/parse_null", test_parse_null);
- g_test_add_func ("/gcr/parser/parse_empty", test_parse_empty);
-
- ret = g_test_run ();
- g_ptr_array_free (strings, TRUE);
- return ret;
-}
diff --git a/gcr/tests/test-pkcs11-certificate.c b/gcr/tests/test-pkcs11-certificate.c
deleted file mode 100644
index dd03371b..00000000
--- a/gcr/tests/test-pkcs11-certificate.c
+++ /dev/null
@@ -1,279 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/*
- Copyright (C) 2010 Collabora Ltd
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "egg/egg-asn1x.h"
-#include "egg/egg-asn1-defs.h"
-
-#include "gcr/gcr-base.h"
-#include "gcr/gcr-internal.h"
-
-#include "egg/egg-testing.h"
-
-#include "gck/gck-mock.h"
-#include "gck/gck-test.h"
-
-#include "pkcs11/pkcs11n.h"
-
-#include <glib.h>
-
-#include <errno.h>
-
-typedef struct {
- gpointer cert_data;
- gsize n_cert_data;
- gpointer cert2_data;
- gsize n_cert2_data;
- CK_FUNCTION_LIST funcs;
-} Test;
-
-static void
-setup (Test *test, gconstpointer unused)
-{
- GList *modules = NULL;
- GckAttributes *attrs;
- CK_FUNCTION_LIST_PTR f;
- GckModule *module;
- gconstpointer subject;
- gsize n_subject;
- GNode *asn, *node;
- CK_RV rv;
-
- if (!g_file_get_contents (SRCDIR "/files/der-certificate.crt", (gchar**)&test->cert_data,
- &test->n_cert_data, NULL))
- g_assert_not_reached ();
- g_assert (test->cert_data);
-
- if (!g_file_get_contents (SRCDIR "/files/der-certificate-dsa.cer", (gchar**)&test->cert2_data,
- &test->n_cert2_data, NULL))
- g_assert_not_reached ();
- g_assert (test->cert2_data);
-
- rv = gck_mock_C_GetFunctionList (&f);
- gck_assert_cmprv (rv, ==, CKR_OK);
- memcpy (&test->funcs, f, sizeof (test->funcs));
-
- /* Open a session */
- rv = (test->funcs.C_Initialize) (NULL);
- gck_assert_cmprv (rv, ==, CKR_OK);
-
- g_assert (!modules);
- module = gck_module_new (&test->funcs);
- modules = g_list_prepend (modules, module);
- gcr_pkcs11_set_modules (modules);
- gck_list_unref_free (modules);
-
- asn = egg_asn1x_create_and_decode (pkix_asn1_tab, "Certificate",
- test->cert_data, test->n_cert_data);
- g_assert (asn);
- node = egg_asn1x_node (asn, "tbsCertificate", "subject", NULL);
- subject = egg_asn1x_get_raw_element (node, &n_subject);
-
- /* Add a certificate to the module */
- attrs = gck_attributes_new ();
- gck_attributes_add_data (attrs, CKA_VALUE, test->cert_data, test->n_cert_data);
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_CERTIFICATE);
- gck_attributes_add_ulong (attrs, CKA_CERTIFICATE_TYPE, CKC_X_509);
- gck_attributes_add_data (attrs, CKA_SUBJECT, subject, n_subject);
- gck_mock_module_take_object (attrs);
-
- egg_asn1x_destroy (asn);
-}
-
-static void
-teardown (Test *test, gconstpointer unused)
-{
- CK_RV rv;
-
- g_free (test->cert_data);
- g_free (test->cert2_data);
-
- rv = (test->funcs.C_Finalize) (NULL);
- gck_assert_cmprv (rv, ==, CKR_OK);
-}
-
-static void
-test_lookup_certificate_issuer (Test *test, gconstpointer unused)
-{
- GcrCertificate *cert, *issuer;
- GError *error = NULL;
- GckAttributes *attrs;
- GckAttribute *attr;
- gconstpointer der;
- gsize n_der;
-
- cert = gcr_simple_certificate_new_static (test->cert_data, test->n_cert_data);
- g_assert (cert);
-
- /* Should be self-signed, so should find itself (added in setup) */
- issuer = gcr_pkcs11_certificate_lookup_issuer (cert, NULL, &error);
- g_assert (GCR_IS_PKCS11_CERTIFICATE (issuer));
- g_assert (error == NULL);
-
- /* Should be the same certificate */
- der = gcr_certificate_get_der_data (issuer, &n_der);
- egg_assert_cmpsize (n_der, ==, test->n_cert_data);
- g_assert (memcmp (der, test->cert_data, test->n_cert_data) == 0);
-
- /* Should return the same certificate here too */
- attrs = gcr_pkcs11_certificate_get_attributes (GCR_PKCS11_CERTIFICATE (issuer));
- g_assert (attrs);
- attr = gck_attributes_find (attrs, CKA_VALUE);
- g_assert (attr);
- egg_assert_cmpsize (attr->length, ==, test->n_cert_data);
- g_assert (memcmp (attr->value, test->cert_data, test->n_cert_data) == 0);
-
- /* Should return the same certificate here too */
- attrs = NULL;
- g_object_get (issuer, "attributes", &attrs, NULL);
- g_assert (attrs);
- attr = gck_attributes_find (attrs, CKA_VALUE);
- g_assert (attr);
- egg_assert_cmpsize (attr->length, ==, test->n_cert_data);
- g_assert (memcmp (attr->value, test->cert_data, test->n_cert_data) == 0);
- gck_attributes_unref (attrs);
-
- g_object_unref (cert);
- g_object_unref (issuer);
-}
-
-static void
-test_lookup_certificate_issuer_not_found (Test *test, gconstpointer unused)
-{
- GcrCertificate *cert, *issuer;
- GError *error = NULL;
-
- cert = gcr_simple_certificate_new_static (test->cert2_data, test->n_cert2_data);
- g_assert (cert);
-
- /* Issuer shouldn't be found */
- issuer = gcr_pkcs11_certificate_lookup_issuer (cert, NULL, &error);
- g_assert (issuer == NULL);
- g_assert (error == NULL);
-
- g_object_unref (cert);
-}
-
-static void
-fetch_async_result (GObject *source, GAsyncResult *result, gpointer user_data)
-{
- *((GAsyncResult**)user_data) = result;
- g_object_ref (result);
- egg_test_wait_stop ();
-}
-
-static void
-test_lookup_certificate_issuer_async (Test *test, gconstpointer unused)
-{
- GAsyncResult *result = NULL;
- GcrCertificate *cert, *issuer;
- GError *error = NULL;
- gconstpointer der;
- gsize n_der;
-
- cert = gcr_simple_certificate_new_static (test->cert_data, test->n_cert_data);
- g_assert (cert);
-
- /* Should be self-signed, so should find itself (added in setup) */
- gcr_pkcs11_certificate_lookup_issuer_async (cert, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result);
- issuer = gcr_pkcs11_certificate_lookup_issuer_finish (result, &error);
- g_assert (GCR_IS_PKCS11_CERTIFICATE (issuer));
- g_assert (error == NULL);
- g_object_unref (result);
- result = NULL;
-
- /* Should be the same certificate */
- der = gcr_certificate_get_der_data (issuer, &n_der);
- egg_assert_cmpsize (n_der, ==, test->n_cert_data);
- g_assert (memcmp (der, test->cert_data, test->n_cert_data) == 0);
-
- g_object_unref (cert);
- g_object_unref (issuer);
-}
-
-static void
-test_lookup_certificate_issuer_failure (Test *test, gconstpointer unused)
-{
- GcrCertificate *cert, *issuer;
- GError *error = NULL;
-
- cert = gcr_simple_certificate_new_static (test->cert_data, test->n_cert_data);
- g_assert (cert);
-
- /* Make the lookup fail */
- test->funcs.C_GetAttributeValue = gck_mock_fail_C_GetAttributeValue;
-
- issuer = gcr_pkcs11_certificate_lookup_issuer (cert, NULL, &error);
- g_assert (issuer == NULL);
- g_assert_error (error, GCK_ERROR, CKR_FUNCTION_FAILED);
- g_assert (error->message);
- g_clear_error (&error);
-
- g_object_unref (cert);
-}
-
-static void
-test_lookup_certificate_issuer_fail_async (Test *test, gconstpointer unused)
-{
- GAsyncResult *result = NULL;
- GcrCertificate *cert, *issuer;
- GError *error = NULL;
-
- cert = gcr_simple_certificate_new_static (test->cert_data, test->n_cert_data);
- g_assert (cert);
-
- /* Make the lookup fail */
- test->funcs.C_GetAttributeValue = gck_mock_fail_C_GetAttributeValue;
-
- /* Should be self-signed, so should find itself (added in setup) */
- gcr_pkcs11_certificate_lookup_issuer_async (cert, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result);
- issuer = gcr_pkcs11_certificate_lookup_issuer_finish (result, &error);
- g_assert (issuer == NULL);
- g_assert_error (error, GCK_ERROR, CKR_FUNCTION_FAILED);
- g_assert (error->message);
- g_clear_error (&error);
- g_object_unref (result);
- result = NULL;
-
- g_object_unref (cert);
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
- g_set_prgname ("test-pkcs11-certificate");
-
- g_test_add ("/gcr/pkcs11-certificate/lookup_certificate_issuer", Test, NULL, setup, test_lookup_certificate_issuer, teardown);
- g_test_add ("/gcr/pkcs11-certificate/lookup_certificate_issuer_not_found", Test, NULL, setup, test_lookup_certificate_issuer_not_found, teardown);
- g_test_add ("/gcr/pkcs11-certificate/lookup_certificate_issuer_async", Test, NULL, setup, test_lookup_certificate_issuer_async, teardown);
- g_test_add ("/gcr/pkcs11-certificate/lookup_certificate_issuer_failure", Test, NULL, setup, test_lookup_certificate_issuer_failure, teardown);
- g_test_add ("/gcr/pkcs11-certificate/lookup_certificate_issuer_fail_async", Test, NULL, setup, test_lookup_certificate_issuer_fail_async, teardown);
-
- return egg_tests_run_in_thread_with_loop ();
-}
diff --git a/gcr/tests/test-record.c b/gcr/tests/test-record.c
deleted file mode 100644
index cfb65932..00000000
--- a/gcr/tests/test-record.c
+++ /dev/null
@@ -1,294 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/*
- Copyright (C) 2011 Collabora Ltd.
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gcr/gcr-record.h"
-
-#include "egg/egg-testing.h"
-
-#include <glib.h>
-
-typedef struct {
- GcrRecord *record;
-} Test;
-
-static void
-setup (Test *test, gconstpointer unused)
-{
- test->record = _gcr_record_parse_colons ("one:tab\\there::YW9ldTM4Mzg=:f\xfc""nf:3533333:-88", -1);
-}
-
-static void
-teardown (Test *test, gconstpointer unused)
-{
- _gcr_record_free (test->record);
-}
-
-static void
-test_count (Test *test, gconstpointer unused)
-{
- g_assert_cmpuint (_gcr_record_get_count (test->record), ==, 7);
-}
-
-static void
-test_parse_colons (void)
-{
- GcrRecord *record;
-
- record = _gcr_record_parse_colons ("one:two::four::six", -1);
- g_assert (record);
-
- g_assert_cmpstr (_gcr_record_get_raw (record, 0), ==, "one");
- g_assert_cmpstr (_gcr_record_get_raw (record, 1), ==, "two");
- g_assert_cmpstr (_gcr_record_get_raw (record, 2), ==, "");
- g_assert_cmpstr (_gcr_record_get_raw (record, 3), ==, "four");
- g_assert_cmpstr (_gcr_record_get_raw (record, 4), ==, "");
- g_assert_cmpstr (_gcr_record_get_raw (record, 5), ==, "six");
- g_assert (_gcr_record_get_raw (record, 6) == NULL);
-
- _gcr_record_free (record);
-}
-
-static void
-test_parse_spaces (void)
-{
- GcrRecord *record;
-
- record = _gcr_record_parse_spaces (" one two four six ", -1);
- g_assert (record);
-
- g_assert_cmpstr (_gcr_record_get_raw (record, 0), ==, "one");
- g_assert_cmpstr (_gcr_record_get_raw (record, 1), ==, "two");
- g_assert_cmpstr (_gcr_record_get_raw (record, 2), ==, "four");
- g_assert_cmpstr (_gcr_record_get_raw (record, 3), ==, "six");
- g_assert (_gcr_record_get_raw (record, 4) == NULL);
- g_assert_cmpuint (_gcr_record_get_count (record), ==, 4);
-
- _gcr_record_free (record);
-}
-
-static void
-test_parse_part (void)
-{
- GcrRecord *record;
-
- record = _gcr_record_parse_colons ("one:two::four::six", 8);
- g_assert (record);
-
- g_assert_cmpstr (_gcr_record_get_raw (record, 0), ==, "one");
- g_assert_cmpstr (_gcr_record_get_raw (record, 1), ==, "two");
- g_assert_cmpstr (_gcr_record_get_raw (record, 2), ==, "");
- g_assert (_gcr_record_get_raw (record, 3) == NULL);
-
- _gcr_record_free (record);
-}
-
-static void
-test_parse_too_long (void)
-{
- GcrRecord *record;
-
- /* Too many columns */
- record = _gcr_record_parse_colons (":::::::::::::::::::::::::::::::::::::::::::::::::::::", -1);
- g_assert (record == NULL);
-}
-
-static void
-test_find (void)
-{
- GcrRecord *uid, *pub, *one, *check;
- GPtrArray *records;
-
- records = g_ptr_array_new_with_free_func (_gcr_record_free);
-
- one = _gcr_record_parse_colons ("one:two::four::six", -1);
- g_ptr_array_add (records, one);
- pub = _gcr_record_parse_colons ("pub:two", -1);
- g_ptr_array_add (records, pub);
- uid = _gcr_record_parse_colons ("uid:two", -1);
- g_ptr_array_add (records, uid);
-
- check = _gcr_records_find (records, GCR_RECORD_SCHEMA_PUB);
- g_assert (check == pub);
-
- check = _gcr_records_find (records, GCR_RECORD_SCHEMA_UID);
- g_assert (check == uid);
-
- g_ptr_array_unref (records);
-}
-
-static void
-test_get_string (Test *test, gconstpointer unused)
-{
- gchar *value = _gcr_record_get_string (test->record, 1);
- g_assert (value);
-
- g_assert_cmpstr (value, ==, "tab\there");
- g_free (value);
-}
-
-static void
-test_get_string_null (Test *test, gconstpointer unused)
-{
- gchar *value = _gcr_record_get_string (test->record, 35);
- g_assert (value == NULL);
-}
-
-static void
-test_get_string_latin1 (Test *test, gconstpointer unused)
-{
- gchar *value = _gcr_record_get_string (test->record, 4);
- g_assert (value);
-
- g_assert_cmpstr (value, ==, "f\xc3\xbc""nf");
- g_assert (g_utf8_validate (value, -1, NULL));
- g_free (value);
-}
-
-static void
-test_get_uint (Test *test, gconstpointer unused)
-{
- guint value = 0;
-
- if (!_gcr_record_get_uint (test->record, 5, &value))
- g_assert_not_reached ();
- g_assert_cmpuint (value, ==, 3533333);
-}
-
-static void
-test_get_uint_range (Test *test, gconstpointer unused)
-{
- guint value = 0;
-
- if (_gcr_record_get_uint (test->record, 6, &value))
- g_assert_not_reached ();
-}
-
-static void
-test_get_uint_invalid (Test *test, gconstpointer unused)
-{
- guint value = 0;
-
- if (_gcr_record_get_uint (test->record, 0, &value))
- g_assert_not_reached ();
-}
-
-static void
-test_get_base64 (Test *test, gconstpointer unused)
-{
- gchar *value;
- gsize n_value;
-
- value = _gcr_record_get_base64 (test->record, 3, &n_value);
- g_assert (value);
- egg_assert_cmpsize (n_value, ==, 8);
- g_assert (memcmp (value, "aoeu3838", n_value) == 0);
-
- g_free (value);
-}
-
-
-static void
-test_free_null (void)
-{
- _gcr_record_free (NULL);
-}
-
-static void
-test_get_schema (Test *test, gconstpointer unused)
-{
- GQuark schema;
- GQuark check;
-
- /* Initialize this quark */
- check = g_quark_from_static_string ("one");
-
- schema = _gcr_record_get_schema (test->record);
- g_assert (check == schema);
- g_assert_cmpstr (g_quark_to_string (schema), ==, "one");
-}
-
-static void
-test_copy (Test *test, gconstpointer unused)
-{
- GcrRecord *copy;
- guint count, i;
-
- copy = _gcr_record_copy (test->record);
-
- count = _gcr_record_get_count (test->record);
- g_assert_cmpuint (_gcr_record_get_count (copy), ==, count);
- for (i = 0; i < count; i++) {
- g_assert_cmpstr (_gcr_record_get_raw (copy, i), ==,
- _gcr_record_get_raw (test->record, i));
- }
-
- g_assert (_gcr_record_get_raw (copy, count) == NULL);
- _gcr_record_free (copy);
-}
-
-static void
-test_boxed (Test *test, gconstpointer unused)
-{
- GcrRecord *copy;
- guint count, i;
-
- copy = g_boxed_copy (GCR_TYPE_RECORD, test->record);
-
- count = _gcr_record_get_count (test->record);
- g_assert_cmpuint (_gcr_record_get_count (copy), ==, count);
- for (i = 0; i < count; i++) {
- g_assert_cmpstr (_gcr_record_get_raw (copy, i), ==,
- _gcr_record_get_raw (test->record, i));
- }
-
- g_assert (_gcr_record_get_raw (copy, count) == NULL);
- g_boxed_free (GCR_TYPE_RECORD, copy);
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
-
- g_test_add_func ("/gcr/record/parse_colons", test_parse_colons);
- g_test_add_func ("/gcr/record/parse_colons", test_parse_spaces);
- g_test_add_func ("/gcr/record/parse_part", test_parse_part);
- g_test_add_func ("/gcr/record/parse_too_long", test_parse_too_long);
- g_test_add_func ("/gcr/record/free_null", test_free_null);
- g_test_add_func ("/gcr/record/find", test_find);
- g_test_add ("/gcr/record/count", Test, NULL, setup, test_count, teardown);
- g_test_add ("/gcr/record/copy", Test, NULL, setup, test_copy, teardown);
- g_test_add ("/gcr/record/boxed", Test, NULL, setup, test_boxed, teardown);
- g_test_add ("/gcr/record/get_string", Test, NULL, setup, test_get_string, teardown);
- g_test_add ("/gcr/record/get_string_null", Test, NULL, setup, test_get_string_null, teardown);
- g_test_add ("/gcr/record/get_string_latin1", Test, NULL, setup, test_get_string_latin1, teardown);
- g_test_add ("/gcr/record/get_uint", Test, NULL, setup, test_get_uint, teardown);
- g_test_add ("/gcr/record/get_uint_invalid", Test, NULL, setup, test_get_uint_invalid, teardown);
- g_test_add ("/gcr/record/get_uint_range", Test, NULL, setup, test_get_uint_range, teardown);
- g_test_add ("/gcr/record/get_base64", Test, NULL, setup, test_get_base64, teardown);
- g_test_add ("/gcr/record/get_schema", Test, NULL, setup, test_get_schema, teardown);
-
- return g_test_run ();
-}
diff --git a/gcr/tests/test-secret-exchange.c b/gcr/tests/test-secret-exchange.c
deleted file mode 100644
index 79647450..00000000
--- a/gcr/tests/test-secret-exchange.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/*
- Copyright (C) 2011 Collabora Ltd
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gcr/gcr.h"
-
-#include <glib.h>
-
-#include <errno.h>
-
-typedef struct {
- GcrSecretExchange *caller;
- GcrSecretExchange *callee;
-} Test;
-
-static void
-setup (Test *test, gconstpointer unused)
-{
- test->caller = gcr_secret_exchange_new (NULL);
- g_assert (GCR_IS_SECRET_EXCHANGE (test->caller));
- test->callee = gcr_secret_exchange_new (NULL);
- g_assert (GCR_IS_SECRET_EXCHANGE (test->callee));
-}
-
-static void
-teardown (Test *test,
- gconstpointer unused)
-{
- g_object_unref (test->caller);
- g_assert (!GCR_IS_SECRET_EXCHANGE (test->caller));
- g_object_unref (test->callee);
- g_assert (!GCR_IS_SECRET_EXCHANGE (test->callee));
-}
-
-static void
-test_perform_exchange (Test *test,
- gconstpointer unused)
-{
- gchar *exchange;
-
- exchange = gcr_secret_exchange_begin (test->caller);
- g_assert (exchange);
-
- if (!gcr_secret_exchange_receive (test->callee, exchange))
- g_assert_not_reached ();
-
- g_free (exchange);
-
- exchange = gcr_secret_exchange_send (test->callee, "the secret", -1);
- g_assert (exchange);
-
- if (!gcr_secret_exchange_receive (test->caller, exchange))
- g_assert_not_reached ();
-
- g_assert_cmpstr (gcr_secret_exchange_get_secret (test->caller, NULL), ==, "the secret");
-
- g_free (exchange);
-}
-
-static void
-test_perform_reverse (Test *test,
- gconstpointer unused)
-{
- gchar *exchange;
-
- exchange = gcr_secret_exchange_begin (test->caller);
- g_assert (exchange);
-
- if (!gcr_secret_exchange_receive (test->callee, exchange))
- g_assert_not_reached ();
-
- g_free (exchange);
-
- exchange = gcr_secret_exchange_send (test->callee, NULL, -1);
- g_assert (exchange);
-
- if (!gcr_secret_exchange_receive (test->caller, exchange))
- g_assert_not_reached ();
-
- g_free (exchange);
-
- g_assert (gcr_secret_exchange_get_secret (test->caller, NULL) == NULL);
-
- exchange = gcr_secret_exchange_send (test->caller, "reverse secret", -1);
- g_assert (exchange);
-
- if (!gcr_secret_exchange_receive (test->callee, exchange))
- g_assert_not_reached ();
-
- g_free (exchange);
-
- g_assert_cmpstr (gcr_secret_exchange_get_secret (test->callee, NULL), ==, "reverse secret");
-}
-
-static void
-test_perform_multiple (Test *test,
- gconstpointer unused)
-{
- gchar *exchange;
-
- exchange = gcr_secret_exchange_begin (test->caller);
- g_assert (exchange);
-
- if (!gcr_secret_exchange_receive (test->callee, exchange))
- g_assert_not_reached ();
-
- g_free (exchange);
-
- exchange = gcr_secret_exchange_send (test->callee, "first secret", -1);
- g_assert (exchange);
-
- if (!gcr_secret_exchange_receive (test->caller, exchange))
- g_assert_not_reached ();
-
- g_free (exchange);
-
- g_assert_cmpstr (gcr_secret_exchange_get_secret (test->caller, NULL), ==, "first secret");
-
- exchange = gcr_secret_exchange_send (test->callee, "second secret", -1);
- g_assert (exchange);
-
- if (!gcr_secret_exchange_receive (test->caller, exchange))
- g_assert_not_reached ();
-
- g_free (exchange);
-
- g_assert_cmpstr (gcr_secret_exchange_get_secret (test->caller, NULL), ==, "second secret");
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
- g_set_prgname ("test-secret-exchange");
-
- g_test_add ("/gcr/secret-exchange/perform-exchange", Test, NULL, setup, test_perform_exchange, teardown);
- g_test_add ("/gcr/secret-exchange/perform-reverse", Test, NULL, setup, test_perform_reverse, teardown);
- g_test_add ("/gcr/secret-exchange/perform-multiple", Test, NULL, setup, test_perform_multiple, teardown);
-
- return g_test_run ();
-}
diff --git a/gcr/tests/test-simple-certificate.c b/gcr/tests/test-simple-certificate.c
deleted file mode 100644
index 60441359..00000000
--- a/gcr/tests/test-simple-certificate.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/*
- Copyright (C) 2010 Collabora Ltd
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gcr/gcr-base.h"
-#include "gcr/gcr-internal.h"
-
-#include "gck/gck-test.h"
-
-#include "pkcs11/pkcs11n.h"
-
-#include "egg/egg-testing.h"
-
-#include <glib.h>
-
-#include <errno.h>
-
-typedef struct {
- gpointer cert_data;
- gsize n_cert_data;
-} Test;
-
-static void
-setup (Test *test, gconstpointer unused)
-{
- if (!g_file_get_contents (SRCDIR "/files/der-certificate.crt", (gchar**)&test->cert_data,
- &test->n_cert_data, NULL))
- g_assert_not_reached ();
- g_assert (test->cert_data);
-}
-
-static void
-teardown (Test *test, gconstpointer unused)
-{
- g_free (test->cert_data);
-}
-
-static void
-test_new (Test *test, gconstpointer unused)
-{
- GcrCertificate *cert;
- gconstpointer der;
- gsize n_der;
-
- cert = gcr_simple_certificate_new (test->cert_data, test->n_cert_data);
- g_assert (GCR_IS_SIMPLE_CERTIFICATE (cert));
-
- der = gcr_certificate_get_der_data (cert, &n_der);
- g_assert (der);
- egg_assert_cmpmem (der, n_der, ==, test->cert_data, test->n_cert_data);
-
- g_object_unref (cert);
-}
-
-static void
-test_new_static (Test *test, gconstpointer unused)
-{
- GcrCertificate *cert;
- gconstpointer der;
- gsize n_der;
-
- cert = gcr_simple_certificate_new_static (test->cert_data, test->n_cert_data);
- g_assert (GCR_IS_SIMPLE_CERTIFICATE (cert));
-
- der = gcr_certificate_get_der_data (cert, &n_der);
- g_assert (der);
- egg_assert_cmpsize (n_der, ==, test->n_cert_data);
- g_assert (der == test->cert_data); /* Must be same pointer */
-
- g_object_unref (cert);
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
- g_set_prgname ("test-simple-certificate");
-
- g_test_add ("/gcr/simple-certificate/new", Test, NULL, setup, test_new, teardown);
- g_test_add ("/gcr/simple-certificate/new_static", Test, NULL, setup, test_new_static, teardown);
-
- return g_test_run ();
-}
diff --git a/gcr/tests/test-trust.c b/gcr/tests/test-trust.c
deleted file mode 100644
index d41596cf..00000000
--- a/gcr/tests/test-trust.c
+++ /dev/null
@@ -1,327 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/*
- Copyright (C) 2010 Stefan Walter
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stef@memberwebs.com>
-*/
-
-#include "config.h"
-
-#include "gcr/gcr-base.h"
-#include "gcr/gcr-internal.h"
-
-#include "gck/gck-mock.h"
-#include "gck/gck-test.h"
-
-#include "pkcs11/pkcs11.h"
-#include "pkcs11/pkcs11n.h"
-#include "pkcs11/pkcs11x.h"
-
-#include "egg/egg-testing.h"
-
-#include <glib.h>
-
-#include <errno.h>
-
-typedef struct {
- CK_FUNCTION_LIST funcs;
- GcrCertificate *certificate;
-} Test;
-
-static void
-setup (Test *test, gconstpointer unused)
-{
- GList *modules = NULL;
- CK_FUNCTION_LIST_PTR f;
- GckModule *module;
- gchar *contents;
- const gchar *uris[2];
- gsize len;
- CK_RV rv;
-
- if (!g_file_get_contents (SRCDIR "/files/der-certificate.crt", &contents, &len, NULL))
- g_assert_not_reached ();
- g_assert (contents);
-
- test->certificate = gcr_simple_certificate_new ((const guchar *)contents, len);
- g_free (contents);
-
- rv = gck_mock_C_GetFunctionList (&f);
- gck_assert_cmprv (rv, ==, CKR_OK);
- memcpy (&test->funcs, f, sizeof (test->funcs));
-
- /* Open a session */
- rv = (test->funcs.C_Initialize) (NULL);
- gck_assert_cmprv (rv, ==, CKR_OK);
-
- g_assert (!modules);
- module = gck_module_new (&test->funcs);
- modules = g_list_prepend (modules, module);
- gcr_pkcs11_set_modules (modules);
- gck_list_unref_free (modules);
-
- uris[0] = GCK_MOCK_SLOT_ONE_URI;
- uris[1] = NULL;
-
- gcr_pkcs11_set_trust_store_uri (GCK_MOCK_SLOT_ONE_URI);
- gcr_pkcs11_set_trust_lookup_uris (uris);
-}
-
-static void
-teardown (Test *test, gconstpointer unused)
-{
- CK_RV rv;
-
- g_object_unref (test->certificate);
-
- rv = (test->funcs.C_Finalize) (NULL);
- gck_assert_cmprv (rv, ==, CKR_OK);
-}
-
-static void
-test_is_pinned_none (Test *test, gconstpointer unused)
-{
- GError *error = NULL;
- gboolean trust;
-
- trust = gcr_trust_is_certificate_pinned (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
- g_assert_cmpint (trust, ==, FALSE);
- g_assert (error == NULL);
-}
-
-static void
-test_add_and_is_pinned (Test *test, gconstpointer unused)
-{
- GError *error = NULL;
- gboolean trust;
- gboolean ret;
-
- trust = gcr_trust_is_certificate_pinned (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
- g_assert_cmpint (trust, ==, FALSE);
- g_assert (error == NULL);
-
- ret = gcr_trust_add_pinned_certificate (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
- g_assert (ret == TRUE);
- g_assert (error == NULL);
-
- trust = gcr_trust_is_certificate_pinned (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
- g_assert_cmpint (trust, ==, TRUE);
- g_assert (error == NULL);
-}
-
-static void
-test_add_certificate_pinned_fail (Test *test, gconstpointer unused)
-{
- GError *error = NULL;
- gboolean ret;
-
- /* Make this function fail */
- test->funcs.C_CreateObject = gck_mock_fail_C_CreateObject;
-
- ret = gcr_trust_add_pinned_certificate (test->certificate, GCR_PURPOSE_CLIENT_AUTH, "peer", NULL, &error);
- g_assert (ret == FALSE);
- g_assert_error (error, GCK_ERROR, CKR_FUNCTION_FAILED);
- g_clear_error (&error);
-}
-
-static void
-test_add_and_remov_pinned (Test *test, gconstpointer unused)
-{
- GError *error = NULL;
- gboolean trust;
- gboolean ret;
-
- ret = gcr_trust_add_pinned_certificate (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
- g_assert (ret == TRUE);
- g_assert (error == NULL);
-
- trust = gcr_trust_is_certificate_pinned (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
- g_assert_cmpint (trust, ==, TRUE);
- g_assert (error == NULL);
-
- ret = gcr_trust_remove_pinned_certificate (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
- g_assert (ret == TRUE);
- g_assert (error == NULL);
-
- trust = gcr_trust_is_certificate_pinned (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
- g_assert_cmpint (trust, ==, FALSE);
- g_assert (error == NULL);
-}
-
-static void
-fetch_async_result (GObject *source, GAsyncResult *result, gpointer user_data)
-{
- *((GAsyncResult**)user_data) = result;
- g_object_ref (result);
- egg_test_wait_stop ();
-}
-
-static void
-test_add_and_is_pinned_async (Test *test, gconstpointer unused)
-{
- GAsyncResult *result = NULL;
- GError *error = NULL;
- gboolean trust;
- gboolean ret;
-
- gcr_trust_is_certificate_pinned_async (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result);
- trust = gcr_trust_is_certificate_pinned_finish (result, &error);
- g_assert (trust == FALSE);
- g_assert (error == NULL);
- g_object_unref (result);
- result = NULL;
-
- gcr_trust_add_pinned_certificate_async (test->certificate, GCR_PURPOSE_EMAIL, "host",
- NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result);
- ret = gcr_trust_add_pinned_certificate_finish (result, &error);
- g_assert (ret == TRUE);
- g_assert (error == NULL);
- g_object_unref (result);
- result = NULL;
-
- gcr_trust_is_certificate_pinned_async (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result);
- trust = gcr_trust_is_certificate_pinned_finish (result, &error);
- g_assert (trust == TRUE);
- g_assert (error == NULL);
- g_object_unref (result);
- result = NULL;
-}
-
-static void
-test_add_and_remov_pinned_async (Test *test, gconstpointer unused)
-{
- GAsyncResult *result = NULL;
- GError *error = NULL;
- gboolean trust;
- gboolean ret;
-
- gcr_trust_add_pinned_certificate_async (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result);
- ret = gcr_trust_add_pinned_certificate_finish (result, &error);
- g_assert (ret == TRUE);
- g_assert (error == NULL);
- g_object_unref (result);
- result = NULL;
-
- gcr_trust_is_certificate_pinned_async (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result);
- trust = gcr_trust_is_certificate_pinned_finish (result, &error);
- g_assert (trust == TRUE);
- g_assert (error == NULL);
- g_object_unref (result);
- result = NULL;
-
- gcr_trust_remove_pinned_certificate_async (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result);
- ret = gcr_trust_remove_pinned_certificate_finish (result, &error);
- g_assert (ret == TRUE);
- g_assert (error == NULL);
- g_object_unref (result);
- result = NULL;
-
- gcr_trust_is_certificate_pinned_async (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result);
- trust = gcr_trust_is_certificate_pinned_finish (result, &error);
- g_assert (trust == FALSE);
- g_assert (error == NULL);
- g_object_unref (result);
- result = NULL;
-}
-
-static void
-test_is_certificate_anchored_not (Test *test, gconstpointer unused)
-{
- GError *error = NULL;
- gboolean ret;
-
- ret = gcr_trust_is_certificate_anchored (test->certificate, GCR_PURPOSE_CLIENT_AUTH, NULL, &error);
- g_assert (ret == FALSE);
- g_assert (error == NULL);
-}
-
-static void
-test_is_certificate_anchored_yes (Test *test, gconstpointer unused)
-{
- GError *error = NULL;
- GckAttributes *attrs;
- gconstpointer der;
- gsize n_der;
- gboolean ret;
-
- /* Create a certificate root trust */
- attrs = gck_attributes_new ();
- der = gcr_certificate_get_der_data (test->certificate, &n_der);
- gck_attributes_add_data (attrs, CKA_X_CERTIFICATE_VALUE, der, n_der);
- gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_X_TRUST_ASSERTION);
- gck_attributes_add_boolean (attrs, CKA_TOKEN, TRUE);
- gck_attributes_add_string (attrs, CKA_X_PURPOSE, GCR_PURPOSE_CLIENT_AUTH);
- gck_attributes_add_ulong (attrs, CKA_X_ASSERTION_TYPE, CKT_X_ANCHORED_CERTIFICATE);
- gck_mock_module_take_object (attrs);
-
- ret = gcr_trust_is_certificate_anchored (test->certificate, GCR_PURPOSE_CLIENT_AUTH, NULL, &error);
- g_assert (ret == TRUE);
- g_assert (error == NULL);
-}
-
-static void
-test_is_certificate_anchored_async (Test *test, gconstpointer unused)
-{
- GAsyncResult *result = NULL;
- GError *error = NULL;
- gboolean ret;
-
- gcr_trust_is_certificate_anchored_async (test->certificate, GCR_PURPOSE_CLIENT_AUTH, NULL, fetch_async_result, &result);
- egg_test_wait_until (500);
- g_assert (result);
-
- ret = gcr_trust_is_certificate_anchored_finish (result, &error);
- g_assert (ret == FALSE);
- g_assert (error == NULL);
-
- g_object_unref (result);
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
- g_set_prgname ("test-trust");
-
- g_test_add ("/gcr/trust/is_pinned_none", Test, NULL, setup, test_is_pinned_none, teardown);
- g_test_add ("/gcr/trust/add_and_is_pinned", Test, NULL, setup, test_add_and_is_pinned, teardown);
- g_test_add ("/gcr/trust/add_certificate_pinned_fail", Test, NULL, setup, test_add_certificate_pinned_fail, teardown);
- g_test_add ("/gcr/trust/add_and_remov_pinned", Test, NULL, setup, test_add_and_remov_pinned, teardown);
- g_test_add ("/gcr/trust/add_and_is_pinned_async", Test, NULL, setup, test_add_and_is_pinned_async, teardown);
- g_test_add ("/gcr/trust/add_and_remov_pinned_async", Test, NULL, setup, test_add_and_remov_pinned_async, teardown);
- g_test_add ("/gcr/trust/is_certificate_anchored_not", Test, NULL, setup, test_is_certificate_anchored_not, teardown);
- g_test_add ("/gcr/trust/is_certificate_anchored_yes", Test, NULL, setup, test_is_certificate_anchored_yes, teardown);
- g_test_add ("/gcr/trust/is_certificate_anchored_async", Test, NULL, setup, test_is_certificate_anchored_async, teardown);
-
- return egg_tests_run_in_thread_with_loop ();
-}
diff --git a/gcr/tests/test-util.c b/gcr/tests/test-util.c
deleted file mode 100644
index 96819ac6..00000000
--- a/gcr/tests/test-util.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/*
- Copyright (C) 2011 Collabora Ltd.
-
- The Gnome Keyring Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Keyring Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Stef Walter <stefw@collabora.co.uk>
-*/
-
-#include "config.h"
-
-#include "gcr/gcr-base.h"
-#include "gcr/gcr-util.h"
-
-#include <errno.h>
-
-static void
-on_line_parsed_match_template (const gchar *line, gpointer user_data)
-{
- const gchar ***matching = user_data;
-
- g_assert (matching);
- g_assert (*matching);
-
- /* Must be another line to match */
- g_assert ((*matching)[0]);
-
- /* Match this line against expected, and increment to next */
- g_assert_cmpstr ((*matching)[0], ==, line);
- (*matching)++;
-}
-
-static void
-test_parse_lines (void)
-{
- GString *string = g_string_new ("first line\nsecond line\n\nlast line");
- const gchar *matches[] = { "first line", "second line", "", NULL };
- const gchar **matching = matches;
-
- _gcr_util_parse_lines (string, FALSE, on_line_parsed_match_template, &matching);
-
- /* All lines should have matched */
- g_assert (*matching == NULL);
-
- /* The last line should still be here */
- g_assert_cmpstr (string->str, ==, "last line");
- g_string_free (string, TRUE);
-}
-
-static void
-test_parse_lines_and_last (void)
-{
- GString *string = g_string_new ("first line\nsecond line\n\nlast line");
- const gchar *matches[] = { "first line", "second line", "", "last line", NULL };
- const gchar **matching = matches;
-
- _gcr_util_parse_lines (string, FALSE, on_line_parsed_match_template, &matching);
- _gcr_util_parse_lines (string, TRUE, on_line_parsed_match_template, &matching);
-
- /* All lines should have matched */
- g_assert (*matching == NULL);
-
- /* No more data */
- g_assert_cmpstr (string->str, ==, "");
- g_assert_cmpuint (string->len, ==, 0);
- g_string_free (string, TRUE);
-}
-
-static void
-test_parse_lines_dos (void)
-{
- GString *string = g_string_new ("first line\r\nsecond line\r\n\r\nlast line");
- const gchar *matches[] = { "first line", "second line", "", "last line", NULL };
- const gchar **matching = matches;
-
- _gcr_util_parse_lines (string, FALSE, on_line_parsed_match_template, &matching);
- _gcr_util_parse_lines (string, TRUE, on_line_parsed_match_template, &matching);
-
- /* All lines should have matched */
- g_assert (*matching == NULL);
-
- /* No more data */
- g_assert_cmpstr (string->str, ==, "");
- g_assert_cmpuint (string->len, ==, 0);
- g_string_free (string, TRUE);
-}
-
-int
-main (int argc, char **argv)
-{
- g_type_init ();
- g_test_init (&argc, &argv, NULL);
-
- g_test_add_func ("/gcr/util/test_parse_lines", test_parse_lines);
- g_test_add_func ("/gcr/util/test_parse_lines_and_last", test_parse_lines_and_last);
- g_test_add_func ("/gcr/util/test_parse_lines_dos", test_parse_lines_dos);
-
- return g_test_run ();
-}
diff --git a/pkcs11/Makefile.am b/pkcs11/Makefile.am
index 97d0cef0..4bdf3988 100644
--- a/pkcs11/Makefile.am
+++ b/pkcs11/Makefile.am
@@ -1,15 +1,10 @@
-# TODO: Are we sure this is the best location for these headers?
-incdir = $(includedir)/gck-@GCK_MAJOR@/gck
-
-inc_HEADERS = \
+EXTRA_DIST = \
+ pkcs11i.h \
pkcs11.h \
pkcs11n.h \
pkcs11x.h
-EXTRA_DIST = \
- pkcs11i.h
-
SUBDIRS = . \
gkm \
wrap-layer \
diff --git a/pkcs11/wrap-layer/Makefile.am b/pkcs11/wrap-layer/Makefile.am
index 0113cf3b..1779a855 100644
--- a/pkcs11/wrap-layer/Makefile.am
+++ b/pkcs11/wrap-layer/Makefile.am
@@ -5,7 +5,8 @@ noinst_LTLIBRARIES = \
INCLUDES = -I. \
-I$(top_srcdir) \
-I$(top_builddir) \
- -I$(top_srcdir)/pkcs11
+ -I$(top_srcdir)/pkcs11 \
+ $(GCR_BASE_CFLAGS)
# ------------------------------------------------------------------------------
# The code
diff --git a/pkcs11/wrap-layer/gkm-wrap-prompt.c b/pkcs11/wrap-layer/gkm-wrap-prompt.c
index 145be1e8..e6f671d9 100644
--- a/pkcs11/wrap-layer/gkm-wrap-prompt.c
+++ b/pkcs11/wrap-layer/gkm-wrap-prompt.c
@@ -26,7 +26,7 @@
#include "egg/egg-secure-memory.h"
-#include "gcr/gcr-unlock-options.h"
+#include <gcr/gcr-unlock-options.h>
#include "gkm/gkm-attributes.h"
#include "gkm/gkm-util.h"
diff --git a/pkcs11/wrap-layer/tests/Makefile.am b/pkcs11/wrap-layer/tests/Makefile.am
index c9fa406a..90bbd21b 100644
--- a/pkcs11/wrap-layer/tests/Makefile.am
+++ b/pkcs11/wrap-layer/tests/Makefile.am
@@ -12,8 +12,8 @@ LDADD = \
libgkm-mock-secret-store.a \
$(top_builddir)/pkcs11/gkm/libgkm.la \
$(top_builddir)/ui/libgku-prompt-testable.la \
- $(top_builddir)/gcr/libgcr-base-@GCR_MAJOR@.la \
$(top_builddir)/egg/libegg.la \
+ $(GCR_BASE_LIBS) \
$(GLIB_LIBS)
TEST_PROGS = \
diff --git a/po/POTFILES.in b/po/POTFILES.in
index f6685162..0e09b804 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -12,36 +12,6 @@ daemon/login/gkd-login.c
daemon/org.gnome.keyring.service.in
egg/egg-oid.c
egg/egg-spawn.c
-gck/gck-module.c
-gck/gck-modules.c
-gcr/gcr-callback-output-stream.c
-gcr/gcr-certificate.c
-gcr/gcr-certificate-exporter.c
-gcr/gcr-certificate-extensions.c
-gcr/gcr-certificate-renderer.c
-gcr/gcr-certificate-widget.c
-gcr/gcr-display-view.c
-gcr/gcr-failure-renderer.c
-gcr/gcr-gnupg-importer.c
-gcr/gcr-gnupg-key.c
-gcr/gcr-gnupg-process.c
-gcr/gcr-gnupg-renderer.c
-gcr/gcr-importer.c
-gcr/gcr-import-button.c
-gcr/gcr-library.c
-gcr/gcr-key-renderer.c
-gcr/gcr-parser.c
-gcr/gcr-pkcs11-import-dialog.c
-[type: gettext/glade]gcr/gcr-pkcs11-import-dialog.ui
-gcr/gcr-pkcs11-import-interaction.c
-gcr/gcr-trust.c
-[type: gettext/glade]gcr/gcr-unlock-options-widget.ui
-gcr/gcr-unlock-renderer.c
-gcr/gcr-viewer-tool.c
-gcr/gcr-viewer-widget.c
-gcr/gcr-viewer-window.c
-gck/gck-uri.c
-gck/gck-misc.c
pkcs11/gkm/gkm-certificate.c
pkcs11/ssh-store/gkm-ssh-private-key.c
pkcs11/secret-store/gkm-secret-collection.c
diff --git a/po/af.po b/po/af.po
index 6a5bbe7d..4c585fca 100644
--- a/po/af.po
+++ b/po/af.po
@@ -6,9 +6,8 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring gnome-3-0\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-03-14 12:10+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-03-19 00:11+0200\n"
"Last-Translator: F Wolff <friedel@translate.org.za>\n"
"Language-Team: translate-discuss-af@lists.sourceforge.net\n"
@@ -23,7 +22,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Naamloos"
@@ -99,35 +98,34 @@ msgstr "GNOME-sleutelring: GPG-agent"
msgid "GPG Password Agent"
msgstr "GPG-wagwoordagent"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:291
-#: ../gcr/gcr-key-renderer.c:296
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Onbekend"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:199
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP-sleutel: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:348
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:349
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Voer wagfrase in"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:383
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Vergeet dié wagwoord indien ledig vir"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:384
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Vergeet dié wagwoord ná"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:385
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Vergeet dié wagwoord wanneer ek afmeld"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Meld aan"
@@ -171,7 +169,7 @@ msgstr "Noemnaam"
msgid "Surname"
msgstr "Van"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:379
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Reeksnommer"
@@ -230,640 +228,61 @@ msgstr ""
msgid "Pseudonym"
msgstr "Skuilnaam"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:287
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "MD2 met RSA"
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "MD5 met RSA"
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "SHA1 met RSA"
-#: ../egg/egg-oid.c:107 ../gcr/gcr-key-renderer.c:289
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "SHA1 met DSA"
-#: ../egg/egg-spawn.c:273
-#, c-format
-msgid "Unexpected error in select() reading data from a child process (%s)"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
msgstr ""
-"Onverwagse fout in select() tydens lees van data vanaf 'n kindproses (%s)"
-
-#: ../egg/egg-spawn.c:320
-#, c-format,
-msgid "Unexpected error in waitpid() (%s)"
-msgstr "Onverwagse fout in waitpid() (%s)"
-
-#: ../gcr/gcr-certificate-renderer.c:82 ../gcr/gcr-parser.c:201
-msgid "Certificate"
-msgstr "Sertifikaat"
-
-#: ../gcr/gcr-certificate-renderer.c:107
-msgid "Extension"
-msgstr "Uitbreiding"
-
-#: ../gcr/gcr-certificate-renderer.c:112
-msgid "Identifier"
-msgstr "Identifiseerder"
-
-#: ../gcr/gcr-certificate-renderer.c:120
-msgid "Value"
-msgstr "Waarde"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "Critical"
-msgstr "Krities"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "Yes"
-msgstr "Ja"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "No"
-msgstr "Nee"
-
-#: ../gcr/gcr-certificate-renderer.c:339
-msgid "Identity"
-msgstr "Identiteit"
-
-#: ../gcr/gcr-certificate-renderer.c:343
-msgid "Verified by"
-msgstr "Geverifieer deur"
-
-#: ../gcr/gcr-certificate-renderer.c:350
-msgid "Expires"
-msgstr "Verval"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:360
-msgid "Subject Name"
-msgstr "Onderwerpnaam"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:364
-#, fuzzy
-msgid "Issuer Name"
-msgstr "Uitreiker naam"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:368
-msgid "Issued Certificate"
-msgstr "Uitgereikte sertifikaat"
-
-#: ../gcr/gcr-certificate-renderer.c:373
-msgid "Version"
-msgstr "Weergawe"
-
-#: ../gcr/gcr-certificate-renderer.c:387
-msgid "Not Valid Before"
-msgstr "Nie geldig voor"
-
-#: ../gcr/gcr-certificate-renderer.c:392
-msgid "Not Valid After"
-msgstr "Nie geldig ná"
-
-#: ../gcr/gcr-certificate-renderer.c:401
-msgid "Signature Algorithm"
-msgstr "Handtekeningalgoritme"
-
-#: ../gcr/gcr-certificate-renderer.c:406
-msgid "Signature Parameters"
-msgstr "Handtekeningparameters"
-
-#: ../gcr/gcr-certificate-renderer.c:413
-msgid "Signature"
-msgstr "Handtekening"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:418
-msgid "Public Key Info"
-msgstr "Inligting oor publieke sleutel"
-
-#: ../gcr/gcr-certificate-renderer.c:423
-msgid "Key Algorithm"
-msgstr "Sleutelalgoritme"
-
-#: ../gcr/gcr-certificate-renderer.c:429
-msgid "Key Parameters"
-msgstr "Sleutelparameters"
-
-#: ../gcr/gcr-certificate-renderer.c:436
-msgid "Key Size"
-msgstr "Sleutelgrootte"
-
-#: ../gcr/gcr-certificate-renderer.c:444 ../gcr/gcr-key-renderer.c:271
-#: ../gcr/gcr-parser.c:204
-msgid "Public Key"
-msgstr "Publieke sleutel"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:449
-msgid "Fingerprints"
-msgstr "Vingerafdrukke"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Voer sertifikate en sleutels in"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Voer in na:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Wagwoord:"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Ontsluit hierdie sleutelring outomaties wanneer ek aangemeld is"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Sluit hierdie sleutelring ná"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Sluit hierdie sleutelring wanneer ledig vir"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Sluit hierdie sleutelring wanneer en afmeld"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minute"
-
-#: ../gcr/gcr-importer.c:133 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Voer wagwoord in om die privaatsleutel te ontsluit"
-
-#: ../gcr/gcr-importer.c:135 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Voer wagwoord in om die sertifikaat te ontsluit"
-
-#: ../gcr/gcr-importer.c:137 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Voer wagwoord in om te ontsluit"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:146
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Om die privaatsleutel in te voer, moet dit ontsluit word"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:149
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Om die sertifikaat in te voer, moet dit ontsluit word"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:152
-msgid "In order to import the data, it must be unlocked"
-msgstr "Om die data in te voer, moet dit ontsluit word"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:157
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Om die privaatsleutel '%s' in te voer, moet dit ontsluit word"
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:160
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Om die sertifikaat '%s' in te voer, moet dit ontsluit word"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:163
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Om '%s' in te voer, moet dit ontsluit word"
-
-#: ../gcr/gcr-importer.c:254 ../gcr/gcr-parser.c:1566 ../gcr/gcr-parser.c:1757
-#: ../gck/gck-misc.c:98
-msgid "The operation was cancelled"
-msgstr "Die bewerking is gekanselleer"
-
-#: ../gcr/gcr-importer.c:346
-#, c-format
-msgid "No location available to import to"
-msgstr "Geen ligging beskikbaar om na toe in te voer nie"
-
-#: ../gcr/gcr-importer.c:495
-msgid "Import Certificates/Keys"
-msgstr "Voer sertifikaat/sleutel in"
-
-#: ../gcr/gcr-importer.c:502
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Kies 'n ligging om die ingevoerde sertifikaat/sleutel te stoor."
-
-#: ../gcr/gcr-key-renderer.c:69
-msgid "Key"
-msgstr "Sleutel"
-
-#: ../gcr/gcr-key-renderer.c:260
-msgid "Private RSA Key"
-msgstr "Privaat RSA-sleutel"
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
+msgstr ""
-#: ../gcr/gcr-key-renderer.c:262
-msgid "Private DSA Key"
-msgstr "Privaat DSA-sleutel"
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
-#: ../gcr/gcr-key-renderer.c:264 ../gcr/gcr-parser.c:198
-msgid "Private Key"
-msgstr "Privaatsleutel"
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
-#: ../gcr/gcr-key-renderer.c:267 ../gcr/gcr-key-renderer.c:269
-msgid "Public DSA Key"
-msgstr "Publieke DSA-sleutel"
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
-#: ../gcr/gcr-key-renderer.c:278
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bis"
-msgstr[1] "%d bisse"
-
-#: ../gcr/gcr-key-renderer.c:279
-msgid "Strength"
-msgstr "Sterkte"
-
-#: ../gcr/gcr-key-renderer.c:292
-msgid "Algorithm"
-msgstr "Algoritme"
-
-#: ../gcr/gcr-key-renderer.c:299
-msgid "Size"
-msgstr "Grootte"
-
-#. TODO: We need to have consistent key fingerprints.
-#: ../gcr/gcr-key-renderer.c:303
-msgid "Fingerprint"
-msgstr "Vingerafdruk"
-
-#: ../gcr/gcr-parser.c:1569
-msgid "Unrecognized or unsupported data."
-msgstr "Nieherkende of nieondersteunde data."
-
-#: ../gcr/gcr-parser.c:1572
-msgid "Could not parse invalid or corrupted data."
-msgstr "Kon nie ongeldige of korrupte data ontleed nie."
-
-#: ../gcr/gcr-parser.c:1575
-msgid "The data is locked"
-msgstr "Die data is gesluit"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:420
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
+msgid "Unexpected error in select() reading data from a child process (%s)"
msgstr ""
+"Onverwagse fout in select() tydens lees van data vanaf 'n kindproses (%s)"
-#: ../gck/gck-uri.c:124 ../gck/gck-uri.c:181 ../gck/gck-uri.c:216
-#: ../gck/gck-uri.c:248
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid "The URI has invalid syntax. The '%s' field encoding is invalid."
-msgstr "Die URI het ongeldige sintaks. Die '%s'-veld se enkodering is ongeldig."
-
-#: ../gck/gck-uri.c:287
-msgid "The URI has does not have the 'pkcs11' scheme."
-msgstr "Die URI het nie die 'pkcs11'-skema nie."
-
-#: ../gck/gck-misc.c:101
-msgid "Insufficient memory available"
-msgstr "Onvoldoende geheue beskikbaar"
-
-#: ../gck/gck-misc.c:103
-#, fuzzy
-msgid "The specified slot ID is not valid"
-msgstr "Die gespesifiseerde "
-
-#: ../gck/gck-misc.c:105
-msgid "Internal error"
-msgstr "Interne fout"
-
-#: ../gck/gck-misc.c:107
-#, fuzzy
-msgid "The operation failed"
-msgstr "Die bewerking het misluk"
-
-#: ../gck/gck-misc.c:109
-msgid "Invalid arguments"
-msgstr "Ongeldige argumente"
-
-#: ../gck/gck-misc.c:111
-msgid "The module cannot create needed threads"
-msgstr "Die module kan nie die nodige drade skep nie"
-
-#: ../gck/gck-misc.c:113
-msgid "The module cannot lock data properly"
-msgstr "Die module kan nie die data behoorlik sluit nie"
-
-#: ../gck/gck-misc.c:115
-msgid "The field is read-only"
-msgstr "Die veld is leesalleen"
-
-#: ../gck/gck-misc.c:117
-msgid "The field is sensitive and cannot be revealed"
-msgstr "Die veld is sensitief en kan nie onthul word nie"
-
-#: ../gck/gck-misc.c:119
-msgid "The field is invalid or does not exist"
-msgstr "Die veld is ongeldig of bestaan nie"
-
-#: ../gck/gck-misc.c:121
-msgid "Invalid value for field"
-msgstr "Ongeldige waarde vir die veld"
-
-#: ../gck/gck-misc.c:123
-msgid "The data is not valid or unrecognized"
-msgstr "Die data is nie geldig nie, of onherkenbaar"
-
-#: ../gck/gck-misc.c:125
-msgid "The data is too long"
-msgstr "Die data is te lank"
-
-#: ../gck/gck-misc.c:127
-msgid "An error occurred on the device"
-msgstr "'n Fout het voorgekom op die toestel"
-
-#: ../gck/gck-misc.c:129
-msgid "Insufficient memory available on the device"
-msgstr "Onvoldoende geheue beskikbaar op die toestel"
-
-#: ../gck/gck-misc.c:131
-msgid "The device was removed or unplugged"
-msgstr "Die toestel is verwyder of uitgeprop"
-
-#: ../gck/gck-misc.c:133
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "Die geënkripteerde data is nie geldig nie of onherkenbaar"
-
-#: ../gck/gck-misc.c:135
-msgid "The encrypted data is too long"
-msgstr "Die geënkripteerde data is te lank"
-
-#: ../gck/gck-misc.c:137
-msgid "This operation is not supported"
-msgstr "Hierdie bewerking word nie ondersteun nie"
-
-#: ../gck/gck-misc.c:139
-msgid "The key is missing or invalid"
-msgstr "Die sleutel word vermis of is ongeldig"
-
-#: ../gck/gck-misc.c:141
-msgid "The key is the wrong size"
-msgstr "Die sleutel is die verkeerde grootte"
-
-#: ../gck/gck-misc.c:143
-msgid "The key is of the wrong type"
-msgstr "Die sleutel is die verkeerde tipe"
-
-#: ../gck/gck-misc.c:145
-msgid "No key is needed"
-msgstr "Geen sleutel word benodig nie"
-
-#: ../gck/gck-misc.c:147
-msgid "The key is different than before"
-msgstr "Die sleutel is anders as tevore"
-
-#: ../gck/gck-misc.c:149
-msgid "A key is needed"
-msgstr "'n Sleutel word benodig"
-
-#: ../gck/gck-misc.c:151
-msgid "Cannot include the key in the digest"
-msgstr "Kan nie die sleutel in die opsomming insluit nie"
-
-#: ../gck/gck-misc.c:153
-msgid "This operation cannot be done with this key"
-msgstr "Hierdie bewerking kan nie met hierdie sleutel gedoen word nie"
-
-#: ../gck/gck-misc.c:155
-#, fuzzy
-msgid "The key cannot be wrapped"
-msgstr "Die sleutel kan nie toegedraai word nie"
-
-#: ../gck/gck-misc.c:157
-msgid "Cannot export this key"
-msgstr "Kan nie dié sleutel uitvoer nie"
-
-#: ../gck/gck-misc.c:159
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "Die enkripsiemeganisme is ongeldig of onherkenbaar"
-
-#: ../gck/gck-misc.c:161
-msgid "The crypto mechanism has an invalid argument"
-msgstr "Die enkripsiemeganisme het 'n ongeldige argument"
-
-#: ../gck/gck-misc.c:163
-msgid "The object is missing or invalid"
-msgstr "Die voorwerp word vermis of is ongeldig"
-
-#: ../gck/gck-misc.c:165
-msgid "Another operation is already taking place"
-msgstr "'n Ander bewerking vind alreeds plaas"
-
-#: ../gck/gck-misc.c:167
-msgid "No operation is taking place"
-msgstr "Geen bewerking vind plaas nie"
-
-#: ../gck/gck-misc.c:169
-msgid "The password or PIN is incorrect"
-msgstr "Die wagwoord of PIN is verkeerd"
-
-#: ../gck/gck-misc.c:171
-msgid "The password or PIN is invalid"
-msgstr "Die wagwoord of PIN is ongeldig"
-
-#: ../gck/gck-misc.c:173
-msgid "The password or PIN is of an invalid length"
-msgstr "Die wagwoord of PIN is 'n ongeldige lengte"
-
-#: ../gck/gck-misc.c:175
-msgid "The password or PIN has expired"
-msgstr "Die wagwoord of PIN het verval"
-
-#: ../gck/gck-misc.c:177
-msgid "The password or PIN is locked"
-msgstr "Die wagwoord of PIN is gesluit"
-
-#: ../gck/gck-misc.c:179
-msgid "The session is closed"
-msgstr "Die sessie is gesluit"
-
-#: ../gck/gck-misc.c:181
-msgid "Too many sessions are active"
-msgstr "Te veel sessies is aktief"
-
-#: ../gck/gck-misc.c:183
-msgid "The session is invalid"
-msgstr "Die sessie is ongeldig"
-
-#: ../gck/gck-misc.c:185
-msgid "The session is read-only"
-msgstr "Die sessie is leesalleen"
-
-#: ../gck/gck-misc.c:187
-msgid "An open session exists"
-msgstr "'n Oop sessie bestaan"
-
-#: ../gck/gck-misc.c:189
-msgid "A read-only session exists"
-msgstr "'n Leesalleen sessie bestaan"
-
-#: ../gck/gck-misc.c:191
-msgid "An administrator session exists"
-msgstr "'n Administrateursessie bestaan"
-
-#: ../gck/gck-misc.c:193
-msgid "The signature is bad or corrupted"
-msgstr "Die handtekening is sleg of korrup"
-
-#: ../gck/gck-misc.c:195
-msgid "The signature is unrecognized or corrupted"
-msgstr "Die handtekening is onherkenbaar of korrup"
-
-#: ../gck/gck-misc.c:197
-msgid "Certain required fields are missing"
-msgstr "Sekere vereiste velde word vermis"
-
-#: ../gck/gck-misc.c:199
-msgid "Certain fields have invalid values"
-msgstr "Sekere velde het ongeldige waardes"
-
-#: ../gck/gck-misc.c:201
-msgid "The device is not present or unplugged"
-msgstr "Die toestel is nie teenwoordig nie of is uitgeprop"
-
-#: ../gck/gck-misc.c:203
-msgid "The device is invalid or unrecognizable"
-msgstr "Die toestel is ongeldig of onherkenbaar"
-
-#: ../gck/gck-misc.c:205
-msgid "The device is write protected"
-msgstr "Die toestel word beskerm teen skryf"
-
-#: ../gck/gck-misc.c:207
-msgid "Cannot import because the key is invalid"
-msgstr "Kan nie invoer nie, aangesien die sleutel ongeldig is"
-
-#: ../gck/gck-misc.c:209
-msgid "Cannot import because the key is of the wrong size"
-msgstr "Kan nie invoer nie, aangesien die sleutel die verkeerde grootte is"
-
-#: ../gck/gck-misc.c:211
-msgid "Cannot import because the key is of the wrong type"
-msgstr "Kan nie invoer nie, aangesien die sleutel die verkeerde tipe is"
-
-#: ../gck/gck-misc.c:213
-msgid "You are already logged in"
-msgstr "U is alreeds aangemeld"
-
-#: ../gck/gck-misc.c:215
-msgid "No user has logged in"
-msgstr "Geen gebruiker is aangemeld nie"
-
-#: ../gck/gck-misc.c:217
-msgid "The user's password or PIN is not set"
-msgstr "Die gebruikerswagwoord of PIN is nie gestel nie"
-
-#: ../gck/gck-misc.c:219
-msgid "The user is of an invalid type"
-msgstr "Die gebruiker is 'n ongeldige soort"
-
-#: ../gck/gck-misc.c:221
-msgid "Another user is already logged in"
-msgstr "'n Ander gebruiker is reeds aangemeld"
-
-#: ../gck/gck-misc.c:223
-msgid "Too many users of different types are logged in"
-msgstr "Te veel gebruikers van verskillende soorte is aangemeld"
-
-#: ../gck/gck-misc.c:225
-msgid "Cannot import an invalid key"
-msgstr "Kan nie 'n ongeldige sleutel invoer nie"
-
-#: ../gck/gck-misc.c:227
-msgid "Cannot import a key of the wrong size"
-msgstr "Kan nie 'n sleutel van die verkeerde grootte invoer nie"
-
-#: ../gck/gck-misc.c:229
-msgid "Cannot export because the key is invalid"
-msgstr "Kan nie uitvoer nie, aangesien die sleutel ongeldig is"
-
-#: ../gck/gck-misc.c:231
-msgid "Cannot export because the key is of the wrong size"
-msgstr "Kan nie uitvoer nie, aangesien die sleutel die verkeerde grootte is"
-
-#: ../gck/gck-misc.c:233
-msgid "Cannot export because the key is of the wrong type"
-msgstr "Kan nie uitvoer nie, aangesien die sleutel die verkeerde tipe is"
-
-#: ../gck/gck-misc.c:235
-msgid "Unable to initialize the random number generator"
-msgstr "Kan nie die ewekansige getalgenereerder begin nie"
-
-#: ../gck/gck-misc.c:237
-msgid "No random number generator available"
-msgstr "Geen ewekansige getalgenereerder beskikbaar nie"
-
-#: ../gck/gck-misc.c:239
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "Die enkripsiemeganisme het 'n ongeldige parameter"
-
-#: ../gck/gck-misc.c:241
-msgid "Not enough space to store the result"
-msgstr "Nie voldoende spasie om resultaat te stoor nie"
-
-#: ../gck/gck-misc.c:243
-msgid "The saved state is invalid"
-msgstr "Die gestoorde status is ongeldig"
-
-#: ../gck/gck-misc.c:245
-msgid "The information is sensitive and cannot be revealed"
-msgstr "Die inligting is sensitief en kan nie onthul word nie"
-
-#: ../gck/gck-misc.c:247
-msgid "The state cannot be saved"
-msgstr "Die status kan nie gestoor word nie"
-
-#: ../gck/gck-misc.c:249
-msgid "The module has not been initialized"
-msgstr "Die module is nog nie begin nie"
-
-#: ../gck/gck-misc.c:251
-msgid "The module has already been initialized"
-msgstr "Die module is reeds begin"
-
-#: ../gck/gck-misc.c:253
-msgid "Cannot lock data"
-msgstr "Kan nie data sluit nie"
-
-#: ../gck/gck-misc.c:255
-msgid "The data cannot be locked"
-msgstr "Die data kan nie gesluit word nie"
-
-#: ../gck/gck-misc.c:257
-msgid "The signature request was rejected by the user"
-msgstr "Die handtekeningversoek is verwerp deur die gebruiker"
-
-#: ../gck/gck-misc.c:261
-msgid "Unknown error"
-msgstr "Onbekende fout"
+msgid "Unexpected error in waitpid() (%s)"
+msgstr "Onverwagse fout in waitpid() (%s)"
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
@@ -874,7 +293,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Kon nie publieke SSH-sleutel ontleed nie"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Ontsluit wagwoord vir: %s"
@@ -920,8 +339,7 @@ msgstr "Voer wagwoord vir sleutelring '%s' in om te ontsluit"
#, c-format
msgid "An application wants access to the keyring '%s', but it is locked"
msgstr ""
-"'n Toepassing het toegang tot die sleutelring '%s' nodig, maar dit is "
-"gesluit"
+"'n Toepassing het toegang tot die sleutelring '%s' nodig, maar dit is gesluit"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
msgid "Unlock private key"
@@ -939,10 +357,22 @@ msgstr "Ontsluit publieke sleutel"
msgid "Unlock"
msgstr "Ontsluit"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Voer wagwoord in om die privaatsleutel te ontsluit"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Voer wagwoord in om die sertifikaat te ontsluit"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Voer wagwoord in om die publieke sleutel te ontsluit"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Voer wagwoord in om te ontsluit"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -956,8 +386,7 @@ msgstr ""
#, c-format
msgid "An application wants access to the certificate '%s', but it is locked"
msgstr ""
-"'n Toepassing het toegang tot die sertifikaat '%s' nodig, maar dit is "
-"gesluit"
+"'n Toepassing het toegang tot die sertifikaat '%s' nodig, maar dit is gesluit"
#. TRANSLATORS: The public key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
@@ -1038,11 +467,11 @@ msgstr "opdragte: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:597
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Stoor wagwoorde ongeënkripteerd?"
-#: ../ui/gku-prompt-tool.c:598
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1052,15 +481,15 @@ msgstr ""
"veilig geënkripteer wees nie. Dit sal toeganklik wees vir enigeen met "
"toegang tot u lêers."
-#: ../ui/gku-prompt-tool.c:605
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Gebruik onveilige berging"
-#: ../ui/gku-prompt-tool.c:643
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Wagwoorde stem nie ooreen nie."
-#: ../ui/gku-prompt-tool.c:653
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Wagwoord kan nie leeg wees nie"
diff --git a/po/ar.po b/po/ar.po
index 4341a7d4..8f726b71 100644
--- a/po/ar.po
+++ b/po/ar.po
@@ -11,16 +11,15 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.HEAD.ar\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-09-12 10:43+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-05 13:10+0200\n"
"Last-Translator: Anass Ahmed <anass.1430@gmail.com>\n"
"Language-Team: Arabeyes\n"
+"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Virtaal 0.7.0\n"
@@ -29,7 +28,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "بلا اسم"
@@ -105,35 +104,34 @@ msgstr "حلقة Ù…Ùاتيح جنوم: عميل GPG"
msgid "GPG Password Agent"
msgstr "عميل كلمة السر GPG"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "غير معروÙ"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "Ù…Ùتاح PGP:†%s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "أدخل عبارة السر"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "انس كلمت السر هذه إذا خملت لمدة"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "انس كلمت السر هذه بعد"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "انس كلمت السر هذه عندما ألج خارجا"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "الولوج"
@@ -177,7 +175,7 @@ msgstr "الاسم الشائع"
msgid "Surname"
msgstr "الكÙنية"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "الرقم التسلسلي"
@@ -233,7 +231,7 @@ msgstr "Ù…ÙؤهّÙÙ„ الاسم المميّÙز"
msgid "Pseudonym"
msgstr "الاسم المستعار"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "â€RSA"
@@ -249,7 +247,7 @@ msgstr "â€MD5 مع RSA"
msgid "SHA1 with RSA"
msgstr "â€SHA1 مع RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -288,609 +286,6 @@ msgstr "خطأ غير متوقع ÙÙŠ select() أثناء قراءة البياÙ
msgid "Unexpected error in waitpid() (%s)"
msgstr "خطأ غير متوقع ÙÙŠ waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "تعذر تحميل وحدة PKCS#11: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "وحدة PKCS#11 غير صالحة: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "تعذّر تثبيت وحدة PKCS#11: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "تعذّر تهيئة وحدة PKCS#11: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "تعذّر تهيئة وحدات PKCS#11 المسجلة: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "الاسم"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Ù…Ùصْدَرة Ù…ÙÙ†"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "تاريخ انتهاء الصلاحية"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "الشهادة"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>يوجد بالÙعل مل٠بهذا الاسم.</b>\n"
-"\n"
-"أترغب ÙÙŠ استبداله بمل٠جديد؟"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "ا_ستبدل"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, fuzzy, c-format
-#| msgid "The operation was cancelled"
-msgid "The operation was cancelled."
-msgstr "Ø£Ùلغيت العملية"
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "استورد الشهادة"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "ملÙات الشهادة"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "ملÙات PEM"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "الاسم الآخر"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "عنوان XMPP"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr ""
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "البريد"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-#, fuzzy
-#| msgid "DSA"
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-#, fuzzy
-#| msgid "Email Address"
-msgid "X400 Address"
-msgstr "عنوان X400"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "اسم المجلد"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "اسم طر٠EDI"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "العنوان"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "عنوان IP"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "المعر٠المسجل"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "القيود الأساسية"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "سلطة الشهادة"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "نعم"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "لا"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "أقصى طول للمسار"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-#, fuzzy
-#| msgid "Unnamed"
-msgid "Unlimited"
-msgstr "غير محدود"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "الاستخدام الموسع للمÙتاح"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "الأغراض المسموح بها"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "معر٠مÙتاح الموضوع"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "معر٠المÙتاح"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "التوقيع الرقمي"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "تشÙير المÙتاح"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "تشÙير البيانات"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-#, fuzzy
-#| msgid "Key Parameters"
-msgid "Key agreement"
-msgstr "اتÙاقية المÙتاح"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-#, fuzzy
-#| msgid "Certificate"
-msgid "Certificate signature"
-msgstr "توقيع الشهادة"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "توقيع قائمة الإلغاء"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "استخدام المÙتاح"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "الاستعمالات"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "الأسماء البديلة الموضوع"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "الامتداد"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "المعرÙ"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "القيمة"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "حرج"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "تعذّر تصدير الشهادة."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "المعرّÙ"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "تحقق منها"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "تاريخ انتهاء الصلاحية"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "اسم المÙصدَر إليه"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "اسم المÙصدÙر"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "الشهادة المÙصدرة"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "الإصدارة"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "ليست صالحة قبل"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "ليست صالحة بعد"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "بصمات الشهادة"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "التوقيع"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "خوارزمية التوقيع"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "معاملات التوقيع"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "معلومات المÙتاح العلني"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "خوارزمية المÙتاح"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "معاملات المÙتاح"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "حجم المÙتاح"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-#, fuzzy
-#| msgid "SHA1 Fingerprint"
-msgid "Key SHA1 Fingerprint"
-msgstr "بصمة Ù…Ùتاح SHA1"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "المÙتاح العلني"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "الت_Ùاصيل"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "تعذّر عرض '%s'"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "تعذّر عرض الملÙ"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "السبب"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "تعذّر عرض مل٠من هذا النوع."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "استورد الشهادات والمÙاتيح"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "استورد إلى:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "كلمة السّر:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "Ù…Ùتاح PGP"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "معرّ٠المÙتاح"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "إنتهت عملية Gnupg بكود: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Ø£ÙنهÙيت عملية Gnupg بالإشارة: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919 ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "تم إلغاء العملية"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "أدخل كلمة سر Ù„Ùكّ Ù‚ÙÙ„ المÙتاح السري"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "أدخل كلمة سر Ù„Ùكّ Ù‚ÙÙ„ الشهادة"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "أدخل كلمة سر Ù„Ùكّ القÙÙ„"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "يجب Ùتح Ù‚ÙÙ„ المÙتاح السري قبل استيراده"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "يجب Ùتح Ù‚ÙÙ„ الشهادة قبل استيرادها"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "يجب Ùتح Ù‚ÙÙ„ البيانات قبل استيرادها"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "يجب Ùتح Ù‚ÙÙ„ المÙتاح السري '%s' قبل استيراده"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "يجب Ùتح Ù‚ÙÙ„ الشهادة '%s' قبل استيرادها"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "يجب Ùتح Ù‚ÙÙ„ '%s' قبل استيراده"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "لا مكان متاح للاستيراد منه"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "استورد شهادات/Ù…Ùاتيح"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "اختر مكانا لتخزين الشهادات/المÙاتيح المستورة."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Ù…Ùتاح"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Ù…Ùتاح RSA سري"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Ù…Ùتاح DSA سري"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "المÙتاح السري"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Ù…Ùتاح DSA علني"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d بتة"
-msgstr[1] "%d بتة"
-msgstr[2] "%d بتة"
-msgstr[3] "%d بتات"
-msgstr[4] "%d بتة"
-msgstr[5] "%d بتة"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "القوّة"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "الخوارزمية"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "الحجم"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "البصمات"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "بيانات غير مدعومة أو غير معروÙØ©."
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "تعذّر قراءة بيانات معطوبة أو غير سليمة."
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "البيانات موصدة"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "تعذّر العثور على مكان لحÙظ الشهادة"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "اÙتح تلقائيًا حلقة المÙاتيح هذه عندما ألÙج"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "أقÙÙ„ حلقة المÙاتيح هذه بعد"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "أقÙÙ„ حلقة المÙاتيح إذا خملت لمدة"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "أقÙÙ„ حلقة المÙاتيح هذه عندما أخرج"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "دقائق"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "ÙÙƒ Ù‚ÙÙ„: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "ÙÙƒ القÙÙ„"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "كلمة السر غير صحيحة"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "كلمة السّر"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, fuzzy, c-format
-#| msgid ""
-#| "The contents of '%s' are locked. In order to view the contents, enter a "
-#| "the correct password."
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr "محتويات '%s' مقÙلة. لكي تعرضها أدخل كلمة السّر الصحيحة."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-#, fuzzy
-#| msgid ""
-#| "The contents are locked. In order to view the contents, enter a the "
-#| "correct password."
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr "المحتويات مقÙلة. لتعرضها أدخل كلمة السّر الصحيحة."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "عارض Ù…Ùاتيح وشهادات GCR"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "اعرض إصدار التطبيق"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[ملÙ...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- اعرض ملÙات الشهادة والمÙاتيح"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "عارض الشهادات"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "ترميز المسار URI غير صالح."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "مسار URI لا يملك مخطط 'pkcs11'."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "صيغة المسار URI سيئة."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "مسار URI يملك رقم إصدار سيء."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "شهادة بلا اسم"
@@ -900,7 +295,7 @@ msgid "Couldn't parse public SSH key"
msgstr "تعذّر تحليل Ù…Ùتاح SSH العلني"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "كلمة سّر Ùتح: %s"
@@ -957,10 +352,26 @@ msgstr "Ùكّ Ù‚ÙÙ„ الشهادة"
msgid "Unlock public key"
msgstr "ÙÙƒ Ù‚ÙÙ„ المÙتاح العلني"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "ÙÙƒ القÙÙ„"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "أدخل كلمة سر Ù„Ùكّ Ù‚ÙÙ„ المÙتاح السري"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "أدخل كلمة سر Ù„Ùكّ Ù‚ÙÙ„ الشهادة"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "أدخل كلمة سر Ù„Ùكّ Ù‚ÙÙ„ المÙتاح العلني"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "أدخل كلمة سر Ù„Ùكّ القÙÙ„"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1044,11 +455,11 @@ msgstr "الأوامر: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "احÙظ كلمات السر من دون تعمية؟"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1057,15 +468,15 @@ msgstr ""
"باختيار استخدام كلمة سر Ùارغة، لن تكون كلمات السر الخاصة بك معمّاة بشكل آمن. "
"وسيستطيع كل من يملك الوصول إلى ملÙاتك الوصول إليها."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "استعمل التخزين غير الآمن"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "كلمتا السّر غير متطابقتين."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "كلمة السّر لا يمكن أن تكون Ùارغة"
@@ -1104,755 +515,3 @@ msgstr "كلمة السّر الق_ديمة:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_كلمة السّر:"
-
-#~ msgid "Fingerprint"
-#~ msgstr "البصمة"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "كمية الذاكرة المتاحة غير كاÙية"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "إن معرّ٠ID الÙتحة المحددة غير صالح"
-
-#~ msgid "Internal error"
-#~ msgstr "خطأ داخلي"
-
-#~ msgid "The operation failed"
-#~ msgstr "Ùشلت العملية"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "خيار غير صالح"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "لم تستطع الوحدة إنشاء الخيوط التي تحتاجها"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "الوحدة غير قادرة على Ù‚ÙÙ„ البيانات بشكل صحيح"
-
-#~ msgid "The field is read-only"
-#~ msgstr "الحقل للقراءة Ùقط"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "الحقل حساس ولا يمكن كشÙÙ‡"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "الحقل غير صالح أو غير موجود"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "قيمة غير صالحة للحقل"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "البيانات غير صالحة أو غير معتر٠بها"
-
-#~ msgid "The data is too long"
-#~ msgstr "البيانات طويلة جداً"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "حصل خطأ ÙÙŠ الجهاز"
-
-#~ msgid "Insufficient memory available on the device"
-#~ msgstr "الذاكرة على الجهاز غير كاÙية"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "تم إزالة الجهاز أو Ùصله"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "البيانات المعمّاة غير صالحة أو غير معتر٠بها"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "البيانات المعمّاة طويلة جداً"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "العملية غير مدعومة"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "المÙتاح Ù…Ùقود أو غير صالح"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "حجم المÙتاح خاطئ"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "المÙتاح من النوع الخاطئ"
-
-#~ msgid "No key is needed"
-#~ msgstr "لا حاجة لمÙتاح"
-
-#~ msgid "The key is different than before"
-#~ msgstr "المÙتاح مختل٠عن ما قبل"
-
-#~ msgid "A key is needed"
-#~ msgstr "المÙتاح ضروري"
-
-#~ msgid "Cannot include the key in the digest"
-#~ msgstr "تعذّر تضمين المÙتاح ÙÙŠ التلبيدة"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "لا يمكن إتمام العملية بهذا المÙتاح"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "لا يمكن تغلي٠المÙتاح"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "لا يمكن تصدير هذا المÙتاح"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "تقنية الـ crypto غير صالحة أو غير معتر٠بها"
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "خيار غير صالح لتقنية الـ crypto"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "الكائن Ù…Ùقود أو غير صالح"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "عملية أخرى تجري مسبقاً"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "لا يوجد أية عملية جارية"
-
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "كلمة السر أو رمز التعري٠الشخصي PIN غير صحيحة"
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "كلمة السر أو رمز التعري٠الشخصي PIN غير صالحة"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "طول كلمة السر أو رمز التعري٠الشخصي PIN غير صالح"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "انتهت مدة كلمة السر أو رمز التعري٠الشخصي PIN"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "كلمة السر أو رمز التعري٠الشخصي PIN مقÙلة"
-
-#~ msgid "The session is closed"
-#~ msgstr "الجلسة مغلقة"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "الكثير من الجلسات نشطة"
-
-#~ msgid "The session is invalid"
-#~ msgstr "الجلسة غير صالحة"
-
-#~ msgid "The session is read-only"
-#~ msgstr "الجلسة للقراءة Ùقط"
-
-#~ msgid "An open session exists"
-#~ msgstr "توجد جلسة Ù…Ùتوحة"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "توجد جلسة للقراءة Ùقط"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "توجد جلسة مسئول نظام"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "التوقيع سيء او Ùاسد"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "التوقيع غير معتر٠به أو Ùاسد"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "بعض الحقول المطلوبة Ù…Ùقودة"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "بعض الحقول لها قيم غير صالحة"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "الجهاز غير موجود أو Ù…Ùصول"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "الجهاز غير صالح أو غير معتر٠به"
-
-#~ msgid "The device is write protected"
-#~ msgstr "الجهاز محمي ضد الكتابة"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "تعذّر استيراد المÙتاح لأنه غير صالح"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "تعذّر الاستيراد لأن حجم المÙتاح خاطئ"
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "تعذّر الاستيراد لأن نوع المÙتاح خاطئ"
-
-#~ msgid "You are already logged in"
-#~ msgstr "لقد سجلت الدخول مسبقاً"
-
-#~ msgid "No user has logged in"
-#~ msgstr "لم يسجل أي مستخدم الدخول"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "لم يتم ضبط كلمة المرور أو رمز التعري٠الشخصي PIN للمستخدم"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "المستخدم من النوع الخاطئ"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "هناك مستخدم آخر قد سجل دخوله مسبقاً"
-
-#~ msgid "Too many users of different types are logged in"
-#~ msgstr "العديد من المستخدمين من الأنواع المختلÙØ© قد ولÙجوا"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "تعذّر استيراد Ù…Ùتاح غير صالح"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "تعذّر استيراد Ù…Ùتاح من الحجم الخاطئ"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "تعذّر التصدير لأن المÙتاح غير صالح"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "تعذّر التصدير لأن المÙتاح من الحجم الخاطئ"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "تعذّر التصدير لأن المÙتاح من النوع الخاطئ"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "تعذّر بدء مولد الأرقام العشوائية"
-
-#~ msgid "No random number generator available"
-#~ msgstr "لا يتوÙر مولّد أرقام عشوائيّة"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "عامل غير صالح لتقنية الـ crypto"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "لا يتوÙر مساحة كاÙية لتخزين النتيجة"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "الحالة المحÙوظة غير صالحة"
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "المعلومات حسّاسة ولا يمكن كشÙها"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "لا يمكن Ø­Ùظ الحالة"
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "لم يتم ابتداء الوحدة"
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "تم ابتداء الوحدة مسبقاً"
-
-#~ msgid "Cannot lock data"
-#~ msgstr "تعذّر Ù‚ÙÙ„ البيانات"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "لا يمكن Ù‚ÙÙ„ البيانات"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "تم رÙض طلب التوقيع من قبل المستخدم"
-
-#~ msgid "Unknown error"
-#~ msgstr "خطأ غير معروÙ"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>ليس جزءا من الشهادة</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>مجهول</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<ليس جزءًا من الشّهادة>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>البصمات</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>أصدرها</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Ø£Ùصدرت إلى</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>تم التّحقّق من هذه الشّهادة للأغراض التّالية:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>الصلاحية</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "الاسم المتداول (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "شهادة مستلÙÙ… البريد الإلكتروني"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "شهادة موقّع البريد الإلكتروني"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "بصمة MD5"
-
-#~ msgid "Organization (O)"
-#~ msgstr "المنظمة (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "الوحدة التنظيمية (OU)"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr "<span size='large' weight='bold'>استورد الشهادات والمÙاتيح</span>"
-
-#, fuzzy
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "سيÙعّل هذا الخيار مكون PKCS#11 لـ gnome-keyring. تبدأ Ùعاليته Ùقط عند "
-#~ "تشغيل gnome-keyring-daemon (أي عندما يسجّل المستخدم الدخول). قد يتم تجاوز "
-#~ "هذا الإعداد عند تمرير خيارات سطر أوامر محددة إلى الرقيب."
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "سيÙعّل هذا الخيار مكون SSH لـ gnome-keyring. تبدأ Ùعاليته Ùقط عند تشغيل "
-#~ "gnome-keyring-daemon (أي عندما يسجّل المستخدم الدخول). قد يتم تجاوز هذا "
-#~ "الإعداد عند تمرير خيارات سطر أوامر محددة إلى الرقيب."
-
-#, fuzzy
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "سيÙعّل هذا الخيار مكون PKCS#11 لـ gnome-keyring. تبدأ Ùعاليته Ùقط عند "
-#~ "تشغيل gnome-keyring-daemon (أي عندما يسجّل المستخدم الدخول). قد يتم تجاوز "
-#~ "هذا الإعداد عند تمرير خيارات سطر أوامر محددة إلى الرقيب."
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "إذا كان عميل PKCS#11 لـ gnome-keyring Ù…Ùعّلا."
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "إذا كان عميل SSH لـ gnome-keyring Ù…Ùعّلا."
-
-#, fuzzy
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr "إذا كان عميل SSH لـ gnome-keyring Ù…Ùعّلا."
-
-#~ msgid "Automatically unlock this private key when I log in."
-#~ msgstr "اÙتح هذا المÙتاح السري تلقائيًا عندما ألÙج."
-
-#~ msgid "Automatically unlock this certificate when I log in."
-#~ msgstr "اÙتح هذه الشهادة تلقائيًا عندما ألÙج."
-
-#~ msgid "Automatically unlock this public key when I log in."
-#~ msgstr "اÙتح هذا المÙتاح العلني تلقائيًا عندما ألÙج."
-
-#~ msgid "Automatically unlock this when I log in"
-#~ msgstr "اÙتح هذه تلقائيًا عندما ألÙج."
-
-#~ msgid "Automatically unlock secure storage when I log in."
-#~ msgstr "اÙتح المخزن المÙؤمّن تلقائيًا عندما ألÙج."
-
-#~ msgid ""
-#~ "<b><big>Could not grab your mouse.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>تعذّر جذب الÙأرة.</big></b>\n"
-#~ "\n"
-#~ "ربما يوجد تطبيق خبث يتنصت على جلستك، أو ربما نقرت على إحدى القوائم أو أن "
-#~ "أحد التطبيق يريد أن يكون ÙÙŠ البؤرة.\n"
-#~ "\n"
-#~ "حاول ثانية."
-
-#~ msgid ""
-#~ "<b><big>Could not grab your keyboard.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>تعذّر جذب لوحة المÙاتيح.</big></b>\n"
-#~ "\n"
-#~ "ربما يوجد تطبيق خبث يتنصت على جلستك، أو ربما نقرت على إحدى القوائم أو أن "
-#~ "أحد التطبيق يريد أن يكون ÙÙŠ البؤرة.\n"
-#~ "\n"
-#~ "حاول ثانية."
-
-#~ msgid "_Deny"
-#~ msgstr "ا_رÙض"
-
-#~ msgid "C_reate"
-#~ msgstr "_أنشئ"
-
-#~ msgid "C_hange"
-#~ msgstr "_غيّر"
-
-#~ msgid "Allow _Once"
-#~ msgstr "اسمح مرة _واحدة"
-
-#~ msgid "_Always Allow"
-#~ msgstr "ا_سمح دائمًا"
-
-#~ msgid "Removable Disk: %s"
-#~ msgstr "قرص قابل للإزالة: %s"
-
-#~ msgid "Removable Disk"
-#~ msgstr "قرص قابل للإزالة"
-
-#~ msgid "Home"
-#~ msgstr "الموطن"
-
-#~ msgid "The disk or drive this file is located on is not present"
-#~ msgstr "المل٠أو القرص الذي يحوي المل٠غير موجود."
-
-#~ msgid "Couldn't create directory: %s"
-#~ msgstr "تعذّر إنشاء الدليل: %s"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "يريد التطبيق '%s' (%s) الوصول إلى كلمة السر لـ '<object prop='name'/>' ÙÙŠ "
-#~ "حلقة المÙاتيح الاÙتراضية."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "يريد التطبيق '%s' (%s) الوصول إلى كلمة السر لـ '<object prop='name'/>' ÙÙŠ "
-#~ "%s."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "يريد التطبيق '%s' الوصول إلى كلمة السر لـ '<object prop='name'/>' ÙÙŠ حلقة "
-#~ "المÙاتيح الاÙتراضية."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "يريد التطبيق (%s) الوصول إلى كلمة السر لـ '<object prop='name'/>' ÙÙŠ %s."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "يريد تطبيق مجهول الوصول إلى كلمة السر لـ '<object prop='name'/>' ÙÙŠ حلقة "
-#~ "المÙاتيح الاÙتراضية."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "يريد تطبيق مجهول الوصول إلى كلمة السر لـ '<object prop='name'/>' ÙÙŠ %s."
-
-#~ msgid "Allow access"
-#~ msgstr "اسمح بالوصول"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "يريد التطبيق '%s' (%s) الوصول إلى حلقة المÙاتيح الاÙتراضية لكن الحلقة "
-#~ "مقÙلة"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "يريد التطبيق '%s' (%s) الوصول إلى حلقة المÙاتيح الاÙتراضية '%s' لكن "
-#~ "الحلقة مقÙلة"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-#~ msgstr ""
-#~ "يريد التطبيق '%s' الوصول إلى حلقة المÙاتيح الاÙتراضية لكن الحلقة مقÙلة"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-#~ msgstr "يريد التطبيق '%s' الوصول إلى حلقة المÙاتيح '%s' لكن الحلقة مقÙلة"
-
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "يريد تطبيق مجهول الوصول إلى حلقة المÙاتيح الاÙتراضية لكن الحلقة مقÙلة"
-
-#~ msgid "Enter password for default keyring to unlock"
-#~ msgstr "أدخل كلمة السر Ù„ÙÙƒ Ù‚ÙÙ„ حلقة المÙاتيح الاÙتراضية"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "يريد التطبيق '%s' (%s) إنشاء حلقة Ù…Ùاتيح جديدة باسم '%s'.ÙŠÙترض أن تختار "
-#~ "كلمة السر التي تريد استخدمها لهذا الغرض."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "يريد التطبيق '%s' (%s) إنشاء حلقة Ù…Ùاتيح اÙتراضية جديدة. ÙŠÙترض أن تختار "
-#~ "كلمة السر التي تريد استخدمها لهذا الغرض."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "يريد التطبيق '%s' إنشاء حلقة Ù…Ùاتيح جديدة باسم '%s'.ÙŠÙترض أن تختار كلمة "
-#~ "السر التي تريد استخدمها لهذا الغرض."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "يريد التطبيق '%s' إنشاء حلقة Ù…Ùاتيح اÙتراضية جديدة. ÙŠÙترض أن تختار كلمة "
-#~ "السر التي تريد استخدمها لهذا الغرض."
-
-#~ msgid ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "يريد تطبيق مجهول إنشاء حلقة Ù…Ùاتيح جديدة.ÙŠÙترض أن تختار كلمة السر التي "
-#~ "تريد استخدمها لهذا الغرض."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "يريد التطبيق '%s' (%s) تغيير كلمة السر لحلقة المÙاتيح '%s'. ÙŠÙترض أن "
-#~ "تختار كلمة السر التي تريد استخدمها لهذا الغرض."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "يريد التطبيق '%s' (%s) إنشاء حلقة Ù…Ùاتيح اÙتراضية جديدة . ÙŠÙترض أن تختار "
-#~ "كلمة السر التي تريد استخدمها لهذا الغرض."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "يريد التطبيق '%s' تغيير كلمة السر لحلقة Ù…Ùاتيح '%s'. ÙŠÙترض أن تختار كلمة "
-#~ "السر التي تريد استخدمها لهذا الغرض."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "يريد التطبيق '%s' إنشاء حلقة Ù…Ùاتيح اÙتراضية جديدة. ÙŠÙترض أن تختار كلمة "
-#~ "السر التي تريد استخدمها لهذا الغرض."
-
-#~ msgid ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "يريد تطبيق مجهول تغيير كلمة مرور حلقة المÙتاح الاÙتراضية.ÙŠÙترض أن تختار "
-#~ "كلمة السر التي تريد استخدمها لهذا الغرض."
-
-#~ msgid "Choose a new password for the default keyring."
-#~ msgstr "اختر كلمة سر جديدة للحلقة الاÙتراضية"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-#~ msgstr ""
-#~ "يريد التطبيق '%s' (%s) Ø­Ùظ كلمة سر، لكنه لا يوجد حلقة Ù…Ùاتيح اÙتراضية "
-#~ "لهذه العملية. لإنشاء حلقة يجب أن تختار كلمة سر تريد استخدامه معه."
-
-#~ msgid ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "يريد التطبيق '%s' Ø­Ùظ كلمة سر، لكنه لا يوجد حلقة Ù…Ùاتيح اÙتراضية لهذه "
-#~ "العملية. لإنشاء حلقة يجب أن تختار كلمة سر تريد استخدامه معه."
-
-#~ msgid ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "يريد تطبيق مجهول Ø­Ùظ كلمة سر، لكنه لا يوجد حلقة Ù…Ùاتيح اÙتراضية لهذه "
-#~ "العملية. لإنشاء حلقة يجب أن تختار كلمة سر تريد استخدامه معه."
-
-#~ msgid "Create Default Keyring"
-#~ msgstr "أنشئ حلقة Ù…Ùاتيح اÙتراضية"
-
-#~ msgid "Choose password for default keyring"
-#~ msgstr "اختر كلمة سر للحلقة الاÙتراضية"
-
-#~ msgid "Create Login Keyring"
-#~ msgstr "أنشئ حلقة Ù…Ùتاح الولوج"
-
-#~ msgid "Enter your login password"
-#~ msgstr "أدخل كلمة سرّ ولوجك"
-
-#~ msgid ""
-#~ "Your login keyring was not automatically created when you logged into "
-#~ "this computer. It will now be created."
-#~ msgstr ""
-#~ "لم تنشأ حلقة Ù…Ùاتيح الولوج آليا عند الولوج لهذا الحاسوب. ستنشأ الآن."
-
-#~ msgid "Unlock password for %s keyring"
-#~ msgstr "اÙتح كلمة سر حلقة المÙاتيح %s"
-
-#~ msgid "Access Denied"
-#~ msgstr "الوصول مرÙوض"
-
-#~ msgid "The gnome-keyring-daemon application is not running."
-#~ msgstr "تطبيق gnome-keyring-daemon لا يعمل ÙÙŠ الوقت الحالي."
-
-#~ msgid "Error communicating with gnome-keyring-daemon"
-#~ msgstr "خطأ أثناء التواصل مع gnome-keyring-daemon"
-
-#~ msgid "A keyring with that name already exists"
-#~ msgstr "هناك حلقة Ù…Ùاتيح أخرى تحمل هذا الاسم"
-
-#~ msgid "Programmer error: The application sent invalid data."
-#~ msgstr "خطأ برمجي: التطبيق أرسل بيانات غير صالحة."
-
-#~ msgid "No matching results"
-#~ msgstr "لا نتائج مطابقة"
-
-#~ msgid "A keyring with that name does not exist."
-#~ msgstr "لا توجد حلقة Ù…Ùاتيح بهذا الاسم"
-
-#~ msgid "The keyring has already been unlocked."
-#~ msgstr "حلقة المÙاتيح Ù…Ùتوحة مسبقًا."
-
-#~ msgid ""
-#~ "A list of paths to PKCS#11 modules to load. No modules are currently "
-#~ "listed by default, as this is still an experimental feature. This is used "
-#~ "by seahorse and other PKCS#11 aware applications."
-#~ msgstr ""
-#~ "قائمة بوحدات PKCS#11 للتحميل. لا يوجد أية وحدات مدرجة حالياً بشكل اÙتراضي، "
-#~ "بما أن هذه الميزة تجريبية. يستخدم ذلك ÙÙŠ حصان البحر وتطبيقات الإدراك "
-#~ "PKCS#11"
-
-#~ msgid "Import private key"
-#~ msgstr "استيراد Ù…Ùتاح خاص"
-
-#~ msgid "Import public key"
-#~ msgstr "استيراد Ù…Ùتاح عام"
-
-#~ msgid "The system wants to import the public key '%s', but it is locked"
-#~ msgstr "يريد النظام استيراد المÙتاح العام '%s', ولكنه مقÙÙ„"
-
-#~ msgid "Create Storage for Key Information"
-#~ msgstr "أنشئ تخزيناً لمعلومات المÙتاح"
-
-#~ msgid "Choose password to protect storage"
-#~ msgstr "اختر كلمة سر لحماية التخزين"
-
-#~ msgid ""
-#~ "The system wants to store information about your keys and certificates. "
-#~ "In order to protect this information, choose a password with which it "
-#~ "will be locked."
-#~ msgstr ""
-#~ "يريد النظام تخزين المعلومات حول المÙاتيح والشهادات لكي يحمي هذه "
-#~ "المعلومات. اختر كلمة المرور التي سيتم القÙÙ„ باستخدامها"
-
-#~ msgid "Unlock Storage for Key Information"
-#~ msgstr "Ùكّ Ù‚ÙÙ„ التخزين لمعلومات المقتاح"
-
-#~ msgid "Enter password to unlock storage"
-#~ msgstr "أدخل كلمة سر Ù„Ùكّ Ù‚ÙÙ„ التخزين"
-
-#~ msgid ""
-#~ "The system wants to access information about your keys and certificates, "
-#~ "but it is locked."
-#~ msgstr "يريد النظام الوصول إلى المعلومات حول مقاتيحك وشهاداتك، ولكنه مقÙÙ„."
-
-#~ msgid "Trust Association"
-#~ msgstr "اتحاد الثقة"
-
-#~ msgid "Cannot delete '%s' because it is tied to other objects."
-#~ msgstr "غير قادر على حذ٠·'%s' لأنه مربوط بكائنات أخرى."
-
-#~ msgid "Lock private key"
-#~ msgstr "إقÙÙ„ Ù…Ùتاح خاص"
-
-#~ msgid "Lock"
-#~ msgstr "إقÙÙ„"
-
-#~ msgid "Enter password to protect the private key"
-#~ msgstr "أدخل كلمة سر لحماية المÙتاح الخاص"
-
-#~ msgid ""
-#~ "The system wants to store the private key '%s' on your disk. Please enter "
-#~ "a password to lock it with."
-#~ msgstr ""
-#~ "يريد النظام تخزين المقتاح الخاص '%s'·على القرص الخاص بك. رجاءً أدخل كلمة "
-#~ "السر لقÙله بها."
-
-#~ msgid ""
-#~ "The system wants to store '%s' on your disk. Please enter a password to "
-#~ "lock it with."
-#~ msgstr ""
-#~ "يريد النظام تخزين '%s'·على القرص الخاص بك. رجاءً أدخل كلمة السر لقÙله بها."
-
-#~ msgid "Couldn't read secure shell private key: %s"
-#~ msgstr "غير قادر على قراءة Ù…Ùتاح الصدÙØ© الخاص الآمن %s"
-
-#~ msgid "Invalid secure shell private key at: %s"
-#~ msgstr "مقتاح صدÙØ© خاص آمن غير صالح عند: %s"
-
-#~ msgid "Couldn't encrypt the SSH key to store it."
-#~ msgstr "غير قادر على تشÙير Ù…Ùتاح SSH لتخزينه"
-
-#~ msgid "Couldn't encode the SSH key to store it."
-#~ msgstr "غير قادر على ترميز مقتاح SSH لتخزينه"
-
-#~ msgid "Cannot set a random seed"
-#~ msgstr "غير قادر على تعيين بذرة عشوائية"
-
-#~ msgid "Old password cannot be blank."
-#~ msgstr "كلمة السر القديمة لا يمكن أن تكون Ùارغة."
-
-#~ msgid "<span weight=\"bold\">Password strength meter:</span>"
-#~ msgstr "<span weight=\"bold\">مقياس قوة كلمة السر:</span>"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "يريد التطبيق '%s' (%s) الوصول إلى حلقة Ù…Ùاتيح مجهولة لكن الحلقة مقÙلة"
-
-#~ msgid ""
-#~ "The application '%s' wants access to an unknown keyring, but it is locked"
-#~ msgstr "يريد التطبيق '%s' الوصول إلى حلقة Ù…Ùاتيح مجهولة لكن الحلقة مقÙلة"
-
-#~ msgid ""
-#~ "An unknown application wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr "يريد تطبيق مجهول الوصول إلى حلقة Ù…Ùاتيح مجهولة لكن الحلقة مقÙلة"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr ""
-#~ "يريد التطبيق '%s' (%s) الوصول إلى كلمة السر لـ '%s'ÙÙŠ حلقة Ù…Ùاتيح مجهولة."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '%s' in an unknown "
-#~ "keyring."
-#~ msgstr ""
-#~ "يريدالتطبيق '%s' الوصول إلى كلمة السر لـ '%s' ÙÙŠ حلقة Ù…Ùاتيح مجهولة."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr "يريد تطبيق مجهول الوصول إلى كلمة السر لـ '%s'ÙÙŠ حلقة Ù…Ùاتيح مجهولة."
-
-#~ msgid "You must specify the type of request to run\n"
-#~ msgstr "يجب أن تأكد نوع الطلب الذي تريد تشغيله\n"
-
-#~ msgid "Unknown request type\n"
-#~ msgstr "نوع الطلب مجهول\n"
diff --git a/po/as.po b/po/as.po
index 77c8da83..a2baed52 100644
--- a/po/as.po
+++ b/po/as.po
@@ -6,12 +6,12 @@
msgid ""
msgstr ""
"Project-Id-Version: as\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-09-19 07:40+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-08-18 18:04+0530\n"
"Last-Translator: Nilamdyuti Goswami <ngoswami@redhat.com>\n"
"Language-Team: as_IN <kde-i18n-doc@kde.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -97,8 +97,7 @@ msgstr "GNOME Keyring: GPG সহায়ক"
msgid "GPG Password Agent"
msgstr "GPG পাছৱাৰà§à¦¡ সহায়ক"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "অজà§à¦žà¦¾à¦¤"
@@ -125,7 +124,7 @@ msgid "Forget this password when I log out"
msgstr "মই লগআউট কৰিলে à¦à¦‡ পাছৱাৰà§à¦¡ পাহৰি যাব"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "লগিন কৰক"
@@ -171,7 +170,7 @@ msgid "Surname"
msgstr "পদবি"
#
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "কà§à§°à¦®à¦¿à¦• নমà§à¦¬à§°"
@@ -234,7 +233,7 @@ msgstr "DN পৰিপà§à¦·à§à¦Ÿà¦•"
msgid "Pseudonym"
msgstr "ছদà§à¦§à¦¨à¦¾à¦®"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -250,7 +249,7 @@ msgstr "RSA সহ MD5"
msgid "SHA1 with RSA"
msgstr "RSA সহ SHA1"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -289,618 +288,6 @@ msgstr "à¦à¦Ÿà¦¾ ছাইলà§à¦¡ পà§à§°à¦•à§à§°à¦¿à§Ÿà¦¾ (%s) -ৰ পà§
msgid "Unexpected error in waitpid() (%s)"
msgstr "waitpid() (%s) -ত অপà§à§°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤ তà§à§°à§à¦Ÿà¦¿"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr ""
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr ""
-
-#: ../gck/gck-module.c:412
-#, fuzzy, c-format
-#| msgid "Couldn't delete the file: %s"
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "চিহà§à¦¨à¦¿à¦¤ নথিপতà§à§° আà¦à¦¤à§°à§à§±à¦¾ নাযায়: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr ""
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr ""
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "নাম"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "পà§à§°à§‡à§°à¦£ কৰা হৈছে"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "অৱসান ঘটিব"
-
-#
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:262
-msgid "Certificate"
-msgstr "পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§°"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>à¦à¦‡ নামৰ à¦à¦Ÿà¦¾ নথিপতà§à§° ইতিমধà§à¦¯à§‡ অসà§à¦¤à¦¿à¦¤à§à¦¬à¦¬à¦¾à¦¨à¥¤</b>\n"
-"\n"
-"আপà§à¦¨à¦¿ ইয়াক à¦à¦Ÿà¦¾ নতà§à¦¨ নথিপতà§à§°à§°à§‡ সলনি কৰিব বিচাৰে নে?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "পà§à§°à¦¤à¦¿à¦¸à§à¦¥à¦¾à¦ªà¦¨ কৰক (_R)"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "কাৰà§à¦¯à§à¦¯ বাতিল কৰা হৈছিল।"
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§° à¦à¦•à§à¦¸à¦ªà§‹à§°à§à¦Ÿ কৰক"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "নথিপতà§à§°à¦¸à¦®à§‚হ à¦à¦•à§à¦¸à¦ªà§‹à§°à§à¦Ÿ কৰক"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "PEM নথিপতà§à§°à¦¸à¦®à§‚হ"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "অনà§à¦¯ নাম"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "XMPP Addr"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "ই-মেইল"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "X400 ঠিকনা"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "ডাইৰেকটৰি নাম"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "EDI দল নাম"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "IP ঠিকনা"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "ৰেজিসà§à¦Ÿà¦¾à§°à§à¦¡ ID"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "সাধাৰণ বাধাসমূহ"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§° কতৃপকà§à¦·"
-
-#
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "হয়"
-
-#
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "নহয়"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "সৰà§à¦¬à¦¾à¦§à¦¿à¦• পথ দৈৰà§à¦˜"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "অসীমিত"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "পà§à§°à¦¸à¦¾à§°à¦¿à¦¤ চাবি বà§à¦¯à§±à¦¹à¦¾à§°"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "অনà§à¦®à§‹à¦¦à¦¿à¦¤ কাৰণসমূহ"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "বিষয় চাবি পৰিচয়ক"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "চাবি পৰিচয়ক"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "অঙà§à¦•à§€à§Ÿ সà§à¦¬à¦¾à¦•à§à¦·à§°"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "চাবি ইনচিফাৰমেনà§à¦Ÿ"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "তথà§à¦¯ ইনচিফাৰমেনà§à¦Ÿ"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "চাবি চà§à¦•à§à¦¤à¦¿"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§° সà§à¦¬à¦¾à¦•à§à¦·à§°"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "পà§à§°à¦¤à§à¦¯à¦¾à§±à§°à§à¦¤à¦¨ তালিকা সà§à¦¬à¦¾à¦•à§à¦·à§°"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "চাবি বà§à¦¯à§±à¦¹à¦¾à§°"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦¸à¦®à§‚হ"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "বিষয় অতিৰিকà§à¦¤ নামসমূহ"
-
-#
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "পà§à§°à¦¸à¦¾à§°à¦£"
-
-#
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "পৰিচয়ক"
-
-#
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "মান"
-
-#
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "গà§à§°à§à¦¤à§°"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§° à¦à¦•à§à¦¸à¦ªà§‹à§°à§à¦Ÿ কৰিব নোৱাৰি।"
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "পৰিচয়"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "দà§à¦¬à¦¾à§°à¦¾ সতাসতà§à¦¯ নিৰূপিত"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "অৱসান ঘটিব"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "বিষয়ৰ নাম"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "পà§à§°à§‡à§°à¦£à¦•à¦¾à§°à§€à§° নাম"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "পà§à§°à§‡à§°à¦£ কৰা পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§°"
-
-#
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "সংসà§à¦•à§°à¦£"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "চিহà§à¦¨à¦¿à¦¤ সময়ৰ পূৰà§à¦¬à§‡ বৈধ নয়"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "চিহà§à¦¨à¦¿à¦¤ সময়ৰ পিছত বৈধ নয়"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§° ফিংগাৰপà§à§°à¦¿à¦¨à§à¦Ÿà¦¸à¦®à§‚হ"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "সà§à¦¬à¦¾à¦•à§à¦·à§°"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "সà§à¦¬à¦¾à¦•à§à¦·à§°à§° à¦à¦²à¦—ৰিথম"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "সà§à¦¬à¦¾à¦•à§à¦·à§°à§° পà§à§°à¦¾à¦šà¦²à¦¸à¦®à§‚হ"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "ৰাজহà§à§±à¦¾ চাবি তথà§à¦¯"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "চাবিৰ à¦à¦²à¦—ৰিথম"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "চাবিৰ পà§à§°à¦¾à¦šà¦²à¦¸à¦®à§‚হ"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "চাবিৰ আকাৰ"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "Key SHA1 ফিংগাৰপà§à§°à¦¿à¦¨à§à¦Ÿ"
-
-#
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:265
-msgid "Public Key"
-msgstr "ৰাজহà§à§±à¦¾ চাবি"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "বিৱৰণসমূহ (_D)"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr ""
-
-#: ../gcr/gcr-failure-renderer.c:165
-#, fuzzy
-#| msgid "Couldn't delete the file: %s"
-msgid "Could not display file"
-msgstr "চিহà§à¦¨à¦¿à¦¤ নথিপতà§à§° আà¦à¦¤à§°à§à§±à¦¾ নাযায়: %s"
-
-#
-#: ../gcr/gcr-failure-renderer.c:170
-#, fuzzy
-#| msgid "Version"
-msgid "Reason"
-msgstr "সংসà§à¦•à§°à¦£"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr ""
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§°à¦¸à¦®à§‚হ আৰৠচাবিসমূহ ইমপোৰà§à¦Ÿ কৰক"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "চিহà§à¦¨à¦¿à¦¤ সà§à¦¥à¦¾à¦¨à¦¤ ইমপোৰà§à¦Ÿ কৰক:"
-
-#
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "পাছৱাৰà§à¦¡:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "PGP চাবি"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "চাবি ID"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Gnupg পà§à§°à¦•à§à§°à¦¿à§Ÿà¦¾ কোড: %d -ৰ সৈতে পà§à§°à¦¸à§à¦¥à¦¾à¦¨ কৰিছে"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Gnupg পà§à§°à¦•à§à§°à¦¿à§Ÿà¦¾ সংকেত: %d দà§à¦¬à¦¾à§°à¦¾ অনà§à¦¤ পেলোৱা হৈছে"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1921 ../gcr/gcr-parser.c:2179
-msgid "The operation was cancelled"
-msgstr "কৰà§à¦® বাতিল কৰা হৈছে"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "বà§à¦¯à¦•à§à¦¤à¦¿à¦—ত চাবি আনলক কৰিবলে পাছৱাৰà§à¦¡ লিখক"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§° আনলক কৰাৰ বাবে পাছৱাৰà§à¦¡ লিখক"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "আনলক কৰিবলে পাছৱাৰà§à¦¡ লিখক"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "বà§à¦¯à¦•à§à¦¤à¦¿à¦—ত চাবি ইমপোৰà§à¦Ÿ কৰিব হলে, সেইটো আনলক কৰা আবশà§à¦¯à¦•"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§° ইমপোৰà§à¦Ÿ কৰিব হলে, সেইটো আনলক কৰা আবশà§à¦¯à¦•"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "তথà§à¦¯ ইমপোৰà§à¦Ÿ কৰিব হলে, সেইটো আনলক কৰা আবশà§à¦¯à¦•"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "'%s' বà§à¦¯à¦•à§à¦¤à¦¿à¦—ত চাবি ইমপোৰà§à¦Ÿ কৰিব হলে, সেইটো আনলক কৰা আবশà§à¦¯à¦•"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "'%s' পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§° ইমপোৰà§à¦Ÿ কৰিব হলে, সেইটো আনলক কৰা আবশà§à¦¯à¦•"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "'%s' ইমপোৰà§à¦Ÿ কৰিব হলে, সেইটো আনলক কৰা আবশà§à¦¯à¦•"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "ইমপোৰà§à¦Ÿ কৰাৰ বাবে কোনো সà§à¦¥à¦¾à¦¨ চিহà§à¦¨à¦¿à¦¤ কৰা হোৱা নাই"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§°/চাবি ইমপোৰà§à¦Ÿ কৰক"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "ইমপোৰà§à¦Ÿ কৰা পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§°/চাবি সংৰকà§à¦·à¦£à§‡à§° বাবে à¦à¦Ÿà¦¾ সà§à¦¥à¦¾à¦¨ নিৰà§à¦¬à¦¾à¦šà¦¨ কৰক।"
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "চাবি"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "বà§à¦¯à¦•à§à¦¤à¦¿à¦—ত RSA চাবি"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "বà§à¦¯à¦•à§à¦¤à¦¿à¦—ত DSA চাবি"
-
-#
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:259
-msgid "Private Key"
-msgstr "বà§à¦¯à¦•à§à¦¤à¦¿à¦—ত চাবি"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "ৰাজহà§à§±à¦¾ DSA চাবি"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d বিট"
-msgstr[1] "%d বিটসমূহ"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "শকà§à¦¤à¦¿"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "à¦à¦²à¦—ৰিথম"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "আকাৰ"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "ফিংগাৰপà§à§°à¦¿à¦¨à§à¦Ÿà¦¸à¦®à§‚হ"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1924
-msgid "Unrecognized or unsupported data."
-msgstr "অপৰিচিত অথবা অসমৰà§à¦¥à¦¿à¦¤ তথà§à¦¯à¥¤"
-
-#: ../gcr/gcr-parser.c:1927
-msgid "Could not parse invalid or corrupted data."
-msgstr "অবৈধ অথবা কà§à¦·à¦¤à¦¿à¦—à§à§°à¦¸à§à¦¤ তথà§à¦¯ বিশà§à¦²à§‡à¦·à¦£ কৰিব বà§à¦¯à§°à§à¦¥à¥¤"
-
-#: ../gcr/gcr-parser.c:1930
-msgid "The data is locked"
-msgstr "তথà§à¦¯ লক কৰা আছে"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "পিনà§à¦¨à¦¡ পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§° সংৰকà§à¦·à¦£ কৰিবলে à¦à¦Ÿà¦¾ সà§à¦¥à¦¾à¦¨ পোৱা নগল"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "যেতিয়ায় মই লগিন কৰো সà§à¦¬à¦šà¦¾à¦²à¦¿à¦¤à¦­à¦¾à§±à§‡ à¦à¦‡ keyring আনলক কৰিব"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "à¦à¦‡ keyring লক কৰিব "
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "à¦à¦‡ keyring লক কৰিব যদি অলস"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "মই লগ আউট কৰিলে à¦à¦‡ keyring লক কৰিব"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "মিনিটসমূহ"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, fuzzy, c-format
-#| msgid "Unlock"
-msgid "Unlock: %s"
-msgstr "আনলক কৰক"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "আনলক কৰক"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-#, fuzzy
-#| msgid "The unlock password was incorrect"
-msgid "The password was incorrect"
-msgstr "আনলক কৰা পাছৱাৰà§à¦¡ সঠিক নাছিল"
-
-#
-#: ../gcr/gcr-unlock-renderer.c:173
-#, fuzzy
-#| msgid "Password:"
-msgid "Password"
-msgstr "পাছৱাৰà§à¦¡:"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr ""
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr ""
-
-#: ../gcr/gcr-viewer-tool.c:41
-#, fuzzy
-#| msgid "Certificate and Key Storage"
-msgid "GCR Certificate and Key Viewer"
-msgstr "পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§° আৰৠচাবি সংৰকà§à¦·à¦£"
-
-#: ../gcr/gcr-viewer-tool.c:48
-#, fuzzy
-#| msgid "Allow application access to keyring?"
-msgid "Show the application's version"
-msgstr "অনà§à¦ªà§à§°à§Ÿà§‹à¦—ক keyring বà§à¦¯à§±à¦¹à¦¾à§°à§° অনà§à¦®à¦¤à¦¿ পà§à§°à¦¦à¦¾à¦¨ কৰা হ'ব নেকি ?"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr ""
-
-#: ../gcr/gcr-viewer-tool.c:104
-#, fuzzy
-#| msgid "Certificate files"
-msgid "- View certificate and key files"
-msgstr "নথিপতà§à§°à¦¸à¦®à§‚হ à¦à¦•à§à¦¸à¦ªà§‹à§°à§à¦Ÿ কৰক"
-
-#: ../gcr/gcr-viewer-tool.c:118
-#, fuzzy
-#| msgid "Certificate files"
-msgid "Certificate Viewer"
-msgstr "নথিপতà§à§°à¦¸à¦®à§‚হ à¦à¦•à§à¦¸à¦ªà§‹à§°à§à¦Ÿ কৰক"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "URI টোৰ অবৈধ à¦à¦¨à¦•à§‹à¦¡à¦¿à¦‚ আছে।"
-
-#: ../gck/gck-uri.c:177
-#, fuzzy
-#| msgid "The URI has does not have the 'pkcs11' scheme."
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "URI -ৰ 'pkcs11' আà¦à¦šà¦¨à¦¿ নাই।"
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "URI -ৰ বেয়া বাকà§à¦¯à¦¬à¦¿à¦¨à§à¦¯à¦¾à¦¸ আছে।"
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "URl -ৰ à¦à¦Ÿà¦¾ বেয়া সংসà§à¦•à§°à¦£ আছে।"
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "নামবিহীন পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§°"
@@ -967,10 +354,26 @@ msgstr "পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§° আনলক কৰক"
msgid "Unlock public key"
msgstr "ৰাজহà§à§±à¦¾-চাবি আনলক কৰক"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "আনলক কৰক"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "বà§à¦¯à¦•à§à¦¤à¦¿à¦—ত চাবি আনলক কৰিবলে পাছৱাৰà§à¦¡ লিখক"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§° আনলক কৰাৰ বাবে পাছৱাৰà§à¦¡ লিখক"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "ৰাজহà§à§±à¦¾ চাবি আনলক কৰিবলে পাছৱাৰà§à¦¡ লিখক"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "আনলক কৰিবলে পাছৱাৰà§à¦¡ লিখক"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1059,11 +462,11 @@ msgstr "কমানà§à¦¡à¦¸à¦®à§‚হ: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:596
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "à¦à¦¨à¦•à§à§°à¦¿à¦ªà¦¶à¦¨ বিনা পাছৱাৰà§à¦¡ সংৰকà§à¦·à¦£ কৰা হ'ব নেকি ?"
-#: ../ui/gku-prompt-tool.c:597
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1073,15 +476,15 @@ msgstr ""
"সমà§à¦­à¦¬ নহব। আপোনাৰ নথিপতà§à§°à¦¸à¦®à§‚হ পà§à§‹à¦¤à§‡ অনà§à¦®à§‹à¦¦à¦¿à¦¤ যি কোনো বà§à¦¯à¦¬à¦¹à¦¾à§°à¦•à¦¾à§°à§€ দà§à¦¬à¦¾à§°à¦¾ à¦à¦‡à¦¬à§‹à§° "
"পà§à§°à§Ÿà§‹à¦— কৰা সমà§à¦­à¦¬ হ'ব।"
-#: ../ui/gku-prompt-tool.c:604
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "অসà§à§°à¦•à§à¦·à¦¿à¦¤ সংৰকà§à¦·à¦£ বà§à¦¯à¦¬à¦¹à¦¾à§° কৰক"
-#: ../ui/gku-prompt-tool.c:644
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "পাছৱাৰà§à¦¡à¦¸à¦®à§‚হ মিল নাখায়।"
-#: ../ui/gku-prompt-tool.c:654
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "পাছৱাৰà§à¦¡ ৰিকà§à¦¤ ৰাখিব নোৱাৰি"
@@ -1121,625 +524,3 @@ msgstr "পà§à§°à¦¨à¦¿ পাছৱাৰà§à¦¡ (_O):"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "পাছৱাৰà§à¦¡: (_P)"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "'%s' (%s) অনà§à¦ªà§à§°à§Ÿà§‹à¦—, অবিকলà§à¦ªà¦¿à¦¤ keyringত অৱসà§à¦¥à¦¿à¦¤ '<object prop='name'/>' ৰ "
-#~ "পাছৱাৰà§à¦¡ বà§à¦¯à§±à¦¹à¦¾à§° কৰিবলে ইচà§à¦›à§à¦•à¥¤"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "'%s' (%s) অনà§à¦ªà§à§°à§Ÿà§‹à¦—, %s ত অৱসà§à¦¥à¦¿à¦¤ '<object prop='name'/>' ৰ পাছৱাৰà§à¦¡ বà§à¦¯à§±à¦¹à¦¾à§° "
-#~ "কৰিবলে ইচà§à¦›à§à¦•à¥¤"
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "'%s' অনà§à¦ªà§à§°à§Ÿà§‹à¦—, অবিকলà§à¦ªà¦¿à¦¤ চাবি ৰিঙত অৱসà§à¦¥à¦¿à¦¤ '<object prop='name'/>' ৰ পাছৱাৰà§à¦¡ "
-#~ "বà§à¦¯à§±à¦¹à¦¾à§° কৰিবলে ইচà§à¦›à§à¦•à¥¤"
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "'%s' অনà§à¦ªà§à§°à§Ÿà§‹à¦— %s ত অৱসà§à¦¥à¦¿à¦¤ '<object prop='name'/>' ৰ পাছৱাৰà§à¦¡ বà§à¦¯à§±à¦¹à¦¾à§° কৰিবলে "
-#~ "ইচà§à¦›à§à¦•à¥¤"
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "à¦à¦Ÿà¦¾ অজà§à¦žà¦¾à¦¤ অনà§à¦ªà§à§°à§Ÿà§‹à¦— অবিকলà§à¦ªà¦¿à¦¤ চাবি ৰিঙত অৱসà§à¦¥à¦¿à¦¤ '<object prop='name'/>' ৰ "
-#~ "পাছৱাৰà§à¦¡ বà§à¦¯à§±à¦¹à¦¾à§° কৰিবলে ইচà§à¦›à§à¦•à¥¤"
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "à¦à¦Ÿà¦¾ অজà§à¦žà¦¾à¦¤ অনà§à¦ªà§à§°à§Ÿà§‹à¦— %s ত অৱসà§à¦¥à¦¿à¦¤ '<object prop='name'/>' ৰ পাছৱাৰà§à¦¡ বà§à¦¯à§±à¦¹à¦¾à§° "
-#~ "কৰিবলে ইচà§à¦›à§à¦•à¥¤"
-
-#~ msgid "Allow access"
-#~ msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à§° অনà§à¦®à¦¤à¦¿ পà§à§°à¦¦à¦¾à¦¨ কৰা হ'ব"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "'%s' (%s) অনà§à¦ªà§à§°à§Ÿà§‹à¦— অবিকলà§à¦ªà¦¿à¦¤ keyring বà§à¦¯à§±à¦¹à¦¾à§° কৰিবলে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ সেইটো বৰà§à¦¤à¦®à¦¾à¦¨à§‡ "
-#~ "লক কৰা আছে"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "'%s' (%s) অনà§à¦ªà§à§°à§Ÿà§‹à¦— '%s' keyring বà§à¦¯à§±à¦¹à¦¾à§° কৰিবলে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ সেইটো বৰà§à¦¤à¦®à¦¾à¦¨à§‡ লক "
-#~ "কৰা আছে"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-#~ msgstr ""
-#~ "'%s' অনà§à¦ªà§à§°à§Ÿà§‹à¦— অবিকলà§à¦ªà¦¿à¦¤ keyring বà§à¦¯à§±à¦¹à¦¾à§° কৰিবলে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ সেইটো বৰà§à¦¤à¦®à¦¾à¦¨à§‡ লক "
-#~ "কৰা আছে"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-#~ msgstr ""
-#~ "'%s' অনà§à¦ªà§à§°à§Ÿà§‹à¦— '%s' keyring বà§à¦¯à§±à¦¹à¦¾à§° কৰিবলে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ সেইটো বৰà§à¦¤à¦®à¦¾à¦¨à§‡ লক কৰা "
-#~ "আছে"
-
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "à¦à¦Ÿà¦¾ অজà§à¦žà¦¾à¦¤ অনà§à¦ªà§à§°à§Ÿà§‹à¦— অবিকলà§à¦ªà¦¿à¦¤ keyring বà§à¦¯à§±à¦¹à¦¾à§° কৰিবলে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ সেইটো বৰà§à¦¤à¦®à¦¾à¦¨à§‡ "
-#~ "লক কৰা আছে"
-
-#~ msgid "Enter password for default keyring to unlock"
-#~ msgstr "অবিকলà§à¦ªà¦¿à¦¤ keyring আনলক কৰিবলে পাছৱাৰà§à¦¡ লিখক"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "'%s' (%s) অনà§à¦ªà§à§°à§Ÿà§‹à¦— '%s' নামক à¦à¦Ÿà¦¾ নতà§à¦¨ keyring সৃষà§à¦Ÿà¦¿ কৰিবলে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ কামত "
-#~ "বà§à¦¯à§±à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ পাছৱাৰà§à¦¡ নিৰà§à¦¬à¦¾à¦šà¦¨ কৰা আবশà§à¦¯à¦•à¥¤"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "'%s' (%s) অনà§à¦ªà§à§°à§Ÿà§‹à¦— à¦à¦Ÿà¦¾ অবিকলà§à¦ªà¦¿à¦¤ keyring সৃষà§à¦Ÿà¦¿ কৰিবলে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ কামত "
-#~ "বà§à¦¯à§±à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ পাছৱাৰà§à¦¡ নিৰà§à¦¬à¦¾à¦šà¦¨ কৰা আবশà§à¦¯à¦•à¥¤"
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "'%s' অনà§à¦ªà§à§°à§Ÿà§‹à¦— '%s' নামক à¦à¦Ÿà¦¾ নতà§à¦¨ keyring সৃষà§à¦Ÿà¦¿ কৰিবলে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ কামত "
-#~ "বà§à¦¯à§±à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ পাছৱাৰà§à¦¡ নিৰà§à¦¬à¦¾à¦šà¦¨ কৰা আবশà§à¦¯à¦•à¥¤"
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "'%s' অনà§à¦ªà§à§°à§Ÿà§‹à¦— à¦à¦Ÿà¦¾ নতà§à¦¨ অবিকলà§à¦ªà¦¿à¦¤ keyring সৃষà§à¦Ÿà¦¿ কৰিবলে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ কামত "
-#~ "বà§à¦¯à§±à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ পাছৱাৰà§à¦¡ নিৰà§à¦¬à¦¾à¦šà¦¨ কৰা আবশà§à¦¯à¦•à¥¤"
-
-#~ msgid ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "à¦à¦Ÿà¦¾ অজà§à¦žà¦¾à¦¤ অনà§à¦ªà§à§°à§Ÿà§‹à¦— à¦à¦Ÿà¦¾ নতà§à¦¨ অবিকলà§à¦ªà¦¿à¦¤ keyring সৃষà§à¦Ÿà¦¿ কৰিবলে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ কামত "
-#~ "বà§à¦¯à§±à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ পাছৱাৰà§à¦¡ নিৰà§à¦¬à¦¾à¦šà¦¨ কৰা আবশà§à¦¯à¦•à¥¤"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "'%s' (%s) অনà§à¦ªà§à§°à§Ÿà§‹à¦— '%s' keyring -ৰ পাছৱাৰà§à¦¡ পৰিবৰà§à¦¤à¦¨ কৰিবলে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ কামত "
-#~ "বà§à¦¯à§±à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ পাছৱাৰà§à¦¡ নিৰà§à¦¬à¦¾à¦šà¦¨ কৰা আবশà§à¦¯à¦•à¥¤"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "'%s' (%s) অনà§à¦ªà§à§°à§Ÿà§‹à¦— অবিকলà§à¦ªà¦¿à¦¤ keyring -ৰ পাছৱাৰà§à¦¡ পৰিবৰà§à¦¤à¦¨ কৰিবলে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ "
-#~ "কামত বà§à¦¯à§±à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ পাছৱাৰà§à¦¡ নিৰà§à¦¬à¦¾à¦šà¦¨ কৰা আবশà§à¦¯à¦•à¥¤"
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "'%s' অনà§à¦ªà§à§°à§Ÿà§‹à¦— '%s' keyring -ৰ পাছৱাৰà§à¦¡ পৰিবৰà§à¦¤à¦¨ কৰিবলে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ কামত "
-#~ "বà§à¦¯à§±à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ পাছৱাৰà§à¦¡ নিৰà§à¦¬à¦¾à¦šà¦¨ কৰা আবশà§à¦¯à¦•à¥¤"
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "'%s' অনà§à¦ªà§à§°à§Ÿà§‹à¦— অবিকলà§à¦ªà¦¿à¦¤ keyring -ৰ পাছৱাৰà§à¦¡ পৰিবৰà§à¦¤à¦¨ কৰিবলে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ কামত "
-#~ "বà§à¦¯à§±à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ পাছৱাৰà§à¦¡ নিৰà§à¦¬à¦¾à¦šà¦¨ কৰা আবশà§à¦¯à¦•à¥¤"
-
-#~ msgid ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "à¦à¦Ÿà¦¾ অজà§à¦žà¦¾à¦¤ অনà§à¦ªà§à§°à§Ÿà§‹à¦— অবিকলà§à¦ªà¦¿à¦¤ keyring -ৰ পাছৱাৰà§à¦¡ পৰিবৰà§à¦¤à¦¨ কৰিবলে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ "
-#~ "কামত বà§à¦¯à§±à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ পাছৱাৰà§à¦¡ নিৰà§à¦¬à¦¾à¦šà¦¨ কৰা আবশà§à¦¯à¦•à¥¤"
-
-#~| msgid "Choose a new password for the default keyring. "
-#~ msgid "Choose a new password for the default keyring."
-#~ msgstr "অবিকলà§à¦ªà¦¿à¦¤ keyringৰ বাবে নতà§à¦¨ পাছৱাৰà§à¦¡ নিৰà§à¦¬à¦¾à¦šà¦¨ কৰক। "
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-#~ msgstr ""
-#~ "'%s' (%s) অনà§à¦ªà§à§°à§Ÿà§‹à¦— à¦à¦Ÿà¦¾ পাছৱাৰà§à¦¡ সংৰকà§à¦·à¦£ কৰিবলে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ কোনো অবিকলà§à¦ªà¦¿à¦¤ "
-#~ "keyring উপসà§à¦¥à¦¿à¦¤ নেই। নতà§à¦¨ keyring নিৰà§à¦®à¦¾à¦£à§‡à§° বাবে বà§à¦¯à§±à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ পাছৱাৰà§à¦¡ নিৰà§à¦¬à¦¾à¦šà¦¨ "
-#~ "কৰা আবশà§à¦¯à¦•à¥¤"
-
-#~ msgid ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "'%s' অনà§à¦ªà§à§°à§Ÿà§‹à¦— à¦à¦Ÿà¦¾ পাছৱাৰà§à¦¡ সংৰকà§à¦·à¦£ কৰিবলে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ কোনো অবিকলà§à¦ªà¦¿à¦¤ keyring "
-#~ "উপসà§à¦¥à¦¿à¦¤ নেই। নতà§à¦¨ keyring নিৰà§à¦®à¦¾à¦£à§‡à§° বাবে বà§à¦¯à§±à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ পাছৱাৰà§à¦¡ নিৰà§à¦¬à¦¾à¦šà¦¨ কৰা "
-#~ "আবশà§à¦¯à¦•à¥¤"
-
-#~ msgid ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "à¦à¦Ÿà¦¾ অজà§à¦žà¦¾à¦¤ অনà§à¦ªà§à§°à§Ÿà§‹à¦— à¦à¦Ÿà¦¾ পাছৱাৰà§à¦¡ সংৰকà§à¦·à¦£ কৰিবলে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ কোনো অবিকলà§à¦ªà¦¿à¦¤ "
-#~ "keyring উপসà§à¦¥à¦¿à¦¤ নেই। নতà§à¦¨ keyring নিৰà§à¦®à¦¾à¦£à§‡à§° বাবে বà§à¦¯à§±à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ পাছৱাৰà§à¦¡ নিৰà§à¦¬à¦¾à¦šà¦¨ "
-#~ "কৰা আবশà§à¦¯à¦•à¥¤"
-
-#~ msgid "Create Default Keyring"
-#~ msgstr "অবিকলà§à¦ªà¦¿à¦¤ keyring সৃষà§à¦Ÿà¦¿ কৰক"
-
-#~ msgid "Choose password for default keyring"
-#~ msgstr "অবিকলà§à¦ªà¦¿à¦¤ keyring -ৰ বাবে পাছৱাৰà§à¦¡ নিৰà§à¦¬à¦¾à¦šà¦¨ কৰক"
-
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect as gnome-keyring-daemon starts, (ie: when the user logs "
-#~ "in). This setting may be overridden when certain command line arguments "
-#~ "are passed to the daemon."
-#~ msgstr ""
-#~ "à¦à¦‡ বিকলà§à¦ªà§‡à§° সাহাযà§à¦¯à§‡ gnome-keyring ডেমনেৰ মধà§à¦¯à§‡ PKCS#11 সামগà§à§°à§€ সকà§à§°à¦¿à§Ÿ কৰা "
-#~ "হ'ব। gnome-keyring-daemon আৰমà§à¦­à§‡à§° সময় (অৰà§à¦¥à¦¾à§Ž, বà§à¦¯à¦¬à¦¹à¦¾à§°à¦•à¦¾à§°à§€ লগ-ইন কৰাৰ সময়) ই "
-#~ "পà§à§°à§Ÿà§‹à¦— কৰা হ'ব। কমানà§à¦¡-লাইন থেকে পà§à§°à¦¯à§‹à¦œà§à¦¯ কিছৠআৰà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ à¦à¦‡ ডেমনেৰ বà§à¦¯à¦¬à¦¹à¦¾à§°à§° বাবে "
-#~ "উলà§à¦²à§‡à¦– কৰা হলে à¦à¦‡ বৈশিষà§à¦Ÿà§à¦¯ উপেকà§à¦·à¦¾ কৰা যাবে।"
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "à¦à¦‡ বিকলà§à¦ªà§‡à§° সাহাযà§à¦¯à§‡ gnome-keyring ডেমনেৰ মধà§à¦¯à§‡ SSH agent সকà§à§°à¦¿à§Ÿ কৰা হ'ব। "
-#~ "gnome-keyring-daemon আৰমà§à¦­à§‡à§° সময় (অৰà§à¦¥à¦¾à§Ž, বà§à¦¯à¦¬à¦¹à¦¾à§°à¦•à¦¾à§°à§€ লগ-ইন কৰাৰ সময়) ই "
-#~ "পà§à§°à§Ÿà§‹à¦— কৰা হ'ব। কমানà§à¦¡-লাইন থেকে পà§à§°à¦¯à§‹à¦œà§à¦¯ কিছৠআৰà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ à¦à¦‡ ডেমনেৰ বà§à¦¯à¦¬à¦¹à¦¾à§°à§° বাবে "
-#~ "উলà§à¦²à§‡à¦– কৰা হলে à¦à¦‡ বৈশিষà§à¦Ÿà§à¦¯ উপেকà§à¦·à¦¾ কৰা যাবে।"
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "gnome-keyring PKCS#11 সামগà§à§°à§€ সকà§à§°à¦¿à§Ÿ চাবি না।"
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "gnome-keyring SSH agent সকà§à§°à¦¿à§Ÿ চাবি না।"
-
-#~ msgid "Create Login Keyring"
-#~ msgstr "লগ-ইন keyring সৃষà§à¦Ÿà¦¿ কৰক"
-
-#~ msgid "Enter your login password"
-#~ msgstr "লগ-ইন পাছৱাৰà§à¦¡ পৰিবৰà§à¦¤à¦¨ লিখক"
-
-#~ msgid ""
-#~ "Your login keyring was not automatically created when you logged into "
-#~ "this computer. It will now be created."
-#~ msgstr ""
-#~ "à¦à¦‡ কমà§à¦ªà¦¿à¦‰à¦Ÿà¦¾à§°à§‡ লগ-ইন কৰাৰ সময়, আপোনাৰ লগ-ইন কি-ৰিং সà§à¦¬à§Ÿà¦‚কà§à§°à¦¿à§Ÿà¦­à¦¾à¦¬à§‡ নিৰà§à¦®à¦¾à¦£ কৰা "
-#~ "কৰা হোৱা নাই। ই à¦à¦–ন নিৰà§à¦®à¦¾à¦£ কৰা হ'ব।"
-
-#~ msgid "Automatically unlock this private key when I log in."
-#~ msgstr "লগ-ইন কৰাৰ সময় সà§à¦¬à§Ÿà¦‚কà§à§°à¦¿à§Ÿà§°à§‚পে à¦à¦‡ বà§à¦¯à¦•à§à¦¤à¦¿à¦—ত-চাবি আনলক কৰা হ'ব।"
-
-#~ msgid "Automatically unlock this certificate when I log in."
-#~ msgstr "লগ-ইন কৰাৰ সময় সà§à¦¬à§Ÿà¦‚কà§à§°à¦¿à§Ÿà§°à§‚পে à¦à¦‡ পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§° আনলক কৰা হ'ব।"
-
-#~ msgid "Automatically unlock this public key when I log in."
-#~ msgstr "লগ-ইন কৰাৰ সময় সà§à¦¬à§Ÿà¦‚কà§à§°à¦¿à§Ÿà§°à§‚পে à¦à¦‡ ৰাজহà§à§±à¦¾-চাবি আনলক কৰা হ'ব।"
-
-#~ msgid "Automatically unlock this when I log in"
-#~ msgstr "লগ-ইন কৰাৰ সময় সà§à¦¬à§Ÿà¦‚কà§à§°à¦¿à§Ÿà§°à§‚পে ই আনলক কৰা হ'ব।"
-
-#~ msgid "Automatically unlock secure storage when I log in."
-#~ msgstr "লগ-ইন কৰাৰ সময় সà§à¦¬à§Ÿà¦‚কà§à§°à¦¿à§Ÿà§°à§‚পে সà§à§°à¦•à§à¦·à¦¿à¦¤ সংগà§à§°à¦¸à§à¦¥à¦² আনলক কৰা হ'ব।"
-
-#~ msgid ""
-#~ "<b><big>Could not grab your mouse.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>মাউসেৰ উপৰ নিয়নà§à¦¤à§à§°à¦£ কৰা সমà§à¦­à¦¬ কৰা হোৱা নাই।</big></b>\n"
-#~ "\n"
-#~ "কোনো কà§à¦·à¦¤à¦¿à¦•à¦¾à§°à§€ কà§à¦²à¦¾à§Ÿà§‡à¦¨à§à¦Ÿ সমà§à¦­à¦¬à¦¤ আপোনাৰ সেশান বিনা অধিকাৰে নিৰীকà§à¦·à¦£ কৰছে অথবা "
-#~ "সমà§à¦­à¦¬à¦¤ আপনি কোনো মেনৠকà§à¦²à¦¿à¦• কৰেছেন অথবা কোনো অনà§à¦ªà§à§°à§Ÿà§‹à¦— নিজেৰ উপৰ আকৰà§à¦·à¦£ সৃষà§à¦Ÿà¦¿ "
-#~ "কৰেছে।\n"
-#~ "\n"
-#~ "পà§à¦¨à§°à¦¾à§Ÿ চেষà§à¦Ÿà¦¾ কৰক।"
-
-#~ msgid ""
-#~ "<b><big>Could not grab your keyboard.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>কি-বোৰà§à¦¡à§‡à§° উপৰ নিয়নà§à¦¤à§à§°à¦£ কৰা সমà§à¦­à¦¬ কৰা হোৱা নাই।</big></b>\n"
-#~ "\n"
-#~ "কোনো কà§à¦·à¦¤à¦¿à¦•à¦¾à§°à§€ কà§à¦²à¦¾à§Ÿà§‡à¦¨à§à¦Ÿ সমà§à¦­à¦¬à¦¤ আপোনাৰ সেশান বিনা অধিকাৰে নিৰীকà§à¦·à¦£ কৰছে অথবা "
-#~ "সমà§à¦­à¦¬à¦¤ আপনি কোনো মেনৠকà§à¦²à¦¿à¦• কৰেছেন অথবা কোনো অনà§à¦ªà§à§°à§Ÿà§‹à¦— নিজেৰ উপৰ আকৰà§à¦·à¦£ সৃষà§à¦Ÿà¦¿ "
-#~ "কৰেছে।\n"
-#~ "\n"
-#~ "পà§à¦¨à§°à¦¾à§Ÿ চেষà§à¦Ÿà¦¾ কৰক।"
-
-#~ msgid "_Deny"
-#~ msgstr "পà§à§°à¦¤à§à¦¯à¦¾à¦–à§à¦¯à¦¾à¦¨ কৰক (_D)"
-
-#
-#~ msgid "C_reate"
-#~ msgstr "C"
-
-#
-#~ msgid "C_hange"
-#~ msgstr "পৰিবৰà§à¦¤à¦¨ কৰক (_h)"
-
-#~ msgid "Allow _Once"
-#~ msgstr "à¦à¦•à¦¬à¦¾à§° বà§à¦¯à§±à¦¹à¦¾à§°à§° অনà§à¦®à¦¤à¦¿ পà§à§°à¦¦à¦¾à¦¨ কৰা হ'ব (_O)"
-
-#~ msgid "_Always Allow"
-#~ msgstr "সৰà§à¦¬à¦¦à¦¾ বà§à¦¯à§±à¦¹à¦¾à§°à§° অনà§à¦®à¦¤à¦¿ পà§à§°à¦¦à¦¾à¦¨ কৰা হ'ব (_A)"
-
-#~ msgid "Removable Disk: %s"
-#~ msgstr "অপসাৰণযোগà§à¦¯ ডিসà§à¦•: %s"
-
-#~ msgid "Removable Disk"
-#~ msgstr "অপসাৰণযোগà§à¦¯ ডিসà§à¦•"
-
-#~ msgid "Home"
-#~ msgstr "ঘৰ"
-
-#~ msgid "The disk or drive this file is located on is not present"
-#~ msgstr "নথিপতà§à§° ধাৰণকাৰী ডিসà§à¦• অথবা ডà§à§°à¦¾à¦‡à¦­ উপসà§à¦¥à¦¿à¦¤ নহয়"
-
-#~ msgid "Couldn't create directory: %s"
-#~ msgstr "পঞà§à¦œà¦¿à¦•à¦¾ নিৰà§à¦®à¦¾à¦£ কৰা নাযায়: %s"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§°à§° অংশ নয়</i>"
-
-#
-#~ msgid "<i>unknown</i>"
-#~ msgstr "অজà§à¦žà¦¾à¦¤"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<Not Part of Certificate>"
-
-#
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>ফিঙà§à¦—াৰপà§à§°à¦¿à¦¨à§à¦Ÿ</b>"
-
-#
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>পà§à§°à¦¦à¦¾à¦¨à¦•à¦¾à§°à§€</b>"
-
-#
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>লকà§à¦·à§à¦¯</b>"
-
-#
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>নিমà§à¦¨à¦²à¦¿à¦–িত কাজেৰ বাবে à¦à¦‡ পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§° পৰীকà§à¦·à¦¿à¦¤ হৈছে:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>বৈধতা</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "Common Name (CN)"
-
-#
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "ই-মেইল পà§à§°à¦¾à¦ªà§à¦¤à¦¿à§° পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§°"
-
-#
-#~ msgid "Email Signer Certificate"
-#~ msgstr "ই-মেইল সà§à¦¬à¦¾à¦•à§à¦·à§°à§° পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§°"
-
-#
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "MD5 ফিঙà§à¦—াৰপà§à§°à¦¿à¦¨à§à¦Ÿ"
-
-#
-#~ msgid "Organization (O)"
-#~ msgstr "পà§à§°à¦¤à¦¿à¦·à§à¦ à¦¾à¦¨ (O)"
-
-#
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "পà§à§°à¦¾à¦¤à¦¿à¦·à§à¦ à¦¾à¦¨à¦¿à¦• বিভাগ (OU)"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr "<span size='large' weight='bold'>পà§à§°à¦®à¦¾à¦£à¦ªà¦¤à§à§° আৰৠচাবি ইমপোৰà§à¦Ÿ কৰক</span>"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "পৰà§à¦¯à¦¾à¦ªà§à¦¤ মেমৰি উপলবà§à¦§ নেই"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "চিহà§à¦¨à¦¿à¦¤ সà§à¦²à¦Ÿ ID বৈধ নহয়"
-
-#~ msgid "Internal error"
-#~ msgstr "অভà§à¦¯à¦¨à§à¦¤à§°à§€à¦£ তà§à§°à§à¦Ÿà¦¿"
-
-#~ msgid "The operation failed"
-#~ msgstr "কৰà§à¦® বà§à¦¯à§°à§à¦¥"
-
-#
-#~ msgid "Invalid arguments"
-#~ msgstr "অবৈধ আৰà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "আবশà§à¦¯à¦• থà§à§°à§‡à¦¡à¦—à§à¦²à¦¿ মডিউল দà§à¦¬à¦¾à§°à¦¾ নিৰà§à¦®à¦¾à¦£ কৰা সমà§à¦­à¦¬ নহয়"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "চিহà§à¦¨à¦¿à¦¤ মডিউল দà§à¦¬à¦¾à§°à¦¾ সঠিকভাবে তথà§à¦¯ লক কৰা সমà§à¦­à¦¬ নয়"
-
-#~ msgid "The field is read-only"
-#~ msgstr "à¦à¦‡ কà§à¦·à§‡à¦¤à§à§°à¦Ÿà¦¿ শà§à¦§à§à¦®à¦¾à¦¤à§à§° পাঠ-যোগà§à¦¯"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "à¦à¦‡ কà§à¦·à§‡à¦¤à§à§°à§‡ সংবেদনশীল তথà§à¦¯ উপসà§à¦¥à¦¿à¦¤ আছে à¦à¦¬à¦‚ পà§à§°à¦•à¦¾à¦¶ কৰা যাবে না"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "à¦à¦‡ কà§à¦·à§‡à¦¤à§à§°à¦Ÿà¦¿ বৈধ নহয় অথবা অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "কà§à¦·à§‡à¦¤à§à§°à§° মান বৈধ নহয়"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "তথà§à¦¯ বৈধ নহয় অথবা পৰিচিত নহয়"
-
-#~ msgid "The data is too long"
-#~ msgstr "তথà§à¦¯ অতà§à¦¯à¦¾à¦§à¦¿à¦• লমà§à¦¬à¦¾"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "ডিভাইসেৰ মধà§à¦¯à§‡ à¦à¦Ÿà¦¾ তà§à§°à§à¦Ÿà¦¿ দেখা দিয়েছে"
-
-#~ msgid "Insufficient memory available on device"
-#~ msgstr "ডিভাইসেৰ মধà§à¦¯à§‡ পৰà§à¦¯à¦¾à¦ªà§à¦¤ মেমৰি উপসà§à¦¥à¦¿à¦¤ নেই"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "ডিভাইসটি সৰিয়ে ফেলা হৈছে অথবা বিচà§à¦›à¦¿à¦¨à§à¦¨ কৰা হৈছে"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "à¦à¦¨à¦•à§à§°à¦¿à¦ªà§à¦Ÿ কৰা তথà§à¦¯ বৈধ নহয় অথবা পৰিচিত নহয়"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "à¦à¦¨à¦•à§à§°à¦¿à¦ªà§à¦Ÿ কৰা তথà§à¦¯ অতà§à¦¯à¦¾à¦§à¦¿à¦• লমà§à¦¬à¦¾"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "à¦à¦‡ কৰà§à¦® সমৰà§à¦¥à¦¿à¦¤ নহয়"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "চাবি অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤ অথবা বৈধ নহয়"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "চাবিৰ আকাৰ সঠিক নহয়"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "চাবিৰ ধৰন সঠিক নহয়"
-
-#~ msgid "No key is needed"
-#~ msgstr "কোনো চাবিৰ পà§à§°à§Ÿà§‹à¦œà¦¨ নেই"
-
-#~ msgid "The key is different than before"
-#~ msgstr "কি-টি পূৰà§à¦¬à¦¬à§°à§à¦¤à§€ অবসà§à¦¥à¦¾ থেকে পৰিবৰà§à¦¤à¦¿à¦¤ হৈছে"
-
-#~ msgid "A key is needed"
-#~ msgstr "à¦à¦Ÿà¦¾ চাবি আবশà§à¦¯à¦•"
-
-#~ msgid "Cannot include the key in digest"
-#~ msgstr "ডাইজেসà§à¦Ÿà§‡à§° মধà§à¦¯à§‡ চাবি অনà§à¦¤à§°à§à¦­à§à¦•à§à¦¤ কৰা যাবে না"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "à¦à¦‡ চাবি সহযোগে à¦à¦‡ কৰà§à¦® কৰা সমà§à¦­à¦¬ নহয়"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "কি-ৰি ৰà§â€Œà¦¯à¦¾à¦ª কৰা সমà§à¦­à¦¬ নয়"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "চিহà§à¦¨à¦¿à¦¤ চাবি à¦à¦•à§à¦¸à¦ªà§‹à§°à§à¦Ÿ কৰা সমà§à¦­à¦¬ নহয়"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "কà§à§°à¦¿à¦ªà§à¦Ÿà§‹ বà§à¦¯à§±à¦¸à§à¦¥à¦¾ বৈধ নহয় অথবা অপৰিচিত"
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "কà§à§°à¦¿à¦ªà§à¦Ÿà§‹ বà§à¦¯à§±à¦¸à§à¦¥à¦¾à§° কà§à¦·à§‡à¦¤à§à§°à§‡ অবৈধ আৰà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ উপসà§à¦¥à¦¿à¦¤"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "সামগà§à§°à§€ অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤ অথবা বৈধ নহয়"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "à¦à¦Ÿà¦¾ পৃথক কৰà§à¦® বৰà§à¦¤à¦®à¦¾à¦¨à§‡ চলছে"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "কোনো কৰà§à¦® বৰà§à¦¤à¦®à¦¾à¦¨à§‡ সঞà§à¦šà¦¾à¦²à¦¿à¦¤ হচà§à¦›à§‡ না"
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "পাছৱাৰà§à¦¡ অথবা PIN বৈধ নহয়"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "পাছৱাৰà§à¦¡ অথবা PIN ৰ দৈৰà§à¦˜à§à¦¯ সঠিক নহয়"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "পাছৱাৰà§à¦¡ অথবা PIN ৰ মেয়াদ পূৰà§à¦£ হৈছে"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "পাছৱাৰà§à¦¡ অথবা PIN লক কৰা আছে"
-
-#~ msgid "The session is closed"
-#~ msgstr "সেশান বনà§à¦§ হয়ে গেছে"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "অতà§à¦¯à¦¾à¦§à¦¿à¦• সংখà§à¦¯à¦• সেশান সকà§à§°à¦¿à§Ÿ আছে"
-
-#~ msgid "The session is invalid"
-#~ msgstr "à¦à¦‡ সেশানটি বৈধ নহয়"
-
-#~ msgid "The session is read-only"
-#~ msgstr "à¦à¦‡ সেশানটি শà§à¦§à§à¦®à¦¾à¦¤à§à§° পাঠ-যোগà§à¦¯"
-
-#~ msgid "An open session exists"
-#~ msgstr "à¦à¦Ÿà¦¾ সেশান বৰà§à¦¤à¦®à¦¾à¦¨à§‡ খোলা আছে"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "শà§à¦§à§à¦®à¦¾à¦¤à§à§° পাঠযোগà§à¦¯ à¦à¦Ÿà¦¾ সেশান বৰà§à¦¤à¦®à¦¾à¦¨à§‡ চলছে"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "à¦à¦¡à¦®à¦¿à¦¨à¦¿à¦¸à§à¦Ÿà§à§°à§‡à¦Ÿà§°à§° à¦à¦Ÿà¦¾ সেশান বৰà§à¦¤à¦®à¦¾à¦¨à§‡ চলছে"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "সà§à¦¬à¦¾à¦•à§à¦·à§° সঠিক নহয় অথবা কà§à¦·à¦¤à¦¿à¦—à§à§°à¦¸à§à¦¤"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "সà§à¦¬à¦¾à¦•à§à¦·à§° পৰিচিত নহয় অথবা কà§à¦·à¦¤à¦¿à¦—à§à§°à¦¸à§à¦¤"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "কয়েকটি আবশà§à¦¯à¦• কà§à¦·à§‡à¦¤à§à§°à§° মান অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "কয়েকটি কà§à¦·à§‡à¦¤à§à§°à§° মান বৈধ নহয়"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "ডিভাইস উপসà§à¦¥à¦¿à¦¤ নেই অথবা বিচà§à¦›à¦¿à¦¨à§à¦¨ কৰা হৈছে"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "ডিভাইসটি বৈধ নহয় অথবা পৰিচিত নহয়"
-
-#~ msgid "The device is write protected"
-#~ msgstr "ডিভাইসটি লিখাৰ বাবে অনà§à¦®à§‹à¦¦à¦¿à¦¤ নহয়"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "অবৈধ হওয়াৰ ফলত চাবি ইমপোৰà§à¦Ÿ কৰা যাবে না"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "ভà§à¦² মাপেৰ হওয়াৰ ফলত চাবি ইমপোৰà§à¦Ÿ কৰা যাবে না"
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "ভà§à¦² ধৰনেৰ হওয়াৰ ফলত চাবি ইমপোৰà§à¦Ÿ কৰা যাবে না"
-
-#~ msgid "You are already logged in"
-#~ msgstr "আপনি লগ-ইন কৰা অবসà§à¦¥à¦¾à§Ÿ আছে"
-
-#~ msgid "No user has logged in"
-#~ msgstr "কোনো বà§à¦¯à§±à¦¹à¦¾à§°à¦•à¦¾à§°à§€ লগ-ইন কৰেননি"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•à¦¾à§°à§€à§° পাছৱাৰà§à¦¡ অথবা PIN নিৰà§à¦§à¦¾à§°à¦¿à¦¤ কৰা হোৱা নাই"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "বà§à¦¯à§±à¦¹à¦¾à§°à¦•à¦¾à§°à§€à§° পà§à§°à¦•à§ƒà¦¤à¦¿ বৈধ নহয়"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "পৃথক à¦à¦• বà§à¦¯à§±à¦¹à¦¾à§°à¦•à¦¾à§°à§€ পূৰà§à¦¬à§‡ লগ-ইন কৰেছেন"
-
-#~ msgid "Too many users of different types logged in"
-#~ msgstr "বিভিনà§à¦¨ ধৰনেৰ অতà§à¦¯à¦¾à¦§à¦¿à¦• সংখà§à¦¯à¦• বà§à¦¯à§±à¦¹à¦¾à§°à¦•à¦¾à§°à§€ লগ-ইন কৰেছেন"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "à¦à¦Ÿà¦¾ অবৈধ-চাবি ইমপোৰà§à¦Ÿ কৰা যাবে না"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "ভà§à¦² মাপেৰ চাবি ইমপোৰà§à¦Ÿ কৰা যাবে না"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "চাবি অবৈধ হওয়াৰ ফলত চাবি à¦à¦•à§à¦¸à¦ªà§‹à§°à§à¦Ÿ কৰা যাবে না"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "ভà§à¦² মাপেৰ হওয়াৰ ফলত চাবি à¦à¦•à§à¦¸à¦ªà§‹à§°à§à¦Ÿ কৰা যাবে না"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "ভà§à¦² ধৰনেৰ হওয়াৰ ফলত চাবি à¦à¦•à§à¦¸à¦ªà§‹à§°à§à¦Ÿ কৰা যাবে না"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "ৰà§â€Œà¦¯à¦¾à¦¨à§à¦¡à¦® নমà§à¦¬à§° নিৰà§à¦®à¦¾à¦£ বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾ আৰমà§à¦­ কৰিব বà§à¦¯à§°à§à¦¥"
-
-#~ msgid "No random number generator available"
-#~ msgstr "ৰà§â€Œà¦¯à¦¾à¦¨à§à¦¡à¦® নমà§à¦¬à§° নিৰà§à¦®à¦¾à¦£à§‡à§° কোনো বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾ উপলবà§à¦§ নেই"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "কà§à§°à¦¿à¦ªà§à¦Ÿà§‹ বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à§° কà§à¦·à§‡à¦¤à§à§°à§‡ উপলবà§à¦§ à¦à¦Ÿà¦¾ পà§à§°à¦¾à¦šà¦²à¦¸à¦®à§‚হ বৈধ নয়"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "ফলাফল সংৰকà§à¦·à¦£à§‡à§° বাবে পৰà§à¦¯à¦¾à¦ªà§à¦¤ সà§à¦¥à¦¾à¦ª অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "সংৰকà§à¦·à¦¿à¦¤ অবসà§à¦¥à¦¾ বৈধ নহয়"
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "তথà§à¦¯à¦Ÿà¦¿ সংবেদনশীল আৰৠপà§à§°à¦•à¦¾à¦¶ কৰা সমà§à¦­à¦¬ নহয়"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "অবসà§à¦¥à¦¾ সংৰকà§à¦·à¦£ কৰা যাবে না"
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "মডিউল আৰমà§à¦­ কৰা কৰা হোৱা নাই"
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "চিহà§à¦¨à¦¿à¦¤ মডিউল পূৰà§à¦¬à§‡ আৰমà§à¦­ কৰা হৈছে"
-
-#~ msgid "Cannot lock data"
-#~ msgstr "তথà§à¦¯ লক কৰা যাবে না"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "তথà§à¦¯ লক কৰা যাবে না"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "সà§à¦¬à¦¾à¦•à§à¦·à§°à§° অনà§à§°à§‹à¦§ বà§à¦¯à§±à¦¹à¦¾à§°à¦•à¦¾à§°à§€ দà§à¦¬à¦¾à§°à¦¾ পà§à§°à¦¤à§à¦¯à¦¾à¦–à§à¦¯à¦¾à¦¨ কৰা হৈছে"
-
-#~ msgid "Access Denied"
-#~ msgstr "পà§à§°à¦¬à§‡à¦¶à¦¾à¦§à¦¿à¦•à¦¾à§° পà§à§°à¦¤à§à¦¯à¦¾à¦–à§à¦¯à¦¾à¦¤"
-
-#~ msgid "The gnome-keyring-daemon application is not running."
-#~ msgstr "gnome-keyring-daemon অনà§à¦ªà§à§°à§Ÿà§‹à¦— বৰà§à¦¤à¦®à¦¾à¦¨à§‡ চলছে না।"
-
-#~ msgid "Error communicating with gnome-keyring-daemon"
-#~ msgstr "gnome-keyring-daemon ৰ সাথে যোগাযোগ কৰিবলে সমসà§à¦¯à¦¾"
-
-#~ msgid "A keyring with that name already exists"
-#~ msgstr "à¦à¦‡ নামেৰ à¦à¦Ÿà¦¾ কিৰং বৰà§à¦¤à¦®à¦¾à¦¨à§‡ উপসà§à¦¥à¦¿à¦¤ আছে"
-
-#~ msgid "Programmer error: The application sent invalid data."
-#~ msgstr "পà§à§°à§‹à¦—à§à§°à¦¾à¦®à¦¾à§° তà§à§°à§à¦Ÿà¦¿: অনà§à¦ªà§à§°à§Ÿà§‹à¦— দà§à¦¬à¦¾à§°à¦¾ অবৈধ তথà§à¦¯ পà§à§°à§°à¦¿à¦¤ হৈছে।"
-
-#~ msgid "No matching results"
-#~ msgstr "কোনো মিল পাওয়া নাযায়"
-
-#~ msgid "A keyring with that name does not exist."
-#~ msgstr "à¦à¦‡ নামেৰ কিৰং বৰà§à¦¤à¦®à¦¾à¦¨à§‡ উপসà§à¦¥à¦¿à¦¤ নেই।"
-
-#~ msgid "The keyring has already been unlocked."
-#~ msgstr "keyring পূৰà§à¦¬à§‡ আনলক কৰা হৈছে।"
diff --git a/po/ast.po b/po/ast.po
index fa359220..aa80c514 100644
--- a/po/ast.po
+++ b/po/ast.po
@@ -9,9 +9,8 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&component=general\n"
-"POT-Creation-Date: 2010-03-20 16:19+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2010-03-21 12:14+0200\n"
"Last-Translator: Xandru Armesto <xandru@softastur.org>\n"
"Language-Team: Asturian Team alministradores@softastur.org\n"
@@ -24,58 +23,11 @@ msgstr ""
"X-Launchpad-Export-Date: 2009-02-09 14:52+0000\n"
"X-Poedit-Language: asturian\n"
-#: ../daemon/data/gnome-keyring.schemas.in.h:1
-msgid ""
-"This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-"only takes effect during startup with gnome-session, (ie: when the user logs "
-"in). This setting may be overridden when certain command line arguments are "
-"passed to the daemon."
-msgstr ""
-"Esta opción activa'l componente PKCS11 nel degorriu del Depósitu de claves. "
-"Namái toma efectu cuando s'anicia gnome-session, (ex: cuando l'usuariu entra "
-"nel sistema). Esti axuste pue sobroscribise al pasar ciertos parámetros al "
-"degorriu al traviés de la llinia de comandos."
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:2
-msgid ""
-"This option enables the SSH agent in the gnome-keyring daemon. It only takes "
-"effect as gnome-keyring-daemon starts, (ie: when the user logs in). This "
-"setting may be overridden when certain command line arguments are passed to "
-"the daemon."
-msgstr ""
-"Esta opción activa l'axente SSH nel demoniu del Depósitu de claves. Namái "
-"toma efeutu cuando s'anicia gnome-keyring-daemon, (ex: cuando l'usuariu "
-"entra nel sistema). Esti axuste pue sobreescribisae al pasar ciertos "
-"parámetros al demoniu a traviés de la llinia de comandos."
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:3
-msgid ""
-"This option enables the secret service component in the gnome-keyring "
-"daemon. It only takes effect during startup with gnome-session, (ie: when "
-"the user logs in). This setting may be overridden when certain command line "
-"arguments are passed to the daemon."
-msgstr ""
-"Esta opción activa'l componente de serviciu de secretos nel degorriu del "
-"Depósitu de claves. Namái toma efectu cuando s'anicia gnome-session, (ex: "
-"cuando l'usuariu entra nel sistema). Esti axuste pue sobroscribise al pasar "
-"ciertos parámetros al degorriu al traviés de la llinia de comandos."
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:4
-msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-msgstr "Conseña si'l componente PKCS#11 del depósitu de claves ta activáu"
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:5
-msgid "Whether the gnome-keyring SSH agent is enabled."
-msgstr "Conseña si l'axente SSH del depósitu de claves ta activáu"
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:6
-msgid "Whether the gnome-keyring secret service is enabled."
-msgstr "Indica si'l serviciu de secretos del depósitu de claves ta activáu."
-
#. TRANSLATORS: This is the label for an keyring created without a label
-#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:74
-#: ../daemon/dbus/gkd-secret-unlock.c:120 ../daemon/login/gkd-login.c:590
-#: ../pkcs11/secret-store/gck-secret-collection.c:322
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Ensin nome"
@@ -94,22 +46,22 @@ msgid ""
"An application wants to change the password for the '%s' keyring. Choose the "
"new password you want to use for it."
msgstr ""
-"Una aplicación quier camudar la contraseña pal depósitu de claves «%"
-"s».Escueyi la nueva contraseña que quies usar pa él."
+"Una aplicación quier camudar la contraseña pal depósitu de claves «%s»."
+"Escueyi la nueva contraseña que quies usar pa él."
#: ../daemon/dbus/gkd-secret-change.c:111
msgid "The original password was incorrect"
msgstr "La contraseña orixinal yera incorreuta"
-#: ../daemon/dbus/gkd-secret-create.c:78
+#: ../daemon/dbus/gkd-secret-create.c:83
msgid "New Keyring Password"
msgstr "Contraseña nueva pal depósitu de claves"
-#: ../daemon/dbus/gkd-secret-create.c:79
+#: ../daemon/dbus/gkd-secret-create.c:84
msgid "Choose password for new keyring"
msgstr "Escoye una contraseña pal nuéu aniellu de claves"
-#: ../daemon/dbus/gkd-secret-create.c:81
+#: ../daemon/dbus/gkd-secret-create.c:86
#, c-format
msgid ""
"An application wants to create a new keyring called '%s'. Choose the "
@@ -118,48 +70,6 @@ msgstr ""
"Una aplicación quier crear un depósitu de claves nuevu denomáu «%s».Escueyi "
"la contraseña que quies usar pa él."
-#: ../daemon/dbus/gkd-secret-unlock.c:135
-msgid "Unlock Login Keyring"
-msgstr "Desbloquiar el depósitu d'aniciu"
-
-#: ../daemon/dbus/gkd-secret-unlock.c:137
-msgid "Enter password for to unlock your login keyring"
-msgstr "Introduz la contraseña d'aniciu pa desbloquiar el depósitu"
-
-#: ../daemon/dbus/gkd-secret-unlock.c:141
-msgid ""
-"The password you use to log in to your computer no longer matches that of "
-"your login keyring."
-msgstr ""
-"La contraseña qu'uses p'aniciar sesión nel equipu yá nun concasa cola "
-"contraseña d'aniciu del depósitu."
-
-#: ../daemon/dbus/gkd-secret-unlock.c:143
-msgid ""
-"The login keyring did not get unlocked when you logged into your computer."
-msgstr ""
-"El depósitu d'aniciu de sesión nun se desbloquió cuando aniciaste sesión nel "
-"equipu."
-
-#: ../daemon/dbus/gkd-secret-unlock.c:184
-msgid "Unlock Keyring"
-msgstr "Abrir l'aniellu de claves"
-
-#: ../daemon/dbus/gkd-secret-unlock.c:186
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "Introduz una contraseña p'abrir l'aniellu de claves '%s'"
-
-#: ../daemon/dbus/gkd-secret-unlock.c:190
-#, c-format
-msgid "An application wants access to the keyring '%s', but it is locked"
-msgstr ""
-"Una aplicación quier acceder al depósitu de claves «%s», pero ta bloquiáu"
-
-#: ../daemon/dbus/gkd-secret-unlock.c:221
-msgid "The unlock password was incorrect"
-msgstr "La contraseña de desbloquéu yera incorreuta"
-
#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
msgid "Certificate and Key Storage"
msgstr "Certificaos y almacenamientu de claves"
@@ -184,164 +94,49 @@ msgstr "Depósitu de claves de GNOME: axente SSH"
msgid "SSH Key Agent"
msgstr "Axente de claves SSH"
-#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:175
-msgid "Login"
-msgstr "Aniciu de sesión"
-
-#: ../daemon/login/gkd-login.c:602
-#, c-format
-msgid "Unlock password for: %s"
-msgstr "Contraseña de desbloquéu pa %s"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: GPG Agent"
+msgstr "Depósitu de claves de GNOME: axente SSH"
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:294
-msgid "New Password Required"
-msgstr "Requier una contraseña nueva"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+#, fuzzy
+msgid "GPG Password Agent"
+msgstr "Fortaleza de la nueva contraseña"
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:295
-msgid "New password required for secure storage"
-msgstr "Requierse una contraseña nueva pal almacén seguru"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+#, fuzzy
+msgid "Unknown"
+msgstr "Fallu desconocíu"
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:297
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid ""
-"In order to prepare '%s' for storage of certificates or keys, a password is "
-"required"
+msgid "PGP Key: %s"
msgstr ""
-"Requierse una contraseña col envís de preparar «%s» p'atroxar certificaos o "
-"claves"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:360
-msgid "Unlock private key"
-msgstr "Desbloquiar la clave privada"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:362
-msgid "Unlock certificate"
-msgstr "Desbloquiar el certificáu"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:364
-msgid "Unlock public key"
-msgstr "Desbloquiar la clave pública"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:366
-msgid "Unlock"
-msgstr "Desbloquiar"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:375 ../gcr/gcr-importer.c:436
-msgid "Enter password to unlock the private key"
-msgstr "Introduza la contraseña pa desbloquiar la clave privada"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:377 ../gcr/gcr-importer.c:438
-msgid "Enter password to unlock the certificate"
-msgstr "Introduza la contraseña pa desbloquiar el certificáu"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:379
-msgid "Enter password to unlock the public key"
-msgstr "Introduza la contraseña pa desbloquiar la clave pública"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:381 ../gcr/gcr-importer.c:440
-msgid "Enter password to unlock"
-msgstr "Introduza la contraseña pa desbloquialu"
-
-#. TRANSLATORS: The private key is locked
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:391
-#, c-format
-msgid "An application wants access to the private key '%s', but it is locked"
-msgstr "Una aplicación quier acceder a la clave privada «%s», pero ta bloquiada"
-
-#. TRANSLATORS: The certificate is locked
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:394
-#, c-format
-msgid "An application wants access to the certificate '%s', but it is locked"
-msgstr "Una aplicación quier acceder al certificáu «%s», pero ta bloquiáu"
-
-#. TRANSLATORS: The public key is locked
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:397
-#, c-format
-msgid "An application wants access to the public key '%s', but it is locked"
-msgstr "Una aplicación quier acceder a la clave pública «%s», pero ta bloquiada"
-
-#. TRANSLATORS: The object '%s' is locked
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:400
-#, c-format
-msgid "An application wants access to '%s', but it is locked"
-msgstr "Una aplicación quier acceder «%s», pero ta bloquiáu"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:595
-msgid "Unlock certificate/key storage"
-msgstr "Desbloquiar el depósitu de certificaos/claves"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:596
-msgid "Enter password to unlock the certificate/key storage"
-msgstr "Escribir la contraseña pa desbloquiar el depósitu de certificaos/claves"
-#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:599
-#, c-format
-msgid ""
-"An application wants access to the certificate/key storage '%s', but it is "
-"locked"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-"Una aplicación quier acceder al depósitu de certificaos/claves «%s», pero ta "
-"bloquiáu"
-#: ../daemon/prompt/gkd-prompt-tool.c:393
-msgid "Store passwords unencrypted?"
-msgstr "¿Atroxar les sos contraseñes ensin cifrales?"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#, fuzzy
+msgid "Forget this password if idle for"
+msgstr "Bloquiar esti depósitu si ta inactivu durante"
-#: ../daemon/prompt/gkd-prompt-tool.c:394
-msgid ""
-"By choosing to use a blank password, your stored passwords will not be "
-"safely encrypted. They will be accessible by anyone with access to your "
-"files."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-"Al escoyer usar una contraseña en blancu, les sos contraseñes atroxaes nun "
-"tarán cifraes de miente seguro. Sedrán accesibles por cualesquier que tenga "
-"accesu a los sos archivos."
-#: ../daemon/prompt/gkd-prompt-tool.c:401
-msgid "Use Unsafe Storage"
-msgstr "Usar atroxamientu inseguru"
-
-#: ../daemon/prompt/gkd-prompt-tool.c:431
-msgid "Passwords do not match."
-msgstr "Les contraseñes nun coinciden."
-
-#: ../daemon/prompt/gkd-prompt-tool.c:441
-msgid "Password cannot be blank"
-msgstr "La contraseña nun pue tar erma"
-
-#: ../daemon/prompt/gkd-prompt.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Desbloquiar esti depósitu de claves siempres qu'anicie sesión"
-
-#: ../daemon/prompt/gkd-prompt.ui.h:2
-msgid "New password strength"
-msgstr "Fortaleza de la nueva contraseña"
-
-#: ../daemon/prompt/gkd-prompt.ui.h:3
-msgid "_Application:"
-msgstr "_Aplicación:"
-
-#: ../daemon/prompt/gkd-prompt.ui.h:4
-msgid "_Confirm:"
-msgstr "_Confirmar:"
-
-#: ../daemon/prompt/gkd-prompt.ui.h:5
-msgid "_Details:"
-msgstr "_Detalles:"
-
-#: ../daemon/prompt/gkd-prompt.ui.h:6
-msgid "_Name:"
-msgstr "N_ome:"
-
-#: ../daemon/prompt/gkd-prompt.ui.h:7
-msgid "_Old Password:"
-msgstr "Contraseña _vieya:"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+#, fuzzy
+msgid "Forget this password when I log out"
+msgstr "Bloquiar esti depósitu al zarrar la sesión"
-#: ../daemon/prompt/gkd-prompt.ui.h:8
-msgid "_Password:"
-msgstr "_Contraseña:"
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
+msgstr "Aniciu de sesión"
#: ../egg/egg-oid.c:41
msgid "Domain Component"
@@ -352,8 +147,8 @@ msgid "User ID"
msgstr "ID del usuariu"
#: ../egg/egg-oid.c:46
-msgid "Email"
-msgstr "Corréu electrónicu"
+msgid "Email Address"
+msgstr ""
#: ../egg/egg-oid.c:54
msgid "Date of Birth"
@@ -383,8 +178,7 @@ msgstr "Nome común"
msgid "Surname"
msgstr "Apellíu"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-basics-widget.ui.h:18
-#: ../gcr/gcr-certificate-details-widget.c:322
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Númberu de serie"
@@ -444,892 +238,300 @@ msgstr "Nomatu"
msgid "RSA"
msgstr "RSA"
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "MD2 con RSA"
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "MD5 con RSA"
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "SHA1 con RSA"
-#: ../egg/egg-oid.c:107
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "SHA1 con DSA"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+#, fuzzy
+msgid "Server Authentication"
+msgstr "Certificáu de sirvidor SSL"
+
+#: ../egg/egg-oid.c:108
+#, fuzzy
+msgid "Client Authentication"
+msgstr "Certificáu de veceru SSL"
+
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
+
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
+
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
+
#: ../egg/egg-spawn.c:273
#, c-format
msgid "Unexpected error in select() reading data from a child process (%s)"
msgstr ""
-"Ocurrió un fallu inesperáu en select() lleendo datos dende'l procesu fíu (%"
-"s)"
+"Ocurrió un fallu inesperáu en select() lleendo datos dende'l procesu fíu (%s)"
#: ../egg/egg-spawn.c:320
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Ocurrió un fallu inesperáu en waitpid() (%s)"
-#: ../gcr/gcr-certificate-basics-widget.c:59
-msgid "<i>Not Part of Certificate</i>"
-msgstr "<i>Nun ye parte del certificáu</i>"
-
-#: ../gcr/gcr-certificate-basics-widget.c:80
-msgid "<i>unknown</i>"
-msgstr "<i>desconocíu</i>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:1
-msgid "<Not Part of Certificate>"
-msgstr "<Nun ye parte del certificáu>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:2
-msgid "<b>Fingerprints</b>"
-msgstr "<b>Buelgues</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:3
-msgid "<b>Issued By</b>"
-msgstr "<b>Emitíu por</b>"
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr "Certificáu ensin nome"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:4
-msgid "<b>Issued To</b>"
-msgstr "<b>Emitíu pa</b>"
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
+msgstr "Nun pudo analizase la clave pública SSH"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:5
-msgid "<b>This certificate has been verified for the following uses:</b>"
-msgstr "<b>Esti certificáu verificose pa los siguientes usos:</b>"
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, c-format
+msgid "Unlock password for: %s"
+msgstr "Contraseña de desbloquéu pa %s"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:6
-msgid "<b>Validity</b>"
-msgstr "<b>Validez</b>"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+msgid "The unlock password was incorrect"
+msgstr "La contraseña de desbloquéu yera incorreuta"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:7
-msgid "Common Name (CN)"
-msgstr "Nome común (CN)"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+msgid "Unlock Login Keyring"
+msgstr "Desbloquiar el depósitu d'aniciu"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:8
-msgid "Email Recipient Certificate"
-msgstr "Certificáu de destinatariu de corréu electrónicu"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
+msgstr "Introduz la contraseña d'aniciu pa desbloquiar el depósitu"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:9
-msgid "Email Signer Certificate"
-msgstr "Certificáu de roblador de corréu electrónicu"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
+msgstr ""
+"La contraseña qu'uses p'aniciar sesión nel equipu yá nun concasa cola "
+"contraseña d'aniciu del depósitu."
-#: ../gcr/gcr-certificate-basics-widget.ui.h:10
-msgid "Expires On"
-msgstr "Caduca el"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr ""
+"El depósitu d'aniciu de sesión nun se desbloquió cuando aniciaste sesión nel "
+"equipu."
-#: ../gcr/gcr-certificate-basics-widget.ui.h:11
-msgid "Issued On"
-msgstr "Emitíu el"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "Abrir l'aniellu de claves"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:12
-msgid "MD5 Fingerprint"
-msgstr "Buelga MD5"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
+#, c-format
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "Introduz una contraseña p'abrir l'aniellu de claves '%s'"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:13
-msgid "Organization (O)"
-msgstr "Organización (O)"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr ""
+"Una aplicación quier acceder al depósitu de claves «%s», pero ta bloquiáu"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:14
-msgid "Organizational Unit (OU)"
-msgstr "Unidá organizativa (OU)"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
+msgstr "Desbloquiar la clave privada"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:15
-msgid "SHA1 Fingerprint"
-msgstr "Buelga SHA1"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+msgid "Unlock certificate"
+msgstr "Desbloquiar el certificáu"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:16
-msgid "SSL Client Certificate"
-msgstr "Certificáu de veceru SSL"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
+msgstr "Desbloquiar la clave pública"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:17
-msgid "SSL Server Certificate"
-msgstr "Certificáu de sirvidor SSL"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Desbloquiar"
-#: ../gcr/gcr-certificate-details-widget.c:207
-msgid "Extension"
-msgstr "Estensión"
-
-#: ../gcr/gcr-certificate-details-widget.c:212
-msgid "Identifier"
-msgstr "Identificador"
-
-#: ../gcr/gcr-certificate-details-widget.c:222
-msgid "Value"
-msgstr "Valor"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "Critical"
-msgstr "Críticu"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "Yes"
-msgstr "Sí"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "No"
-msgstr "Non"
-
-#. The subject
-#: ../gcr/gcr-certificate-details-widget.c:303
-msgid "Subject Name"
-msgstr "Nome del asuntu"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-details-widget.c:307
-msgid "Issuer Name"
-msgstr "Nome del emisor"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-details-widget.c:311
-msgid "Issued Certificate"
-msgstr "Certificáu emitíu"
-
-#: ../gcr/gcr-certificate-details-widget.c:316
-msgid "Version"
-msgstr "Versión"
-
-#: ../gcr/gcr-certificate-details-widget.c:329
-msgid "Not Valid Before"
-msgstr "Nun ye válidu enantes de"
-
-#: ../gcr/gcr-certificate-details-widget.c:334
-msgid "Not Valid After"
-msgstr "Nun ye válidu dempués de"
-
-#. Signature
-#: ../gcr/gcr-certificate-details-widget.c:339
-#: ../gcr/gcr-certificate-details-widget.c:355
-msgid "Signature"
-msgstr "Robla"
-
-#: ../gcr/gcr-certificate-details-widget.c:343
-msgid "Signature Algorithm"
-msgstr "Algoritmu de robla"
-
-#: ../gcr/gcr-certificate-details-widget.c:348
-msgid "Signature Parameters"
-msgstr "Parámetros de la robla"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-details-widget.c:359
-msgid "Public Key Info"
-msgstr "Información de la clave pública"
-
-#: ../gcr/gcr-certificate-details-widget.c:363
-msgid "Key Algorithm"
-msgstr "Algoritmu de la clave"
-
-#: ../gcr/gcr-certificate-details-widget.c:368
-msgid "Key Parameters"
-msgstr "Parámetros de la clave"
-
-#: ../gcr/gcr-certificate-details-widget.c:375
-msgid "Key Size"
-msgstr "Tamañu de la clave"
-
-#: ../gcr/gcr-certificate-details-widget.c:382 ../gcr/gcr-parser.c:202
-msgid "Public Key"
-msgstr "Clave pública"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-details-widget.c:386
-msgid "Fingerprints"
-msgstr "Buelgues"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-msgstr "<span size='large' weight='bold'>Importar certificaos y claves</span>"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Importar en:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Contraseña:"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Lock this keyring after"
-msgstr "Bloquiar dempués esti depósitu"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring if idle for"
-msgstr "Bloquiar esti depósitu si ta inactivu durante"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Introduza la contraseña pa desbloquiar la clave privada"
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring when I log out"
-msgstr "Bloquiar esti depósitu al zarrar la sesión"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Introduza la contraseña pa desbloquiar el certificáu"
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "minutes"
-msgstr "minutos"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+msgid "Enter password to unlock the public key"
+msgstr "Introduza la contraseña pa desbloquiar la clave pública"
-#: ../gcr/gcr-importer.c:163 ../gcr/gcr-parser.c:1573 ../gp11/gp11-misc.c:98
-msgid "The operation was cancelled"
-msgstr "La operación encaboxose"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Introduza la contraseña pa desbloquialu"
-#: ../gcr/gcr-importer.c:255
-#, c-format
-msgid "No location available to import to"
-msgstr "Dengún allugamientu disponible nel que importar"
-
-#: ../gcr/gcr-importer.c:404
-msgid "Import Certificates/Keys"
-msgstr "Importar certificaos/claves"
-
-#: ../gcr/gcr-importer.c:411
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Escueyi un llugar p'atroxar los certificaos/claves importaos."
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:449
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Pa poder importar la clave privada, hai que desbloquiala"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:452
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Pa poder importar el certificáu, hai de desbloquialu"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:455
-msgid "In order to import the data, it must be unlocked"
-msgstr "Pa poder importar los datos, hai de desbloquialos"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:460
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Pa poder importar la clave privada «%s», hai que desbloquiala"
+msgid "An application wants access to the private key '%s', but it is locked"
+msgstr ""
+"Una aplicación quier acceder a la clave privada «%s», pero ta bloquiada"
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:463
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Pa poder importar el certificáu «%s», hai que desbloquialu"
+msgid "An application wants access to the certificate '%s', but it is locked"
+msgstr "Una aplicación quier acceder al certificáu «%s», pero ta bloquiáu"
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:466
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Pa poder importar «%s», hai de desbloquialu"
-
-#: ../gcr/gcr-parser.c:196
-msgid "Private Key"
-msgstr "Clave privada"
-
-#: ../gcr/gcr-parser.c:199
-msgid "Certificate"
-msgstr "Certificáu"
-
-#: ../gcr/gcr-parser.c:1576
-msgid "Unrecognized or unsupported data."
-msgstr "Datos non reconocíos o non sofitaos."
-
-#: ../gcr/gcr-parser.c:1579
-msgid "Could not parse invalid or corrupted data."
-msgstr "Nun pudieron analizase datos inválidos o toyíos."
-
-#: ../gcr/gcr-parser.c:1582
-msgid "The data is locked"
-msgstr "Los datos tan bloquiaos"
-
-#: ../gp11/gp11-misc.c:101
-msgid "Insufficient memory available"
-msgstr "Nun hai disponible memoria bastante"
-
-#: ../gp11/gp11-misc.c:103
-msgid "The specified slot ID is not valid"
-msgstr "La ID de slot conseñada nun ye válida"
-
-#: ../gp11/gp11-misc.c:105
-msgid "Internal error"
-msgstr "Fallu internu"
-
-#: ../gp11/gp11-misc.c:107
-msgid "The operation failed"
-msgstr "Falló la operación"
-
-#: ../gp11/gp11-misc.c:109
-msgid "Invalid arguments"
-msgstr "Argumentos inválidos"
-
-#: ../gp11/gp11-misc.c:111
-msgid "The module cannot create needed threads"
-msgstr "El módulu nun puede crear los filos necesarios"
-
-#: ../gp11/gp11-misc.c:113
-msgid "The module cannot lock data properly"
-msgstr "El módulu nun puede bloquiar los datos de mou afayadizu"
-
-#: ../gp11/gp11-misc.c:115
-msgid "The field is read-only"
-msgstr "El campu ye de namái llectura"
-
-#: ../gp11/gp11-misc.c:117
-msgid "The field is sensitive and cannot be revealed"
-msgstr "Ye un campu sensible y nun puede revelase"
-
-#: ../gp11/gp11-misc.c:119
-msgid "The field is invalid or does not exist"
-msgstr "El campu nun ye válidu o nun esiste"
-
-#: ../gp11/gp11-misc.c:121
-msgid "Invalid value for field"
-msgstr "Valor inválidu pal campu"
-
-#: ../gp11/gp11-misc.c:123
-msgid "The data is not valid or unrecognized"
-msgstr "El datu nun ye válidu o reconocible"
-
-#: ../gp11/gp11-misc.c:125
-msgid "The data is too long"
-msgstr "El datu ye enforma llargu"
-
-#: ../gp11/gp11-misc.c:127
-msgid "An error occurred on the device"
-msgstr "Hebo un fallu nel preséu"
-
-#: ../gp11/gp11-misc.c:129
-msgid "Insufficient memory available on device"
-msgstr "Nun hai memoria bastante nel preséu"
-
-#: ../gp11/gp11-misc.c:131
-msgid "The device was removed or unplugged"
-msgstr "Quitóse o desconeutóse'l preséu"
-
-#: ../gp11/gp11-misc.c:133
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "El datu cifráu nun ye válidu o reconocible"
-
-#: ../gp11/gp11-misc.c:135
-msgid "The encrypted data is too long"
-msgstr "El datu cifráu ye demasiao llargu"
-
-#: ../gp11/gp11-misc.c:137
-msgid "This operation is not supported"
-msgstr "Esta operación nun ta sofitada"
-
-#: ../gp11/gp11-misc.c:139
-msgid "The key is missing or invalid"
-msgstr "Falta la clave o nun ye válida"
-
-#: ../gp11/gp11-misc.c:141
-msgid "The key is the wrong size"
-msgstr "La clave tien un tamañu incorreutu"
-
-#: ../gp11/gp11-misc.c:143
-msgid "The key is of the wrong type"
-msgstr "La clave ye de tipu equivocáu"
-
-#: ../gp11/gp11-misc.c:145
-msgid "No key is needed"
-msgstr "Nun se necesita clave"
-
-#: ../gp11/gp11-misc.c:147
-msgid "The key is different than before"
-msgstr "La clave ye diferente de l'anterior"
-
-#: ../gp11/gp11-misc.c:149
-msgid "A key is needed"
-msgstr "Necesítase una clave"
-
-#: ../gp11/gp11-misc.c:151
-msgid "Cannot include the key in digest"
-msgstr "Nun puede incluyise la clave nel resume"
-
-#: ../gp11/gp11-misc.c:153
-msgid "This operation cannot be done with this key"
-msgstr "Esta operación nun puede facese con esta clave"
-
-#: ../gp11/gp11-misc.c:155
-msgid "The key cannot be wrapped"
-msgstr "La clave nun puede envolvese"
-
-#: ../gp11/gp11-misc.c:157
-msgid "Cannot export this key"
-msgstr "Esta clave nun puede esportase"
-
-#: ../gp11/gp11-misc.c:159
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "El mecanismu de cifráu ye inválidu o nun se reconoz"
-
-#: ../gp11/gp11-misc.c:161
-msgid "The crypto mechanism has an invalid argument"
-msgstr "El mecanismu de cifráu tien un argumentu inválidu"
-
-#: ../gp11/gp11-misc.c:163
-msgid "The object is missing or invalid"
-msgstr "Falta l'oxetu o nun ye válidu"
-
-#: ../gp11/gp11-misc.c:165
-msgid "Another operation is already taking place"
-msgstr "Yá hai otra operación executándose"
-
-#: ../gp11/gp11-misc.c:167
-msgid "No operation is taking place"
-msgstr "Nun ta executándose denguna operación"
-
-#: ../gp11/gp11-misc.c:169
-msgid "The password or PIN is incorrect"
-msgstr "La contraseña o PIN ye incorreuta"
-
-#: ../gp11/gp11-misc.c:171
-msgid "The password or PIN is invalid"
-msgstr "La contraseña o PIN ye inválida"
-
-#: ../gp11/gp11-misc.c:173
-msgid "The password or PIN is of an invalid length"
-msgstr "La contraseña o PIN tien un llargor inválidu"
-
-#: ../gp11/gp11-misc.c:175
-msgid "The password or PIN has expired"
-msgstr "La contraseña o PIN caducó"
-
-#: ../gp11/gp11-misc.c:177
-msgid "The password or PIN is locked"
-msgstr "La contraseña o PIN ta bloquiada"
-
-#: ../gp11/gp11-misc.c:179
-msgid "The session is closed"
-msgstr "La sesión ta zarrada"
-
-#: ../gp11/gp11-misc.c:181
-msgid "Too many sessions are active"
-msgstr "Hai abondes sesiones actives"
-
-#: ../gp11/gp11-misc.c:183
-msgid "The session is invalid"
-msgstr "La sesión ye inválida"
-
-#: ../gp11/gp11-misc.c:185
-msgid "The session is read-only"
-msgstr "La sesión ye de namái llectura"
-
-#: ../gp11/gp11-misc.c:187
-msgid "An open session exists"
-msgstr "Esiste una sesión abierta"
-
-#: ../gp11/gp11-misc.c:189
-msgid "A read-only session exists"
-msgstr "Esiste una sesión de namái llectura"
-
-#: ../gp11/gp11-misc.c:191
-msgid "An administrator session exists"
-msgstr "Esiste una sesión d'alministrador"
-
-#: ../gp11/gp11-misc.c:193
-msgid "The signature is bad or corrupted"
-msgstr "La robla ye mala o ta corrompida"
-
-#: ../gp11/gp11-misc.c:195
-msgid "The signature is unrecognized or corrupted"
-msgstr "La robla nun ye reconocible o ta corrompida"
-
-#: ../gp11/gp11-misc.c:197
-msgid "Certain required fields are missing"
-msgstr "Falten ciertos campos requeríos"
-
-#: ../gp11/gp11-misc.c:199
-msgid "Certain fields have invalid values"
-msgstr "Ciertos campos tienen valores inválidos"
-
-#: ../gp11/gp11-misc.c:201
-msgid "The device is not present or unplugged"
-msgstr "El preséu nun ta presente o ta desconeutáu"
-
-#: ../gp11/gp11-misc.c:203
-msgid "The device is invalid or unrecognizable"
-msgstr "El preséu ye inválidu o irreconocible"
-
-#: ../gp11/gp11-misc.c:205
-msgid "The device is write protected"
-msgstr "El preséu ta protexíu escontra escritures"
-
-#: ../gp11/gp11-misc.c:207
-msgid "Cannot import because the key is invalid"
-msgstr "Nun puede importase porque la clave ye inválida"
-
-#: ../gp11/gp11-misc.c:209
-msgid "Cannot import because the key is of the wrong size"
-msgstr "Nun puede importase porque la clave tien un tamañu equivocáu"
-
-#: ../gp11/gp11-misc.c:211
-msgid "Cannot import because the key is of the wrong type"
-msgstr "Nun puede importase porque la clave ye de tipu equivocáu"
-
-#: ../gp11/gp11-misc.c:213
-msgid "You are already logged in"
-msgstr "Yá aniciaste sesión"
-
-#: ../gp11/gp11-misc.c:215
-msgid "No user has logged in"
-msgstr "Dengún usuariu anició sesión"
-
-#: ../gp11/gp11-misc.c:217
-msgid "The user's password or PIN is not set"
-msgstr "Dengún usuariu anició sesión"
-
-#: ../gp11/gp11-misc.c:219
-msgid "The user is of an invalid type"
-msgstr "L'usuariu ye de tipu inválidu"
-
-#: ../gp11/gp11-misc.c:221
-msgid "Another user is already logged in"
-msgstr "Yá anició sesión otru usuariu"
-
-#: ../gp11/gp11-misc.c:223
-msgid "Too many users of different types logged in"
-msgstr "Hai abondos usuarios de tipos diferentes con sesión aniciada"
-
-#: ../gp11/gp11-misc.c:225
-msgid "Cannot import an invalid key"
-msgstr "Nun puede importase una clave inválida"
-
-#: ../gp11/gp11-misc.c:227
-msgid "Cannot import a key of the wrong size"
-msgstr "Nun puede importase una clave de tamañu incorreutu"
-
-#: ../gp11/gp11-misc.c:229
-msgid "Cannot export because the key is invalid"
-msgstr "Nun puede esportase porque la clave ye inválida"
-
-#: ../gp11/gp11-misc.c:231
-msgid "Cannot export because the key is of the wrong size"
-msgstr "Nun puede esportase porque la clave ye de tamañu incorreutu"
-
-#: ../gp11/gp11-misc.c:233
-msgid "Cannot export because the key is of the wrong type"
-msgstr "Nun puede esportase porque la clave ye de tipu equivocáu"
-
-#: ../gp11/gp11-misc.c:235
-msgid "Unable to initialize the random number generator"
-msgstr "Nun pudo aniciase'l xenerador de númberos al débalu"
+msgid "An application wants access to the public key '%s', but it is locked"
+msgstr ""
+"Una aplicación quier acceder a la clave pública «%s», pero ta bloquiada"
-#: ../gp11/gp11-misc.c:237
-msgid "No random number generator available"
-msgstr "Nun ta disponible un xenerador de númberos al débalu"
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
+#, c-format
+msgid "An application wants access to '%s', but it is locked"
+msgstr "Una aplicación quier acceder «%s», pero ta bloquiáu"
-#: ../gp11/gp11-misc.c:239
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "El mecanismu de cifráu tien un parámetru inválidu"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
+msgstr "Desbloquiar el depósitu de certificaos/claves"
-#: ../gp11/gp11-misc.c:241
-msgid "Not enough space to store the result"
-msgstr "Nun hai espaciu bastante p'atroxar el resultáu"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
+msgstr ""
+"Escribir la contraseña pa desbloquiar el depósitu de certificaos/claves"
-#: ../gp11/gp11-misc.c:243
-msgid "The saved state is invalid"
-msgstr "L'estáu guardáu ye inválidu"
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, c-format
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr ""
+"Una aplicación quier acceder al depósitu de certificaos/claves «%s», pero ta "
+"bloquiáu"
-#: ../gp11/gp11-misc.c:245
-msgid "The information is sensitive and cannot be revealed"
-msgstr "Esa ye información sensible y nun puede revelase"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
+msgstr "Requier una contraseña nueva"
-#: ../gp11/gp11-misc.c:247
-msgid "The state cannot be saved"
-msgstr "L'estáu nun puede guardase"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
+msgstr "Requierse una contraseña nueva pal almacén seguru"
-#: ../gp11/gp11-misc.c:249
-msgid "The module has not been initialized"
-msgstr "El módulu nun s'anició"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
+#, c-format
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
+"Requierse una contraseña col envís de preparar «%s» p'atroxar certificaos o "
+"claves"
-#: ../gp11/gp11-misc.c:251
-msgid "The module has already been initialized"
-msgstr "El módulu yá s'anició"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "Camuda la contraseña del depósitu de claves"
-#: ../gp11/gp11-misc.c:253
-msgid "Cannot lock data"
-msgstr "Nun pueden bloquiase los datos"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "Requierse una contraseña nueva pal almacén seguru"
-#: ../gp11/gp11-misc.c:255
-msgid "The data cannot be locked"
-msgstr "Los datos nun pueden bloquiase"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
+#, c-format
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
+msgstr ""
-#: ../gp11/gp11-misc.c:257
-msgid "The signature request was rejected by the user"
-msgstr "Petición de robla refugada pol usuariu"
+#: ../tool/gkr-tool.c:102
+#, c-format
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
-#: ../gp11/gp11-misc.c:261
-msgid "Unknown error"
-msgstr "Fallu desconocíu"
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
-#: ../pkcs11/gck/gck-certificate.c:740
-msgid "Unnamed Certificate"
-msgstr "Certificáu ensin nome"
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
-#: ../pkcs11/ssh-store/gck-ssh-private-key.c:339
-msgid "Couldn't parse public SSH key"
-msgstr "Nun pudo analizase la clave pública SSH"
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
+msgstr "¿Atroxar les sos contraseñes ensin cifrales?"
-#~ msgid "Removable Disk: %s"
-#~ msgstr "Discu estrayíble: %s"
-
-#~ msgid "Removable Disk"
-#~ msgstr "Discu estrayíble"
-
-#~ msgid "Home"
-#~ msgstr "Home"
-
-#~ msgid "The disk or drive this file is located on is not present"
-#~ msgstr "El discu o la unidá na que s'alluga esti archivu nun ta presente"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "L'aplicación «%s» (%s) quier acceder a la contraseña pa «<object "
-#~ "prop='name'/>» nel depósitu de claves predetermináu."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "L'aplicación «%s» (%s) quier acceder a la contraseña pa «<object "
-#~ "prop='name'/>» en %s."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "L'aplicación «%s» quier acceder a la contraseña pa «<object prop='name'/>» "
-#~ "nel depósitu predetermináu."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "L'aplicación «%s» quier acceder a la contraseña pa «<object prop='name'/>» "
-#~ "en %s."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "Una aplicación desconocía quier acceder a la contraseña pa «<object "
-#~ "prop='name'/>» nel depósitu de claves predetermináu."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "Una aplicación desconocía quier acceder a la contraseña pa «<object "
-#~ "prop='name'/>» en %s."
-
-#~ msgid "Allow access"
-#~ msgstr "Permitir l'accesu"
-
-#~ msgid "Allow application access to keyring?"
-#~ msgstr "¿Permitir a l'aplicación acceder a l'aniellu claves?"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "L'aplicación '%s' (%s) quier acceder al depósitu de claves predetermináu, "
-#~ "pero ta peslláu"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "L'aplicación '%s' (%s) quier acceder al depósitu de claves %s', pero ta "
-#~ "peslláu"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-#~ msgstr ""
-#~ "L'aplicación '%s' quier acceder a l'aniellu de claves predetermináu, pero "
-#~ "ta peslláu"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-#~ msgstr ""
-#~ "L'aplicación '%s' quier acceder a l'aniellu de claves '%s', pero ta "
-#~ "peslláu"
-
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Una aplicación desconocida quier acceder al depósitu de claves "
-#~ "predeterminau, pero ta peslláu"
-
-#~ msgid "Enter password for default keyring to unlock"
-#~ msgstr "Introduz una contraseña p'abrir el depósitu de claves predetermináu"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicación '%s' (%s) quier crear un nueu depósitu de claves nomáu '%s'. "
-#~ "Tienes qu'escoyer la contraseña que quieras usar con ella."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicación '%s' (%s) quier crear un nueu depósitu de claves "
-#~ "predetermináu. Tienes qu'escoyer la contraseña que quieras usar con ella."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicación '%s' quier crear un nueu depósitu de claves nomáu '%s'. "
-#~ "Tienes qu'escoyer la contraseña que quieras usar con ella."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicación '%s' quier crear un nueu depósitu de claves predetermináu. "
-#~ "Tienes qu'escoyer la contraseña que quieras usar con ella."
-
-#~ msgid ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "Una aplicación desconocida quier criar un depósitu de claves "
-#~ "predetermináu nuevu. Tien d'elexir la contraseña que quier usar con él."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicación «%s» (%s) quier camudar la contraseña pal depósitu de claves «%"
-#~ "s». Tien d'elexir la contraseña que quier usar con él."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicación «%s» (%s) quier camudar la contraseña pal depósitu de claves "
-#~ "predetermináu. Tien d'elexir la contraseña que quier usar con él."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicación '%s' quier camudar la contraseña pal depósitu de claves '%"
-#~ "s'. Tien d'elexir la contraseña que quier usar con él."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicación «%s» quier camudar la contraseña pal depósito de claves "
-#~ "predetermináu. Tien d'elexir la contraseña que quier usar con él."
-
-#~ msgid ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Una aplicación desconocía quier camudar la contraseña pal depósitu de "
-#~ "claves predetermináu nuevu. Tien d'elexir la contraseña que quier usar "
-#~ "con él."
-
-#~ msgid "Choose a new password for the default keyring. "
-#~ msgstr "Escueya una contraseña nueva pal depósitu de claves predetermináu "
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-#~ msgstr ""
-#~ "L'aplicación '%s' (%s) quier almacenar una contraseña, pero nun hai "
-#~ "aniellu o depósitu de claves predetermináu. Pa crear unu, tiene "
-#~ "qu'escoyer la contraseña que quieras usar con él."
-
-#~ msgid ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "L'aplicación '%s' quier almacenar una contraseña, pero nun hai aniellu de "
-#~ "claves predetermináu. Pa crear unu, tienes qu'escoyer la contraseña que "
-#~ "quieras usar con él."
-
-#~ msgid ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "Una aplicación desconocía quier almacenar una contraseña, pero nun hai "
-#~ "aniellu de claves predetermináu. Pa crear unu, tienes qu'escoyer la "
-#~ "contraseña que quieras usar con él."
-
-#~ msgid "Create Default Keyring"
-#~ msgstr "Criar un aniellu de claves predetermináu"
-
-#~ msgid "Choose password for default keyring"
-#~ msgstr "Escueye una contraseña pa l'aniellu de claves predetermináu"
-
-#~ msgid "Create Login Keyring"
-#~ msgstr "Criar depósitu d'aniciu"
-
-#~ msgid "Enter your login password"
-#~ msgstr "Introduza la so contraseña d'aniciu"
-
-#~ msgid ""
-#~ "Your login keyring was not automatically created when you logged into "
-#~ "this computer. It will now be created."
-#~ msgstr ""
-#~ "Al aniciar sesión nesti equipu nun se crió automáticamente el so depósitu "
-#~ "d'aniciu. Criaráse agora."
-
-#~ msgid "Automatically unlock this private key when I log in."
-#~ msgstr "Desbloquiar esta clave privada automáticamente al aniciar sesión."
-
-#~ msgid "Automatically unlock this certificate when I log in."
-#~ msgstr "Desbloquear esti certificáu automáticamente al aniciar sesión."
-
-#~ msgid "Automatically unlock this public key when I log in."
-#~ msgstr "Desbloquiar esta clave pública automáticamente al aniciar sesión."
-
-#~ msgid "Automatically unlock this when I log in"
-#~ msgstr "Desbloquiar esto automáticamente al aniciar sesión"
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
+"Al escoyer usar una contraseña en blancu, les sos contraseñes atroxaes nun "
+"tarán cifraes de miente seguro. Sedrán accesibles por cualesquier que tenga "
+"accesu a los sos archivos."
-#, fuzzy
-#~ msgid "Automatically unlock secure storage when I log in."
-#~ msgstr "Desbloquear esti certificáu automáticamente al aniciar sesión."
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
+msgstr "Usar atroxamientu inseguru"
-#~ msgid "Allow _Once"
-#~ msgstr "Permitir _una vegada"
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr "Les contraseñes nun coinciden."
-#~ msgid "_Always Allow"
-#~ msgstr "Permitir _siempres"
+#: ../ui/gku-prompt-tool.c:649
+msgid "Password cannot be blank"
+msgstr "La contraseña nun pue tar erma"
-#~ msgid "Access Denied"
-#~ msgstr "Accesu denegáu"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
-#~ msgid "The gnome-keyring-daemon application is not running."
-#~ msgstr "L'aplicación gnome-keyring-daemon nun se ta executando."
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
-#~ msgid "Error communicating with gnome-keyring-daemon"
-#~ msgstr "Erru al comunicase con gnome-keyring-daemon"
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
+msgstr "Fortaleza de la nueva contraseña"
-#~ msgid "A keyring with that name already exists"
-#~ msgstr "Yá existe un depósito de claves con ese nombre"
+#: ../ui/gku-prompt.ui.h:2
+msgid "_Application:"
+msgstr "_Aplicación:"
-#~ msgid "Programmer error: The application sent invalid data."
-#~ msgstr "Erru de programación: L'aplicación unvió datos non válidos."
+#: ../ui/gku-prompt.ui.h:3
+msgid "_Confirm:"
+msgstr "_Confirmar:"
-#~ msgid "No matching results"
-#~ msgstr "Nun s'alcontró dengún resultáu coincidente"
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr "_Detalles:"
-#~ msgid "A keyring with that name does not exist."
-#~ msgstr "Nun esiste un depósitu de claves con esi nome."
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr "N_ome:"
-#~ msgid "The keyring has already been unlocked."
-#~ msgstr "El depósity de claves yá se desbloquió."
+#: ../ui/gku-prompt.ui.h:6
+msgid "_Old Password:"
+msgstr "Contraseña _vieya:"
-#~ msgid "The system wants to import the public key '%s', but it is locked"
-#~ msgstr "El sistema quier importar la clave privada «%s», pero ta bloquiada"
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "_Contraseña:"
diff --git a/po/az.po b/po/az.po
index 35721daf..155022ba 100644
--- a/po/az.po
+++ b/po/az.po
@@ -7,389 +7,509 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.HEAD.az\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-18 20:49+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2004-02-13 13:19+0200\n"
"Last-Translator: MÉ™tin Æmirov <metin@karegen.com>\n"
"Language-Team: Azerbaijani Turkish <translation-team-az@lists.sourceforge."
"net>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../gnome-keyring-ask.c:241
-msgid "_Old password:"
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
msgstr ""
-#: ../gnome-keyring-ask.c:262
-msgid "_Password:"
+#: ../daemon/dbus/gkd-secret-change.c:86
+#, fuzzy
+msgid "Change Keyring Password"
+msgstr "Yeni Şifrə Kisəsi Şifrəsi"
+
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "Yeni şifrə kisəsi üçün şifrəni seçin"
+
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
+msgid ""
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
msgstr ""
+"Namə'lum proqram yeni bir ön qurğulu şifrə kisəsi yaratmaq istəyir. Onun "
+"üçün işlətmək istədiyiniz şifrəni seçməlisiniz."
-#: ../gnome-keyring-ask.c:284
-msgid "_Confirm new password:"
+#: ../daemon/dbus/gkd-secret-change.c:111
+msgid "The original password was incorrect"
msgstr ""
-#. Strength bar:
-#: ../gnome-keyring-ask.c:303
-msgid "<span weight=\"bold\">Password strength meter:</span>"
+#: ../daemon/dbus/gkd-secret-create.c:83
+msgid "New Keyring Password"
+msgstr "Yeni Şifrə Kisəsi Şifrəsi"
+
+#: ../daemon/dbus/gkd-secret-create.c:84
+msgid "Choose password for new keyring"
+msgstr "Yeni şifrə kisəsi üçün şifrəni seçin"
+
+#: ../daemon/dbus/gkd-secret-create.c:86
+#, fuzzy, c-format
+msgid ""
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
+"Namə'lum proqram '%s' adında yeni bir şifrə kisəsi yaratmaq istəyir. Onun "
+"üçün işlətmək istədiyiniz şifrəni seçməlisiniz."
-#: ../gnome-keyring-ask.c:329
-msgid "Old password cannot be blank."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+msgid "Certificate and Key Storage"
msgstr ""
-#: ../gnome-keyring-ask.c:340
-msgid "Password cannot be blank."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+msgid "GNOME Keyring: PKCS#11 Component"
msgstr ""
-#: ../gnome-keyring-ask.c:348
-msgid "Passwords do not match."
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+msgid "GNOME Keyring: Secret Service"
msgstr ""
-#: ../gnome-keyring-ask.c:407
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
msgstr ""
-"'%s' (%s) proqramı ön qurğulu şifrə kisəsinə yetişmək istəyir, amma o "
-"bağlıdır"
-#: ../gnome-keyring-ask.c:411
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the keyring '%s', but it is locked"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+msgid "GNOME Keyring: SSH Agent"
msgstr ""
-"'%s' (%s) proqramı '%s' şifrə kisəsinə yetişmək istəyir, amma o bağlıdır"
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:416
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to an unknown keyring, but it is "
-"locked"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
msgstr ""
-"'%s' (%s) proqramı namə'lum şifrə kisəsinə yetişmək istəyir, amma o bağlıdır"
-#: ../gnome-keyring-ask.c:422 ../gnome-keyring-ask.c:436
-#, c-format
-msgid ""
-"The application '%s' wants access to the default keyring, but it is locked"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+msgid "GNOME Keyring: GPG Agent"
msgstr ""
-"'%s' proqramı ön qurğulu şifrə kisəsinə yetişmək istəyir, amma o bağlıdır"
-#: ../gnome-keyring-ask.c:426 ../gnome-keyring-ask.c:441
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
-msgstr "'%s' proqramı '%s' şifrə kisəsinə yetişmək istəyir, amma o bağlıdır"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+msgid "GPG Password Agent"
+msgstr ""
+
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+msgid "Unknown"
+msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:430 ../gnome-keyring-ask.c:446
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid ""
-"The application '%s' wants access to an unknown keyring, but it is locked"
+msgid "PGP Key: %s"
msgstr ""
-"'%s' proqramı namə'lum şifrə kisəsinə yetişmək istəyir, amma o bağlıdır"
-#: ../gnome-keyring-ask.c:452
-msgid ""
-"An unknown application wants access to the default keyring, but it is locked"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-"Namə'lum proqram ön qurğulu şifrə kisəsinə yetişmək istəyir, amma o bağlıdır"
-#: ../gnome-keyring-ask.c:456
-#, c-format
-msgid ""
-"An unknown application wants access to the keyring '%s', but it is locked"
-msgstr "Namə'lum proqram '%s' şifrə kisəsinə yetişmək istəyir, amma o bağlıdır"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
+msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:461
-msgid ""
-"An unknown application wants access to an unknown keyring, but it is locked"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-"Namə'lum proqram namə'lum şifrə kisəsinə yetişmək istəyir, amma o bağlıdır"
-#: ../gnome-keyring-ask.c:468
-msgid "Enter password for default keyring to unlock"
-msgstr "Ön qurğulu şifrə kisəsini açmaq üçün şifrəni bildirin"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
+msgstr ""
-#: ../gnome-keyring-ask.c:470
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "Qıfılı açmaq üçün '%s' şifrə kisəsi şifrəsini bildirin"
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
+msgstr ""
-#: ../gnome-keyring-ask.c:474
-msgid "Unlock Keyring"
-msgstr "Şifrə Kisəsinin Qıfılını Aç"
+#: ../egg/egg-oid.c:41
+msgid "Domain Component"
+msgstr ""
-#: ../gnome-keyring-ask.c:479 ../gnome-keyring-ask.c:563
-#: ../gnome-keyring-ask.c:655 ../gnome-keyring-ask.c:711
-#: ../gnome-keyring-ask.c:798
-msgid "_Deny"
-msgstr "_Rədd Et"
+#: ../egg/egg-oid.c:43
+msgid "User ID"
+msgstr ""
-#: ../gnome-keyring-ask.c:517
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:46
+msgid "Email Address"
msgstr ""
-"'%s' (%s) proqramı '%s' adında yeni bir şifrə kisəsi yaratmaq istəyir. Onun "
-"üçün işlətmək istədiyiniz şifrəni seçməlisiniz."
-#: ../gnome-keyring-ask.c:521
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:54
+msgid "Date of Birth"
+msgstr ""
+
+#: ../egg/egg-oid.c:56
+msgid "Place of Birth"
+msgstr ""
+
+#: ../egg/egg-oid.c:58
+msgid "Gender"
+msgstr ""
+
+#: ../egg/egg-oid.c:60
+msgid "Country of Citizenship"
+msgstr ""
+
+#: ../egg/egg-oid.c:62
+msgid "Country of Residence"
+msgstr ""
+
+#: ../egg/egg-oid.c:65
+msgid "Common Name"
+msgstr ""
+
+#: ../egg/egg-oid.c:67
+msgid "Surname"
+msgstr ""
+
+#: ../egg/egg-oid.c:69
+msgid "Serial Number"
+msgstr ""
+
+#: ../egg/egg-oid.c:71
+msgid "Country"
+msgstr ""
+
+#: ../egg/egg-oid.c:73
+msgid "Locality"
+msgstr ""
+
+#: ../egg/egg-oid.c:75
+msgid "State"
+msgstr ""
+
+#: ../egg/egg-oid.c:77
+msgid "Street"
+msgstr ""
+
+#: ../egg/egg-oid.c:79
+msgid "Organization"
+msgstr ""
+
+#: ../egg/egg-oid.c:81
+msgid "Organizational Unit"
+msgstr ""
+
+#: ../egg/egg-oid.c:83
+msgid "Title"
+msgstr ""
+
+#: ../egg/egg-oid.c:85
+msgid "Telephone Number"
+msgstr ""
+
+#: ../egg/egg-oid.c:87
+msgid "Given Name"
+msgstr ""
+
+#: ../egg/egg-oid.c:89
+msgid "Initials"
+msgstr ""
+
+#: ../egg/egg-oid.c:91
+msgid "Generation Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:93
+msgid "DN Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:95
+msgid "Pseudonym"
+msgstr ""
+
+#: ../egg/egg-oid.c:98
+msgid "RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:99
+msgid "MD2 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:100
+msgid "MD5 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:101
+msgid "SHA1 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:103
+msgid "DSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:104
+msgid "SHA1 with DSA"
+msgstr ""
+
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
+
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
+
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
msgstr ""
-"'%s' (%s) proqramı yeni bir ön qurğulu şifrə kisəsi yaratmaq istəyir. Onun "
-"üçün işlətmək istədiyiniz şifrəni seçməlisiniz."
-#: ../gnome-keyring-ask.c:527 ../gnome-keyring-ask.c:537
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
+msgid "Unexpected error in select() reading data from a child process (%s)"
msgstr ""
-"'%s' proqramı '%s' adında yeni bir şifrə kisəsi yaratmaq istəyir. Onun üçün "
-"işlətmək istədiyiniz şifrəni seçməlisiniz."
-#: ../gnome-keyring-ask.c:531 ../gnome-keyring-ask.c:541
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+msgid "Unexpected error in waitpid() (%s)"
msgstr ""
-"'%s' proqramı yeni bir ön qurğulu şifrə kisəsi yaratmaq istəyir. Onun üçün "
-"işlətmək istədiyiniz şifrəni seçməlisiniz."
-#: ../gnome-keyring-ask.c:547
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr ""
+
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
+msgstr ""
+
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
-msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
+msgid "Unlock password for: %s"
msgstr ""
-"Namə'lum proqram '%s' adında yeni bir şifrə kisəsi yaratmaq istəyir. Onun "
-"üçün işlətmək istədiyiniz şifrəni seçməlisiniz."
-#: ../gnome-keyring-ask.c:551
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+msgid "The unlock password was incorrect"
msgstr ""
-"Namə'lum proqram yeni bir ön qurğulu şifrə kisəsi yaratmaq istəyir. Onun "
-"üçün işlətmək istədiyiniz şifrəni seçməlisiniz."
-#: ../gnome-keyring-ask.c:558
-msgid "New Keyring Password"
-msgstr "Yeni Şifrə Kisəsi Şifrəsi"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+#, fuzzy
+msgid "Unlock Login Keyring"
+msgstr "Şifrə Kisəsinin Qıfılını Aç"
-#: ../gnome-keyring-ask.c:559
-msgid "Choose password for new keyring"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
msgstr "Yeni şifrə kisəsi üçün şifrəni seçin"
-#: ../gnome-keyring-ask.c:602
-#, fuzzy, c-format
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
msgstr ""
-"'%s' (%s) proqramı yeni bir ön qurğulu şifrə kisəsi yaratmaq istəyir. Onun "
-"üçün işlətmək istədiyiniz şifrəni seçməlisiniz."
-#: ../gnome-keyring-ask.c:606
-#, fuzzy, c-format
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
+"The login keyring did not get unlocked when you logged into your computer."
msgstr ""
-"'%s' (%s) proqramı yeni bir ön qurğulu şifrə kisəsi yaratmaq istəyir. Onun "
-"üçün işlətmək istədiyiniz şifrəni seçməlisiniz."
-#: ../gnome-keyring-ask.c:612 ../gnome-keyring-ask.c:622
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "Şifrə Kisəsinin Qıfılını Aç"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
+#, c-format
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "Qıfılı açmaq üçün '%s' şifrə kisəsi şifrəsini bildirin"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
#, fuzzy, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr "Namə'lum proqram '%s' şifrə kisəsinə yetişmək istəyir, amma o bağlıdır"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
msgstr ""
-"'%s' proqramı yeni bir ön qurğulu şifrə kisəsi yaratmaq istəyir. Onun üçün "
-"işlətmək istədiyiniz şifrəni seçməlisiniz."
-#: ../gnome-keyring-ask.c:616 ../gnome-keyring-ask.c:626
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+#, fuzzy
+msgid "Unlock certificate"
+msgstr "Şifrə Kisəsinin Qıfılını Aç"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+#, fuzzy
+msgid "Unlock"
+msgstr "Şifrə Kisəsinin Qıfılını Aç"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+#, fuzzy
+msgid "Enter password to unlock the private key"
+msgstr "Ön qurğulu şifrə kisəsini açmaq üçün şifrəni bildirin"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+#, fuzzy
+msgid "Enter password to unlock the public key"
+msgstr "Ön qurğulu şifrə kisəsini açmaq üçün şifrəni bildirin"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+#, fuzzy
+msgid "Enter password to unlock"
+msgstr "Qıfılı açmaq üçün '%s' şifrə kisəsi şifrəsini bildirin"
+
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, fuzzy, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+msgid "An application wants access to the private key '%s', but it is locked"
+msgstr "Namə'lum proqram '%s' şifrə kisəsinə yetişmək istəyir, amma o bağlıdır"
+
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
+#, fuzzy, c-format
+msgid "An application wants access to the certificate '%s', but it is locked"
+msgstr "Namə'lum proqram '%s' şifrə kisəsinə yetişmək istəyir, amma o bağlıdır"
+
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
+#, fuzzy, c-format
+msgid "An application wants access to the public key '%s', but it is locked"
+msgstr "Namə'lum proqram '%s' şifrə kisəsinə yetişmək istəyir, amma o bağlıdır"
+
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
+#, fuzzy, c-format
+msgid "An application wants access to '%s', but it is locked"
+msgstr "Namə'lum proqram '%s' şifrə kisəsinə yetişmək istəyir, amma o bağlıdır"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
msgstr ""
-"'%s' proqramı yeni bir ön qurğulu şifrə kisəsi yaratmaq istəyir. Onun üçün "
-"işlətmək istədiyiniz şifrəni seçməlisiniz."
-#: ../gnome-keyring-ask.c:632
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
#, fuzzy, c-format
msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr "Namə'lum proqram '%s' şifrə kisəsinə yetişmək istəyir, amma o bağlıdır"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
msgstr ""
-"Namə'lum proqram yeni bir ön qurğulu şifrə kisəsi yaratmaq istəyir. Onun "
-"üçün işlətmək istədiyiniz şifrəni seçməlisiniz."
-#: ../gnome-keyring-ask.c:636
-#, fuzzy
-msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
msgstr ""
-"Namə'lum proqram yeni bir ön qurğulu şifrə kisəsi yaratmaq istəyir. Onun "
-"üçün işlətmək istədiyiniz şifrəni seçməlisiniz."
-#: ../gnome-keyring-ask.c:643
-#, fuzzy, c-format
-msgid "Choose a new password for the '%s' keyring. "
-msgstr "Yeni şifrə kisəsi üçün şifrəni seçin"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
+#, c-format
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
-#: ../gnome-keyring-ask.c:645
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
#, fuzzy
-msgid "Choose a new password for the default keyring. "
-msgstr "Ön qurğulu şifrə kisəsi üçün şifrə seç"
+msgid "Change Password"
+msgstr "Yeni Şifrə Kisəsi Şifrəsi"
-#: ../gnome-keyring-ask.c:650
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
#, fuzzy
-msgid "Change Keyring Password"
-msgstr "Yeni Şifrə Kisəsi Şifrəsi"
+msgid "Change password for secure storage"
+msgstr "Yeni şifrə kisəsi üçün şifrəni seçin"
-#: ../gnome-keyring-ask.c:689
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+"To change the password for '%s', the original and new passwords are required"
msgstr ""
-"'%s' (%s) proqramı şifrə qeyd etmək istəyir, amma ön qurğulu şifrə kisəsi "
-"mövcud deyil. Birini yaratmaq üçün, onun üçün işlətmək istədiyiniz şifrəni "
-"seçməlisiniz."
-#: ../gnome-keyring-ask.c:693 ../gnome-keyring-ask.c:697
+#: ../tool/gkr-tool.c:102
#, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+msgid "usage: gnome-keyring command [options]\n"
msgstr ""
-"'%s' proqramı şifrə qeyd etmək istəyir, amma ön qurğulu şifrə kisəsi mövcud "
-"deyil. Birini yaratmaq üçün, onun üçün işlətmək istədiyiniz şifrəni "
-"seçməlisiniz."
-#. app == APPLICATION_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:701
-msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
msgstr ""
-"Namə'lum proqram şifrə qeyd etmək istəyir, amma ön qurğulu şifrə kisəsi "
-"mövcud deyil. Birini yaratmaq üçün, onun üçün işlətmək istədiyiniz şifrəni "
-"seçməlisiniz."
-
-#: ../gnome-keyring-ask.c:706
-msgid "Create Default Keyring"
-msgstr "Ön Qurğulu Şifrə Kisəsi Yarat"
-
-#: ../gnome-keyring-ask.c:707
-msgid "Choose password for default keyring"
-msgstr "Ön qurğulu şifrə kisəsi üçün şifrə seç"
-#: ../gnome-keyring-ask.c:747
-msgid "Allow application access to keyring?"
-msgstr "Proqrama şifrə kisəsinə yetişmə səlahiyyəti verilsin?"
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
-#: ../gnome-keyring-ask.c:750
-#, c-format
-msgid "The application '%s' (%s) wants to access the password for '%s' in %s."
-msgstr "'%s' (%s) proqramı '%s' şifrəsinə %s içindən yetişmək istəyir."
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
+msgstr ""
-#: ../gnome-keyring-ask.c:753
-#, c-format
+#: ../ui/gku-prompt-tool.c:592
msgid ""
-"The application '%s' (%s) wants to access the password for '%s' in the "
-"default keyring."
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
msgstr ""
-"'%s' (%s) proqramı '%s' şifrəsinə ön qurğulu şifrə kisəsi içindən yetişmək "
-"istəyir."
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:756
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '%s' in an "
-"unknown keyring."
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
msgstr ""
-"'%s' (%s) proqramı '%s' şifrəsinə namə'lum şifrə kisəsi içindən yetişmək "
-"istəyir."
-#: ../gnome-keyring-ask.c:761 ../gnome-keyring-ask.c:772
-#, c-format
-msgid "The application '%s' wants to access the password for '%s' in %s."
-msgstr "'%s' proqramı '%s' şifrəsinə %s içindən yetişmək istəyir."
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr ""
-#: ../gnome-keyring-ask.c:764 ../gnome-keyring-ask.c:775
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '%s' in the default "
-"keyring."
+#: ../ui/gku-prompt-tool.c:649
+msgid "Password cannot be blank"
msgstr ""
-"'%s' proqramı '%s' şifrəsinə ön qurğulu şifrə kisəsi içindən yetişmək "
-"istəyir."
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:767 ../gnome-keyring-ask.c:778
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '%s' in an unknown "
-"keyring."
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
msgstr ""
-"'%s' proqramı '%s' şifrəsinə namə'lum şifrə kisəsi içindən yetişmək istəyir."
-#: ../gnome-keyring-ask.c:783
-#, c-format
-msgid "An unknown application wants to access the password for '%s' in %s."
-msgstr "Namə'lum proqram '%s' şifrəsinə %s içindən yetişmək istəyir."
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
-#: ../gnome-keyring-ask.c:786
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '%s' in the default "
-"keyring."
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
msgstr ""
-"Namə'lum proqram '%s' şifrəsinə ön qurğulu şifrə kisəsi içindən yetişmək "
-"istəyir."
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:789
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '%s' in an unknown "
-"keyring."
+#: ../ui/gku-prompt.ui.h:2
+msgid "_Application:"
msgstr ""
-"Namə'lum proqram '%s' şifrəsinə namə'lum şifrə kisəsi içindən yetişmək "
-"istəyir."
-#: ../gnome-keyring-ask.c:794
-msgid "Allow access"
-msgstr "Yetişmə icazəsi"
+#: ../ui/gku-prompt.ui.h:3
+msgid "_Confirm:"
+msgstr ""
-#: ../gnome-keyring-ask.c:799
-msgid "Allow _Once"
-msgstr "_Bir Dəfəyə Məxsus İcazə Ver"
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
-#: ../gnome-keyring-ask.c:800
-msgid "_Always Allow"
-msgstr "_Həmişə İcazə Ver"
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr ""
-#: ../gnome-keyring-ask.c:840
-msgid "You must specify the type of request to run\n"
-msgstr "İcra ediləcək istəyin növünü bildirməlisiniz\n"
+#: ../ui/gku-prompt.ui.h:6
+msgid "_Old Password:"
+msgstr ""
-#: ../gnome-keyring-ask.c:857
-msgid "Unknown request type\n"
-msgstr "Namə'lum istək növü\n"
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr ""
diff --git a/po/be.po b/po/be.po
index 2a9fc6ea..714015ea 100644
--- a/po/be.po
+++ b/po/be.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-28 10:21+0300\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-28 10:21+0300\n"
"Last-Translator: Yuri Matsuk <yuri@matsuk.net>\n"
"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
@@ -96,9 +96,7 @@ msgstr "Ð’Ñзкі ключоў GNOME: GPG-агент"
msgid "GPG Password Agent"
msgstr "GPG-агент паролÑÑž"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106 ../gcr/gcr-gnupg-renderer.c:256
-#: ../gcr/gcr-gnupg-renderer.c:415 ../gcr/gcr-key-renderer.c:312
-#: ../gcr/gcr-key-renderer.c:317
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "ÐевÑдома"
@@ -125,7 +123,7 @@ msgid "Forget this password when I log out"
msgstr "Забыць гÑÑ‚Ñ‹ пароль паÑÐ»Ñ Ð²Ñ‹Ñ…Ð°Ð´Ñƒ з ÑеанÑа"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Уваход"
@@ -133,8 +131,7 @@ msgstr "Уваход"
msgid "Domain Component"
msgstr "Даменны Ñкладнік"
-#: ../egg/egg-oid.c:43 ../gcr/gcr-gnupg-renderer.c:411
-#: ../gcr/gcr-gnupg-renderer.c:580
+#: ../egg/egg-oid.c:43
msgid "User ID"
msgstr "ІдÑнтыфікатар карыÑтальніка"
@@ -170,7 +167,7 @@ msgstr "Ðгульнае імÑ"
msgid "Surname"
msgstr "Прозвішча"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:651
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Серыйны нумар"
@@ -226,8 +223,7 @@ msgstr "Пазнака DN"
msgid "Pseudonym"
msgstr "ПÑеўданім"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-gnupg-renderer.c:202
-#: ../gcr/gcr-key-renderer.c:308
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -243,8 +239,7 @@ msgstr "MD5 з RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 з RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-gnupg-renderer.c:206
-#: ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -285,816 +280,6 @@ msgstr ""
msgid "Unexpected error in waitpid() (%s)"
msgstr "ÐÐµÑ‡Ð°ÐºÐ°Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ° Ñž функцыі waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Памылка загрузкі Ð¼Ð¾Ð´ÑƒÐ»Ñ PKCS#11: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Хібны модуль PKCS#11: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Ðе ўдалоÑÑ Ð½Ð°Ñтроіць модуль PKCS#11: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "Ðе ўдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ‹Ñваць модуль PKCS#11: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "Ðе ўдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ‹Ñваць зарÑгіÑтраваны модуль PKCS#11: %s"
-
-#: ../gcr/gcr-callback-output-stream.c:64
-#: ../gcr/gcr-callback-output-stream.c:81
-#, c-format
-msgid "The stream was closed"
-msgstr "Струмень быў закрыты"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:521
-msgctxt "column"
-msgid "Name"
-msgstr "Ðазва"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Выдавец"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "ТÑрмін прыдатнаÑці"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:463
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:301
-msgid "Certificate"
-msgstr "Сертыфікат"
-
-#: ../gcr/gcr-certificate-exporter.c:225
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Файл з такой назвай ужо Ñ–Ñнуе.</b>\n"
-"\n"
-"Ці вы хочаце Ñго замÑніць новым файлам?"
-
-#: ../gcr/gcr-certificate-exporter.c:228
-msgid "_Replace"
-msgstr "_ЗамÑніць"
-
-#: ../gcr/gcr-certificate-exporter.c:258
-#, c-format
-msgid "The operation was cancelled."
-msgstr "ÐÐ¿ÐµÑ€Ð°Ñ†Ñ‹Ñ Ð±Ñ‹Ð»Ð° ÑкаÑавана."
-
-#: ../gcr/gcr-certificate-exporter.c:302
-msgid "Export certificate"
-msgstr "ЭкÑпартаванне Ñертыфіката"
-
-#: ../gcr/gcr-certificate-exporter.c:314
-msgid "Certificate files"
-msgstr "Файлы Ñертыфікатаў"
-
-#: ../gcr/gcr-certificate-exporter.c:325
-msgid "PEM files"
-msgstr "PEM-файлы"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Ð†Ð½ÑˆÐ°Ñ Ð½Ð°Ð·Ð²Ð°"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "XMPP-адраÑ"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166 ../gcr/gcr-gnupg-renderer.c:424
-#: ../gcr/gcr-gnupg-renderer.c:706
-msgid "Email"
-msgstr "Ð­Ð»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð°Ñ Ð¿Ð¾ÑˆÑ‚Ð°"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "X400-адраÑ"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Ðазва каталога"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "Ð†Ð¼Ñ EDI-удзельніка"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI-адраÑ"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "IP-адраÑ"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "ЗарÑгіÑтраваны ідÑнтыфікатар"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "ÐÑÐ½Ð¾ÑžÐ½Ñ‹Ñ Ð°Ð±Ð¼ÐµÐ¶Ð°Ð²Ð°Ð½Ð½Ñ–"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "ЦÑнтр Ñертыфікацыі"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Так"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Ðе"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "МакÑÑ–Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð°ÑžÐ¶Ñ‹Ð½Ñ Ð¼Ð°Ñ€ÑˆÑ€ÑƒÑ‚Ñƒ"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Ðеабмежавана"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-#, fuzzy
-msgid "Extended Key Usage"
-msgstr "Пашыранае выкарыÑтанне ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Ð”Ð°Ð·Ð²Ð¾Ð»ÐµÐ½Ñ‹Ñ Ð¼ÑÑ‚Ñ‹"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "ІдÑнтыфікатар ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Лічбавы подпіÑ"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Шыфраванне ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Шыфраванне даных"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "ÐŸÐ¾Ð´Ð¿Ñ–Ñ Ñертыфіката"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "ÐŸÐ¾Ð´Ð¿Ñ–Ñ ÑпіÑа адкліканнÑ"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "ВыкарыÑтанне ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "СпоÑабы выкарыÑтаннÑ"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-#, fuzzy
-msgid "Subject Alternative Names"
-msgstr "ÐльтÑÑ€Ð½Ð°Ñ‚Ñ‹ÑžÐ½Ñ‹Ñ Ð½Ð°Ð·Ð²Ñ‹ Ñуб'екта"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "ПашырÑнне"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "ІдÑнтыфікатар"
-
-#: ../gcr/gcr-certificate-renderer.c:266 ../gcr/gcr-gnupg-renderer.c:415
-#: ../gcr/gcr-gnupg-renderer.c:432
-msgid "Value"
-msgstr "ЗначÑнне"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Крытычна"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Ðе ўдалоÑÑ ÑкÑпартаваць Ñертыфікат."
-
-#: ../gcr/gcr-certificate-renderer.c:612
-msgid "Identity"
-msgstr "ІдÑнтычнаÑць"
-
-#: ../gcr/gcr-certificate-renderer.c:616
-msgid "Verified by"
-msgstr "Выканаўца праверкі"
-
-#: ../gcr/gcr-certificate-renderer.c:623 ../gcr/gcr-gnupg-renderer.c:720
-msgid "Expires"
-msgstr "ТÑрмін прыдатнаÑці"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:633
-#, fuzzy
-msgid "Subject Name"
-msgstr "Ðазва Ñуб'екта"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:637
-msgid "Issuer Name"
-msgstr "Ðазва выдаўца"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:641
-msgid "Issued Certificate"
-msgstr "Выдадзены Ñертыфікат"
-
-#: ../gcr/gcr-certificate-renderer.c:646
-msgid "Version"
-msgstr "ВерÑÑ–Ñ"
-
-#: ../gcr/gcr-certificate-renderer.c:658
-msgid "Not Valid Before"
-msgstr "Ðе дзейны да"
-
-#: ../gcr/gcr-certificate-renderer.c:663
-msgid "Not Valid After"
-msgstr "Ðе дзейны паÑлÑ"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:668
-msgid "Certificate Fingerprints"
-msgstr "Ðдбіткі Ñертыфікатаў"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:674 ../gcr/gcr-certificate-renderer.c:686
-#: ../gcr/gcr-gnupg-renderer.c:561
-msgid "Signature"
-msgstr "ПодпіÑ"
-
-#: ../gcr/gcr-certificate-renderer.c:678
-msgid "Signature Algorithm"
-msgstr "Ðлгарытм подпіÑу"
-
-#: ../gcr/gcr-certificate-renderer.c:682
-msgid "Signature Parameters"
-msgstr "Параметры подпіÑу"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:690
-msgid "Public Key Info"
-msgstr "ЗвеÑткі аб адкрытым ключы"
-
-#: ../gcr/gcr-certificate-renderer.c:695
-msgid "Key Algorithm"
-msgstr "Ðлгарытм ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:700
-msgid "Key Parameters"
-msgstr "Параметры ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:705 ../gcr/gcr-gnupg-renderer.c:354
-msgid "Key Size"
-msgstr "Памер ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:712
-msgid "Key SHA1 Fingerprint"
-msgstr "SHA1-адбітак ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:718 ../gcr/gcr-gnupg-renderer.c:739
-#: ../gcr/gcr-key-renderer.c:292 ../gcr/gcr-parser.c:304
-msgid "Public Key"
-msgstr "Ðдкрыты ключ"
-
-#: ../gcr/gcr-display-view.c:319
-msgid "_Details"
-msgstr "_ПадрабÑзнаÑці"
-
-#: ../gcr/gcr-failure-renderer.c:161
-#, c-format
-msgid "Could not display '%s'"
-msgstr "Ðе ўдалоÑÑ Ð¿Ð°ÐºÐ°Ð·Ð°Ñ†ÑŒ \"%s\""
-
-#: ../gcr/gcr-failure-renderer.c:163
-msgid "Could not display file"
-msgstr "Ðе ўдалоÑÑ Ð¿Ð°ÐºÐ°Ð·Ð°Ñ†ÑŒ файл"
-
-#: ../gcr/gcr-failure-renderer.c:168
-msgid "Reason"
-msgstr "Прычына"
-
-#: ../gcr/gcr-failure-renderer.c:201
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Ðе ўдалоÑÑ Ð¿Ð°ÐºÐ°Ð·Ð°Ñ†ÑŒ файл такога тыпу."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Імпартаванне Ñертыфікатаў Ñ– ключоў"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Імпартаваць у:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Пароль:"
-
-#: ../gcr/gcr-gnupg-importer.c:90
-msgid "GnuPG Keyring"
-msgstr "Ð’Ñзка ключоў GnuPG"
-
-#: ../gcr/gcr-gnupg-importer.c:92
-#, c-format
-msgid "GnuPG Keyring: %s"
-msgstr "Ð’Ñзка ключоў GnuPG: %s"
-
-#: ../gcr/gcr-gnupg-key.c:234 ../gcr/gcr-gnupg-renderer.c:88
-#: ../gcr/gcr-parser.c:307
-msgid "PGP Key"
-msgstr "PGP-ключ"
-
-#: ../gcr/gcr-gnupg-key.c:523
-msgctxt "column"
-msgid "Key ID"
-msgstr "ІдÑнтыфікатар ключа"
-
-#: ../gcr/gcr-gnupg-process.c:860
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "ПрацÑÑ Gnupg Ñкончыў працу, вÑрнуўшы код: %d"
-
-#: ../gcr/gcr-gnupg-process.c:867
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "ПрацÑÑ Gnupg быў знішчаны Ñігналам: %d"
-
-#: ../gcr/gcr-gnupg-process.c:921 ../gcr/gcr-parser.c:2152
-#: ../gcr/gcr-parser.c:2622
-msgid "The operation was cancelled"
-msgstr "ÐÐ¿ÐµÑ€Ð°Ñ†Ñ‹Ñ Ð±Ñ‹Ð»Ð° ÑкаÑавана"
-
-#: ../gcr/gcr-gnupg-renderer.c:204
-msgid "Elgamal"
-msgstr "Elgamal"
-
-#: ../gcr/gcr-gnupg-renderer.c:217
-msgid "Encrypt"
-msgstr "Зашыфраваць"
-
-#: ../gcr/gcr-gnupg-renderer.c:219
-msgid "Sign"
-msgstr "ПадпіÑаць"
-
-#: ../gcr/gcr-gnupg-renderer.c:221
-msgid "Certify"
-msgstr "Сертыфікаваць"
-
-#: ../gcr/gcr-gnupg-renderer.c:223
-msgid "Authenticate"
-msgstr "ІдÑнтыфікаваць"
-
-#: ../gcr/gcr-gnupg-renderer.c:225 ../gcr/gcr-gnupg-renderer.c:260
-msgid "Disabled"
-msgstr "Выключаны"
-
-#: ../gcr/gcr-gnupg-renderer.c:258
-msgid "Invalid"
-msgstr "Хібны"
-
-#: ../gcr/gcr-gnupg-renderer.c:262
-msgid "Revoked"
-msgstr "Ðдкліканы"
-
-#: ../gcr/gcr-gnupg-renderer.c:264
-msgid "Expired"
-msgstr "СаÑтарÑлы"
-
-#: ../gcr/gcr-gnupg-renderer.c:266
-msgid "Undefined trust"
-msgstr "ÐÑвызначаны аб'ект даверу"
-
-#: ../gcr/gcr-gnupg-renderer.c:268
-msgid "Distrusted"
-msgstr "Ðе варты даверу"
-
-#: ../gcr/gcr-gnupg-renderer.c:270
-msgid "Marginally trusted"
-msgstr "ÐÑзначна давераны"
-
-#: ../gcr/gcr-gnupg-renderer.c:272
-msgid "Fully trusted"
-msgstr "ПоўнаÑцю давераны"
-
-#: ../gcr/gcr-gnupg-renderer.c:274
-msgid "Ultimately trusted"
-msgstr "Канчаткова давераны"
-
-#: ../gcr/gcr-gnupg-renderer.c:288
-msgid "The information in this key has not yet been verified"
-msgstr "Ð†Ð½Ñ„Ð°Ñ€Ð¼Ð°Ñ†Ñ‹Ñ Ñž гÑтым ключы ÑÑˆÑ‡Ñ Ð½Ðµ была праверана"
-
-#: ../gcr/gcr-gnupg-renderer.c:291
-msgid "This key is invalid"
-msgstr "ГÑта хібны ключ"
-
-#: ../gcr/gcr-gnupg-renderer.c:294
-msgid "This key has been disabled"
-msgstr "ГÑÑ‚Ñ‹ ключ быў выключаны"
-
-#: ../gcr/gcr-gnupg-renderer.c:297
-msgid "This key has been revoked"
-msgstr "ГÑÑ‚Ñ‹ ключ быў адкліканы"
-
-#: ../gcr/gcr-gnupg-renderer.c:300
-msgid "This key has expired"
-msgstr "ГÑÑ‚Ñ‹ ключ ÑаÑтарÑÑž"
-
-#: ../gcr/gcr-gnupg-renderer.c:305
-msgid "This key is distrusted"
-msgstr "ГÑÑ‚Ñ‹ ключы не варты даверу"
-
-#: ../gcr/gcr-gnupg-renderer.c:308
-msgid "This key is marginally trusted"
-msgstr "ГÑÑ‚Ñ‹ ключ нÑзначна давераны"
-
-#: ../gcr/gcr-gnupg-renderer.c:311
-msgid "This key is fully trusted"
-msgstr "ГÑÑ‚Ñ‹ ключ поўнаÑцю давераны"
-
-#: ../gcr/gcr-gnupg-renderer.c:314
-msgid "This key is ultimately trusted"
-msgstr "ГÑÑ‚Ñ‹ ключ канчаткова давераны"
-
-#: ../gcr/gcr-gnupg-renderer.c:339 ../gcr/gcr-gnupg-renderer.c:565
-msgid "Key ID"
-msgstr "ІдÑнтыфікатар ключа"
-
-#: ../gcr/gcr-gnupg-renderer.c:347 ../gcr/gcr-gnupg-renderer.c:573
-#: ../gcr/gcr-gnupg-renderer.c:620 ../gcr/gcr-key-renderer.c:313
-msgid "Algorithm"
-msgstr "Ðлгарытм"
-
-#: ../gcr/gcr-gnupg-renderer.c:362 ../gcr/gcr-gnupg-renderer.c:439
-#: ../gcr/gcr-gnupg-renderer.c:482
-msgid "Created"
-msgstr "Дата ÑтварÑннÑ"
-
-#: ../gcr/gcr-gnupg-renderer.c:371 ../gcr/gcr-gnupg-renderer.c:448
-#: ../gcr/gcr-gnupg-renderer.c:491
-msgid "Expiry"
-msgstr "ТÑрмін прыдатнаÑці"
-
-#: ../gcr/gcr-gnupg-renderer.c:380
-msgid "Capabilities"
-msgstr "ЗдольнаÑці"
-
-#: ../gcr/gcr-gnupg-renderer.c:393
-msgid "Owner trust"
-msgstr "Давер да ўлаÑніка"
-
-#: ../gcr/gcr-gnupg-renderer.c:421
-#, fuzzy
-msgid "Name"
-msgstr "ІмÑ"
-
-#: ../gcr/gcr-gnupg-renderer.c:427 ../gcr/gcr-gnupg-renderer.c:709
-msgid "Comment"
-msgstr "Каментарый"
-
-#: ../gcr/gcr-gnupg-renderer.c:467
-msgid "User Attribute"
-msgstr "Ðтрыбут карыÑтальніка"
-
-#: ../gcr/gcr-gnupg-renderer.c:474 ../gcr/gcr-key-renderer.c:320
-msgid "Size"
-msgstr "Памер"
-
-#: ../gcr/gcr-gnupg-renderer.c:509
-msgid "Signature of a binary document"
-msgstr "ÐŸÐ¾Ð´Ð¿Ñ–Ñ Ð´Ð²Ð°Ð¹ÐºÐ¾Ð²Ð°Ð³Ð° дакумента"
-
-#: ../gcr/gcr-gnupg-renderer.c:511
-msgid "Signature of a canonical text document"
-msgstr "ÐŸÐ¾Ð´Ð¿Ñ–Ñ ÐºÐ°Ð½Ð°Ð½Ñ–Ñ‡Ð½Ð°Ð³Ð° Ñ‚ÑкÑтавага дакумента"
-
-#: ../gcr/gcr-gnupg-renderer.c:513
-msgid "Standalone signature"
-msgstr "ÐÑобны подпіÑ"
-
-#: ../gcr/gcr-gnupg-renderer.c:515
-msgid "Generic certification of key"
-msgstr "Ð—Ð²Ñ‹Ñ‡Ð°Ð¹Ð½Ð°Ñ ÑÐµÑ€Ñ‚Ñ‹Ñ„Ñ–ÐºÐ°Ñ†Ñ‹Ñ ÐºÐ»ÑŽÑ‡Ð°"
-
-#: ../gcr/gcr-gnupg-renderer.c:517
-msgid "Persona certification of key"
-msgstr "ПерÑÐ°Ð½Ð°Ð»ÑŒÐ½Ð°Ñ ÑÐµÑ€Ñ‚Ñ‹Ñ„Ñ–ÐºÐ°Ñ†Ñ‹Ñ ÐºÐ»ÑŽÑ‡Ð°"
-
-#: ../gcr/gcr-gnupg-renderer.c:519
-msgid "Casual certification of key"
-msgstr "ÐÐµÐ°Ñ„Ñ–Ñ†Ñ‹Ð¹Ð½Ð°Ñ ÑÐµÑ€Ñ‚Ñ‹Ñ„Ñ–ÐºÐ°Ñ†Ñ‹Ñ ÐºÐ»ÑŽÑ‡Ð°"
-
-#: ../gcr/gcr-gnupg-renderer.c:521
-msgid "Positive certification of key"
-msgstr "ÐŸÐ°Ð·Ñ–Ñ‚Ñ‹ÑžÐ½Ð°Ñ ÑÐµÑ€Ñ‚Ñ‹Ñ„Ñ–ÐºÐ°Ñ†Ñ‹Ñ ÐºÐ»ÑŽÑ‡Ð°"
-
-#: ../gcr/gcr-gnupg-renderer.c:523
-msgid "Subkey binding signature"
-msgstr "ÐŸÐ¾Ð´Ð¿Ñ–Ñ ÑувÑзі дадатковага ключа"
-
-#: ../gcr/gcr-gnupg-renderer.c:525
-msgid "Primary key binding signature"
-msgstr "ÐŸÐ¾Ð´Ð¿Ñ–Ñ ÑувÑзі галоўнага ключа"
-
-#: ../gcr/gcr-gnupg-renderer.c:527
-msgid "Signature directly on key"
-msgstr "ÐŸÐ¾Ð´Ð¿Ñ–Ñ Ð¿Ñ€Ð¾Ñта на ключы"
-
-#: ../gcr/gcr-gnupg-renderer.c:529
-msgid "Key revocation signature"
-msgstr "ÐŸÐ¾Ð´Ð¿Ñ–Ñ Ð´Ð»Ñ Ð°Ð´ÐºÐ»Ñ–ÐºÐ°Ð½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð°"
-
-#: ../gcr/gcr-gnupg-renderer.c:531
-msgid "Subkey revocation signature"
-msgstr "ÐŸÐ¾Ð´Ð¿Ñ–Ñ Ð´Ð»Ñ Ð°Ð´ÐºÐ»Ñ–ÐºÐ°Ð½Ð½Ñ Ð´Ð°Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð°Ð³Ð° ключа"
-
-#: ../gcr/gcr-gnupg-renderer.c:533
-msgid "Certification revocation signature"
-msgstr "ÐŸÐ¾Ð´Ð¿Ñ–Ñ Ð´Ð»Ñ Ð°Ð´ÐºÐ»Ñ–ÐºÐ°Ð½Ð½Ñ Ñертыфіката"
-
-#: ../gcr/gcr-gnupg-renderer.c:535
-msgid "Timestamp signature"
-msgstr "ÐŸÐ¾Ð´Ð¿Ñ–Ñ Ð´Ð»Ñ Ñ‡Ð°Ñавага адбітка"
-
-#: ../gcr/gcr-gnupg-renderer.c:537
-msgid "Third-party confirmation signature"
-msgstr "ÐŸÐ¾Ð´Ð¿Ñ–Ñ Ð´Ð»Ñ Ð¿Ð°Ñ†Ð²ÑрджÑÐ½Ð½Ñ Ñ–Ð½ÑˆÐ°Ð¹ аÑобы"
-
-#: ../gcr/gcr-gnupg-renderer.c:590 ../gcr/gcr-gnupg-renderer.c:598
-msgid "Class"
-msgstr "КлаÑ"
-
-#: ../gcr/gcr-gnupg-renderer.c:592 ../gcr/gcr-gnupg-renderer.c:594
-msgid "Type"
-msgstr "Тып"
-
-#: ../gcr/gcr-gnupg-renderer.c:592
-msgid "Local only"
-msgstr "Толькі мÑÑÑ†Ð¾Ð²Ñ‹Ñ ÐºÐ»ÑŽÑ‡Ñ‹"
-
-#: ../gcr/gcr-gnupg-renderer.c:594
-msgid "Exportable"
-msgstr "З магчымаÑцю ÑкÑпартаваннÑ"
-
-#: ../gcr/gcr-gnupg-renderer.c:612
-msgid "Revocation Key"
-msgstr "Ключ адкліканнÑ"
-
-#: ../gcr/gcr-gnupg-renderer.c:626 ../gcr/gcr-gnupg-renderer.c:650
-#: ../gcr/gcr-gnupg-renderer.c:652
-msgid "Fingerprint"
-msgstr "Ðдбітак"
-
-#: ../gcr/gcr-gnupg-renderer.c:741
-msgid "Public Subkey"
-msgstr "Ðдкрыты дадатковы ключ"
-
-#: ../gcr/gcr-gnupg-renderer.c:743
-msgid "Secret Key"
-msgstr "Закрыты ключ"
-
-#: ../gcr/gcr-gnupg-renderer.c:745
-msgid "Secret Subkey"
-msgstr "Закрыты дадатковы ключ"
-
-#: ../gcr/gcr-import-button.c:106
-msgid "Import is in progress..."
-msgstr "Выконваецца імпартаванне..."
-
-#: ../gcr/gcr-import-button.c:112
-#, c-format
-msgid "Imported to: %s"
-msgstr "Імпартавана ў: %s"
-
-#: ../gcr/gcr-import-button.c:124
-msgid "Initializing..."
-msgstr "ІніцыÑцыÑ..."
-
-#: ../gcr/gcr-import-button.c:139
-#, c-format
-msgid "Import to: %s"
-msgstr "Імпартаваць у: %s"
-
-#: ../gcr/gcr-import-button.c:152
-msgid "Cannot import because there are no compatible importers"
-msgstr "Ðе ўдалоÑÑ Ñ–Ð¼Ð¿Ð°Ñ€Ñ‚Ð°Ð²Ð°Ñ†ÑŒ, бо нÑма адпаведных імпартавальнікаў"
-
-#: ../gcr/gcr-import-button.c:160
-msgid "No data to import"
-msgstr "ÐÑма даных Ð´Ð»Ñ Ñ–Ð¼Ð¿Ð°Ñ€Ñ‚Ð°Ð²Ð°Ð½Ð½Ñ"
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Ключ"
-
-#: ../gcr/gcr-key-renderer.c:281
-msgid "Private RSA Key"
-msgstr "Закрыты RSA-ключ"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private DSA Key"
-msgstr "Закрыты DSA-ключ"
-
-#: ../gcr/gcr-key-renderer.c:285 ../gcr/gcr-parser.c:298
-msgid "Private Key"
-msgstr "Закрыты ключ"
-
-#: ../gcr/gcr-key-renderer.c:288 ../gcr/gcr-key-renderer.c:290
-msgid "Public DSA Key"
-msgstr "Ðдкрыты DSA-ключ"
-
-#: ../gcr/gcr-key-renderer.c:299
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d біт"
-msgstr[1] "%d біты"
-msgstr[2] "%d бітаў"
-
-#: ../gcr/gcr-key-renderer.c:300
-msgid "Strength"
-msgstr "ТрывалаÑць"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:324
-msgid "Fingerprints"
-msgstr "Ðдбіткі"
-
-#: ../gcr/gcr-key-renderer.c:329
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:335
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:2155
-msgid "Unrecognized or unsupported data."
-msgstr "Ð”Ð°Ð½Ñ‹Ñ Ð½Ðµ Ð°Ð¿Ð°Ð·Ð½Ð°Ð½Ñ‹Ñ Ñ†Ñ– не падтрымліваюцца."
-
-#: ../gcr/gcr-parser.c:2158
-msgid "Could not parse invalid or corrupted data."
-msgstr "Ðе ўдалоÑÑ Ñ€Ð°Ð·Ð°Ð±Ñ€Ð°Ñ†ÑŒ Ñ…Ñ–Ð±Ð½Ñ‹Ñ Ñ†Ñ– Ð¿Ð°ÑˆÐºÐ¾Ð´Ð¶Ð°Ð½Ñ‹Ñ Ð´Ð°Ð½Ñ‹Ñ."
-
-#: ../gcr/gcr-parser.c:2161
-msgid "The data is locked"
-msgstr "Ð”Ð°Ð½Ñ‹Ñ Ð·Ð°Ð±Ð»Ð°ÐºÑ–Ñ€Ð°Ð²Ð°Ð½Ñ‹Ñ"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Ðе ўдалоÑÑ Ð·Ð½Ð°Ð¹Ñці меÑца Ð´Ð»Ñ Ð·Ð°Ñ…Ð°Ð²Ð°Ð½Ð½Ñ Ð¿Ñ€Ñ‹ÑˆÐ¿Ñ–Ð»ÐµÐ½Ð°Ð³Ð° Ñертыфіката"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Ðўтаматычна разблакіраваць гÑту вÑзку ключоў пры ўваходзе Ñž ÑÑ–ÑÑ‚Ñму"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Блакіраваць гÑту вÑзку ключоў праз"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Блакіраваць гÑту вÑзку ключоў пры бÑздзейнаÑці цÑгам"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Блакіраваць гÑту вÑзку ключоў пры выхадзе з ÑеанÑа"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "хв."
-
-#: ../gcr/gcr-unlock-renderer.c:70
-#, c-format
-msgid "Unlock: %s"
-msgstr "Разблакіраваць: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:72 ../gcr/gcr-unlock-renderer.c:129
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Разблакіраваць"
-
-#: ../gcr/gcr-unlock-renderer.c:126
-msgid "Password"
-msgstr "Пароль"
-
-#: ../gcr/gcr-unlock-renderer.c:279
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr ""
-"ЗмеÑціва \"%s\" заблакіравана. Каб разблакіраваць гÑÑ‚Ñ‹ аб'ект, Ñ‚Ñ€Ñба ўвеÑці "
-"правільны пароль."
-
-#: ../gcr/gcr-unlock-renderer.c:282
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr ""
-"ЗмеÑціва заблакіравана. Каб паглÑдзець Ñго, Ñ‚Ñ€Ñба ўвеÑці правільны пароль."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "ПраглÑдальнік Ñертыфікатаў Ñ– ключоў GCR"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Паказаць нумар верÑÑ–Ñ– праграмы"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[файл...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- ПраглÑд файлаў Ñертыфікатаў Ñ– ключоў"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "ПраглÑдальнік Ñертыфікатаў"
-
-#: ../gcr/gcr-viewer-widget.c:186
-msgid "The password was incorrect"
-msgstr "Хібны пароль"
-
-#: ../gcr/gcr-viewer-window.c:68
-msgid "Imported"
-msgstr "Імпартавана"
-
-#: ../gcr/gcr-viewer-window.c:72
-msgid "Import failed"
-msgstr "ÐÑўдалае імпартаванне"
-
-#: ../gcr/gcr-viewer-window.c:103
-msgid "Import"
-msgstr "Імпартаваць"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "URI-Ð°Ð´Ñ€Ð°Ñ Ð¼Ð°Ðµ хібнае кадаванне."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "URI-Ð°Ð´Ñ€Ð°Ñ Ð½Ðµ мае Ñхемы \"pkcs11\"."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "URI-Ð°Ð´Ñ€Ð°Ñ Ð¼Ð°Ðµ хібны ÑінтакÑÑ–Ñ."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "URI-Ð°Ð´Ñ€Ð°Ñ Ð¼Ð°Ðµ хібны нумар верÑÑ–Ñ–."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Сертыфікат без назвы"
@@ -1162,6 +347,10 @@ msgstr "Разблакіраванне Ñертыфіката"
msgid "Unlock public key"
msgstr "Разблакіраванне адкрытага ключа"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Разблакіраваць"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
msgid "Enter password to unlock the private key"
msgstr "УвÑдзіце пароль, каб разблакіраваць закрыты ключ"
@@ -1266,26 +455,26 @@ msgstr "загады: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:596
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Захоўваць паролі незашыфраванымі?"
-#: ../ui/gku-prompt-tool.c:597
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
"files."
msgstr ""
-#: ../ui/gku-prompt-tool.c:604
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr ""
-#: ../ui/gku-prompt-tool.c:644
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Паролі адрозніваюцца."
-#: ../ui/gku-prompt-tool.c:654
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Пароль не можа быць пуÑтым"
diff --git a/po/be@latin.po b/po/be@latin.po
index 7ad87ab8..3256f149 100644
--- a/po/be@latin.po
+++ b/po/be@latin.po
@@ -7,636 +7,132 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.HEAD\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-02-26 17:37+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2009-02-27 12:12+0200\n"
"Last-Translator: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>\n"
"Language-Team: Belarusian Latin <i18n@mova.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../common/gkr-location.c:321
-#, c-format
-msgid "Removable Disk: %s"
-msgstr "Pieranosny dysk: %s"
-
-#: ../common/gkr-location.c:323
-msgid "Removable Disk"
-msgstr "Pieranosny dysk"
-
-#: ../common/gkr-location.c:544 ../common/gkr-location.c:556
-msgid "Home"
-msgstr "Dadomu"
-
-#: ../common/gkr-location.c:1105 ../common/gkr-location.c:1129
-msgid "The disk or drive this file is located on is not present"
-msgstr "Dysk ci pryÅ‚ada, dzie źmieÅ¡Äany hety fajÅ‚, nia Å­kluÄanaja"
-
-#: ../common/gkr-location.c:1137
-#, c-format
-msgid "Couldn't create directory: %s"
-msgstr "NiemahÄyma stvaryć kataloh: %s"
-
-#: ../common/gkr-location.c:1171
-#, c-format
-msgid "Couldn't delete the file: %s"
-msgstr "NiemahÄyma vydalić fajÅ‚: %s"
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:228
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in the default keyring."
-msgstr ""
-"Aplikacyja '%s' (%s) choÄa atrymać parol dla '<object prop='name'/>' sa "
-"zmoÅ­Äanaha kluÄnika."
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:232
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in %s."
-msgstr ""
-"Aplikacyja '%s' (%s) choÄa atrymać parol dla '<object prop='name'/>' z "
-"kluÄnika %s."
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:238 ../daemon/gkr-daemon-ops.c:248
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in the default keyring."
-msgstr ""
-"Aplikacyja '%s' choÄa atrymać parol dla '<object prop='name'/>' sa "
-"zmoÅ­Äanaha kluÄnika."
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:242 ../daemon/gkr-daemon-ops.c:252
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in %s."
-msgstr ""
-"Aplikacyja '%s' choÄa atrymać parol dla '<object prop='name'/>' z kluÄnika %"
-"s."
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:258
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in the default keyring."
-msgstr ""
-"Nieviadomaja aplikacyja choÄa atrymać parol dla '<object prop='name'/>' sa "
-"zmoÅ­Äanaha kluÄnika."
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:261
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in %s."
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
msgstr ""
-"Nieviadomaja aplikacyja choÄa atrymać parol dla '<object prop='name'/>' z "
-"kluÄnika %s."
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:267
-msgid "Allow access"
-msgstr "Dazvol dostup"
-
-#: ../daemon/gkr-daemon-ops.c:267
-msgid "Allow application access to keyring?"
-msgstr "Dazvolić dostup aplikacyi da kluÄnika?"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:309
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
-msgstr ""
-"Aplikacyja '%s' (%s) choÄa dastupicca da zmoÅ­Äanaha kluÄnika, ale jon "
-"zablakavany"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:314
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the keyring '%s', but it is locked"
-msgstr ""
-"Aplikacyja '%s' (%s) choÄa dastupicca da kluÄnika '%s', ale jon zablakavany"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:321 ../daemon/gkr-daemon-ops.c:333
-#, c-format
-msgid ""
-"The application '%s' wants access to the default keyring, but it is locked"
-msgstr ""
-"Aplikacyja '%s' choÄa dastupicca da zmoÅ­Äanaha kluÄnika, ale jon zablakavany"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:326 ../daemon/gkr-daemon-ops.c:339
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
-msgstr "Aplikacyja '%s' choÄa dastupicca da kluÄnika '%s', ale jon zablakavany"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:346
-#, c-format
-msgid ""
-"An unknown application wants access to the default keyring, but it is locked"
-msgstr ""
-"Nieviadomaja aplikacyja choÄa dastupicca da zmoÅ­Äanaha kluÄnika, ale jon "
-"zablakavany"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:351
-#, c-format
-msgid ""
-"An unknown application wants access to the keyring '%s', but it is locked"
-msgstr ""
-"Nieviadomaja aplikacyja choÄa dastupicca da kluÄnika '%s', ale jon "
-"zablakavany"
-#: ../daemon/gkr-daemon-ops.c:358
-msgid "Enter password for default keyring to unlock"
-msgstr "Uviadzi parol zmoÅ­Äanaha kluÄnika, kab razblakavać"
-
-#: ../daemon/gkr-daemon-ops.c:360
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "Uviadzi parol kluÄnika '%s', kab razblakavać"
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:364
-msgid "Unlock Keyring"
-msgstr "Razblakuj kluÄnika"
-
-#: ../daemon/gkr-daemon-ops.c:376
-msgid "Automatically unlock this keyring when I log in."
-msgstr "AÅ­tamatyÄna razblakuj hetaha kluÄnika pry Å­vachodzie."
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:413
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
-msgstr ""
-"Aplikacyja '%s' (%s) choÄa stvaryć novaha kluÄnika z nazvaj '%s'. Ty musiÅ¡ "
-"uvieÅ›ci parol dla hetaha kluÄnika."
+#: ../daemon/dbus/gkd-secret-change.c:86
+msgid "Change Keyring Password"
+msgstr "Źmiani parol dla kluÄnika"
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:418
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr ""
-"Aplikacyja '%s' (%s) choÄa stvaryć novaha zmoÅ­Äanaha kluÄnika. Ty musiÅ¡ "
-"uvieÅ›ci parol dla hetaha kluÄnika."
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "Abiary novy parol dla kluÄnika '%s'. "
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:425 ../daemon/gkr-daemon-ops.c:437
-#, c-format
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
msgstr ""
-"Aplikacyja '%s' choÄa stvaryć novaha kluÄnika z nazvaj '%s'. Ty musiÅ¡ "
+"Nieviadomaja aplikacyja choÄa źmianić parol dla kluÄnika '%s'. Ty musiÅ¡ "
"uvieÅ›ci parol dla hetaha kluÄnika."
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:430 ../daemon/gkr-daemon-ops.c:442
-#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr ""
-"Aplikacyja '%s' choÄa stvaryć novaha zmoÅ­Äanaha kluÄnika. Ty musiÅ¡ uvieÅ›ci "
-"parol dla hetaha kluÄnika."
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:449
-#, c-format
-msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
-msgstr ""
-"Nieviadomaja aplikacyja choÄa stvaryć novaha kluÄnika z nazvaj '%s'. Ty "
-"musiÅ¡ uvieÅ›ci parol dla hetaha kluÄnika."
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:454
-#, c-format
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr ""
-"Nieviadomaja aplikacyja choÄa stvaryć novaha zmoÅ­Äanaha kluÄnika. Ty musiÅ¡ "
-"uvieÅ›ci parol dla hetaha kluÄnika."
+#: ../daemon/dbus/gkd-secret-change.c:111
+#, fuzzy
+msgid "The original password was incorrect"
+msgstr "Parol ci PIN niapravilnyja"
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:460
+#: ../daemon/dbus/gkd-secret-create.c:83
msgid "New Keyring Password"
msgstr "Parol dla novaha kluÄnika"
-#: ../daemon/gkr-daemon-ops.c:461
+#: ../daemon/dbus/gkd-secret-create.c:84
msgid "Choose password for new keyring"
msgstr "Abiary parol dla novaha kluÄnika"
-#: ../daemon/gkr-daemon-ops.c:508
-#, c-format
+#: ../daemon/dbus/gkd-secret-create.c:86
+#, fuzzy, c-format
msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
-"Aplikacyja '%s' (%s) choÄa źmianić parol dla kluÄnika '%s'. Ty musiÅ¡ uvieÅ›ci "
-"parol dla hetaha kluÄnika."
-
-#: ../daemon/gkr-daemon-ops.c:512
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
-msgstr ""
-"Aplikacyja '%s' (%s) choÄa źmianić parol dla zmoÅ­Äanaha kluÄnika. Ty musiÅ¡ "
-"uvieÅ›ci parol dla hetaha kluÄnika."
-
-#: ../daemon/gkr-daemon-ops.c:518 ../daemon/gkr-daemon-ops.c:528
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
-msgstr ""
-"Aplikacyja '%s' choÄa źmianić parol dla kluÄnika '%s'. Ty musiÅ¡ uvieÅ›ci "
-"parol dla hetaha kluÄnika."
-
-#: ../daemon/gkr-daemon-ops.c:522 ../daemon/gkr-daemon-ops.c:532
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-"Aplikacyja '%s' choÄa źmianić parol dla zmoÅ­Äanaha kluÄnika. Ty musiÅ¡ "
-"uvieÅ›ci parol dla hetaha kluÄnika."
-
-#: ../daemon/gkr-daemon-ops.c:538
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-"Nieviadomaja aplikacyja choÄa źmianić parol dla kluÄnika '%s'. Ty musiÅ¡ "
-"uvieÅ›ci parol dla hetaha kluÄnika."
-
-#: ../daemon/gkr-daemon-ops.c:542
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-"Nieviadomaja aplikacyja choÄa źmianić parol dla zmoÅ­Äanaha kluÄnika. Ty "
+"Nieviadomaja aplikacyja choÄa stvaryć novaha kluÄnika z nazvaj '%s'. Ty "
"musiÅ¡ uvieÅ›ci parol dla hetaha kluÄnika."
-#: ../daemon/gkr-daemon-ops.c:552
-#, c-format
-msgid "Choose a new password for the '%s' keyring. "
-msgstr "Abiary novy parol dla kluÄnika '%s'. "
-
-#: ../daemon/gkr-daemon-ops.c:554
-#, c-format
-msgid "Choose a new password for the default keyring. "
-msgstr "Abiary novy parol dla zmoÅ­Äanaha kluÄnika. "
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:558
-msgid "Change Keyring Password"
-msgstr "Źmiani parol dla kluÄnika"
-
-#: ../daemon/gkr-daemon-ops.c:631
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-msgstr ""
-"Aplikacyja '%s' (%s) choÄa zachavać parol, ale zmoÅ­Äanaha kluÄnika niama. "
-"Kab stvaryć jaho, treba ŭvieści parol dla jaho."
-
-#: ../daemon/gkr-daemon-ops.c:635 ../daemon/gkr-daemon-ops.c:639
-#, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-msgstr ""
-"Aplikacyja '%s' choÄa zachavać parol, ale zmoÅ­Äanaha kluÄnika niama. Kab "
-"stvaryć jaho, treba ŭvieści parol dla jaho."
-
-#: ../daemon/gkr-daemon-ops.c:643
-#, c-format
-msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-msgstr ""
-"Nieviadomaja aplikacyja choÄa zachavać parol, ale zmoÅ­Äanaha kluÄnika niama. "
-"Kab stvaryć jaho, treba ŭvieści parol dla jaho."
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:648
-msgid "Create Default Keyring"
-msgstr "Stvary zmoÅ­Äanaha kluÄnika"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+#, fuzzy
+msgid "Certificate and Key Storage"
+msgstr "Adblakuj sertyfikat ci schoviÅ¡Äa kluÄoÅ­"
-#: ../daemon/gkr-daemon-ops.c:648
-msgid "Choose password for default keyring"
-msgstr "Abiary parol dla zmoÅ­Äanaha kluÄnika"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+#, fuzzy
+msgid "GNOME Keyring: PKCS#11 Component"
+msgstr "KluÄnik GNOME"
-#: ../daemon/data/gnome-keyring.schemas.in.h:1
-msgid ""
-"This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-"only takes effect as gnome-keyring-daemon starts, (ie: when the user logs "
-"in). This setting may be overridden when certain command line arguments are "
-"passed to the daemon."
-msgstr ""
-"Hetaja opcyja Å­kluÄaje kampanent PKCS#11 dla demana gnome-keyring. Opcyja "
-"ŭździejniÄaje tolki pry Å­ruchamleÅ„ni demana gnome-keyring-daemon, h.zn. kali "
-"karystalnik uvachodzić u systemu. Hetaja nałada moža być źmieniena z "
-"dapamohaj peÅ­nych arhumentaÅ­ zahadnaha radka, pieradadzienych demanu."
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: Secret Service"
+msgstr "KluÄnik GNOME"
-#: ../daemon/data/gnome-keyring.schemas.in.h:2
-msgid ""
-"This option enables the SSH agent in the gnome-keyring daemon. It only takes "
-"effect as gnome-keyring-daemon starts, (ie: when the user logs in). This "
-"setting may be overridden when certain command line arguments are passed to "
-"the daemon."
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
msgstr ""
-"Hetaja opcyja Å­kluÄaje agenta SSH dla demana gnome-keyring. Opcyja "
-"ŭździejniÄaje tolki pry Å­ruchamleÅ„ni demana gnome-keyring-daemon, h.zn. kali "
-"karystalnik uvachodzić u systemu. Hetaja nałada moža być źmieniena z "
-"dapamohaj peÅ­nych arhumentaÅ­ zahadnaha radka, pieradadzienych demanu."
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:3
-msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-msgstr "Ci Å­kluÄać kampanent PKCS#11 dla kluÄnika."
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:4
-msgid "Whether the gnome-keyring SSH agent is enabled."
-msgstr "Ci Å­kluÄać agenta SSH dla kluÄnika."
-#: ../daemon/gnome-keyring-daemon.desktop.in.in.h:1
-msgid "GNOME Keyring Daemon"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: SSH Agent"
msgstr "KluÄnik GNOME"
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:98
-msgid "Unlock Login Keyring"
-msgstr "Razblakuj uvachodnaha kluÄnika"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:98
-msgid "Enter login password to unlock keyring"
-msgstr "Uviadzi Å­vachodny parol, kab adblakavać kluÄnika"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:100
-msgid ""
-"Your login keyring was not automatically unlocked when you logged into this "
-"computer."
-msgstr "Tvoj uvachodny kluÄnik nia byÅ­ aÅ­tamatyÄna adÄynieny, kali ty Å­vajÅ¡oÅ­."
-
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:124
-msgid "Create Login Keyring"
-msgstr "Stvary Å­vachodnaha kluÄnika"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:124
-msgid "Enter your login password"
-msgstr "Uviadzi svoj parol dziela Å­vachodu"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:126
-msgid ""
-"Your login keyring was not automatically created when you logged into this "
-"computer. It will now be created."
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
msgstr ""
-"Tvoj uvachodny kluÄnik nia byÅ­ aÅ­tamatyÄna stvorany, kali ty Å­vajÅ¡oÅ­. Zaraz "
-"jon budzie stvorany."
-
-#: ../daemon/keyrings/gkr-keyring.c:586
-#, c-format
-msgid "Unlock password for %s keyring"
-msgstr "Parol, kab adÄynić kluÄnika %s"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:99
-msgid "Unlock private key"
-msgstr "Adblakuj pryvatny kluÄ"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:101
-msgid "Unlock certificate"
-msgstr "Adblakuj sertyfikat"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:103
-msgid "Unlock public key"
-msgstr "Adblakuj publiÄny kluÄ"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:105
-msgid "Unlock"
-msgstr "Razblakuj"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:114 ../gcr/gcr-importer.c:360
-msgid "Enter password to unlock the private key"
-msgstr "Uviadzi parol, kab adblakavać pryvatny kluÄ"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:116 ../gcr/gcr-importer.c:362
-msgid "Enter password to unlock the certificate"
-msgstr "Uviadzi parol, kab adblakavać sertyfikat"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: GPG Agent"
+msgstr "KluÄnik GNOME"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:118
-msgid "Enter password to unlock the public key"
-msgstr "Uviadzi parol, kab adblakavać publiÄny kluÄ"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+#, fuzzy
+msgid "GPG Password Agent"
+msgstr "LiÄylnik mocy novaha parolu"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:120 ../gcr/gcr-importer.c:364
-msgid "Enter password to unlock"
-msgstr "Uviadzi parol, kab adblakavać"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+#, fuzzy
+msgid "Unknown"
+msgstr "Nieviadomaja pamyłka"
-#. TRANSLATORS: The private key is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:130
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid "An application wants access to the private key '%s', but it is locked"
+msgid "PGP Key: %s"
msgstr ""
-"Aplikacyja choÄa dastupicca da pryvatnaha kluÄa \"%s\", ale jon zablakavany"
-#. TRANSLATORS: The certificate is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:133
-#, c-format
-msgid "An application wants access to the certificate '%s', but it is locked"
-msgstr "Aplikacyja choÄa dastupicca da sertyfikatu \"%s\", ale jon zablakavany"
-
-#. TRANSLATORS: The public key is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:136
-#, c-format
-msgid "An application wants access to the public key '%s', but it is locked"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-"Aplikacyja choÄa dastupicca da publiÄnaha kluÄa \"%s\", ale jon zablakavany"
-
-#. TRANSLATORS: The object '%s' is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:139
-#, c-format
-msgid "An application wants access to '%s', but it is locked"
-msgstr "Aplikacyja choÄa dastupicca da \"%s\", ale jon zablakavany"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:148
-msgid "Automatically unlock this private key when I log in."
-msgstr "AÅ­tamatyÄna razblakuj hety pryvatny kluÄ pry Å­vachodzie."
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:150
-msgid "Automatically unlock this certificate when I log in."
-msgstr "AÅ­tamatyÄna razblakuj hety sertyfikat pry Å­vachodzie."
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:152
-msgid "Automatically unlock this public key when I log in."
-msgstr "AÅ­tamatyÄna razblakuj hety publiÄny kluÄ pry Å­vachodzie."
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:154
-msgid "Automatically unlock this when I log in"
-msgstr "AÅ­tamatyÄna adblakuj heta pry Å­vachodzie."
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:371
-msgid "Unlock certificate/key storage"
-msgstr "Adblakuj sertyfikat ci schoviÅ¡Äa kluÄoÅ­"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:372
-msgid "Enter password to unlock the certificate/key storage"
-msgstr "UpiÅ¡y parol, kab adblakavać sertyfikat ci schoviÅ¡Äa kluÄoÅ­"
-
-#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:375
-#, c-format
-msgid ""
-"An application wants access to the certificate/key storage '%s', but it is "
-"locked"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
msgstr ""
-"Aplikacyja choÄa dastupicca da sertyfikatu ci schoviÅ¡Äa kluÄoÅ­ \"%s\", ale hety abjekt zablakavany"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:381
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:532
-msgid "Automatically unlock secure storage when I log in."
-msgstr "AÅ­tamatyÄna razblakuj biaÅ›pieÄnaje schoviÅ¡Äa pry Å­vachodzie."
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:524
-msgid "New Password Required"
-msgstr "Patrebny novy parol"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:525
-msgid "New password required for secure storage"
-msgstr "Dla biaÅ›pieÄnaha schoviÅ¡Äa patrebny novy parol"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:527
-#, c-format
-msgid ""
-"In order to prepare '%s' for storage of certificates or keys, a password is "
-"required"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-"Kab padrychtavać \"%s\" dla zachoÅ­vaÅ„nia sertyfikataÅ­ ci kluÄoÅ­, patrebny parol"
-#: ../daemon/ui/gkr-ask-tool.c:230
-msgid ""
-"<b><big>Could not grab your mouse.</big></b>\n"
-"\n"
-"A malicious client may be eavesdropping on your session or you may have just "
-"clicked a menu or some application just decided to get focus.\n"
-"\n"
-"Try again."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
msgstr ""
-"<b><big>Nie ŭdałosia ŭchapić tvaju myš.</big></b>\n"
-"\n"
-"MahÄyma, niejkaja zÅ‚aÄynnaja prahrama adsoÄvaje tvaju sesiju, albo ty tolki Å¡to "
-"zasiarodziŭ fokus na jakim-niebudź menu ci aplikacyi.\n"
-"\n"
-"PaÅ­tary sprobu jaÅ¡Äe raz."
-
-#: ../daemon/ui/gkr-ask-tool.c:239
-msgid ""
-"<b><big>Could not grab your keyboard.</big></b>\n"
-"\n"
-"A malicious client may be eavesdropping on your session or you may have just "
-"clicked a menu or some application just decided to get focus.\n"
-"\n"
-"Try again."
-msgstr ""
-"<b><big>Nie ŭdałosia ŭchapić tvaju klavijaturu.</big></b>\n"
-"\n"
-"MahÄyma, niejkaja zÅ‚aÄynnaja prahrama adsoÄvaje tvaju sesiju, albo ty tolki Å¡to "
-"zasiarodziŭ fokus na jakim-niebudź menu ci aplikacyi.\n"
-"\n"
-"PaÅ­tary sprobu jaÅ¡Äe raz."
-
-#: ../daemon/ui/gkr-ask-tool.c:276
-msgid "Store passwords unencrypted?"
-msgstr "Zachoŭvać paroli niezašyfravanymi?"
-#: ../daemon/ui/gkr-ask-tool.c:277
-msgid ""
-"By choosing to use a blank password, your stored passwords will not be "
-"safely encrypted. They will be accessible by anyone with access to your "
-"files."
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
msgstr ""
-"Kali ty abiareÅ¡ pusty parol, tady Å­sie zachoÅ­vanyja kluÄnikam paroli nia "
-"buduć Å¡yfravacca. Ich zmoža praÄytać lubaja asoba, jakaja maje dostup da "
-"tvaich fajłaŭ."
-
-#: ../daemon/ui/gkr-ask-tool.c:284
-msgid "Use Unsafe Storage"
-msgstr "Užyj niebiaÅ›pieÄnaje schoviÅ¡Äa"
-
-#: ../daemon/ui/gkr-ask-tool.c:512
-msgid "_Location:"
-msgstr "_Pałažeńnie:"
-
-#: ../daemon/ui/gkr-ask-tool.c:525
-msgid "_Old password:"
-msgstr "_Stary parol:"
-
-#: ../daemon/ui/gkr-ask-tool.c:545
-msgid "_Password:"
-msgstr "_Parol:"
-
-#: ../daemon/ui/gkr-ask-tool.c:567
-msgid "_Confirm password:"
-msgstr "_Paćvierdź parol:"
-
-#: ../daemon/ui/gkr-ask-tool.c:587
-msgid "New password strength"
-msgstr "LiÄylnik mocy novaha parolu"
-
-#: ../daemon/ui/gkr-ask-tool.c:645
-msgid "Passwords do not match."
-msgstr "Paroli adroźnivajucca."
-
-#: ../daemon/ui/gkr-ask-tool.c:661
-msgid "Password cannot be blank"
-msgstr "Parol nia moža być pustym"
-
-#: ../daemon/ui/gkr-ask-tool.c:712
-msgid "_Deny"
-msgstr "_AdmoÅ­"
-
-#: ../daemon/ui/gkr-ask-tool.c:724
-msgid "C_reate"
-msgstr "_Stvary"
-
-#: ../daemon/ui/gkr-ask-tool.c:728
-msgid "C_hange"
-msgstr "_Źmiani"
-
-#: ../daemon/ui/gkr-ask-tool.c:732
-msgid "Allow _Once"
-msgstr "Dazvol _raz"
-
-#: ../daemon/ui/gkr-ask-tool.c:736
-msgid "_Always Allow"
-msgstr "_ZaÅ­siody dazvalaj"
#: ../egg/egg-oid.c:41
msgid "Domain Component"
@@ -647,8 +143,8 @@ msgid "User ID"
msgstr "ID karystalnika"
#: ../egg/egg-oid.c:46
-msgid "Email"
-msgstr "Email"
+msgid "Email Address"
+msgstr ""
#: ../egg/egg-oid.c:54
msgid "Date of Birth"
@@ -678,8 +174,7 @@ msgstr "Ahulnaja nazva"
msgid "Surname"
msgstr "ProźviÅ¡Äa"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-basics-widget.glade.h:18
-#: ../gcr/gcr-certificate-details-widget.c:330
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Seryjny numar"
@@ -739,631 +234,300 @@ msgstr "PseÅ­danim"
msgid "RSA"
msgstr "RSA"
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "MD2 z RSA"
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "MD5 z RSA"
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "SHA1 z RSA"
-#: ../egg/egg-oid.c:107
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "SHA1 z DSA"
-#: ../gcr/gcr-certificate-basics-widget.c:59
-msgid "<i>Not Part of Certificate</i>"
-msgstr "<i>Heta nia Äastka sertyfikatu</i>"
-
-#: ../gcr/gcr-certificate-basics-widget.c:80
-msgid "<i>unknown</i>"
-msgstr "<i>nieviadoma</i>"
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:1
-msgid "<Not Part of Certificate>"
-msgstr "<Heta nia Äastka sertyfikatu>"
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:2
-msgid "<b>Fingerprints</b>"
-msgstr "<b>Adbitki palcaÅ­</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:3
-msgid "<b>Issued By</b>"
-msgstr "<b>PadpisaÅ­</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:4
-msgid "<b>Issued To</b>"
-msgstr "<b>Ułaśnik</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:5
-msgid "<b>This certificate has been verified for the following uses:</b>"
-msgstr "<b>Hety sertyfikat spraŭdžany dziela nastupnych metaŭ:</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:6
-msgid "<b>Validity</b>"
-msgstr "<b>Praŭdzivaść</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:7
-msgid "Common Name (CN)"
-msgstr "Ahulnaja nazva (CN)"
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:8
-msgid "Email Recipient Certificate"
-msgstr "Sertyfikat adrasata e-maiłu"
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:9
-msgid "Email Signer Certificate"
-msgstr "Sertyfikat padpiÅ¡Äyka e-maiÅ‚u"
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:10
-msgid "Expires On"
-msgstr "Dziejny da"
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:11
-msgid "Issued On"
-msgstr "Padpisany"
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:12
-msgid "MD5 Fingerprint"
-msgstr "Adbitak MD5"
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:13
-msgid "Organization (O)"
-msgstr "Arhanizacyja (O)"
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:14
-msgid "Organizational Unit (OU)"
-msgstr "Departament (OU)"
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:15
-msgid "SHA1 Fingerprint"
-msgstr "Adbitak SHA1"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+#, fuzzy
+msgid "Server Authentication"
+msgstr "Sertyfikat servera SSL"
-#: ../gcr/gcr-certificate-basics-widget.glade.h:16
-msgid "SSL Client Certificate"
+#: ../egg/egg-oid.c:108
+#, fuzzy
+msgid "Client Authentication"
msgstr "Sertyfikat klijenta SSL"
-#: ../gcr/gcr-certificate-basics-widget.glade.h:17
-msgid "SSL Server Certificate"
-msgstr "Sertyfikat servera SSL"
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:207
-msgid "Extension"
-msgstr "Pašyreńnie"
-
-#: ../gcr/gcr-certificate-details-widget.c:212
-msgid "Identifier"
-msgstr "Identyfikatar"
-
-#: ../gcr/gcr-certificate-details-widget.c:222
-msgid "Value"
-msgstr "Vartaść"
-
-#: ../gcr/gcr-certificate-details-widget.c:232
-msgid "Yes"
-msgstr "Tak"
-
-#: ../gcr/gcr-certificate-details-widget.c:234
-msgid "No"
-msgstr "Nie"
-
-#: ../gcr/gcr-certificate-details-widget.c:237
-msgid "Critical"
-msgstr "KrytyÄny"
-
-#. The subject
-#: ../gcr/gcr-certificate-details-widget.c:311
-msgid "Subject Name"
-msgstr "Nazva temy"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-details-widget.c:315
-msgid "Issuer Name"
-msgstr "PadpiÅ¡Äyk"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-details-widget.c:319
-msgid "Issued Certificate"
-msgstr "Padpisany sertyfikat"
-
-#: ../gcr/gcr-certificate-details-widget.c:324
-msgid "Version"
-msgstr "Versija"
-
-#: ../gcr/gcr-certificate-details-widget.c:337
-msgid "Not Valid Before"
-msgstr "Nia dziejniÄaje pierad"
-
-#: ../gcr/gcr-certificate-details-widget.c:342
-msgid "Not Valid After"
-msgstr "Nia dziejniÄaje paÅ›la"
-
-#. Signature
-#: ../gcr/gcr-certificate-details-widget.c:347
-#: ../gcr/gcr-certificate-details-widget.c:363
-msgid "Signature"
-msgstr "Podpis"
-
-#: ../gcr/gcr-certificate-details-widget.c:351
-msgid "Signature Algorithm"
-msgstr "Alharytm padpisańnia"
-
-#: ../gcr/gcr-certificate-details-widget.c:356
-msgid "Signature Parameters"
-msgstr "Parametry podpisu"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-details-widget.c:367
-msgid "Public Key Info"
-msgstr "Źviestki pra publiÄny kluÄ"
-
-#: ../gcr/gcr-certificate-details-widget.c:371
-msgid "Key Algorithm"
-msgstr "Alharytm kluÄa"
-
-#: ../gcr/gcr-certificate-details-widget.c:376
-msgid "Key Parameters"
-msgstr "Parametry kluÄa"
-
-#: ../gcr/gcr-certificate-details-widget.c:383
-msgid "Key Size"
-msgstr "Pamier kluÄa"
-
-#: ../gcr/gcr-certificate-details-widget.c:390 ../gcr/gcr-parser.c:202
-msgid "Public Key"
-msgstr "PubliÄny kluÄ"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-details-widget.c:394
-msgid "Fingerprints"
-msgstr "Adbitki palcaÅ­"
-
-#: ../gcr/gcr-import-dialog.glade.h:1
-msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-msgstr "<span size='large' weight='bold'>Zimpartuj sertyfikaty j kluÄy</span>"
-
-#: ../gcr/gcr-import-dialog.glade.h:2
-msgid "Import Into:"
-msgstr "Zimpartuj u:"
-
-#: ../gcr/gcr-import-dialog.glade.h:3
-msgid "Password:"
-msgstr "Parol:"
-
-#: ../gcr/gcr-importer.c:162 ../gcr/gcr-parser.c:1573 ../gp11/gp11-misc.c:114
-msgid "The operation was cancelled"
-msgstr "Aperacyja anulavanaja"
-
-#: ../gcr/gcr-importer.c:254
-#, c-format
-msgid "No location available to import to"
-msgstr "Niama miesca impartavańnia"
-
-#: ../gcr/gcr-importer.c:328
-msgid "Import Certificates/Keys"
-msgstr "Zimpartuj sertyfikaty ci kluÄy"
-
-#: ../gcr/gcr-importer.c:335
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Vybiery miesca, dzie treba zachavać zimpartavanyja sertyfikaty j kluÄy."
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:373
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Kab zimpartavać pryvatny kluÄ, spaÄatku treba jaho adblakavać"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:376
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Kab zimpartavać sertyfikat, spaÄatku treba jaho adblakavać"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:379
-msgid "In order to import the data, it must be unlocked"
-msgstr "Kab zimpartavać hetyja źviestki, spaÄatku treba ich adblakavać"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:384
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Kab zimpartavać pryvatny kluÄ \"%s\", spaÄatku treba jaho adblakavać"
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:387
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Kab zimpartavać sertyfikat \"%s\", spaÄatku treba jaho adblakavać"
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:390
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Kab zimpartavać abjekt \"%s\", spaÄatku treba jaho adblakavać"
-
-#: ../gcr/gcr-parser.c:196
-msgid "Private Key"
-msgstr "Pryvatny kluÄ"
-
-#: ../gcr/gcr-parser.c:199
-msgid "Certificate"
-msgstr "Sertyfikat"
-
-#: ../gcr/gcr-parser.c:1576
-msgid "Unrecognized or unsupported data."
-msgstr "Nieviadomyja albo nieabsłuhoŭvanyja źviestki."
-
-#: ../gcr/gcr-parser.c:1579
-msgid "Could not parse invalid or corrupted data."
-msgstr "Nie ŭdałosia razabrać nieviadomyja albo paškodžanyja źviestki."
-
-#: ../gcr/gcr-parser.c:1582
-msgid "The data is locked"
-msgstr "Źviestki zablakavanyja"
-
-#: ../gp11/gp11-misc.c:117
-msgid "Insufficient memory available"
-msgstr "Nie staje volnaj pamiaci"
-
-#: ../gp11/gp11-misc.c:119
-msgid "The specified slot ID is not valid"
-msgstr "Padadzieny ID slota niapravilny"
-
-#: ../gp11/gp11-misc.c:121
-msgid "Internal error"
-msgstr "Unutranaja pamyłka"
-
-#: ../gp11/gp11-misc.c:123
-msgid "The operation failed"
-msgstr "Nie ŭdałosia vykanać aperacyju"
-
-#: ../gp11/gp11-misc.c:125
-msgid "Invalid arguments"
-msgstr "Niapravilnyja arhumenty"
-
-#: ../gp11/gp11-misc.c:127
-msgid "The module cannot create needed threads"
-msgstr "Modul nia zmoh stvaryć patrebnyja płyni vykanańnia"
-
-#: ../gp11/gp11-misc.c:129
-msgid "The module cannot lock data properly"
-msgstr "Modul nia zmoh naležnym Äynam zablakavać źviestki"
-
-#: ../gp11/gp11-misc.c:131
-msgid "The field is read-only"
-msgstr "Pole dastupnaje tolki dla ÄytaÅ„nia"
-
-#: ../gp11/gp11-misc.c:133
-msgid "The field is sensitive and cannot be revealed"
-msgstr "Pole vielmi važnaje, i jaho nielha raskryvać"
-
-#: ../gp11/gp11-misc.c:135
-msgid "The field is invalid or does not exist"
-msgstr "Pole niapravilnaje, albo jaho nie isnuje"
-
-#: ../gp11/gp11-misc.c:137
-msgid "Invalid value for field"
-msgstr "Niapravilnaja vartaść pola"
-
-#: ../gp11/gp11-misc.c:139
-msgid "The data is not valid or unrecognized"
-msgstr "Niapravilnyja źviestki, albo ich niemahÄyma razabrać"
-
-#: ../gp11/gp11-misc.c:141
-msgid "The data is too long"
-msgstr "Nadta vialikija źviestki"
-
-#: ../gp11/gp11-misc.c:143
-msgid "An error occurred on the device"
-msgstr "Na pryładzie ŭźnikła pamyłka"
-
-#: ../gp11/gp11-misc.c:145
-msgid "Insufficient memory available on device"
-msgstr "Na pryładzie nie staje volnaj pamiaci"
-
-#: ../gp11/gp11-misc.c:147
-msgid "The device was removed or unplugged"
-msgstr "PryÅ‚ada adÅ‚uÄanaja"
-
-#: ../gp11/gp11-misc.c:149
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "Niapravilnyja zaÅ¡yfravanyja źviestki, albo ich niemhÄyma razabrać"
-
-#: ../gp11/gp11-misc.c:151
-msgid "The encrypted data is too long"
-msgstr "Nadta vialikija zašyfravanyja źviestki"
-
-#: ../gp11/gp11-misc.c:153
-msgid "This operation is not supported"
-msgstr "Hetaja aperacyja nie padtrymlivajecca"
-
-#: ../gp11/gp11-misc.c:155
-msgid "The key is missing or invalid"
-msgstr "KluÄa niama ci jon niapravilny"
-
-#: ../gp11/gp11-misc.c:157
-msgid "The key is the wrong size"
-msgstr "KluÄ niapravilnych pamieraÅ­"
-
-#: ../gp11/gp11-misc.c:159
-msgid "The key is of the wrong type"
-msgstr "KluÄ niapravilnaha typu"
-
-#: ../gp11/gp11-misc.c:161
-msgid "No key is needed"
-msgstr "KluÄ niepatrebny"
-
-#: ../gp11/gp11-misc.c:163
-msgid "The key is different than before"
-msgstr "KluÄ nie taki, jaki byÅ­ raniej"
-
-#: ../gp11/gp11-misc.c:165
-msgid "A key is needed"
-msgstr "KluÄ patrebny"
-
-#: ../gp11/gp11-misc.c:167
-msgid "Cannot include the key in digest"
-msgstr "NiemahÄyma Å­Å‚uÄyć kluÄ u dajdžest"
-
-#: ../gp11/gp11-misc.c:169
-msgid "This operation cannot be done with this key"
-msgstr "Hetuju aperacyju niemahÄyma vykanać hetym kluÄom"
-
-#: ../gp11/gp11-misc.c:171
-msgid "The key cannot be wrapped"
-msgstr "NiemahÄyma abharnuć kluÄ"
-
-#: ../gp11/gp11-misc.c:173
-msgid "Cannot export this key"
-msgstr "NiemahÄyma zekspartavać hety kluÄ"
-
-#: ../gp11/gp11-misc.c:175
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "Mechanizm Å¡yfravaÅ„nia niapravilny albo nia vyznaÄany"
-
-#: ../gp11/gp11-misc.c:177
-msgid "The crypto mechanism has an invalid argument"
-msgstr "Mechanizm šyfravańnia maje niapravilny arhument"
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr ""
-#: ../gp11/gp11-misc.c:179
-msgid "The object is missing or invalid"
-msgstr "Abjekta niama albo jon niapravilny"
+#: ../egg/egg-spawn.c:320
+#, c-format
+msgid "Unexpected error in waitpid() (%s)"
+msgstr ""
-#: ../gp11/gp11-misc.c:181
-msgid "Another operation is already taking place"
-msgstr "Užo vykonvajecca inšaja aperacyja"
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr "Sertyfikat biaz nazvy"
-#: ../gp11/gp11-misc.c:183
-msgid "No operation is taking place"
-msgstr "Nijakich aperacyj nie vykonvajecca"
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
+msgstr "Nie Å­daÅ‚osia razabrać publiÄny kluÄ SSH"
-#: ../gp11/gp11-misc.c:185
-msgid "The password or PIN is incorrect"
-msgstr "Parol ci PIN niapravilnyja"
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, fuzzy, c-format
+msgid "Unlock password for: %s"
+msgstr "Parol, kab adÄynić kluÄnika %s"
-#: ../gp11/gp11-misc.c:187
-msgid "The password or PIN is invalid"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+#, fuzzy
+msgid "The unlock password was incorrect"
msgstr "Parol ci PIN niapravilnyja"
-#: ../gp11/gp11-misc.c:189
-msgid "The password or PIN is of an invalid length"
-msgstr "Parol ci PIN niapravilnaj daŭžyni"
-
-#: ../gp11/gp11-misc.c:191
-msgid "The password or PIN has expired"
-msgstr "Parol ci PIN sastareli"
-
-#: ../gp11/gp11-misc.c:193
-msgid "The password or PIN is locked"
-msgstr "Parol ci PIN zablakavanyja"
-
-#: ../gp11/gp11-misc.c:195
-msgid "The session is closed"
-msgstr "Sesija skonÄanaja"
-
-#: ../gp11/gp11-misc.c:197
-msgid "Too many sessions are active"
-msgstr "Nadta Å¡mat aktyÅ­nych sesijaÅ­"
-
-#: ../gp11/gp11-misc.c:199
-msgid "The session is invalid"
-msgstr "Sesija niapravilnaja"
-
-#: ../gp11/gp11-misc.c:201
-msgid "The session is read-only"
-msgstr "Sesija maje dostup tolki dla ÄytaÅ„nia"
-
-#: ../gp11/gp11-misc.c:203
-msgid "An open session exists"
-msgstr "Jość adÄynienaja sesija"
-
-#: ../gp11/gp11-misc.c:205
-msgid "A read-only session exists"
-msgstr "Jość sesija tolki dla ÄytaÅ„nia"
-
-#: ../gp11/gp11-misc.c:207
-msgid "An administrator session exists"
-msgstr "Jość sesija administratara"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+msgid "Unlock Login Keyring"
+msgstr "Razblakuj uvachodnaha kluÄnika"
-#: ../gp11/gp11-misc.c:209
-msgid "The signature is bad or corrupted"
-msgstr "Podpis kiepski ci paškodžany"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
+msgstr "Uviadzi Å­vachodny parol, kab adblakavać kluÄnika"
-#: ../gp11/gp11-misc.c:211
-msgid "The signature is unrecognized or corrupted"
-msgstr "Podpis nia vyznaÄany ci paÅ¡kodžany"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
+msgstr ""
-#: ../gp11/gp11-misc.c:213
-msgid "Certain required fields are missing"
-msgstr "Nie staje niekalkich patrebnych paloÅ­"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
+#, fuzzy
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr "Tvoj uvachodny kluÄnik nia byÅ­ aÅ­tamatyÄna adÄynieny, kali ty Å­vajÅ¡oÅ­."
-#: ../gp11/gp11-misc.c:215
-msgid "Certain fields have invalid values"
-msgstr "Niekatoryja pali majuć niapravilnyja vartaści"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "Razblakuj kluÄnika"
-#: ../gp11/gp11-misc.c:217
-msgid "The device is not present or unplugged"
-msgstr "PryÅ‚ady niama albo jana adÅ‚uÄanaja"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
+#, c-format
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "Uviadzi parol kluÄnika '%s', kab razblakavać"
-#: ../gp11/gp11-misc.c:219
-msgid "The device is invalid or unrecognizable"
-msgstr "PryÅ‚ada niapravilna ci nia vyznaÄanaja"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, fuzzy, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr ""
+"Nieviadomaja aplikacyja choÄa dastupicca da kluÄnika '%s', ale jon "
+"zablakavany"
-#: ../gp11/gp11-misc.c:221
-msgid "The device is write protected"
-msgstr "Pryłada abaronienaja ad zapisu"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
+msgstr "Adblakuj pryvatny kluÄ"
-#: ../gp11/gp11-misc.c:223
-msgid "Cannot import because the key is invalid"
-msgstr "NiemahÄyma zimpartavać kluÄ, bo toj niapravilny"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+msgid "Unlock certificate"
+msgstr "Adblakuj sertyfikat"
-#: ../gp11/gp11-misc.c:225
-msgid "Cannot import because the key is of the wrong size"
-msgstr "NiemahÄyma zimpartavać kluÄ, bo toj niapravilnych pamieraÅ­"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
+msgstr "Adblakuj publiÄny kluÄ"
-#: ../gp11/gp11-misc.c:227
-msgid "Cannot import because the key is of the wrong type"
-msgstr "NiemahÄyma zimpartavać kluÄ, bo toj niapravilnaha typu"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Razblakuj"
-#: ../gp11/gp11-misc.c:229
-msgid "You are already logged in"
-msgstr "Ty ŭžo ŭvajšoŭ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Uviadzi parol, kab adblakavać pryvatny kluÄ"
-#: ../gp11/gp11-misc.c:231
-msgid "No user has logged in"
-msgstr "Nichto nie ŭvajšoŭ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Uviadzi parol, kab adblakavać sertyfikat"
-#: ../gp11/gp11-misc.c:233
-msgid "The user's password or PIN is not set"
-msgstr "Parol ci PIN karystalnika nia vyznaÄanyja"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+msgid "Enter password to unlock the public key"
+msgstr "Uviadzi parol, kab adblakavać publiÄny kluÄ"
-#: ../gp11/gp11-misc.c:235
-msgid "The user is of an invalid type"
-msgstr "Karystalnik niapravilnaha typu"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Uviadzi parol, kab adblakavać"
-#: ../gp11/gp11-misc.c:237
-msgid "Another user is already logged in"
-msgstr "Inšy karystalnik užo ŭvajšoŭ"
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
+#, c-format
+msgid "An application wants access to the private key '%s', but it is locked"
+msgstr ""
+"Aplikacyja choÄa dastupicca da pryvatnaha kluÄa \"%s\", ale jon zablakavany"
-#: ../gp11/gp11-misc.c:239
-msgid "Too many users of different types logged in"
-msgstr "Uvajšli nadta šmat karystalnikaŭ roznych typaŭ"
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
+#, c-format
+msgid "An application wants access to the certificate '%s', but it is locked"
+msgstr "Aplikacyja choÄa dastupicca da sertyfikatu \"%s\", ale jon zablakavany"
-#: ../gp11/gp11-misc.c:241
-msgid "Cannot import an invalid key"
-msgstr "NiemahÄyma zimpartavać niapravilny kluÄ"
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
+#, c-format
+msgid "An application wants access to the public key '%s', but it is locked"
+msgstr ""
+"Aplikacyja choÄa dastupicca da publiÄnaha kluÄa \"%s\", ale jon zablakavany"
-#: ../gp11/gp11-misc.c:243
-msgid "Cannot import a key of the wrong size"
-msgstr "NiemahÄyma zimpartavać kluÄ niapravilnych pamieraÅ­"
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
+#, c-format
+msgid "An application wants access to '%s', but it is locked"
+msgstr "Aplikacyja choÄa dastupicca da \"%s\", ale jon zablakavany"
-#: ../gp11/gp11-misc.c:245
-msgid "Cannot export because the key is invalid"
-msgstr "NiemahÄyma zekspartavać kluÄ, bo toj niapravilny"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
+msgstr "Adblakuj sertyfikat ci schoviÅ¡Äa kluÄoÅ­"
-#: ../gp11/gp11-misc.c:247
-msgid "Cannot export because the key is of the wrong size"
-msgstr "NiemahÄyma zekspartavać kluÄ, bo toj niapravilnych pamieraÅ­"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
+msgstr "UpiÅ¡y parol, kab adblakavać sertyfikat ci schoviÅ¡Äa kluÄoÅ­"
-#: ../gp11/gp11-misc.c:249
-msgid "Cannot export because the key is of the wrong type"
-msgstr "NiemahÄyma zekspartavać kluÄ, bo toj niapravilnaha typu"
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, c-format
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr ""
+"Aplikacyja choÄa dastupicca da sertyfikatu ci schoviÅ¡Äa kluÄoÅ­ \"%s\", ale "
+"hety abjekt zablakavany"
-#: ../gp11/gp11-misc.c:251
-msgid "Unable to initialize the random number generator"
-msgstr "Nie ŭdałosia zinicyjalizavać hieneratar vypadkovych likaŭ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
+msgstr "Patrebny novy parol"
-#: ../gp11/gp11-misc.c:253
-msgid "No random number generator available"
-msgstr "Niama hienerataraÅ­ vypadkovych likaÅ­"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
+msgstr "Dla biaÅ›pieÄnaha schoviÅ¡Äa patrebny novy parol"
-#: ../gp11/gp11-misc.c:255
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "Mechanizm šyfravańnia maje niapravilny parametar"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
+#, c-format
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
+"Kab padrychtavać \"%s\" dla zachoÅ­vaÅ„nia sertyfikataÅ­ ci kluÄoÅ­, patrebny "
+"parol"
-#: ../gp11/gp11-misc.c:257
-msgid "Not enough space to store the result"
-msgstr "Nie staje volnaha miesca, kab zachavać vynik"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "Źmiani parol dla kluÄnika"
-#: ../gp11/gp11-misc.c:259
-msgid "The saved state is invalid"
-msgstr "Zachavany stan niapravilny"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "Dla biaÅ›pieÄnaha schoviÅ¡Äa patrebny novy parol"
-#: ../gp11/gp11-misc.c:261
-msgid "The information is sensitive and cannot be revealed"
-msgstr "Infarmacyja vielmi važnaja, i jaje nielha raskryvać"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
+#, c-format
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
+msgstr ""
-#: ../gp11/gp11-misc.c:263
-msgid "The state cannot be saved"
-msgstr "NiemahÄyma zachavać stan"
+#: ../tool/gkr-tool.c:102
+#, c-format
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
-#: ../gp11/gp11-misc.c:265
-msgid "The module has not been initialized"
-msgstr "Modul nie zinicyjalizavany"
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
-#: ../gp11/gp11-misc.c:267
-msgid "The module has already been initialized"
-msgstr "Modul užo zinicyjalizavany"
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
-#: ../gp11/gp11-misc.c:269
-msgid "Cannot lock data"
-msgstr "NiemahÄyma zablakavać źviestki"
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
+msgstr "Zachoŭvać paroli niezašyfravanymi?"
-#: ../gp11/gp11-misc.c:271
-msgid "The data cannot be locked"
-msgstr "NiemahÄyma zablakavać źviestki"
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
+"Kali ty abiareÅ¡ pusty parol, tady Å­sie zachoÅ­vanyja kluÄnikam paroli nia "
+"buduć Å¡yfravacca. Ich zmoža praÄytać lubaja asoba, jakaja maje dostup da "
+"tvaich fajłaŭ."
-#: ../gp11/gp11-misc.c:273
-msgid "The signature request was rejected by the user"
-msgstr "Ad karystalnika padadzieny zapyt na podpis"
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
+msgstr "Užyj niebiaÅ›pieÄnaje schoviÅ¡Äa"
-#: ../gp11/gp11-misc.c:277
-msgid "Unknown error"
-msgstr "Nieviadomaja pamyłka"
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr "Paroli adroźnivajucca."
-#: ../library/gnome-keyring-utils.c:155
-msgid "Access Denied"
-msgstr "Dostup zabaronieny"
+#: ../ui/gku-prompt-tool.c:649
+msgid "Password cannot be blank"
+msgstr "Parol nia moža być pustym"
-#: ../library/gnome-keyring-utils.c:157
-msgid "The gnome-keyring-daemon application is not running."
-msgstr "Aplikacyja gnome-keyring-daemon nia dziejniÄaje."
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:159
-msgid "Error communicating with gnome-keyring-daemon"
-msgstr "Pamyłka suviazi z gnome-keyring-daemonam"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:161
-msgid "A keyring with that name already exists"
-msgstr "KluÄnik z takoj nazvaj užo isnuje"
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
+msgstr "LiÄylnik mocy novaha parolu"
-#: ../library/gnome-keyring-utils.c:163
-msgid "Programmer error: The application sent invalid data."
-msgstr "Pamyłka ŭ prahramie: aplikacyja dasłała niapravilnyja źviestki."
+#: ../ui/gku-prompt.ui.h:2
+#, fuzzy
+msgid "_Application:"
+msgstr "_Pałažeńnie:"
-#: ../library/gnome-keyring-utils.c:165
-msgid "No matching results"
-msgstr "Niama adpaviednych vynikaÅ­"
+#: ../ui/gku-prompt.ui.h:3
+#, fuzzy
+msgid "_Confirm:"
+msgstr "_Paćvierdź parol:"
-#: ../library/gnome-keyring-utils.c:167
-msgid "A keyring with that name does not exist."
-msgstr "KluÄnik z takoj nazvaj nie isnuje."
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:174
-msgid "The keyring has already been unlocked."
-msgstr "KluÄnik užo razblakavany."
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr ""
-#: ../pkcs11/gck/gck-certificate.c:710
-msgid "Unnamed Certificate"
-msgstr "Sertyfikat biaz nazvy"
+#: ../ui/gku-prompt.ui.h:6
+#, fuzzy
+msgid "_Old Password:"
+msgstr "_Stary parol:"
-#: ../pkcs11/ssh-store/gck-ssh-private-key.c:296
-msgid "Couldn't parse public SSH key"
-msgstr "Nie Å­daÅ‚osia razabrać publiÄny kluÄ SSH"
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "_Parol:"
diff --git a/po/bg.po b/po/bg.po
index 3d3b5896..cf7c3be9 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-17 09:21+0300\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-17 09:21+0300\n"
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
@@ -24,7 +24,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Без име"
@@ -100,35 +100,34 @@ msgstr "Ключодържател на GNOME: агент на GPG"
msgid "GPG Password Agent"
msgstr "Ðгент за пароли на GPG"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Ðепознат"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "Ключ за PGP: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Въведете парола"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "ЗабравÑне на паролата Ñлед бездейÑтване от"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "ЗабравÑне на паролата Ñлед"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "ЗабравÑне на паролата при излизане"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Влизане"
@@ -172,7 +171,7 @@ msgstr "Лично име"
msgid "Surname"
msgstr "ФамилиÑ"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Сериен номер"
@@ -228,7 +227,7 @@ msgstr "Титла за показваното име"
msgid "Pseudonym"
msgstr "ПÑевдоним"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -244,7 +243,7 @@ msgstr "MD5 Ñ RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 Ñ RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -284,587 +283,6 @@ msgstr ""
msgid "Unexpected error in waitpid() (%s)"
msgstr "Ðеочаквана грешка в waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Грешка при зареждане на модула за PKCS#11: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Ðеправилен модул за PKCS#11: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Модулът за PKCS#11 не може да Ñе наÑтрои: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "Модулът за PKCS#11 не може да Ñе Ñтартира: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "РегиÑтрираните модули за PKCS#11 не могат да Ñе Ñтартират: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Име"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Издател"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "Срок"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "Сертификат"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Вече ÑъщеÑтвува файл Ñ Ñ‚Ð°ÐºÐ¾Ð²Ð° име.</b>\n"
-"\n"
-"ИÑкате ли да го замените Ñ Ð½Ð¾Ð² файл?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_ЗамÑна"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "Отменено дейÑтвие."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "ИзнаÑÑне на Ñертификат"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Файлове на Ñертификата"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "Файлове на PEM"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Друго име"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "ÐÐ´Ñ€ÐµÑ Ð·Ð° XMPP"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "Ð—Ð°Ð¿Ð¸Ñ Ð·Ð° уÑлуга (SRV) в DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "Е-поща"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "ÐÐ´Ñ€ÐµÑ Ð¿Ð¾ X400"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Име на директориÑ"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "Име на Ñтрана по EDI"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "ÐдреÑ"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "IP адреÑ"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "РегиÑтриран идентификатор"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "ОÑновни ограничениÑ"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "УдоÑтоверител"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Да"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Ðе"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "МакÑимална дължина на веригата"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Без ограничение"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Разширена употреба на ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Позволени употреби"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Идентификатор на ÑобÑтвеника на ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Идентификатор на ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Цифров подпиÑ"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Шифър на ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Шифър на данните"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "УÑÐ»Ð¾Ð²Ð¸Ñ Ð½Ð° ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "ÐŸÐ¾Ð´Ð¿Ð¸Ñ Ð½Ð° Ñертификат"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "ÐŸÐ¾Ð´Ð¿Ð¸Ñ Ð½Ð° ÑпиÑъка за отмÑна"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Употреба на ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Употреби"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Ðлтернативни имена на притежателÑ"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Разширение"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Идентификатор"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "СтойноÑÑ‚"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Критичен"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Сертификатът не може да бъде изнеÑен."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "ИдентичноÑÑ‚"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Проверен от"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "Изтича на"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Име на получателÑ"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Име на издателÑ"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Издаден Ñертификат"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "ВерÑиÑ"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Ðе е валиден преди"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Ðе е валиден Ñлед"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Отпечатъци на Ñертификата"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "ПодпиÑ"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Ðлгоритъм на подпиÑа"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Параметри на подпиÑа"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° публичен ключ"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Ðлгоритъм на ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Параметри на ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Размер на ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "Отпечатък на Ñертификата по SHA1"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "Публичен ключ"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_ПодробноÑти"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "„%s“ не може да Ñе покаже"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "Файлът не може да Ñе покаже"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Причина"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Този вид файл не може да Ñе покаже."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "ВнаÑÑне на Ñертификати и ключове"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "ВнаÑÑне в:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Парола:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "Ключ за PGP"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "Идентификатор"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "ПроцеÑÑŠÑ‚ на GnuPG завърши работа Ñ ÐºÐ¾Ð´: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "ПроцеÑÑŠÑ‚ на GnuPG бе ÑпрÑн ÑÑŠÑ Ñигнал: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919 ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "Отменено дейÑтвие"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Въведете парола за отключване на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Въведете парола за отключване на Ñертификата"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Въведете парола за отключване"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "ТрÑбва да отключите чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡, за да го внеÑете"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "ТрÑбва да отключите Ñертификата, за да го внеÑете"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "ТрÑбва да отключите данните, за да ги внеÑете"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "ТрÑбва да отключите чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ „%s“, за да го внеÑете"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "ТрÑбва да отключите Ñертификата „%s“, за да го внеÑете"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "ТрÑбва да отключите „%s“, за да го внеÑете"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "ÐÑма къде да Ñе внаÑÑ"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "ВнаÑÑне на Ñертификати/ключове"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Изберете меÑтоположение за внаÑÑните Ñертификати, ключове."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Ключ"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "ЧаÑтен ключ за RSA"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "ЧаÑтен ключ за DSA"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "ЧаÑтен ключ"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Публичен ключ за DSA"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d бит"
-msgstr[1] "%d бита"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "ÐадеждноÑÑ‚"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Ðлгоритъм"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Размер"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Отпечатъци"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "Ðепознати или неподдържани данни."
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "Ðеправилни или повредени данни не могат да бъдат анализирани"
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "Данните Ñа заключени"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Ðе може да бъде открито мÑÑто за Ñъхранението на Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ Ñертификат"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Ðвтоматично отключване на ÐºÐ»ÑŽÑ‡Ð¾Ð´ÑŠÑ€Ð¶Ð°Ñ‚ÐµÐ»Ñ Ð¿Ñ€Ð¸ влизане."
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Заключване на ÐºÐ»ÑŽÑ‡Ð¾Ð´ÑŠÑ€Ð¶Ð°Ñ‚ÐµÐ»Ñ Ñлед"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Заключване на ÐºÐ»ÑŽÑ‡Ð¾Ð´ÑŠÑ€Ð¶Ð°Ñ‚ÐµÐ»Ñ Ð¿Ñ€Ð¸ бездейÑтване Ñлед"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Ðвтоматично заключване на ÐºÐ»ÑŽÑ‡Ð¾Ð´ÑŠÑ€Ð¶Ð°Ñ‚ÐµÐ»Ñ Ð¿Ñ€Ð¸ излизане"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "минути"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "Отключване: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Отключване"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "Паролата е грешна"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Парола"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr ""
-"Съдържанието на „%s“ е заключено. За да го видите, въведете правилната "
-"парола."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr "Съдържанието е заключено. За да го видите, въведете правилната парола."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "Разглеждане на ключове и Ñертификати по GCR"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Извеждане на верÑиÑта на програмата"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[файл…]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "– разглеждане на ключове и Ñертификати"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "Разглеждане на Ñертификати"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "ÐдреÑÑŠÑ‚ е кодиран неправилно."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "Ð’ адреÑа липÑва Ñхемата „pkcs11“."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "Ðеправилен ÑинтакÑÐ¸Ñ Ð½Ð° адреÑа."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "Ðеправилен номер на верÑÐ¸Ñ Ð½Ð° адреÑа."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Сертификат без име"
@@ -874,7 +292,7 @@ msgid "Couldn't parse public SSH key"
msgstr "ПубличниÑÑ‚ ключ за SSH не може да бъде анализиран."
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Парола за отключване на: „%s“"
@@ -934,10 +352,26 @@ msgstr "Отключване на Ñертификат"
msgid "Unlock public key"
msgstr "Отключване на публичен ключ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Отключване"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Въведете парола за отключване на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Въведете парола за отключване на Ñертификата"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Въведете парола за отключване на Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Въведете парола за отключване"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1025,11 +459,11 @@ msgstr "команди: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Запазване на паролите нешифрирани?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1038,15 +472,15 @@ msgstr ""
"Ðко изберете празна парола, запазените ви пароли нÑма да бъдат шифрирани "
"надеждно и ще бъдат доÑтъпни за вÑеки, който има доÑтъп до вашите файлове."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Използване на незащитен ключодържател"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Паролите не Ñъвпадат."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Паролата не може да бъде празна"
diff --git a/po/bn.po b/po/bn.po
index fb37853e..58acf9b2 100644
--- a/po/bn.po
+++ b/po/bn.po
@@ -11,11 +11,12 @@
msgid ""
msgstr ""
"Project-Id-Version: bn\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-keyring&component=general\n"
-"POT-Creation-Date: 2011-03-10 08:08+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-03-30 14:35+0600\n"
"Last-Translator: Zenat Rahnuma <zenat@ankur.org.bd>\n"
"Language-Team: Bengali <ankur-bd-l10n@googlegroups.com>\n"
+"Language: bn\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -26,7 +27,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "নামবিহীন"
@@ -67,8 +68,8 @@ msgid ""
"An application wants to create a new keyring called '%s'. Choose the "
"password you want to use for it."
msgstr ""
-"à¦à¦•à¦Ÿà¦¿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ '%s' নামক à¦à¦•à¦Ÿà¦¿ নতà§à¦¨ কী রিং তৈরি করতে ইচà§à¦›à§à¦•à¥¤ à¦à¦¤à§‡ বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° "
-"জনà§à¦¯ পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨à¥¤"
+"à¦à¦•à¦Ÿà¦¿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ '%s' নামক à¦à¦•à¦Ÿà¦¿ নতà§à¦¨ কী রিং তৈরি করতে ইচà§à¦›à§à¦•à¥¤ à¦à¦¤à§‡ বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° জনà§à¦¯ "
+"পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨à¥¤"
#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
msgid "Certificate and Key Storage"
@@ -95,47 +96,41 @@ msgid "SSH Key Agent"
msgstr "SSH কী à¦à¦œà§‡à¦¨à§à¦Ÿ"
#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
-#| msgid "GNOME Keyring: SSH Agent"
msgid "GNOME Keyring: GPG Agent"
msgstr "GNOME কীরিং: GPG à¦à¦œà§‡à¦¨à§à¦Ÿ"
#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
-#| msgid "New password strength"
msgid "GPG Password Agent"
msgstr "GPG পাসওয়ারà§à¦¡ à¦à¦œà§‡à¦¨à§à¦Ÿ"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:291
-#: ../gcr/gcr-key-renderer.c:296
-#| msgid "Unknown error"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "অজানা"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:199
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP কী: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:348
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:349
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "পাশফà§à¦°à§‡à¦œ দিন"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:383
-#| msgid "Lock this keyring if idle for"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "যদি à¦à¦° জনà§à¦¯ নিষà§à¦•à§à¦°à¦¿à§Ÿ থাকে তাহলে পাসওয়ারà§à¦¡ মনে রাখা হবেনা"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:384
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "à¦à¦° পরে পাসওয়ারà§à¦¡ মনে রাখা হবেনা"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:385
-#| msgid "Lock this keyring when I log out"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "আমি লগআউট করার সময় পাসওয়ারà§à¦¡ মনে রাখা হবেনা"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "লগিন"
@@ -179,7 +174,7 @@ msgstr "নাম"
msgid "Surname"
msgstr "পদবি"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:379
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "কà§à¦°à¦®à¦¿à¦• সংখà§à¦¯à¦¾"
@@ -235,650 +230,62 @@ msgstr "DN যোগà§à¦¯à¦¤à¦¾ নিরà§à¦¬à¦¾à¦šà¦¨à¦•à¦¾à¦°à§€"
msgid "Pseudonym"
msgstr "ছদà§à¦®à¦¨à¦¾à¦®"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:287
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "RSA সহ MD2"
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "RSA সহ MD5"
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "RSA সহ SHA1"
-#: ../egg/egg-oid.c:107 ../gcr/gcr-key-renderer.c:289
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "DSA সহ SHA1"
-#: ../egg/egg-spawn.c:273
-#, c-format
-msgid "Unexpected error in select() reading data from a child process (%s)"
-msgstr ""
-"à¦à¦•à¦Ÿà¦¿ চাইলà§à¦¡ পà§à¦°à¦¸à§‡à¦¸ (%s) থেকে ডাটা রিড করতে নিরà§à¦¬à¦¾à¦šà¦¨() ঠঅনাকাঙà§à¦–িত তà§à¦°à§à¦Ÿà¦¿"
-
-#: ../egg/egg-spawn.c:320
-#, c-format
-msgid "Unexpected error in waitpid() (%s)"
-msgstr "waitpid() (%s) তে অনাকাঙà§à¦–িত তà§à¦°à§à¦Ÿà¦¿"
-
-#: ../gcr/gcr-certificate-renderer.c:82 ../gcr/gcr-parser.c:201
-msgid "Certificate"
-msgstr "সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ"
-
-#: ../gcr/gcr-certificate-renderer.c:107
-msgid "Extension"
-msgstr "পà§à¦°à¦¸à¦¾à¦°à¦£"
-
-#: ../gcr/gcr-certificate-renderer.c:112
-msgid "Identifier"
-msgstr "সনাকà§à¦¤à¦•à¦¾à¦°à§€"
-
-#: ../gcr/gcr-certificate-renderer.c:120
-msgid "Value"
-msgstr "মান"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "Critical"
-msgstr "গà§à¦°à§à¦¤à¦°"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "Yes"
-msgstr "হà§à¦¯à¦¾à¦"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "No"
-msgstr "না"
-
-#: ../gcr/gcr-certificate-renderer.c:339
-#| msgid "Identifier"
-msgid "Identity"
-msgstr "পরিচয়"
-
-#: ../gcr/gcr-certificate-renderer.c:343
-msgid "Verified by"
-msgstr "à¦à¦° দà§à¦¬à¦¾à¦°à¦¾ যাচাইকৃত"
-
-#: ../gcr/gcr-certificate-renderer.c:350
-#| msgid "Expires On"
-msgid "Expires"
-msgstr "মেয়াদউতà§à¦¤à§€à¦°à§à¦£"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:360
-msgid "Subject Name"
-msgstr "পà§à¦°à¦¸à¦™à§à¦—ের নাম"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:364
-msgid "Issuer Name"
-msgstr "নিরà§à¦®à¦¾à¦£à¦•à¦¾à¦°à§€ নাম"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:368
-msgid "Issued Certificate"
-msgstr "পà§à¦°à¦¦à¦¾à¦¨ করা সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ"
-
-#: ../gcr/gcr-certificate-renderer.c:373
-msgid "Version"
-msgstr "সংসà§à¦•à¦°à¦£"
-
-#: ../gcr/gcr-certificate-renderer.c:387
-msgid "Not Valid Before"
-msgstr "চিহà§à¦¨à¦¿à¦¤ সময়ের পূরà§à¦¬à§‡ কারà§à¦¯à¦•à¦° হবেনা"
-
-#: ../gcr/gcr-certificate-renderer.c:392
-msgid "Not Valid After"
-msgstr "চিহà§à¦¨à¦¿à¦¤ সময়ের পরে কারà§à¦¯à¦•à¦° হবেনা"
-
-#: ../gcr/gcr-certificate-renderer.c:401
-msgid "Signature Algorithm"
-msgstr "সà§à¦¬à¦¾à¦•à§à¦·à¦°à§‡à¦° অà§à¦¯à¦¾à¦²à¦—রিদম"
-
-#: ../gcr/gcr-certificate-renderer.c:406
-msgid "Signature Parameters"
-msgstr "সà§à¦¬à¦¾à¦•à§à¦·à¦°à§‡à¦° পà§à¦¯à¦¾à¦°à¦¾à¦®à¦¿à¦Ÿà¦¾à¦°"
-
-#: ../gcr/gcr-certificate-renderer.c:413
-msgid "Signature"
-msgstr "সà§à¦¬à¦¾à¦•à§à¦·à¦°"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:418
-msgid "Public Key Info"
-msgstr "পাবলিক কী সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯"
-
-#: ../gcr/gcr-certificate-renderer.c:423
-msgid "Key Algorithm"
-msgstr "কী-à¦à¦° অà§à¦¯à¦¾à¦²à¦—রিদম"
-
-#: ../gcr/gcr-certificate-renderer.c:429
-msgid "Key Parameters"
-msgstr "কী-à¦à¦° পà§à¦¯à¦¾à¦°à¦¾à¦®à¦¿à¦Ÿà¦¾à¦°"
-
-#: ../gcr/gcr-certificate-renderer.c:436
-msgid "Key Size"
-msgstr "কী-à¦à¦° আকার"
-
-#: ../gcr/gcr-certificate-renderer.c:444 ../gcr/gcr-key-renderer.c:271
-#: ../gcr/gcr-parser.c:204
-msgid "Public Key"
-msgstr "পাবলিক কী"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:449
-msgid "Fingerprints"
-msgstr "আঙà§à¦—à§à¦²à§‡à¦° ছাপ"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-#| msgid "Import Certificates/Keys"
-msgid "Import Certificates and Keys"
-msgstr "সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ à¦à¦¬à¦‚ কী ইমà§à¦ªà§‹à¦°à§à¦Ÿ"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "চিহà§à¦¨à¦¿à¦¤ সà§à¦¥à¦¾à¦¨à§‡ ইমà§à¦ªà§‹à¦°à§à¦Ÿ:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "পাসওয়ারà§à¦¡:"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "লগ-ইন করার সময় সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦­à¦¾à¦¬à§‡ à¦à¦‡ কী-রিং আন-লক করা হবে"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "পরবরà§à¦¤à§€à¦¤à§‡ à¦à¦‡ কীরিং লক করা হবে"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "নিষà§à¦•à§à¦°à¦¿à§Ÿà¦¤à¦¾à¦° জনà§à¦¯ à¦à¦‡ কীরিংটি লক করা হবে"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "লগআউট করার সময় সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦­à¦¾à¦¬à§‡ à¦à¦‡ কী-রিং লক করা হবে"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "মিনিট"
-
-#: ../gcr/gcr-importer.c:133 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "পà§à¦°à¦¾à¦‡à¦­à§‡à¦Ÿ কী আনলক করতে পাসওয়ারà§à¦¡ লিখà§à¦¨"
-
-#: ../gcr/gcr-importer.c:135 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ আন-লক করার জনà§à¦¯ পাসওয়ারà§à¦¡ লিখà§à¦¨"
-
-#: ../gcr/gcr-importer.c:137 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "আনলক করতে পাসওয়ারà§à¦¡ লিখà§à¦¨"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:146
-msgid "In order to import the private key, it must be unlocked"
-msgstr "গোপনীয় কী ইমà§à¦ªà§‹à¦°à§à¦Ÿ করতে হলে তা আন-লক করা আবশà§à¦¯à¦•"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:149
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ ইমà§à¦ªà§‹à¦°à§à¦Ÿ করতে হলে তা আন-লক করা আবশà§à¦¯à¦•"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:152
-msgid "In order to import the data, it must be unlocked"
-msgstr "ডাটা ইমà§à¦ªà§‹à¦°à§à¦Ÿ করতে হলে তা আন-লক করা আবশà§à¦¯à¦•"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:157
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "'%s' পà§à¦°à¦¾à¦‡à¦­à§‡à¦Ÿ কী ইমà§à¦ªà§‹à¦°à§à¦Ÿ করতে হলে তা আন-লক করা আবশà§à¦¯à¦•"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:160
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "'%s' সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ ইমà§à¦ªà§‹à¦°à§à¦Ÿ করতে হলে তা আন-লক করা আবশà§à¦¯à¦•"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:163
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "'%s' ইমà§à¦ªà§‹à¦°à§à¦Ÿ করতে হলে তা আন-লক করা আবশà§à¦¯à¦•"
-
-#: ../gcr/gcr-importer.c:254 ../gcr/gcr-parser.c:1566 ../gcr/gcr-parser.c:1757
-#: ../gck/gck-misc.c:98
-msgid "The operation was cancelled"
-msgstr "অপারেশন বাতিল করা হয়েছে"
-
-#: ../gcr/gcr-importer.c:346
-#, c-format
-msgid "No location available to import to"
-msgstr "ইমà§à¦ªà§‹à¦°à§à¦Ÿ করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ কোনো সà§à¦¥à¦¾à¦¨ চিহà§à¦¨à¦¿à¦¤ হয়নি"
-
-#: ../gcr/gcr-importer.c:495
-msgid "Import Certificates/Keys"
-msgstr "সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ/কী ইমà§à¦ªà§‹à¦°à§à¦Ÿ"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+#, fuzzy
+msgid "Server Authentication"
+msgstr "SSL সারà§à¦­à¦¾à¦° সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ"
-#: ../gcr/gcr-importer.c:502
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "ইমà§à¦ªà§‹à¦°à§à¦Ÿ করা সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ/কী সংরকà§à¦·à¦£à§‡à¦° জনà§à¦¯ à¦à¦•à¦Ÿà¦¿ সà§à¦¥à¦¾à¦¨ নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨à¥¤"
+#: ../egg/egg-oid.c:108
+#, fuzzy
+msgid "Client Authentication"
+msgstr "SSL কà§à¦²à¦¾à§Ÿà§‡à¦¨à§à¦Ÿ সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ"
-#: ../gcr/gcr-key-renderer.c:69
-msgid "Key"
-msgstr "কী"
-
-#: ../gcr/gcr-key-renderer.c:260
-#| msgid "Private Key"
-msgid "Private RSA Key"
-msgstr "à¦à¦•à¦¾à¦¨à§à¦¤ RSA কী"
-
-#: ../gcr/gcr-key-renderer.c:262
-#| msgid "Private Key"
-msgid "Private DSA Key"
-msgstr "à¦à¦•à¦¾à¦¨à§à¦¤ DSA কী"
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
-#: ../gcr/gcr-key-renderer.c:264 ../gcr/gcr-parser.c:198
-msgid "Private Key"
-msgstr "à¦à¦•à¦¾à¦¨à§à¦¤ কী"
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
-#: ../gcr/gcr-key-renderer.c:267 ../gcr/gcr-key-renderer.c:269
-#| msgid "Public Key"
-msgid "Public DSA Key"
-msgstr "পাবলিক DSA কী"
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
-#: ../gcr/gcr-key-renderer.c:278
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d বিট"
-msgstr[1] "%d বিট"
-
-#: ../gcr/gcr-key-renderer.c:279
-#| msgid "Street"
-msgid "Strength"
-msgstr "পà§à¦°à¦¤à¦¿à¦°à§‹à¦§à¦¶à¦•à§à¦¤à¦¿"
-
-#: ../gcr/gcr-key-renderer.c:292
-#| msgid "Key Algorithm"
-msgid "Algorithm"
-msgstr "অà§à¦¯à¦¾à¦²à¦—রিদম"
-
-#: ../gcr/gcr-key-renderer.c:299
-#| msgid "Key Size"
-msgid "Size"
-msgstr "আকার"
-
-#. TODO: We need to have consistent key fingerprints.
-#: ../gcr/gcr-key-renderer.c:303
-#| msgid "Fingerprints"
-msgid "Fingerprint"
-msgstr "আঙà§à¦—à§à¦²à§‡à¦° ছাপ"
-
-#: ../gcr/gcr-parser.c:1569
-msgid "Unrecognized or unsupported data."
-msgstr "অপরিচিত অথবা অসমরà§à¦¥à¦¿à¦¤ ডাটা।"
-
-#: ../gcr/gcr-parser.c:1572
-msgid "Could not parse invalid or corrupted data."
-msgstr "অকারà§à¦¯à¦•à¦° অথবা কà§à¦·à¦¤à¦¿à¦—à§à¦°à¦¸à§à¦¤ ডাটা পারà§à¦¸ করতে বà§à¦¯à¦°à§à¦¥à¥¤"
-
-#: ../gcr/gcr-parser.c:1575
-msgid "The data is locked"
-msgstr "ডাটা লক করা রয়েছে"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:420
+#: ../egg/egg-spawn.c:273
#, c-format
-#| msgid "Choose a location to store the imported certificates/keys."
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "পিনযà§à¦•à§à¦¤ সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ সংরকà§à¦·à¦£à§‡à¦° জনà§à¦¯ কোন সà§à¦¥à¦¾à¦¨ পাওয়া যাচà§à¦›à§‡à¦¨à¦¾"
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr "à¦à¦•à¦Ÿà¦¿ চাইলà§à¦¡ পà§à¦°à¦¸à§‡à¦¸ (%s) থেকে ডাটা রিড করতে নিরà§à¦¬à¦¾à¦šà¦¨() ঠঅনাকাঙà§à¦–িত তà§à¦°à§à¦Ÿà¦¿"
-#: ../gck/gck-uri.c:124 ../gck/gck-uri.c:181 ../gck/gck-uri.c:216
-#: ../gck/gck-uri.c:248
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid "The URI has invalid syntax. The '%s' field encoding is invalid."
-msgstr "URI à¦à¦° সিনটà§à¦¯à¦¾à¦•à§à¦¸ অকারà§à¦¯à¦•à¦°à¥¤ '%s' কà§à¦·à§‡à¦¤à§à¦°à§‡à¦° à¦à¦¨à¦•à§‹à¦¡à¦¿à¦‚ অকারà§à¦¯à¦•à¦°à¥¤"
-
-#: ../gck/gck-uri.c:287
-msgid "The URI has does not have the 'pkcs11' scheme."
-msgstr "URI à¦à¦° 'pkcs11' সà§à¦•à§€à¦® নেই।"
-
-#: ../gck/gck-misc.c:101
-msgid "Insufficient memory available"
-msgstr "অপরà§à¦¯à¦¾à¦ªà§à¦¤ মেমরি বিদà§à¦¯à¦®à¦¾à¦¨"
-
-#: ../gck/gck-misc.c:103
-msgid "The specified slot ID is not valid"
-msgstr "চিহà§à¦¨à¦¿à¦¤ সà§à¦²à¦Ÿ ID কারà§à¦¯à¦•à¦° নয়"
-
-#: ../gck/gck-misc.c:105
-msgid "Internal error"
-msgstr "অভà§à¦¯à¦¨à§à¦¤à¦°à§€à¦£ তà§à¦°à§à¦Ÿà¦¿"
-
-#: ../gck/gck-misc.c:107
-msgid "The operation failed"
-msgstr "অপারেশন বà§à¦¯à¦°à§à¦¥"
-
-#: ../gck/gck-misc.c:109
-msgid "Invalid arguments"
-msgstr "অকারà§à¦¯à¦•à¦° আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ"
-
-#: ../gck/gck-misc.c:111
-msgid "The module cannot create needed threads"
-msgstr "আবশà§à¦¯à¦• থà§à¦°à§‡à¦¡à¦—à§à¦²à¦¿ মডিউল দà§à¦¬à¦¾à¦°à¦¾ নিরà§à¦®à¦¾à¦£ করা সমà§à¦­à¦¬ নয়"
-
-#: ../gck/gck-misc.c:113
-msgid "The module cannot lock data properly"
-msgstr "চিহà§à¦¨à¦¿à¦¤ মডিউল দà§à¦¬à¦¾à¦°à¦¾ সঠিকভাবে ডাটা লক করা সমà§à¦­à¦¬ নয়"
-
-#: ../gck/gck-misc.c:115
-msgid "The field is read-only"
-msgstr "à¦à¦‡ কà§à¦·à§‡à¦¤à§à¦°à¦Ÿà¦¿ শà§à¦§à§à¦®à¦¾à¦¤à§à¦° পাঠ-যোগà§à¦¯"
-
-#: ../gck/gck-misc.c:117
-msgid "The field is sensitive and cannot be revealed"
-msgstr "à¦à¦‡ কà§à¦·à§‡à¦¤à§à¦° সংবেদনশীল à¦à¦¬à¦‚ পà§à¦°à¦•à¦¾à¦¶ করা যাবে না"
-
-#: ../gck/gck-misc.c:119
-msgid "The field is invalid or does not exist"
-msgstr "à¦à¦‡ কà§à¦·à§‡à¦¤à§à¦°à¦Ÿà¦¿ অকারà§à¦¯à¦•à¦° অথবা অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤"
-
-#: ../gck/gck-misc.c:121
-msgid "Invalid value for field"
-msgstr "কà§à¦·à§‡à¦¤à§à¦°à§‡à¦° মান অকারà§à¦¯à¦•à¦°"
-
-#: ../gck/gck-misc.c:123
-msgid "The data is not valid or unrecognized"
-msgstr "ডাটা কারà§à¦¯à¦•à¦° নয় অথবা পরিচিত নয়"
-
-#: ../gck/gck-misc.c:125
-msgid "The data is too long"
-msgstr "ডাটা অতà§à¦¯à¦¾à¦§à¦¿à¦• দীরà§à¦˜"
-
-#: ../gck/gck-misc.c:127
-msgid "An error occurred on the device"
-msgstr "ডিভাইসের মধà§à¦¯à§‡ à¦à¦•à¦Ÿà¦¿ তà§à¦°à§à¦Ÿà¦¿ দেখা দিয়েছে"
-
-#: ../gck/gck-misc.c:129
-#| msgid "Insufficient memory available on device"
-msgid "Insufficient memory available on the device"
-msgstr "ডিভাইসের মধà§à¦¯à§‡ অপরà§à¦¯à¦¾à¦ªà§à¦¤ মেমরি বিদà§à¦¯à¦®à¦¾à¦¨"
-
-#: ../gck/gck-misc.c:131
-msgid "The device was removed or unplugged"
-msgstr "ডিভাইসটি সরিয়ে ফেলা হয়েছে অথবা বিচà§à¦›à¦¿à¦¨à§à¦¨ করা হয়েছে"
-
-#: ../gck/gck-misc.c:133
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "à¦à¦¨à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ করা ডাটা কারà§à¦¯à¦•à¦° নয় অথবা পরিচিত নয়"
-
-#: ../gck/gck-misc.c:135
-msgid "The encrypted data is too long"
-msgstr "à¦à¦¨à¦•à§à¦°à¦¿à¦ªà§à¦Ÿà¦•à§ƒà¦¤ ডাটা অতà§à¦¯à¦¾à¦§à¦¿à¦• দীরà§à¦˜"
-
-#: ../gck/gck-misc.c:137
-msgid "This operation is not supported"
-msgstr "à¦à¦‡ অপারেশন সমরà§à¦¥à¦¿à¦¤ নয়"
-
-#: ../gck/gck-misc.c:139
-msgid "The key is missing or invalid"
-msgstr "কী অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤ অথবা অকারà§à¦¯à¦•à¦°"
-
-#: ../gck/gck-misc.c:141
-msgid "The key is the wrong size"
-msgstr "কী-à¦à¦° মাপ ভà§à¦²"
-
-#: ../gck/gck-misc.c:143
-msgid "The key is of the wrong type"
-msgstr "কী-à¦à¦° ধরন ভà§à¦²"
-
-#: ../gck/gck-misc.c:145
-msgid "No key is needed"
-msgstr "কোন কী à¦à¦° পà§à¦°à§Ÿà§‹à¦œà¦¨ নেই"
-
-#: ../gck/gck-misc.c:147
-msgid "The key is different than before"
-msgstr "কী টি পূরà§à¦¬à¦¬à¦°à§à¦¤à§€ অবসà§à¦¥à¦¾ থেকে পরিবরà§à¦¤à¦¿à¦¤ হয়েছে"
-
-#: ../gck/gck-misc.c:149
-msgid "A key is needed"
-msgstr "à¦à¦•à¦Ÿà¦¿ কি আবশà§à¦¯à¦•"
-
-#: ../gck/gck-misc.c:151
-#| msgid "Cannot include the key in digest"
-msgid "Cannot include the key in the digest"
-msgstr "ডাইজেসà§à¦Ÿà§‡à¦° মধà§à¦¯à§‡ কি অনà§à¦¤à¦°à§à¦­à§à¦•à§à¦¤ করা যাচà§à¦›à§‡à¦¨à¦¾"
-
-#: ../gck/gck-misc.c:153
-msgid "This operation cannot be done with this key"
-msgstr "à¦à¦‡ কি সহযোগে অপারেশন করা সমà§à¦­à¦¬ নয়"
-
-#: ../gck/gck-misc.c:155
-msgid "The key cannot be wrapped"
-msgstr "কী মোড়ানো সমà§à¦­à¦¬ নয়"
-
-#: ../gck/gck-misc.c:157
-msgid "Cannot export this key"
-msgstr "চিহà§à¦¨à¦¿à¦¤ কী à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ করা সমà§à¦­à¦¬ নয়"
-
-#: ../gck/gck-misc.c:159
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "কà§à¦°à¦¿à¦ªà§à¦Ÿà§‹ বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾ অকারà§à¦¯à¦•à¦° অথবা অপরিচিত"
-
-#: ../gck/gck-misc.c:161
-msgid "The crypto mechanism has an invalid argument"
-msgstr "কà§à¦°à¦¿à¦ªà§à¦Ÿà§‹ বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦° কà§à¦·à§‡à¦¤à§à¦°à§‡ অকারà§à¦¯à¦•à¦° আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ উপসà§à¦¥à¦¿à¦¤"
-
-#: ../gck/gck-misc.c:163
-msgid "The object is missing or invalid"
-msgstr "অবজেকà§à¦Ÿà¦Ÿà¦¿ অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤ অথবা অকারà§à¦¯à¦•à¦°"
-
-#: ../gck/gck-misc.c:165
-msgid "Another operation is already taking place"
-msgstr "à¦à¦•à¦Ÿà¦¿ পৃথক অপারেশন বরà§à¦¤à¦®à¦¾à¦¨à§‡ চলছে"
-
-#: ../gck/gck-misc.c:167
-msgid "No operation is taking place"
-msgstr "কোন অপারেশন বরà§à¦¤à¦®à¦¾à¦¨à§‡ সঞà§à¦šà¦¾à¦²à¦¿à¦¤ হচà§à¦›à§‡ না"
-
-#: ../gck/gck-misc.c:169
-msgid "The password or PIN is incorrect"
-msgstr "পাসওয়ারà§à¦¡ অথবা PIN সঠিক নয়"
-
-#: ../gck/gck-misc.c:171
-msgid "The password or PIN is invalid"
-msgstr "পাসওয়ারà§à¦¡ অথবা PIN অকারà§à¦¯à¦•à¦°"
-
-#: ../gck/gck-misc.c:173
-msgid "The password or PIN is of an invalid length"
-msgstr "পাসওয়ারà§à¦¡ অথবা PIN-à¦à¦° দৈরà§à¦˜à§à¦¯ অকারà§à¦¯à¦•à¦°"
-
-#: ../gck/gck-misc.c:175
-msgid "The password or PIN has expired"
-msgstr "পাসওয়ারà§à¦¡ অথবা PIN-à¦à¦° মেয়াদ উতà§à¦¤à§€à¦°à§à¦£"
-
-#: ../gck/gck-misc.c:177
-msgid "The password or PIN is locked"
-msgstr "পাসওয়ারà§à¦¡ অথবা PIN লক"
-
-#: ../gck/gck-misc.c:179
-msgid "The session is closed"
-msgstr "সেশন বনà§à¦§ হয়ে গিয়েছে"
-
-#: ../gck/gck-misc.c:181
-msgid "Too many sessions are active"
-msgstr "অতà§à¦¯à¦¾à¦§à¦¿à¦• সংখà§à¦¯à¦• সেশন সকà§à¦°à¦¿à§Ÿ আছে"
-
-#: ../gck/gck-misc.c:183
-msgid "The session is invalid"
-msgstr "à¦à¦‡ সেশনটি অকারà§à¦¯à¦•à¦°"
-
-#: ../gck/gck-misc.c:185
-msgid "The session is read-only"
-msgstr "à¦à¦‡ সেশনটি শà§à¦§à§à¦®à¦¾à¦¤à§à¦° পাঠ-যোগà§à¦¯"
-
-#: ../gck/gck-misc.c:187
-msgid "An open session exists"
-msgstr "à¦à¦•à¦Ÿà¦¿ খোলা সেশন বিদà§à¦¯à¦®à¦¾à¦¨"
-
-#: ../gck/gck-misc.c:189
-msgid "A read-only session exists"
-msgstr "শà§à¦§à§à¦®à¦¾à¦¤à§à¦° পাঠযোগà§à¦¯ à¦à¦•à¦Ÿà¦¿ সেশন বরà§à¦¤à¦®à¦¾à¦¨à§‡ চলছে"
-
-#: ../gck/gck-misc.c:191
-msgid "An administrator session exists"
-msgstr "পà§à¦°à¦¶à¦¾à¦¸à¦•à§‡à¦° à¦à¦•à¦Ÿà¦¿ সেশন বরà§à¦¤à¦®à¦¾à¦¨à§‡ বিদà§à¦¯à¦®à¦¾à¦¨"
-
-#: ../gck/gck-misc.c:193
-msgid "The signature is bad or corrupted"
-msgstr "সà§à¦¬à¦¾à¦•à§à¦·à¦° সঠিক নয় অথবা কà§à¦·à¦¤à¦¿à¦—à§à¦°à¦¸à§à¦¤"
-
-#: ../gck/gck-misc.c:195
-msgid "The signature is unrecognized or corrupted"
-msgstr "সà§à¦¬à¦¾à¦•à§à¦·à¦° পরিচিত নয় অথবা কà§à¦·à¦¤à¦¿à¦—à§à¦°à¦¸à§à¦¤"
-
-#: ../gck/gck-misc.c:197
-msgid "Certain required fields are missing"
-msgstr "কয়েকটি আবশà§à¦¯à¦• কà§à¦·à§‡à¦¤à§à¦°à§‡à¦° মান অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤"
-
-#: ../gck/gck-misc.c:199
-msgid "Certain fields have invalid values"
-msgstr "কয়েকটি কà§à¦·à§‡à¦¤à§à¦°à§‡à¦° মান অকারà§à¦¯à¦•à¦°"
-
-#: ../gck/gck-misc.c:201
-msgid "The device is not present or unplugged"
-msgstr "ডিভাইস উপসà§à¦¥à¦¿à¦¤ নেই অথবা বিচà§à¦›à¦¿à¦¨à§à¦¨ করা হয়েছে"
-
-#: ../gck/gck-misc.c:203
-msgid "The device is invalid or unrecognizable"
-msgstr "ডিভাইসটি অকারà§à¦¯à¦•à¦° অথবা অপরিচিত"
-
-#: ../gck/gck-misc.c:205
-msgid "The device is write protected"
-msgstr "ডিভাইসটি লেখন সà§à¦°à¦•à§à¦·à¦¿à¦¤"
-
-#: ../gck/gck-misc.c:207
-msgid "Cannot import because the key is invalid"
-msgstr "কী অকারà§à¦¯à¦•à¦° হওয়ায় মà§à¦ªà§‹à¦°à§à¦Ÿ করা যাবে না"
-
-#: ../gck/gck-misc.c:209
-msgid "Cannot import because the key is of the wrong size"
-msgstr "কী ভà§à¦² আকারের হওয়ায় ইমà§à¦ªà§‹à¦°à§à¦Ÿ করা যাবে না"
-
-#: ../gck/gck-misc.c:211
-msgid "Cannot import because the key is of the wrong type"
-msgstr "কী ভà§à¦² ধরনের হওয়ায় ইমà§à¦ªà§‹à¦°à§à¦Ÿ করা যাবে না"
-
-#: ../gck/gck-misc.c:213
-msgid "You are already logged in"
-msgstr "আপনি ইতোমধà§à¦¯à§‡ লগ-ইন করেছেন"
-
-#: ../gck/gck-misc.c:215
-msgid "No user has logged in"
-msgstr "কোনো বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ লগ-ইন করেনি"
-
-#: ../gck/gck-misc.c:217
-msgid "The user's password or PIN is not set"
-msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° পাসওয়ারà§à¦¡ অথবা PIN নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হয়নি"
-
-#: ../gck/gck-misc.c:219
-msgid "The user is of an invalid type"
-msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° পà§à¦°à¦•à§ƒà¦¤à¦¿ অকারà§à¦¯à¦•à¦°"
-
-#: ../gck/gck-misc.c:221
-msgid "Another user is already logged in"
-msgstr "পৃথক à¦à¦• বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ ইতোমধà§à¦¯à§‡ লগ-ইন করেছে"
-
-#: ../gck/gck-misc.c:223
-#| msgid "Too many users of different types logged in"
-msgid "Too many users of different types are logged in"
-msgstr "বিভিনà§à¦¨ ধরনের অতà§à¦¯à¦¾à¦§à¦¿à¦• সংখà§à¦¯à¦• বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ লগ-ইন করেছে"
-
-#: ../gck/gck-misc.c:225
-msgid "Cannot import an invalid key"
-msgstr "à¦à¦•à¦Ÿà¦¿ অকারà§à¦¯à¦•à¦° কী ইমà§à¦ªà§‹à¦°à§à¦Ÿ করা যাবে না"
-
-#: ../gck/gck-misc.c:227
-msgid "Cannot import a key of the wrong size"
-msgstr "ভà§à¦² আকারের কী ইমà§à¦ªà§‹à¦°à§à¦Ÿ করা যাবে না"
-
-#: ../gck/gck-misc.c:229
-msgid "Cannot export because the key is invalid"
-msgstr "কী অকারà§à¦¯à¦•à¦° হওয়ার ফলে à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ করা যাবে না"
-
-#: ../gck/gck-misc.c:231
-msgid "Cannot export because the key is of the wrong size"
-msgstr "ভà§à¦² আকারের হওয়ার ফলে কী à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ করা যাবে না"
-
-#: ../gck/gck-misc.c:233
-msgid "Cannot export because the key is of the wrong type"
-msgstr "কী ভà§à¦² ধরনের হওয়ার ফলে à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ করা যাবে না"
-
-#: ../gck/gck-misc.c:235
-msgid "Unable to initialize the random number generator"
-msgstr "à¦à¦²à§‹à¦®à§‡à¦²à§‹ সংখà§à¦¯à¦¾ নিরà§à¦®à¦¾à¦£ বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾ আরমà§à¦­ করতে বà§à¦¯à¦°à§à¦¥"
-
-#: ../gck/gck-misc.c:237
-msgid "No random number generator available"
-msgstr "à¦à¦²à§‹à¦®à§‡à¦²à§‹ সংখà§à¦¯à¦¾ নিরà§à¦®à¦¾à¦£à§‡à¦° কোনো বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾ বিদà§à¦¯à¦®à¦¾à¦¨ নেই"
-
-#: ../gck/gck-misc.c:239
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "কà§à¦°à¦¿à¦ªà§à¦Ÿà§‹ বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦° কà§à¦·à§‡à¦¤à§à¦°à§‡à¦° পà§à¦¯à¦¾à¦°à¦¾à¦®à¦¿à¦Ÿà¦¾à¦° অকারà§à¦¯à¦•à¦°"
-
-#: ../gck/gck-misc.c:241
-msgid "Not enough space to store the result"
-msgstr "ফলাফল সংরকà§à¦·à¦£à§‡à¦° জনà§à¦¯ পরà§à¦¯à¦¾à¦ªà§à¦¤ সà§à¦¥à¦¾à¦¨ নেই"
-
-#: ../gck/gck-misc.c:243
-msgid "The saved state is invalid"
-msgstr "সংরকà§à¦·à¦¿à¦¤ অবসà§à¦¥à¦¾ অকারà§à¦¯à¦•à¦°"
-
-#: ../gck/gck-misc.c:245
-msgid "The information is sensitive and cannot be revealed"
-msgstr "তথà§à¦¯à¦Ÿà¦¿ সংবেদনশীল ও পà§à¦°à¦•à¦¾à¦¶ করা সমà§à¦­à¦¬ নয়"
-
-#: ../gck/gck-misc.c:247
-msgid "The state cannot be saved"
-msgstr "অবসà§à¦¥à¦¾ সংরকà§à¦·à¦£ করা যাবে না"
-
-#: ../gck/gck-misc.c:249
-msgid "The module has not been initialized"
-msgstr "মডিউল আরমà§à¦­ করা হয়নি"
-
-#: ../gck/gck-misc.c:251
-msgid "The module has already been initialized"
-msgstr "মডিউল ইতোমধà§à¦¯à§‡ আরমà§à¦­ করা হয়েছে"
-
-#: ../gck/gck-misc.c:253
-msgid "Cannot lock data"
-msgstr "ডাটা লক করা যাচà§à¦›à§‡à¦¨à¦¾"
-
-#: ../gck/gck-misc.c:255
-msgid "The data cannot be locked"
-msgstr "ডাটা লক করা যাবে না"
-
-#: ../gck/gck-misc.c:257
-msgid "The signature request was rejected by the user"
-msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ দà§à¦¬à¦¾à¦°à¦¾ সà§à¦¬à¦¾à¦•à§à¦·à¦°à§‡à¦° অনà§à¦°à§‹à¦§ পà§à¦°à¦¤à§à¦¯à¦¾à¦–à§à¦¯à¦¾à¦¨ করা হয়েছে"
-
-#: ../gck/gck-misc.c:261
-msgid "Unknown error"
-msgstr "অজানা তà§à¦°à§à¦Ÿà¦¿"
+msgid "Unexpected error in waitpid() (%s)"
+msgstr "waitpid() (%s) তে অনাকাঙà§à¦–িত তà§à¦°à§à¦Ÿà¦¿"
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
@@ -889,7 +296,7 @@ msgid "Couldn't parse public SSH key"
msgstr "পাবলিক SSH কী পারà§à¦¸ করা যায়নি"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "আন-লক করতে বà§à¦¯à¦¬à¦¹à§ƒà¦¤ পাসওয়ারà§à¦¡: %s"
@@ -904,7 +311,6 @@ msgid "Unlock Login Keyring"
msgstr "কী-রিং আনলক"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
-#| msgid "Enter password for to unlock your login keyring"
msgid "Enter password to unlock your login keyring"
msgstr "লগিন কী-রিং আন-লক করতে আপনার পাসওয়ারà§à¦¡ লিখà§à¦¨"
@@ -913,8 +319,8 @@ msgid ""
"The password you use to log in to your computer no longer matches that of "
"your login keyring."
msgstr ""
-"কমà§à¦ªà¦¿à¦‰à¦Ÿà¦¾à¦°à§‡ লগইনের জনà§à¦¯ যে পাসওয়ারà§à¦¡à¦Ÿà¦¿ দিয়েছেন তা আপনার লগিন কী-রিং à¦à¦° সাথে "
-"মিলে না।"
+"কমà§à¦ªà¦¿à¦‰à¦Ÿà¦¾à¦°à§‡ লগইনের জনà§à¦¯ যে পাসওয়ারà§à¦¡à¦Ÿà¦¿ দিয়েছেন তা আপনার লগিন কী-রিং à¦à¦° সাথে মিলে "
+"না।"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
msgid ""
@@ -952,31 +358,39 @@ msgstr "পাবলিক কী আনলক"
msgid "Unlock"
msgstr "আনলক"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "পà§à¦°à¦¾à¦‡à¦­à§‡à¦Ÿ কী আনলক করতে পাসওয়ারà§à¦¡ লিখà§à¦¨"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ আন-লক করার জনà§à¦¯ পাসওয়ারà§à¦¡ লিখà§à¦¨"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "পাবলিক কী আনলক করতে পাসওয়ারà§à¦¡ লিখà§à¦¨"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "আনলক করতে পাসওয়ারà§à¦¡ লিখà§à¦¨"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
msgid "An application wants access to the private key '%s', but it is locked"
-msgstr ""
-"à¦à¦•à¦Ÿà¦¿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ %s পà§à¦°à¦¾à¦‡à¦­à§‡à¦Ÿ কী বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে চাচà§à¦›à§‡, কিনà§à¦¤à§ বরà§à¦¤à¦®à¦¾à¦¨à§‡ à¦à¦Ÿà¦¿ লক"
+msgstr "à¦à¦•à¦Ÿà¦¿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ %s পà§à¦°à¦¾à¦‡à¦­à§‡à¦Ÿ কী বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে চাচà§à¦›à§‡, কিনà§à¦¤à§ বরà§à¦¤à¦®à¦¾à¦¨à§‡ à¦à¦Ÿà¦¿ লক"
#. TRANSLATORS: The certificate is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
#, c-format
msgid "An application wants access to the certificate '%s', but it is locked"
-msgstr ""
-"à¦à¦•à¦Ÿà¦¿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨, %s সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ বরà§à¦¤à¦®à¦¾à¦¨à§‡ à¦à¦Ÿà¦¿ "
-"লক"
+msgstr "à¦à¦•à¦Ÿà¦¿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨, %s সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ বরà§à¦¤à¦®à¦¾à¦¨à§‡ à¦à¦Ÿà¦¿ লক"
#. TRANSLATORS: The public key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
#, c-format
msgid "An application wants access to the public key '%s', but it is locked"
-msgstr ""
-"à¦à¦•à¦Ÿà¦¿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨, %s পাবলিক-কী বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে চাচà§à¦›à§‡, কিনà§à¦¤à§ বরà§à¦¤à¦®à¦¾à¦¨à§‡ à¦à¦Ÿà¦¿ লক"
+msgstr "à¦à¦•à¦Ÿà¦¿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨, %s পাবলিক-কী বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে চাচà§à¦›à§‡, কিনà§à¦¤à§ বরà§à¦¤à¦®à¦¾à¦¨à§‡ à¦à¦Ÿà¦¿ লক"
#. TRANSLATORS: The object '%s' is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
@@ -999,8 +413,8 @@ msgid ""
"An application wants access to the certificate/key storage '%s', but it is "
"locked"
msgstr ""
-"à¦à¦•à¦Ÿà¦¿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨, %s সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ/কী সংগà§à¦°à¦¹à¦¸à§à¦¥à¦² বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে চাচà§à¦›à§‡, কিনà§à¦¤à§ "
-"বরà§à¦¤à¦®à¦¾à¦¨à§‡ à¦à¦Ÿà¦¿ লক"
+"à¦à¦•à¦Ÿà¦¿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨, %s সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ/কী সংগà§à¦°à¦¹à¦¸à§à¦¥à¦² বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে চাচà§à¦›à§‡, কিনà§à¦¤à§ বরà§à¦¤à¦®à¦¾à¦¨à§‡ "
+"à¦à¦Ÿà¦¿ লক"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
msgid "New Password Required"
@@ -1016,16 +430,14 @@ msgid ""
"In order to prepare '%s' for storage of certificates or keys, a password is "
"required"
msgstr ""
-"সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ অথবা কী সংগà§à¦°à¦¹à¦¸à§à¦¥à¦²à§‡à¦° জনà§à¦¯ '%s' পà§à¦°à¦¸à§à¦¤à§à¦¤ করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ à¦à¦•à¦Ÿà¦¿ "
-"পাসওয়ারà§à¦¡ দেওয়া আবশà§à¦¯à¦•"
+"সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ অথবা কী সংগà§à¦°à¦¹à¦¸à§à¦¥à¦²à§‡à¦° জনà§à¦¯ '%s' পà§à¦°à¦¸à§à¦¤à§à¦¤ করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ à¦à¦•à¦Ÿà¦¿ পাসওয়ারà§à¦¡ "
+"দেওয়া আবশà§à¦¯à¦•"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
-#| msgid "Change Keyring Password"
msgid "Change Password"
msgstr "কী à¦à¦° পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
-#| msgid "New password required for secure storage"
msgid "Change password for secure storage"
msgstr "সংগà§à¦°à¦¹à¦¸à§à¦¥à¦² নিরাপদ রাখতে পাসওয়ারà§à¦¡ দেওয়া আবশà§à¦¯à¦•"
@@ -1049,11 +461,11 @@ msgstr "কমানà§à¦¡:"
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:597
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "à¦à¦¨à¦•à§à¦°à¦¿à¦ªà¦¶à¦¨ ছাড়া পাসওয়ারà§à¦¡ সংরকà§à¦·à¦£ করা হবে কি?"
-#: ../ui/gku-prompt-tool.c:598
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1063,15 +475,15 @@ msgstr ""
"করা সমà§à¦­à¦¬ হবে না। আপনার ফাইলগà§à¦²à§‹ পড়তে অনà§à¦®à§‹à¦¦à¦¿à¦¤ যে কোনো বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ দà§à¦¬à¦¾à¦°à¦¾ à¦à¦‡à¦—à§à¦²à§‹ "
"পà§à¦°à§Ÿà§‹à¦— করা সমà§à¦­à¦¬ হবে।"
-#: ../ui/gku-prompt-tool.c:605
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "অনিরাপদ সংগà§à¦°à¦¹à¦¸à§à¦¥à¦² বà§à¦¯à¦¬à¦¹à¦¾à¦° করা হবে"
-#: ../ui/gku-prompt-tool.c:643
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "পাসওয়ারà§à¦¡à§‡ গরমিল।"
-#: ../ui/gku-prompt-tool.c:653
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "পাসওয়ারà§à¦¡ ফাà¦à¦•à¦¾ রাখা যাবে না"
@@ -1110,108 +522,3 @@ msgstr "পà§à¦°à§‹à¦¨à§‹ পাসওয়ারà§à¦¡: (_O)"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "পাসওয়ারà§à¦¡: (_P)"
-
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "à¦à¦‡ অপশনের সাহাযà§à¦¯à§‡ জিনোম-কীরিং ডেমনের মধà§à¦¯à§‡ PKCS#11 সামগà§à¦°à§€ সকà§à¦°à¦¿à§Ÿ করা হবে। "
-#~ "জিনোম-কীরিং-ডেইমন আরমà§à¦­à§‡à¦° সময় (অরà§à¦¥à¦¾à§Ž, বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ লগ-ইন করার সময়) à¦à¦Ÿà¦¿ পà§à¦°à§Ÿà§‹à¦— "
-#~ "করা হবে। কমানà§à¦¡-লাইন থেকে পà§à¦°à¦¯à§‹à¦œà§à¦¯ কিছৠআরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ à¦à¦‡ ডেমনের বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° জনà§à¦¯ উলà§à¦²à§‡à¦– "
-#~ "করা হলে à¦à¦‡ বৈশিষà§à¦Ÿà§à¦¯ উপেকà§à¦·à¦¾ করা যাবে।"
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "à¦à¦‡ অপশনের সাহাযà§à¦¯à§‡ জিনোম-কীরিং ডেমনের মধà§à¦¯à§‡ SSH à¦à¦œà§‡à¦¨à§à¦Ÿ সকà§à¦°à¦¿à§Ÿ করা হবে। জিনোম-"
-#~ "কীরিং-ডেমন আরমà§à¦­à§‡à¦° সময় (অরà§à¦¥à¦¾à§Ž, বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ লগ-ইন করার সময়) à¦à¦Ÿà¦¿ পà§à¦°à§Ÿà§‹à¦— করা "
-#~ "হবে। কমানà§à¦¡-লাইন থেকে পà§à¦°à¦¯à§‹à¦œà§à¦¯ কিছৠআরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ à¦à¦‡ ডেমনের বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° জনà§à¦¯ উলà§à¦²à§‡à¦– করা "
-#~ "হলে à¦à¦‡ বৈশিষà§à¦Ÿà§à¦¯ উপেকà§à¦·à¦¾ করা যাবে।"
-
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "à¦à¦‡ অপশনের সাহাযà§à¦¯à§‡ জিনোম-কীরিং ডেমনের মধà§à¦¯à§‡ গোপন সারà§à¦­à¦¿à¦¸ সামগà§à¦°à§€ সকà§à¦°à¦¿à§Ÿ করা "
-#~ "হবে। জিনোম-সেশন আরমà§à¦­à§‡à¦° সময় পà§à¦°à¦­à¦¾à¦¬ (অরà§à¦¥à¦¾à§Ž, বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ লগ-ইন করার সময়) পà§à¦°à§Ÿà§‹à¦— "
-#~ "করা হবে। কমানà§à¦¡-লাইন থেকে পà§à¦°à¦¯à§‹à¦œà§à¦¯ কিছৠআরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ à¦à¦‡ ডেমনের বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° জনà§à¦¯ উলà§à¦²à§‡à¦– "
-#~ "করা হলে à¦à¦‡ বৈশিষà§à¦Ÿà§à¦¯ উপেকà§à¦·à¦¾ করা যেতে পারে।"
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "জিনোম-কীরিং PKCS#11 সামগà§à¦°à§€ সকà§à¦°à¦¿à§Ÿ কি না।"
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "জিনোম-কীরিং SSH à¦à¦œà§‡à¦¨à§à¦Ÿ সকà§à¦°à¦¿à§Ÿ কি না।"
-
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr "জিনোম-কীরিং SSH à¦à¦œà§‡à¦¨à§à¦Ÿ সকà§à¦°à¦¿à§Ÿ কি না।"
-
-#~ msgid "Email"
-#~ msgstr "ইমেইল"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿà§‡à¦° অংশ নয়</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>অজানা</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿà§‡à¦° অংশ নয়>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>ফিংগারপà§à¦°à¦¿à¦¨à§à¦Ÿ</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>পà§à¦°à¦¦à¦¾à¦¨ করেছেন</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>চিহà§à¦¨à¦¿à¦¤ পà§à¦°à¦¾à¦ªà¦•à§‡à¦° জনà§à¦¯ পà§à¦°à¦¦à¦¾à¦¨ করা হয়েছে</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>নিমà§à¦¨à¦²à¦¿à¦–িত কাজের জনà§à¦¯ à¦à¦‡ সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ পরীকà§à¦·à¦¿à¦¤ হয়েছে:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>বৈধতা</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "সাধারণ নাম (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "ইমেইল পà§à¦°à¦¾à¦ªà§à¦¤à¦¿à¦° সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "ইমেইল সà§à¦¬à¦¾à¦•à§à¦·à¦°à§‡à¦° সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ"
-
-#~ msgid "Issued On"
-#~ msgstr "পà§à¦°à¦¦à¦¾à¦¨à§‡à¦° তারিখ"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "MD5 ফিংগারপà§à¦°à¦¿à¦¨à§à¦Ÿ"
-
-#~ msgid "Organization (O)"
-#~ msgstr "পà§à¦°à¦¤à¦¿à¦·à§à¦ à¦¾à¦¨ (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "পà§à¦°à¦¾à¦¤à¦¿à¦·à§à¦ à¦¾à¦¨à¦¿à¦• বিভাগ (OU)"
-
-#~ msgid "SHA1 Fingerprint"
-#~ msgstr "SHA1 ফিংগারপà§à¦°à¦¿à¦¨à§à¦Ÿ"
-
-#~ msgid "SSL Client Certificate"
-#~ msgstr "SSL কà§à¦²à¦¾à§Ÿà§‡à¦¨à§à¦Ÿ সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ"
-
-#~ msgid "SSL Server Certificate"
-#~ msgstr "SSL সারà§à¦­à¦¾à¦° সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr "<span size='large' weight='bold'>সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ ও কী ইমà§à¦ªà§‹à¦°à§à¦Ÿ করà§à¦¨</span>"
-
-#~ msgid "Automatically unlock secure storage when I log in."
-#~ msgstr "লগ-ইন করার সময় সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦°à§‚পে নিরাপদ সংগà§à¦°à¦¸à§à¦¥à¦² আন-লক করা হবে।"
diff --git a/po/bn_IN.po b/po/bn_IN.po
index 625e8cd5..40c740e9 100644
--- a/po/bn_IN.po
+++ b/po/bn_IN.po
@@ -8,11 +8,12 @@
msgid ""
msgstr ""
"Project-Id-Version: bn_IN\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-keyring&component=general\n"
-"POT-Creation-Date: 2009-08-26 19:44+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2009-08-28 12:33+0530\n"
"Last-Translator: Runa Bhattacharjee <runab@redhat.com>\n"
"Language-Team: Bengali INDIA <anubad@lists.ankur.org.in>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -20,620 +21,123 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"\n"
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:228
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in the default keyring."
-msgstr ""
-"'%s' (%s) অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨, ডিফলà§à¦Ÿ কি-রিং-ঠঅবসà§à¦¥à¦¿à¦¤ '<object prop='name'/>'-র "
-"পাসওয়ারà§à¦¡à¦Ÿà¦¿ বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•à¥¤"
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:232
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in %s."
-msgstr ""
-"'%s' (%s) অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨, %s-ঠঅবসà§à¦¥à¦¿à¦¤ '<object prop='name'/>'-র পাসওয়ারà§à¦¡à¦Ÿà¦¿ "
-"বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•à¥¤"
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:238 ../daemon/gkr-daemon-ops.c:248
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in the default keyring."
-msgstr ""
-"'%s' অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨, ডিফলà§à¦Ÿ কি-রিং-ঠঅবসà§à¦¥à¦¿à¦¤ '<object prop='name'/>'-র পাসওয়ারà§à¦¡à¦Ÿà¦¿ "
-"বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•à¥¤"
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:242 ../daemon/gkr-daemon-ops.c:252
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in %s."
-msgstr ""
-"'%s' অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ %s-ঠঅবসà§à¦¥à¦¿à¦¤ '<object prop='name'/>'-র পাসওয়ারà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে "
-"ইচà§à¦›à§à¦•à¥¤"
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:258
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in the default keyring."
-msgstr ""
-"à¦à¦•à¦Ÿà¦¿ অজানা অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ ডিফলà§à¦Ÿ কি-রিং-ঠঅবসà§à¦¥à¦¿à¦¤ '<object prop='name'/>'-র "
-"পাসওয়ারà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•à¥¤"
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:261
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in %s."
-msgstr ""
-"à¦à¦•à¦Ÿà¦¿ অজানা অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ %s-ঠঅবসà§à¦¥à¦¿à¦¤ '<object prop='name'/>'-র পাসওয়ারà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° "
-"করতে ইচà§à¦›à§à¦•à¥¤"
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:267
-msgid "Allow access"
-msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° অনà§à¦®à¦¤à¦¿ পà§à¦°à¦¦à¦¾à¦¨ করা হবে"
-
-#: ../daemon/gkr-daemon-ops.c:267
-msgid "Allow application access to keyring?"
-msgstr "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨à¦•à§‡ কি-রিং বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° অনà§à¦®à¦¤à¦¿ পà§à¦°à¦¦à¦¾à¦¨ করা হবে কি?"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:309
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
-msgstr ""
-"'%s' (%s) অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ ডিফলà§à¦Ÿ কি-রিং বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ তা বরà§à¦¤à¦®à¦¾à¦¨à§‡ লক করা "
-"আছে"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:314
-#, c-format
-msgid "The application '%s' (%s) wants access to the keyring '%s', but it is locked"
-msgstr "'%s' (%s) অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ '%s' কি-রিং বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ তা বরà§à¦¤à¦®à¦¾à¦¨à§‡ লক করা আছে"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:321 ../daemon/gkr-daemon-ops.c:333
-#, c-format
-msgid "The application '%s' wants access to the default keyring, but it is locked"
-msgstr "'%s' অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ ডিফলà§à¦Ÿ কি-রিং বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ তা বরà§à¦¤à¦®à¦¾à¦¨à§‡ লক করা আছে"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:326 ../daemon/gkr-daemon-ops.c:339
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
-msgstr "'%s' অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ '%s' কি-রিং বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ তা বরà§à¦¤à¦®à¦¾à¦¨à§‡ লক করা আছে"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:346
-#, c-format
-msgid "An unknown application wants access to the default keyring, but it is locked"
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
msgstr ""
-"à¦à¦•à¦Ÿà¦¿ অজানা অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ ডিফলà§à¦Ÿ কি-রিং বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ তা বরà§à¦¤à¦®à¦¾à¦¨à§‡ লক করা "
-"আছে"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:351
-#, c-format
-msgid "An unknown application wants access to the keyring '%s', but it is locked"
-msgstr "à¦à¦•à¦Ÿà¦¿ অজানা অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ %s কি-রিং বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ তা বরà§à¦¤à¦®à¦¾à¦¨à§‡ লক করা আছে"
-
-#: ../daemon/gkr-daemon-ops.c:358
-msgid "Enter password for default keyring to unlock"
-msgstr "ডিফলà§à¦Ÿ কি-রিং আনলক করতে পাসওয়ারà§à¦¡ লিখà§à¦¨"
-
-#: ../daemon/gkr-daemon-ops.c:360
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "'%s' কি-রিং আনলক করতে পাসওয়ারà§à¦¡ লিখà§à¦¨"
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:364
-msgid "Unlock Keyring"
-msgstr "কি-রিং আনলক করà§à¦¨"
-
-#: ../daemon/gkr-daemon-ops.c:376
-msgid "Automatically unlock this keyring when I log in."
-msgstr "লগ-ইন করার সময় সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦°à§‚পে à¦à¦‡ কি-রিং আন-লক করা হবে।"
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:413
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
-msgstr ""
-"'%s' (%s) অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ '%s' নামক à¦à¦•à¦Ÿà¦¿ নতà§à¦¨ কি-রিং তৈরি করতে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ করà§à¦®à§‡ "
-"বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করা আবশà§à¦¯à¦•à¥¤"
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:418
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr ""
-"'%s' (%s) অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦à¦•à¦Ÿà¦¿ ডিফলà§à¦Ÿ কি-রিং তৈরি করতে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ করà§à¦®à§‡ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ "
-"পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করা আবশà§à¦¯à¦•à¥¤"
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:425 ../daemon/gkr-daemon-ops.c:437
-#, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
-msgstr ""
-"'%s' অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ '%s' নামক à¦à¦•à¦Ÿà¦¿ নতà§à¦¨ কি-রিং তৈরি করতে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ করà§à¦®à§‡ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ "
-"পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করা আবশà§à¦¯à¦•à¥¤"
+#: ../daemon/dbus/gkd-secret-change.c:86
+msgid "Change Keyring Password"
+msgstr "কি-রিং-র পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨ করà§à¦¨"
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:430 ../daemon/gkr-daemon-ops.c:442
-#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr ""
-"'%s' অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦à¦•à¦Ÿà¦¿ নতà§à¦¨ ডিফলà§à¦Ÿ কি-রিং তৈরি করতে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ করà§à¦®à§‡ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ "
-"পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করা আবশà§à¦¯à¦•à¥¤"
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "'%s' কি-রিং-র জনà§à¦¯ নতà§à¦¨ পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨à¥¤"
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:449
-#, c-format
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
msgstr ""
-"à¦à¦•à¦Ÿà¦¿ অজানা অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ '%s' নামক à¦à¦•à¦Ÿà¦¿ নতà§à¦¨ কি-রিং তৈরি করতে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ করà§à¦®à§‡ "
+"à¦à¦•à¦Ÿà¦¿ অজানা অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ '%s' কি-রিং-র পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨ করতে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ করà§à¦®à§‡ "
"বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করা আবশà§à¦¯à¦•à¥¤"
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:454
-#, c-format
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr ""
-"à¦à¦•à¦Ÿà¦¿ অজানা অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦à¦•à¦Ÿà¦¿ নতà§à¦¨ ডিফলà§à¦Ÿ কি-রিং তৈরি করতে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ করà§à¦®à§‡ "
-"বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করা আবশà§à¦¯à¦•à¥¤"
+#: ../daemon/dbus/gkd-secret-change.c:111
+#, fuzzy
+msgid "The original password was incorrect"
+msgstr "পাসওয়ারà§à¦¡ অথবা PIN সঠিক নয়"
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:460
+#: ../daemon/dbus/gkd-secret-create.c:83
msgid "New Keyring Password"
msgstr "নতà§à¦¨ কি-রিং পাসওয়ারà§à¦¡"
-#: ../daemon/gkr-daemon-ops.c:461
+#: ../daemon/dbus/gkd-secret-create.c:84
msgid "Choose password for new keyring"
msgstr "নতà§à¦¨ কি-রিং-র জনà§à¦¯ পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨"
-#: ../daemon/gkr-daemon-ops.c:508
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-"'%s' (%s) অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ '%s' কি-রিং-র পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨ করতে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ করà§à¦®à§‡ "
-"বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করা আবশà§à¦¯à¦•à¥¤"
-
-#: ../daemon/gkr-daemon-ops.c:512
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
-msgstr ""
-"'%s' (%s) অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ ডিফলà§à¦Ÿ কি-রিং-র পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨ করতে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ করà§à¦®à§‡ "
-"বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করা আবশà§à¦¯à¦•à¥¤"
-
-#: ../daemon/gkr-daemon-ops.c:518 ../daemon/gkr-daemon-ops.c:528
-#, c-format
+#: ../daemon/dbus/gkd-secret-create.c:86
+#, fuzzy, c-format
msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
-"'%s' অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ '%s' কি-রিং-র পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨ করতে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ করà§à¦®à§‡ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ "
-"পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করা আবশà§à¦¯à¦•à¥¤"
-
-#: ../daemon/gkr-daemon-ops.c:522 ../daemon/gkr-daemon-ops.c:532
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-"'%s' অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ ডিফলà§à¦Ÿ কি-রিং-র পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨ করতে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ করà§à¦®à§‡ "
-"বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করা আবশà§à¦¯à¦•à¥¤"
-
-#: ../daemon/gkr-daemon-ops.c:538
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-"à¦à¦•à¦Ÿà¦¿ অজানা অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ '%s' কি-রিং-র পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨ করতে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ করà§à¦®à§‡ "
-"বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করা আবশà§à¦¯à¦•à¥¤"
-
-#: ../daemon/gkr-daemon-ops.c:542
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-"à¦à¦•à¦Ÿà¦¿ অজানা অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ ডিফলà§à¦Ÿ কি-রিং-র পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨ করতে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ করà§à¦®à§‡ "
+"à¦à¦•à¦Ÿà¦¿ অজানা অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ '%s' নামক à¦à¦•à¦Ÿà¦¿ নতà§à¦¨ কি-রিং তৈরি করতে ইচà§à¦›à§à¦•à¥¤ à¦à¦‡ করà§à¦®à§‡ "
"বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করা আবশà§à¦¯à¦•à¥¤"
-#: ../daemon/gkr-daemon-ops.c:552
-#, c-format
-#| msgid "Choose a new password for the '%s' keyring. "
-msgid "Choose a new password for the '%s' keyring."
-msgstr "'%s' কি-রিং-র জনà§à¦¯ নতà§à¦¨ পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨à¥¤"
-
-#: ../daemon/gkr-daemon-ops.c:554
-#, c-format
-#| msgid "Choose a new password for the default keyring. "
-msgid "Choose a new password for the default keyring."
-msgstr "ডিফলà§à¦Ÿ কি-রিং-র জনà§à¦¯ নতà§à¦¨ পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨à¥¤"
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:558
-msgid "Change Keyring Password"
-msgstr "কি-রিং-র পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨ করà§à¦¨"
-
-#: ../daemon/gkr-daemon-ops.c:631
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-msgstr ""
-"'%s' (%s) অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦à¦•à¦Ÿà¦¿ পাসওয়ারà§à¦¡ সংরকà§à¦·à¦£ করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ কোনো ডিফলà§à¦Ÿ কি-রিং "
-"উপসà§à¦¥à¦¿à¦¤ নেই। নতà§à¦¨ কি-রিং নিরà§à¦®à¦¾à¦£à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করা আবশà§à¦¯à¦•à¥¤"
-
-#: ../daemon/gkr-daemon-ops.c:635 ../daemon/gkr-daemon-ops.c:639
-#, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-msgstr ""
-"'%s' অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦à¦•à¦Ÿà¦¿ পাসওয়ারà§à¦¡ সংরকà§à¦·à¦£ করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ কোনো ডিফলà§à¦Ÿ কি-রিং "
-"উপসà§à¦¥à¦¿à¦¤ নেই। নতà§à¦¨ কি-রিং নিরà§à¦®à¦¾à¦£à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করা আবশà§à¦¯à¦•à¥¤"
-
-#: ../daemon/gkr-daemon-ops.c:643
-#, c-format
-msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-msgstr ""
-"à¦à¦•à¦Ÿà¦¿ অজানা অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ à¦à¦•à¦Ÿà¦¿ পাসওয়ারà§à¦¡ সংরকà§à¦·à¦£ করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ কোনো ডিফলà§à¦Ÿ কি-রিং "
-"উপসà§à¦¥à¦¿à¦¤ নেই। নতà§à¦¨ কি-রিং নিরà§à¦®à¦¾à¦£à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করা আবশà§à¦¯à¦•à¥¤"
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:648
-msgid "Create Default Keyring"
-msgstr "ডিফলà§à¦Ÿ কি-রিং তৈরি করà§à¦¨"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+#, fuzzy
+msgid "Certificate and Key Storage"
+msgstr "সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ/কি সংগà§à¦°à¦¹à¦¸à§à¦¥à¦² আন-লক করà§à¦¨"
-#: ../daemon/gkr-daemon-ops.c:648
-msgid "Choose password for default keyring"
-msgstr "ডিফলà§à¦Ÿ কি-রিং-র জনà§à¦¯ পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+#, fuzzy
+msgid "GNOME Keyring: PKCS#11 Component"
+msgstr "GNOME Keyring ডেমন"
-#: ../daemon/data/gnome-keyring.schemas.in.h:1
-msgid ""
-"This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-"only takes effect as gnome-keyring-daemon starts, (ie: when the user logs "
-"in). This setting may be overridden when certain command line arguments are "
-"passed to the daemon."
-msgstr ""
-"à¦à¦‡ বিকলà§à¦ªà§‡à¦° সাহাযà§à¦¯à§‡ gnome-keyring ডেমনের মধà§à¦¯à§‡ PKCS#11 সামগà§à¦°à§€ সকà§à¦°à¦¿à§Ÿ করা হবে। "
-"gnome-keyring-daemon আরমà§à¦­à§‡à¦° সময় (অরà§à¦¥à¦¾à§Ž, বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ লগ-ইন করার সময়) à¦à¦Ÿà¦¿ পà§à¦°à§Ÿà§‹à¦— "
-"করা হবে। কমানà§à¦¡-লাইন থেকে পà§à¦°à¦¯à§‹à¦œà§à¦¯ কিছৠআরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ à¦à¦‡ ডেমনের বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° জনà§à¦¯ উলà§à¦²à§‡à¦– করা "
-"হলে à¦à¦‡ বৈশিষà§à¦Ÿà§à¦¯ উপেকà§à¦·à¦¾ করা যাবে।"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: Secret Service"
+msgstr "GNOME Keyring ডেমন"
-#: ../daemon/data/gnome-keyring.schemas.in.h:2
-msgid ""
-"This option enables the SSH agent in the gnome-keyring daemon. It only takes "
-"effect as gnome-keyring-daemon starts, (ie: when the user logs in). This "
-"setting may be overridden when certain command line arguments are passed to "
-"the daemon."
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
msgstr ""
-"à¦à¦‡ বিকলà§à¦ªà§‡à¦° সাহাযà§à¦¯à§‡ gnome-keyring ডেমনের মধà§à¦¯à§‡ SSH agent সকà§à¦°à¦¿à§Ÿ করা হবে। gnome-"
-"keyring-daemon আরমà§à¦­à§‡à¦° সময় (অরà§à¦¥à¦¾à§Ž, বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ লগ-ইন করার সময়) à¦à¦Ÿà¦¿ পà§à¦°à§Ÿà§‹à¦— করা "
-"হবে। কমানà§à¦¡-লাইন থেকে পà§à¦°à¦¯à§‹à¦œà§à¦¯ কিছৠআরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ à¦à¦‡ ডেমনের বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° জনà§à¦¯ উলà§à¦²à§‡à¦– করা হলে "
-"à¦à¦‡ বৈশিষà§à¦Ÿà§à¦¯ উপেকà§à¦·à¦¾ করা যাবে।"
-#: ../daemon/data/gnome-keyring.schemas.in.h:3
-msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-msgstr "gnome-keyring PKCS#11 সামগà§à¦°à§€ সকà§à¦°à¦¿à§Ÿ কি না।"
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:4
-msgid "Whether the gnome-keyring SSH agent is enabled."
-msgstr "gnome-keyring SSH agent সকà§à¦°à¦¿à§Ÿ কি না।"
-
-#: ../daemon/gnome-keyring-daemon.desktop.in.in.h:1
-msgid "GNOME Keyring Daemon"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: SSH Agent"
msgstr "GNOME Keyring ডেমন"
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:99
-msgid "Unlock Login Keyring"
-msgstr "কি-রিং আনলক করà§à¦¨"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:99
-msgid "Enter login password to unlock keyring"
-msgstr "কি-রিং আন-লক করতে বà§à¦¯à¦¬à¦¹à§ƒà¦¤ পাসওয়ারà§à¦¡ লিখà§à¦¨"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:101
-msgid ""
-"Your login keyring was not automatically unlocked when you logged into this "
-"computer."
-msgstr "à¦à¦‡ কমà§à¦ªà¦¿à¦‰à¦Ÿà¦¾à¦°à§‡ লগ-ইন করার সময়, আপনার লগ-ইন কি-রিং সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦­à¦¾à¦¬à§‡ আন-লক করা হয়নি"
-
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:125
-msgid "Create Login Keyring"
-msgstr "লগ-ইন কি-রিং তৈরি করà§à¦¨"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:125
-msgid "Enter your login password"
-msgstr "লগ-ইন পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨ লিখà§à¦¨"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:127
-msgid ""
-"Your login keyring was not automatically created when you logged into this "
-"computer. It will now be created."
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
msgstr ""
-"à¦à¦‡ কমà§à¦ªà¦¿à¦‰à¦Ÿà¦¾à¦°à§‡ লগ-ইন করার সময়, আপনার লগ-ইন কি-রিং সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦­à¦¾à¦¬à§‡ নিরà§à¦®à¦¾à¦£ করা "
-"হয়নি। à¦à¦Ÿà¦¿ à¦à¦–ন নিরà§à¦®à¦¾à¦£ করা হবে।"
-
-#: ../daemon/keyrings/gkr-keyring.c:587
-#, c-format
-msgid "Unlock password for %s keyring"
-msgstr "%s কি-রিং আন-লক করতে বà§à¦¯à¦¬à¦¹à§ƒà¦¤ পাসওয়ারà§à¦¡"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:98
-msgid "Unlock private key"
-msgstr "গোপনীয়-কি আন-লক করà§à¦¨"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:100
-msgid "Unlock certificate"
-msgstr "সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ আন-লক করà§à¦¨"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:102
-msgid "Unlock public key"
-msgstr "সারà§à¦¬à¦œà¦¨à§€à¦¨-কি আন-লক করà§à¦¨"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:104
-msgid "Unlock"
-msgstr "আন-লক করà§à¦¨"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:113 ../gcr/gcr-importer.c:436
-msgid "Enter password to unlock the private key"
-msgstr "গোপনীয় কি আনলক করতে পাসওয়ারà§à¦¡ লিখà§à¦¨"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:115 ../gcr/gcr-importer.c:438
-msgid "Enter password to unlock the certificate"
-msgstr "সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ আন-লক করার জনà§à¦¯ পাসওয়ারà§à¦¡ লিখà§à¦¨"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:117
-msgid "Enter password to unlock the public key"
-msgstr "সারà§à¦¬à¦œà¦¨à§€à¦¨ কি আনলক করতে পাসওয়ারà§à¦¡ লিখà§à¦¨"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:119 ../gcr/gcr-importer.c:440
-msgid "Enter password to unlock"
-msgstr "আনলক করতে পাসওয়ারà§à¦¡ লিখà§à¦¨"
-
-#. TRANSLATORS: The private key is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:129
-#, c-format
-msgid "An application wants access to the private key '%s', but it is locked"
-msgstr "à¦à¦•à¦Ÿà¦¿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨, %s গোপনীয়-কি বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ বরà§à¦¤à¦®à¦¾à¦¨à§‡ à¦à¦Ÿà¦¿ লক করা আছে"
-
-#. TRANSLATORS: The certificate is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:132
-#, c-format
-msgid "An application wants access to the certificate '%s', but it is locked"
-msgstr "à¦à¦•à¦Ÿà¦¿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨, %s সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ বরà§à¦¤à¦®à¦¾à¦¨à§‡ à¦à¦Ÿà¦¿ লক করা আছে"
-
-#. TRANSLATORS: The public key is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:135
-#, c-format
-msgid "An application wants access to the public key '%s', but it is locked"
-msgstr "à¦à¦•à¦Ÿà¦¿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨, %s সারà§à¦¬à¦œà¦¨à§€à¦¨-কি বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ বরà§à¦¤à¦®à¦¾à¦¨à§‡ à¦à¦Ÿà¦¿ লক করা আছে"
-
-#. TRANSLATORS: The object '%s' is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:138
-#, c-format
-msgid "An application wants access to '%s', but it is locked"
-msgstr "à¦à¦•à¦Ÿà¦¿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨, %s বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ বরà§à¦¤à¦®à¦¾à¦¨à§‡ à¦à¦Ÿà¦¿ লক করা আছে"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:147
-msgid "Automatically unlock this private key when I log in."
-msgstr "লগ-ইন করার সময় সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦°à§‚পে à¦à¦‡ গোপনীয়-কি আন-লক করা হবে।"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:149
-msgid "Automatically unlock this certificate when I log in."
-msgstr "লগ-ইন করার সময় সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦°à§‚পে à¦à¦‡ সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ আন-লক করা হবে।"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:151
-msgid "Automatically unlock this public key when I log in."
-msgstr "লগ-ইন করার সময় সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦°à§‚পে à¦à¦‡ সারà§à¦¬à¦œà¦¨à§€à¦¨-কি আন-লক করা হবে।"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:153
-msgid "Automatically unlock this when I log in"
-msgstr "লগ-ইন করার সময় সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦°à§‚পে à¦à¦Ÿà¦¿ আন-লক করা হবে।"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: GPG Agent"
+msgstr "GNOME Keyring ডেমন"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:394
-msgid "Unlock certificate/key storage"
-msgstr "সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ/কি সংগà§à¦°à¦¹à¦¸à§à¦¥à¦² আন-লক করà§à¦¨"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+#, fuzzy
+msgid "GPG Password Agent"
+msgstr "নতà§à¦¨ পাসওয়ারà§à¦¡à§‡à¦° দৃà§à¦¤à¦¾"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:395
-msgid "Enter password to unlock the certificate/key storage"
-msgstr "সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ/কি সংগà§à¦°à¦¹à¦¸à§à¦¥à¦² আন-লক করার জনà§à¦¯ পাসওয়ারà§à¦¡ লিখà§à¦¨"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+#, fuzzy
+msgid "Unknown"
+msgstr "অজানা তà§à¦°à§à¦Ÿà¦¿"
-#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid ""
-"An application wants access to the certificate/key storage '%s', but it is "
-"locked"
+msgid "PGP Key: %s"
msgstr ""
-"à¦à¦•à¦Ÿà¦¿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨, %s সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ/কি সংগà§à¦°à¦¹à¦¸à§à¦¥à¦² বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ বরà§à¦¤à¦®à¦¾à¦¨à§‡ "
-"à¦à¦Ÿà¦¿ লক করা আছে"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:403
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:554
-msgid "Automatically unlock secure storage when I log in."
-msgstr "লগ-ইন করার সময় সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦°à§‚পে নিরাপদ সংগà§à¦°à¦¸à§à¦¥à¦² আন-লক করা হবে।"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:546
-msgid "New Password Required"
-msgstr "নতà§à¦¨ পাসওয়ারà§à¦¡ আবশà§à¦¯à¦•"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:547
-msgid "New password required for secure storage"
-msgstr "সংগà§à¦°à¦¹à¦¸à§à¦¥à¦² নিরাপদ রাখতে পাসওয়ারà§à¦¡ লেখা আবশà§à¦¯à¦•"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:549
-#, c-format
-msgid ""
-"In order to prepare '%s' for storage of certificates or keys, a password is "
-"required"
-msgstr "সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ ও কি সংগà§à¦°à¦¹à§‡à¦° জনà§à¦¯ '%s' পà§à¦°à¦¸à§à¦¤à§à¦¤ করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ à¦à¦•à¦Ÿà¦¿ পাসওয়ারà§à¦¡ লেখা আবশà§à¦¯à¦•"
-
-#: ../daemon/ui/gkr-ask-tool.c:230
-msgid ""
-"<b><big>Could not grab your mouse.</big></b>\n"
-"\n"
-"A malicious client may be eavesdropping on your session or you may have just "
-"clicked a menu or some application just decided to get focus.\n"
-"\n"
-"Try again."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-"<b><big>মাউসের উপর নিয়নà§à¦¤à§à¦°à¦£ করা সমà§à¦­à¦¬ হয়নি।</big></b>\n"
-"\n"
-"কোনো কà§à¦·à¦¤à¦¿à¦•à¦¾à¦°à§€ কà§à¦²à¦¾à§Ÿà§‡à¦¨à§à¦Ÿ সমà§à¦­à¦¬à¦¤ আপনার সেশান বিনা অধিকারে নিরীকà§à¦·à¦£ করছে অথবা সমà§à¦­à¦¬à¦¤ "
-"আপনি কোনো মেনৠকà§à¦²à¦¿à¦• করেছেন অথবা কোনো অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ নিজের উপর আকরà§à¦·à¦£ সৃষà§à¦Ÿà¦¿ করেছে।\n"
-"\n"
-"পà§à¦¨à¦°à¦¾à§Ÿ চেষà§à¦Ÿà¦¾ করà§à¦¨à¥¤"
-#: ../daemon/ui/gkr-ask-tool.c:239
-msgid ""
-"<b><big>Could not grab your keyboard.</big></b>\n"
-"\n"
-"A malicious client may be eavesdropping on your session or you may have just "
-"clicked a menu or some application just decided to get focus.\n"
-"\n"
-"Try again."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
msgstr ""
-"<b><big>কি-বোরà§à¦¡à§‡à¦° উপর নিয়নà§à¦¤à§à¦°à¦£ করা সমà§à¦­à¦¬ হয়নি।</big></b>\n"
-"\n"
-"কোনো কà§à¦·à¦¤à¦¿à¦•à¦¾à¦°à§€ কà§à¦²à¦¾à§Ÿà§‡à¦¨à§à¦Ÿ সমà§à¦­à¦¬à¦¤ আপনার সেশান বিনা অধিকারে নিরীকà§à¦·à¦£ করছে অথবা সমà§à¦­à¦¬à¦¤ "
-"আপনি কোনো মেনৠকà§à¦²à¦¿à¦• করেছেন অথবা কোনো অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ নিজের উপর আকরà§à¦·à¦£ সৃষà§à¦Ÿà¦¿ করেছে।\n"
-"\n"
-"পà§à¦¨à¦°à¦¾à§Ÿ চেষà§à¦Ÿà¦¾ করà§à¦¨à¥¤"
-
-#: ../daemon/ui/gkr-ask-tool.c:276
-msgid "Store passwords unencrypted?"
-msgstr "à¦à¦¨à¦•à§à¦°à¦¿à¦ªà¦¶à¦¨ বিনা পাসওয়ারà§à¦¡ সংরকà§à¦·à¦£ করা হবে কি?"
-#: ../daemon/ui/gkr-ask-tool.c:277
-msgid ""
-"By choosing to use a blank password, your stored passwords will not be "
-"safely encrypted. They will be accessible by anyone with access to your "
-"files."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-"ফাà¦à¦•à¦¾ পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨à§‡à¦° ফলে, আপনার সংরকà§à¦·à¦¿à¦¤ পাসওয়ারà§à¦¡à¦—à§à¦²à¦¿ নিরাপদভাবে à¦à¦¨à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ "
-"করা সমà§à¦­à¦¬ হবে না। আপনার ফাইলগà§à¦²à¦¿ পড়তে অনà§à¦®à§‹à¦¦à¦¿à¦¤ যে কোনো বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ দà§à¦¬à¦¾à¦°à¦¾ à¦à¦‡à¦—à§à¦²à¦¿ "
-"পà§à¦°à§Ÿà§‹à¦— করা সমà§à¦­à¦¬ হবে।"
-
-#: ../daemon/ui/gkr-ask-tool.c:284
-msgid "Use Unsafe Storage"
-msgstr "অনিরাপদ সংগà§à¦°à¦¹à¦¸à§à¦¥à¦² বà§à¦¯à¦¬à¦¹à¦¾à¦° করা হবে"
-
-#: ../daemon/ui/gkr-ask-tool.c:512
-msgid "_Location:"
-msgstr "অবসà§à¦¥à¦¾à¦¨: (_L)"
-
-#: ../daemon/ui/gkr-ask-tool.c:525
-msgid "_Old password:"
-msgstr "পà§à¦°à§‹à¦¨à§‹ পাসওয়ারà§à¦¡:(_O)"
-
-#: ../daemon/ui/gkr-ask-tool.c:545
-msgid "_Password:"
-msgstr "পাসওয়ারà§à¦¡:(_P)"
-
-#: ../daemon/ui/gkr-ask-tool.c:567
-msgid "_Confirm password:"
-msgstr "পাসওয়ারà§à¦¡ নিশà§à¦šà¦¿à¦¤ করà§à¦¨:(_C)"
-
-#: ../daemon/ui/gkr-ask-tool.c:587
-msgid "New password strength"
-msgstr "নতà§à¦¨ পাসওয়ারà§à¦¡à§‡à¦° দৃà§à¦¤à¦¾"
-
-#: ../daemon/ui/gkr-ask-tool.c:645
-msgid "Passwords do not match."
-msgstr "পাসওয়ারà§à¦¡à§‡ গরমিল।"
-
-#: ../daemon/ui/gkr-ask-tool.c:661
-msgid "Password cannot be blank"
-msgstr "পাসওয়ারà§à¦¡ ফাà¦à¦•à¦¾ রাখা যাবে না"
-
-#: ../daemon/ui/gkr-ask-tool.c:712
-msgid "_Deny"
-msgstr "পà§à¦°à¦¤à§à¦¯à¦¾à¦–à§à¦¯à¦¾à¦¨ করà§à¦¨ (_D)"
-
-#: ../daemon/ui/gkr-ask-tool.c:724
-msgid "C_reate"
-msgstr "নিরà§à¦®à¦¾à¦£ করà§à¦¨ (_r)"
-
-#: ../daemon/ui/gkr-ask-tool.c:728
-msgid "C_hange"
-msgstr "পরিবরà§à¦¤à¦¨ করà§à¦¨ (_h)"
-
-#: ../daemon/ui/gkr-ask-tool.c:732
-msgid "Allow _Once"
-msgstr "à¦à¦•à¦¬à¦¾à¦° বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° অনà§à¦®à¦¤à¦¿ পà§à¦°à¦¦à¦¾à¦¨ করা হবে (_O)"
-
-#: ../daemon/ui/gkr-ask-tool.c:736
-msgid "_Always Allow"
-msgstr "সরà§à¦¬à¦¦à¦¾ বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° অনà§à¦®à¦¤à¦¿ পà§à¦°à¦¦à¦¾à¦¨ করা হবে (_A)"
-
-#: ../daemon/util/gkr-location.c:234
-#, c-format
-msgid "Removable Disk: %s"
-msgstr "অপসারণযোগà§à¦¯ ডিসà§à¦•: %s"
-#: ../daemon/util/gkr-location.c:236
-msgid "Removable Disk"
-msgstr "অপসারণযোগà§à¦¯ ডিসà§à¦•"
-
-#: ../daemon/util/gkr-location.c:327 ../daemon/util/gkr-location.c:339
-msgid "Home"
-msgstr "বà§à¦¯à¦•à§à¦¤à¦¿à¦—ত ফোলà§à¦¡à¦¾à¦°"
-
-#: ../daemon/util/gkr-location.c:882 ../daemon/util/gkr-location.c:906
-msgid "The disk or drive this file is located on is not present"
-msgstr "ফাইল ধারণকারী ডিসà§à¦• অথবা ডà§à¦°à¦¾à¦‡à¦­ উপসà§à¦¥à¦¿à¦¤ নয়"
-
-#: ../daemon/util/gkr-location.c:914
-#, c-format
-msgid "Couldn't create directory: %s"
-msgstr "চিহà§à¦¨à¦¿à¦° ডিরেকà§à¦Ÿà¦°à¦¿ নিরà§à¦®à¦¾à¦£ করা যায়নি: %s"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
+msgstr ""
-#: ../daemon/util/gkr-location.c:948
-#, c-format
-msgid "Couldn't delete the file: %s"
-msgstr "চিহà§à¦¨à¦¿à¦¤ ফাইল মà§à¦›à§‡ ফেলা যায়নি: %s"
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
+msgstr ""
#: ../egg/egg-oid.c:41
msgid "Domain Component"
@@ -644,8 +148,8 @@ msgid "User ID"
msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° ID"
#: ../egg/egg-oid.c:46
-msgid "Email"
-msgstr "ই-মেইল"
+msgid "Email Address"
+msgstr ""
#: ../egg/egg-oid.c:54
msgid "Date of Birth"
@@ -675,8 +179,7 @@ msgstr "নাম"
msgid "Surname"
msgstr "পদবি"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-basics-widget.ui.h:18
-#: ../gcr/gcr-certificate-details-widget.c:322
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "কà§à¦°à¦®à¦¿à¦• সংখà§à¦¯à¦¾"
@@ -736,632 +239,300 @@ msgstr "ছদà§à¦®à¦¨à¦¾à¦®"
msgid "RSA"
msgstr "RSA"
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "RSA সহ MD2"
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "RSA সহ MD5"
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "RSA সহ SHA1"
-#: ../egg/egg-oid.c:107
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "DSA সহ SHA1"
-#: ../gcr/gcr-certificate-basics-widget.c:59
-msgid "<i>Not Part of Certificate</i>"
-msgstr "<i>সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿà§‡à¦° অংশ নয়</i>"
-
-#: ../gcr/gcr-certificate-basics-widget.c:80
-msgid "<i>unknown</i>"
-msgstr "<i>অজানা</i>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:1
-msgid "<Not Part of Certificate>"
-msgstr "<সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿà§‡à¦° অংশ নয়>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:2
-msgid "<b>Fingerprints</b>"
-msgstr "<b>ফিংগারপà§à¦°à¦¿à¦¨à§à¦Ÿ</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:3
-msgid "<b>Issued By</b>"
-msgstr "<b>জারি করেছেন</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:4
-msgid "<b>Issued To</b>"
-msgstr "<b>চিহà§à¦¨à¦¿à¦¤ পà§à¦°à¦¾à¦ªà¦•à§‡à¦° জনà§à¦¯ জারি করা হয়েছে</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:5
-msgid "<b>This certificate has been verified for the following uses:</b>"
-msgstr "<b>নিমà§à¦¨à¦²à¦¿à¦–িত কাজের জনà§à¦¯ à¦à¦‡ সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ পরীকà§à¦·à¦¿à¦¤ হয়েছে:</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:6
-msgid "<b>Validity</b>"
-msgstr "<b>বৈধতা</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:7
-msgid "Common Name (CN)"
-msgstr "সাধারণ নাম (CN)"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:8
-msgid "Email Recipient Certificate"
-msgstr "ই-মেইল পà§à¦°à¦¾à¦ªà§à¦¤à¦¿à¦° সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:9
-msgid "Email Signer Certificate"
-msgstr "ই-মেইল সà§à¦¬à¦¾à¦•à§à¦·à¦°à§‡à¦° সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:10
-msgid "Expires On"
-msgstr "মেয়াদপূরà§à¦¤à§€"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:11
-msgid "Issued On"
-msgstr "জারির তারিখ"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:12
-msgid "MD5 Fingerprint"
-msgstr "MD5 ফিংগারপà§à¦°à¦¿à¦¨à§à¦Ÿ"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:13
-msgid "Organization (O)"
-msgstr "পà§à¦°à¦¤à¦¿à¦·à§à¦ à¦¾à¦¨ (O)"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:14
-msgid "Organizational Unit (OU)"
-msgstr "পà§à¦°à¦¾à¦¤à¦¿à¦·à§à¦ à¦¾à¦¨à¦¿à¦• বিভাগ (OU)"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:15
-msgid "SHA1 Fingerprint"
-msgstr "SHA1 ফিংগারপà§à¦°à¦¿à¦¨à§à¦Ÿ"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+#, fuzzy
+msgid "Server Authentication"
+msgstr "SSL সারà§à¦­à¦¾à¦° সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:16
-msgid "SSL Client Certificate"
+#: ../egg/egg-oid.c:108
+#, fuzzy
+msgid "Client Authentication"
msgstr "SSL কà§à¦²à¦¾à§Ÿà§‡à¦¨à§à¦Ÿ সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:17
-msgid "SSL Server Certificate"
-msgstr "SSL সারà§à¦­à¦¾à¦° সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ"
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:207
-msgid "Extension"
-msgstr "পà§à¦°à¦¸à¦¾à¦°à¦£"
-
-#: ../gcr/gcr-certificate-details-widget.c:212
-msgid "Identifier"
-msgstr "সনাকà§à¦¤à¦•à¦¾à¦°à§€"
-
-#: ../gcr/gcr-certificate-details-widget.c:222
-msgid "Value"
-msgstr "মান"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "Critical"
-msgstr "গà§à¦°à§à¦¤à¦°"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "Yes"
-msgstr "হà§à¦¯à¦¾à¦"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "No"
-msgstr "না"
-
-#. The subject
-#: ../gcr/gcr-certificate-details-widget.c:303
-msgid "Subject Name"
-msgstr "পà§à¦°à¦¸à¦™à§à¦—ের নাম"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-details-widget.c:307
-msgid "Issuer Name"
-msgstr "নিরà§à¦®à¦¾à¦£à¦•à¦¾à¦°à§€ নাম"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-details-widget.c:311
-msgid "Issued Certificate"
-msgstr "জারি করা সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ"
-
-#: ../gcr/gcr-certificate-details-widget.c:316
-msgid "Version"
-msgstr "সংসà§à¦•à¦°à¦£"
-
-#: ../gcr/gcr-certificate-details-widget.c:329
-msgid "Not Valid Before"
-msgstr "চিহà§à¦¨à¦¿à¦¤ সময়ের পূরà§à¦¬à§‡ বৈধ নয়"
-
-#: ../gcr/gcr-certificate-details-widget.c:334
-msgid "Not Valid After"
-msgstr "চিহà§à¦¨à¦¿à¦¤ সময়ের পরে বৈধ নয়"
-
-#. Signature
-#: ../gcr/gcr-certificate-details-widget.c:339
-#: ../gcr/gcr-certificate-details-widget.c:355
-msgid "Signature"
-msgstr "সà§à¦¬à¦¾à¦•à§à¦·à¦°"
-
-#: ../gcr/gcr-certificate-details-widget.c:343
-msgid "Signature Algorithm"
-msgstr "সà§à¦¬à¦¾à¦•à§à¦·à¦°à§‡à¦° অà§à¦¯à¦¾à¦²à¦—োরিদম"
-
-#: ../gcr/gcr-certificate-details-widget.c:348
-msgid "Signature Parameters"
-msgstr "সà§à¦¬à¦¾à¦•à§à¦·à¦°à§‡à¦° পরামিতি"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-details-widget.c:359
-msgid "Public Key Info"
-msgstr "সারà§à¦¬à¦œà¦¨à§€à¦¨ কি সংকà§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯"
-
-#: ../gcr/gcr-certificate-details-widget.c:363
-msgid "Key Algorithm"
-msgstr "কি-র অà§à¦¯à¦¾à¦²à¦—োরিদম"
-
-#: ../gcr/gcr-certificate-details-widget.c:368
-msgid "Key Parameters"
-msgstr "কি-র পরামিতি"
-
-#: ../gcr/gcr-certificate-details-widget.c:375
-msgid "Key Size"
-msgstr "কি-র মাপ"
-
-#: ../gcr/gcr-certificate-details-widget.c:382 ../gcr/gcr-parser.c:202
-msgid "Public Key"
-msgstr "সারà§à¦¬à¦œà¦¨à§€à¦¨ কি"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-details-widget.c:386
-msgid "Fingerprints"
-msgstr "ফিংগারপà§à¦°à¦¿à¦¨à§à¦Ÿ"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-msgstr "<span size='large' weight='bold'>সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ ও কি ইমà§à¦ªà§‹à¦°à§à¦Ÿ করà§à¦¨</span>"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "চিহà§à¦¨à¦¿à¦¤ সà§à¦¥à¦¾à¦¨à§‡ ইমà§à¦ªà§‹à¦°à§à¦Ÿ করà§à¦¨:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "পাসওয়ারà§à¦¡:"
-
-#: ../gcr/gcr-importer.c:163 ../gcr/gcr-parser.c:1573 ../gp11/gp11-misc.c:98
-msgid "The operation was cancelled"
-msgstr "করà§à¦® বাতিল করা হয়েছে"
-
-#: ../gcr/gcr-importer.c:255
-#, c-format
-msgid "No location available to import to"
-msgstr "ইমà§à¦ªà§‹à¦°à§à¦Ÿ করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ কোনো সà§à¦¥à¦¾à¦¨ চিহà§à¦¨à¦¿à¦¤ হয়নি"
-
-#: ../gcr/gcr-importer.c:404
-msgid "Import Certificates/Keys"
-msgstr "সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ/কি ইমà§à¦ªà§‹à¦°à§à¦Ÿ করà§à¦¨"
-
-#: ../gcr/gcr-importer.c:411
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "ইমà§à¦ªà§‹à¦°à§à¦Ÿ করা সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ/কি সংরকà§à¦·à¦£à§‡à¦° জনà§à¦¯ à¦à¦•à¦Ÿà¦¿ সà§à¦¥à¦¾à¦¨ নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨à¥¤"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:449
-msgid "In order to import the private key, it must be unlocked"
-msgstr "গোপনীয় কি ইমà§à¦ªà§‹à¦°à§à¦Ÿ করতে হলে তা আন-লক করা আবশà§à¦¯à¦•"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:452
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ ইমà§à¦ªà§‹à¦°à§à¦Ÿ করতে হলে তা আন-লক করা আবশà§à¦¯à¦•"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:455
-msgid "In order to import the data, it must be unlocked"
-msgstr "তথà§à¦¯ ইমà§à¦ªà§‹à¦°à§à¦Ÿ করতে হলে তা আন-লক করা আবশà§à¦¯à¦•"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:460
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "'%s' গোপনীয় কি ইমà§à¦ªà§‹à¦°à§à¦Ÿ করতে হলে তা আন-লক করা আবশà§à¦¯à¦•"
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:463
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "'%s' সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ ইমà§à¦ªà§‹à¦°à§à¦Ÿ করতে হলে তা আন-লক করা আবশà§à¦¯à¦•"
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:466
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "'%s' ইমà§à¦ªà§‹à¦°à§à¦Ÿ করতে হলে তা আন-লক করা আবশà§à¦¯à¦•"
-
-#: ../gcr/gcr-parser.c:196
-msgid "Private Key"
-msgstr "গোপনীয় কি"
-
-#: ../gcr/gcr-parser.c:199
-msgid "Certificate"
-msgstr "সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ"
-
-#: ../gcr/gcr-parser.c:1576
-msgid "Unrecognized or unsupported data."
-msgstr "অপরিচিত অথবা অসমরà§à¦¥à¦¿à¦¤ তথà§à¦¯à¥¤"
-
-#: ../gcr/gcr-parser.c:1579
-msgid "Could not parse invalid or corrupted data."
-msgstr "অবৈধ অথবা কà§à¦·à¦¤à¦¿à¦—à§à¦°à¦¸à§à¦¤ তথà§à¦¯ পারà§à¦¸ করতে বà§à¦¯à¦°à§à¦¥à¥¤"
-
-#: ../gcr/gcr-parser.c:1582
-msgid "The data is locked"
-msgstr "তথà§à¦¯ লক করা রয়েছে"
-
-#: ../gp11/gp11-misc.c:101
-msgid "Insufficient memory available"
-msgstr "পরà§à¦¯à¦¾à¦ªà§à¦¤ মেমরি উপলবà§à¦§ নেই"
-
-#: ../gp11/gp11-misc.c:103
-msgid "The specified slot ID is not valid"
-msgstr "চিহà§à¦¨à¦¿à¦¤ সà§à¦²à¦Ÿ ID বৈধ নয়"
-
-#: ../gp11/gp11-misc.c:105
-msgid "Internal error"
-msgstr "অভà§à¦¯à¦¨à§à¦¤à¦°à§€à¦£ তà§à¦°à§à¦Ÿà¦¿"
-
-#: ../gp11/gp11-misc.c:107
-msgid "The operation failed"
-msgstr "করà§à¦® বà§à¦¯à¦°à§à¦¥"
-
-#: ../gp11/gp11-misc.c:109
-msgid "Invalid arguments"
-msgstr "অবৈধ আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ"
-
-#: ../gp11/gp11-misc.c:111
-msgid "The module cannot create needed threads"
-msgstr "আবশà§à¦¯à¦• থà§à¦°à§‡à¦¡à¦—à§à¦²à¦¿ মডিউল দà§à¦¬à¦¾à¦°à¦¾ নিরà§à¦®à¦¾à¦£ করা সমà§à¦­à¦¬ নয়"
-
-#: ../gp11/gp11-misc.c:113
-msgid "The module cannot lock data properly"
-msgstr "চিহà§à¦¨à¦¿à¦¤ মডিউল দà§à¦¬à¦¾à¦°à¦¾ সঠিকভাবে তথà§à¦¯ লক করা সমà§à¦­à¦¬ নয়"
-
-#: ../gp11/gp11-misc.c:115
-msgid "The field is read-only"
-msgstr "à¦à¦‡ কà§à¦·à§‡à¦¤à§à¦°à¦Ÿà¦¿ শà§à¦§à§à¦®à¦¾à¦¤à§à¦° পাঠ-যোগà§à¦¯"
-
-#: ../gp11/gp11-misc.c:117
-msgid "The field is sensitive and cannot be revealed"
-msgstr "à¦à¦‡ কà§à¦·à§‡à¦¤à§à¦°à§‡ সংবেদনশীল তথà§à¦¯ উপসà§à¦¥à¦¿à¦¤ রয়েছে à¦à¦¬à¦‚ পà§à¦°à¦•à¦¾à¦¶ করা যাবে না"
-
-#: ../gp11/gp11-misc.c:119
-msgid "The field is invalid or does not exist"
-msgstr "à¦à¦‡ কà§à¦·à§‡à¦¤à§à¦°à¦Ÿà¦¿ বৈধ নয় অথবা অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤"
-
-#: ../gp11/gp11-misc.c:121
-msgid "Invalid value for field"
-msgstr "কà§à¦·à§‡à¦¤à§à¦°à§‡à¦° মান বৈধ নয়"
-
-#: ../gp11/gp11-misc.c:123
-msgid "The data is not valid or unrecognized"
-msgstr "তথà§à¦¯ বৈধ নয় অথবা পরিচিত নয়"
-
-#: ../gp11/gp11-misc.c:125
-msgid "The data is too long"
-msgstr "তথà§à¦¯ অতà§à¦¯à¦¾à¦§à¦¿à¦• লমà§à¦¬à¦¾"
-
-#: ../gp11/gp11-misc.c:127
-msgid "An error occurred on the device"
-msgstr "ডিভাইসের মধà§à¦¯à§‡ à¦à¦•à¦Ÿà¦¿ তà§à¦°à§à¦Ÿà¦¿ দেখা দিয়েছে"
-
-#: ../gp11/gp11-misc.c:129
-msgid "Insufficient memory available on device"
-msgstr "ডিভাইসের মধà§à¦¯à§‡ পরà§à¦¯à¦¾à¦ªà§à¦¤ মেমরি উপসà§à¦¥à¦¿à¦¤ নেই"
-
-#: ../gp11/gp11-misc.c:131
-msgid "The device was removed or unplugged"
-msgstr "ডিভাইসটি সরিয়ে ফেলা হয়েছে অথবা বিচà§à¦›à¦¿à¦¨à§à¦¨ করা হয়েছে"
-
-#: ../gp11/gp11-misc.c:133
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "à¦à¦¨à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ করা তথà§à¦¯ বৈধ নয় অথবা পরিচিত নয়"
-
-#: ../gp11/gp11-misc.c:135
-msgid "The encrypted data is too long"
-msgstr "à¦à¦¨à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ করা তথà§à¦¯ অতà§à¦¯à¦¾à¦§à¦¿à¦• লমà§à¦¬à¦¾"
-
-#: ../gp11/gp11-misc.c:137
-msgid "This operation is not supported"
-msgstr "à¦à¦‡ করà§à¦® সমরà§à¦¥à¦¿à¦¤ নয়"
-
-#: ../gp11/gp11-misc.c:139
-msgid "The key is missing or invalid"
-msgstr "কি অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤ অথবা বৈধ নয়"
-
-#: ../gp11/gp11-misc.c:141
-msgid "The key is the wrong size"
-msgstr "কি-র মাপ সঠিক নয়"
-
-#: ../gp11/gp11-misc.c:143
-msgid "The key is of the wrong type"
-msgstr "কি-র ধরন সঠিক নয়"
-
-#: ../gp11/gp11-misc.c:145
-msgid "No key is needed"
-msgstr "কোনো কি-র পà§à¦°à§Ÿà§‹à¦œà¦¨ নেই"
-
-#: ../gp11/gp11-misc.c:147
-msgid "The key is different than before"
-msgstr "কি-টি পূরà§à¦¬à¦¬à¦°à§à¦¤à§€ অবসà§à¦¥à¦¾ থেকে পরিবরà§à¦¤à¦¿à¦¤ হয়েছে"
-
-#: ../gp11/gp11-misc.c:149
-msgid "A key is needed"
-msgstr "à¦à¦•à¦Ÿà¦¿ কি আবশà§à¦¯à¦•"
-
-#: ../gp11/gp11-misc.c:151
-msgid "Cannot include the key in digest"
-msgstr "ডাইজেসà§à¦Ÿà§‡à¦° মধà§à¦¯à§‡ কি অনà§à¦¤à¦°à§à¦­à§à¦•à§à¦¤ করা যাবে না"
-
-#: ../gp11/gp11-misc.c:153
-msgid "This operation cannot be done with this key"
-msgstr "à¦à¦‡ কি সহযোগে à¦à¦‡ করà§à¦® করা সমà§à¦­à¦¬ নয়"
-
-#: ../gp11/gp11-misc.c:155
-msgid "The key cannot be wrapped"
-msgstr "কি-রি রà§â€Œà¦¯à¦¾à¦ª করা সমà§à¦­à¦¬ নয়"
-
-#: ../gp11/gp11-misc.c:157
-msgid "Cannot export this key"
-msgstr "চিহà§à¦¨à¦¿à¦¤ কি à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ করা সমà§à¦­à¦¬ নয়"
-
-#: ../gp11/gp11-misc.c:159
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "কà§à¦°à¦¿à¦ªà§à¦Ÿà§‹ বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾ বৈধ নয় অথবা অপরিচিত"
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr ""
-#: ../gp11/gp11-misc.c:161
-msgid "The crypto mechanism has an invalid argument"
-msgstr "কà§à¦°à¦¿à¦ªà§à¦Ÿà§‹ বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦° কà§à¦·à§‡à¦¤à§à¦°à§‡ অবৈধ আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ উপসà§à¦¥à¦¿à¦¤"
+#: ../egg/egg-spawn.c:320
+#, c-format
+msgid "Unexpected error in waitpid() (%s)"
+msgstr ""
-#: ../gp11/gp11-misc.c:163
-msgid "The object is missing or invalid"
-msgstr "সামগà§à¦°à§€ অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤ অথবা বৈধ নয়"
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr "নামবিহীন সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ"
-#: ../gp11/gp11-misc.c:165
-msgid "Another operation is already taking place"
-msgstr "à¦à¦•à¦Ÿà¦¿ পৃথক করà§à¦® বরà§à¦¤à¦®à¦¾à¦¨à§‡ চলছে"
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
+msgstr "সারà§à¦¬à¦œà¦¨à§€à¦¨ SSH-কি পারà§à¦¸ করতে বà§à¦¯à¦°à§à¦¥"
-#: ../gp11/gp11-misc.c:167
-msgid "No operation is taking place"
-msgstr "কোনো করà§à¦® বরà§à¦¤à¦®à¦¾à¦¨à§‡ সঞà§à¦šà¦¾à¦²à¦¿à¦¤ হচà§à¦›à§‡ না"
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, fuzzy, c-format
+msgid "Unlock password for: %s"
+msgstr "%s কি-রিং আন-লক করতে বà§à¦¯à¦¬à¦¹à§ƒà¦¤ পাসওয়ারà§à¦¡"
-#: ../gp11/gp11-misc.c:169
-msgid "The password or PIN is incorrect"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+#, fuzzy
+msgid "The unlock password was incorrect"
msgstr "পাসওয়ারà§à¦¡ অথবা PIN সঠিক নয়"
-#: ../gp11/gp11-misc.c:171
-msgid "The password or PIN is invalid"
-msgstr "পাসওয়ারà§à¦¡ অথবা PIN বৈধ নয়"
-
-#: ../gp11/gp11-misc.c:173
-msgid "The password or PIN is of an invalid length"
-msgstr "পাসওয়ারà§à¦¡ অথবা PIN-র দৈরà§à¦˜à§à¦¯ সঠিক নয়"
-
-#: ../gp11/gp11-misc.c:175
-msgid "The password or PIN has expired"
-msgstr "পাসওয়ারà§à¦¡ অথবা PIN-র মেয়াদ পূরà§à¦£ হয়েছে"
-
-#: ../gp11/gp11-misc.c:177
-msgid "The password or PIN is locked"
-msgstr "পাসওয়ারà§à¦¡ অথবা PIN লক করা আছে"
-
-#: ../gp11/gp11-misc.c:179
-msgid "The session is closed"
-msgstr "সেশান বনà§à¦§ হয়ে গেছে"
-
-#: ../gp11/gp11-misc.c:181
-msgid "Too many sessions are active"
-msgstr "অতà§à¦¯à¦¾à¦§à¦¿à¦• সংখà§à¦¯à¦• সেশান সকà§à¦°à¦¿à§Ÿ রয়েছে"
-
-#: ../gp11/gp11-misc.c:183
-msgid "The session is invalid"
-msgstr "à¦à¦‡ সেশানটি বৈধ নয়"
-
-#: ../gp11/gp11-misc.c:185
-msgid "The session is read-only"
-msgstr "à¦à¦‡ সেশানটি শà§à¦§à§à¦®à¦¾à¦¤à§à¦° পাঠ-যোগà§à¦¯"
-
-#: ../gp11/gp11-misc.c:187
-msgid "An open session exists"
-msgstr "à¦à¦•à¦Ÿà¦¿ সেশান বরà§à¦¤à¦®à¦¾à¦¨à§‡ খোলা রয়েছে"
-
-#: ../gp11/gp11-misc.c:189
-msgid "A read-only session exists"
-msgstr "শà§à¦§à§à¦®à¦¾à¦¤à§à¦° পাঠযোগà§à¦¯ à¦à¦•à¦Ÿà¦¿ সেশান বরà§à¦¤à¦®à¦¾à¦¨à§‡ চলছে"
-
-#: ../gp11/gp11-misc.c:191
-msgid "An administrator session exists"
-msgstr "অà§à¦¯à¦¾à¦¡à¦®à¦¿à¦¨à¦¿à¦¸à§à¦Ÿà§à¦°à§‡à¦Ÿà¦°à§‡à¦° à¦à¦•à¦Ÿà¦¿ সেশান বরà§à¦¤à¦®à¦¾à¦¨à§‡ চলছে"
-
-#: ../gp11/gp11-misc.c:193
-msgid "The signature is bad or corrupted"
-msgstr "সà§à¦¬à¦¾à¦•à§à¦·à¦° সঠিক নয় অথবা কà§à¦·à¦¤à¦¿à¦—à§à¦°à¦¸à§à¦¤"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+msgid "Unlock Login Keyring"
+msgstr "কি-রিং আনলক করà§à¦¨"
-#: ../gp11/gp11-misc.c:195
-msgid "The signature is unrecognized or corrupted"
-msgstr "সà§à¦¬à¦¾à¦•à§à¦·à¦° পরিচিত নয় অথবা কà§à¦·à¦¤à¦¿à¦—à§à¦°à¦¸à§à¦¤"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
+msgstr "কি-রিং আন-লক করতে বà§à¦¯à¦¬à¦¹à§ƒà¦¤ পাসওয়ারà§à¦¡ লিখà§à¦¨"
-#: ../gp11/gp11-misc.c:197
-msgid "Certain required fields are missing"
-msgstr "কয়েকটি আবশà§à¦¯à¦• কà§à¦·à§‡à¦¤à§à¦°à§‡à¦° মান অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
+msgstr ""
-#: ../gp11/gp11-misc.c:199
-msgid "Certain fields have invalid values"
-msgstr "কয়েকটি কà§à¦·à§‡à¦¤à§à¦°à§‡à¦° মান বৈধ নয়"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
+#, fuzzy
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr ""
+"à¦à¦‡ কমà§à¦ªà¦¿à¦‰à¦Ÿà¦¾à¦°à§‡ লগ-ইন করার সময়, আপনার লগ-ইন কি-রিং সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦­à¦¾à¦¬à§‡ আন-লক করা হয়নি"
-#: ../gp11/gp11-misc.c:201
-msgid "The device is not present or unplugged"
-msgstr "ডিভাইস উপসà§à¦¥à¦¿à¦¤ নেই অথবা বিচà§à¦›à¦¿à¦¨à§à¦¨ করা হয়েছে"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "কি-রিং আনলক করà§à¦¨"
-#: ../gp11/gp11-misc.c:203
-msgid "The device is invalid or unrecognizable"
-msgstr "ডিভাইসটি বৈধ নয় অথবা পরিচিত নয়"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
+#, c-format
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "'%s' কি-রিং আনলক করতে পাসওয়ারà§à¦¡ লিখà§à¦¨"
-#: ../gp11/gp11-misc.c:205
-msgid "The device is write protected"
-msgstr "ডিভাইসটি লেখার জনà§à¦¯ অনà§à¦®à§‹à¦¦à¦¿à¦¤ নয়"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, fuzzy, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr ""
+"à¦à¦•à¦Ÿà¦¿ অজানা অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ %s কি-রিং বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ তা বরà§à¦¤à¦®à¦¾à¦¨à§‡ লক করা আছে"
-#: ../gp11/gp11-misc.c:207
-msgid "Cannot import because the key is invalid"
-msgstr "অবৈধ হওয়ার ফলে কি ইমà§à¦ªà§‹à¦°à§à¦Ÿ করা যাবে না"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
+msgstr "গোপনীয়-কি আন-লক করà§à¦¨"
-#: ../gp11/gp11-misc.c:209
-msgid "Cannot import because the key is of the wrong size"
-msgstr "ভà§à¦² মাপের হওয়ার ফলে কি ইমà§à¦ªà§‹à¦°à§à¦Ÿ করা যাবে না"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+msgid "Unlock certificate"
+msgstr "সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ আন-লক করà§à¦¨"
-#: ../gp11/gp11-misc.c:211
-msgid "Cannot import because the key is of the wrong type"
-msgstr "ভà§à¦² ধরনের হওয়ার ফলে কি ইমà§à¦ªà§‹à¦°à§à¦Ÿ করা যাবে না"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
+msgstr "সারà§à¦¬à¦œà¦¨à§€à¦¨-কি আন-লক করà§à¦¨"
-#: ../gp11/gp11-misc.c:213
-msgid "You are already logged in"
-msgstr "আপনি লগ-ইন করা অবসà§à¦¥à¦¾à§Ÿ রয়েছে"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "আন-লক করà§à¦¨"
-#: ../gp11/gp11-misc.c:215
-msgid "No user has logged in"
-msgstr "কোনো বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ লগ-ইন করেননি"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "গোপনীয় কি আনলক করতে পাসওয়ারà§à¦¡ লিখà§à¦¨"
-#: ../gp11/gp11-misc.c:217
-msgid "The user's password or PIN is not set"
-msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° পাসওয়ারà§à¦¡ অথবা PIN নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হয়নি"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ আন-লক করার জনà§à¦¯ পাসওয়ারà§à¦¡ লিখà§à¦¨"
-#: ../gp11/gp11-misc.c:219
-msgid "The user is of an invalid type"
-msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° পà§à¦°à¦•à§ƒà¦¤à¦¿ বৈধ নয়"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+msgid "Enter password to unlock the public key"
+msgstr "সারà§à¦¬à¦œà¦¨à§€à¦¨ কি আনলক করতে পাসওয়ারà§à¦¡ লিখà§à¦¨"
-#: ../gp11/gp11-misc.c:221
-msgid "Another user is already logged in"
-msgstr "পৃথক à¦à¦• বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ পূরà§à¦¬à§‡ লগ-ইন করেছেন"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "আনলক করতে পাসওয়ারà§à¦¡ লিখà§à¦¨"
-#: ../gp11/gp11-misc.c:223
-msgid "Too many users of different types logged in"
-msgstr "বিভিনà§à¦¨ ধরনের অতà§à¦¯à¦¾à¦§à¦¿à¦• সংখà§à¦¯à¦• বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ লগ-ইন করেছেন"
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
+#, c-format
+msgid "An application wants access to the private key '%s', but it is locked"
+msgstr ""
+"à¦à¦•à¦Ÿà¦¿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨, %s গোপনীয়-কি বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ বরà§à¦¤à¦®à¦¾à¦¨à§‡ à¦à¦Ÿà¦¿ লক করা আছে"
-#: ../gp11/gp11-misc.c:225
-msgid "Cannot import an invalid key"
-msgstr "à¦à¦•à¦Ÿà¦¿ অবৈধ-কি ইমà§à¦ªà§‹à¦°à§à¦Ÿ করা যাবে না"
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
+#, c-format
+msgid "An application wants access to the certificate '%s', but it is locked"
+msgstr ""
+"à¦à¦•à¦Ÿà¦¿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨, %s সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ বরà§à¦¤à¦®à¦¾à¦¨à§‡ à¦à¦Ÿà¦¿ লক করা আছে"
-#: ../gp11/gp11-misc.c:227
-msgid "Cannot import a key of the wrong size"
-msgstr "ভà§à¦² মাপের কি ইমà§à¦ªà§‹à¦°à§à¦Ÿ করা যাবে না"
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
+#, c-format
+msgid "An application wants access to the public key '%s', but it is locked"
+msgstr ""
+"à¦à¦•à¦Ÿà¦¿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨, %s সারà§à¦¬à¦œà¦¨à§€à¦¨-কি বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ বরà§à¦¤à¦®à¦¾à¦¨à§‡ à¦à¦Ÿà¦¿ লক করা আছে"
-#: ../gp11/gp11-misc.c:229
-msgid "Cannot export because the key is invalid"
-msgstr "কি অবৈধ হওয়ার ফলে কি à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ করা যাবে না"
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
+#, c-format
+msgid "An application wants access to '%s', but it is locked"
+msgstr "à¦à¦•à¦Ÿà¦¿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨, %s বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ বরà§à¦¤à¦®à¦¾à¦¨à§‡ à¦à¦Ÿà¦¿ লক করা আছে"
-#: ../gp11/gp11-misc.c:231
-msgid "Cannot export because the key is of the wrong size"
-msgstr "ভà§à¦² মাপের হওয়ার ফলে কি à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ করা যাবে না"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
+msgstr "সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ/কি সংগà§à¦°à¦¹à¦¸à§à¦¥à¦² আন-লক করà§à¦¨"
-#: ../gp11/gp11-misc.c:233
-msgid "Cannot export because the key is of the wrong type"
-msgstr "ভà§à¦² ধরনের হওয়ার ফলে কি à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ করা যাবে না"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
+msgstr "সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ/কি সংগà§à¦°à¦¹à¦¸à§à¦¥à¦² আন-লক করার জনà§à¦¯ পাসওয়ারà§à¦¡ লিখà§à¦¨"
-#: ../gp11/gp11-misc.c:235
-msgid "Unable to initialize the random number generator"
-msgstr "রà§â€Œà¦¯à¦¾à¦¨à§à¦¡à¦® সংখà§à¦¯à¦¾ নিরà§à¦®à¦¾à¦£ বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾ আরমà§à¦­ করতে বà§à¦¯à¦°à§à¦¥"
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, c-format
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr ""
+"à¦à¦•à¦Ÿà¦¿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨, %s সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ/কি সংগà§à¦°à¦¹à¦¸à§à¦¥à¦² বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে ইচà§à¦›à§à¦•, কিনà§à¦¤à§ বরà§à¦¤à¦®à¦¾à¦¨à§‡ "
+"à¦à¦Ÿà¦¿ লক করা আছে"
-#: ../gp11/gp11-misc.c:237
-msgid "No random number generator available"
-msgstr "রà§â€Œà¦¯à¦¾à¦¨à§à¦¡à¦® সংখà§à¦¯à¦¾ নিরà§à¦®à¦¾à¦£à§‡à¦° কোনো বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾ উপলবà§à¦§ নেই"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
+msgstr "নতà§à¦¨ পাসওয়ারà§à¦¡ আবশà§à¦¯à¦•"
-#: ../gp11/gp11-misc.c:239
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "কà§à¦°à¦¿à¦ªà§à¦Ÿà§‹ বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦° কà§à¦·à§‡à¦¤à§à¦°à§‡ উপলবà§à¦§ à¦à¦•à¦Ÿà¦¿ পরামিতি বৈধ নয়"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
+msgstr "সংগà§à¦°à¦¹à¦¸à§à¦¥à¦² নিরাপদ রাখতে পাসওয়ারà§à¦¡ লেখা আবশà§à¦¯à¦•"
-#: ../gp11/gp11-misc.c:241
-msgid "Not enough space to store the result"
-msgstr "ফলাফল সংরকà§à¦·à¦£à§‡à¦° জনà§à¦¯ পরà§à¦¯à¦¾à¦ªà§à¦¤ সà§à¦¥à¦¾à¦ª অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
+#, c-format
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
+"সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ ও কি সংগà§à¦°à¦¹à§‡à¦° জনà§à¦¯ '%s' পà§à¦°à¦¸à§à¦¤à§à¦¤ করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ à¦à¦•à¦Ÿà¦¿ পাসওয়ারà§à¦¡ লেখা আবশà§à¦¯à¦•"
-#: ../gp11/gp11-misc.c:243
-msgid "The saved state is invalid"
-msgstr "সংরকà§à¦·à¦¿à¦¤ অবসà§à¦¥à¦¾ বৈধ নয়"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "কি-রিং-র পাসওয়ারà§à¦¡ পরিবরà§à¦¤à¦¨ করà§à¦¨"
-#: ../gp11/gp11-misc.c:245
-msgid "The information is sensitive and cannot be revealed"
-msgstr "তথà§à¦¯à¦Ÿà¦¿ সংবেদনশীল ও পà§à¦°à¦•à¦¾à¦¶ করা সমà§à¦­à¦¬ নয়"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "সংগà§à¦°à¦¹à¦¸à§à¦¥à¦² নিরাপদ রাখতে পাসওয়ারà§à¦¡ লেখা আবশà§à¦¯à¦•"
-#: ../gp11/gp11-misc.c:247
-msgid "The state cannot be saved"
-msgstr "অবসà§à¦¥à¦¾ সংরকà§à¦·à¦£ করা যাবে না"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
+#, c-format
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
+msgstr ""
-#: ../gp11/gp11-misc.c:249
-msgid "The module has not been initialized"
-msgstr "মডিউল আরমà§à¦­ করা হয়নি"
+#: ../tool/gkr-tool.c:102
+#, c-format
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
-#: ../gp11/gp11-misc.c:251
-msgid "The module has already been initialized"
-msgstr "চিহà§à¦¨à¦¿à¦¤ মডিউল পূরà§à¦¬à§‡ আরমà§à¦­ করা হয়েছে"
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
-#: ../gp11/gp11-misc.c:253
-msgid "Cannot lock data"
-msgstr "তথà§à¦¯ লক করা যাবে না"
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
-#: ../gp11/gp11-misc.c:255
-msgid "The data cannot be locked"
-msgstr "তথà§à¦¯ লক করা যাবে না"
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
+msgstr "à¦à¦¨à¦•à§à¦°à¦¿à¦ªà¦¶à¦¨ বিনা পাসওয়ারà§à¦¡ সংরকà§à¦·à¦£ করা হবে কি?"
-#: ../gp11/gp11-misc.c:257
-msgid "The signature request was rejected by the user"
-msgstr "সà§à¦¬à¦¾à¦•à§à¦·à¦°à§‡à¦° অনà§à¦°à§‹à¦§ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ দà§à¦¬à¦¾à¦°à¦¾ পà§à¦°à¦¤à§à¦¯à¦¾à¦–à§à¦¯à¦¾à¦¨ করা হয়েছে"
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
+"ফাà¦à¦•à¦¾ পাসওয়ারà§à¦¡ নিরà§à¦¬à¦¾à¦šà¦¨à§‡à¦° ফলে, আপনার সংরকà§à¦·à¦¿à¦¤ পাসওয়ারà§à¦¡à¦—à§à¦²à¦¿ নিরাপদভাবে à¦à¦¨à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ "
+"করা সমà§à¦­à¦¬ হবে না। আপনার ফাইলগà§à¦²à¦¿ পড়তে অনà§à¦®à§‹à¦¦à¦¿à¦¤ যে কোনো বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ দà§à¦¬à¦¾à¦°à¦¾ à¦à¦‡à¦—à§à¦²à¦¿ "
+"পà§à¦°à§Ÿà§‹à¦— করা সমà§à¦­à¦¬ হবে।"
-#: ../gp11/gp11-misc.c:261
-msgid "Unknown error"
-msgstr "অজানা তà§à¦°à§à¦Ÿà¦¿"
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
+msgstr "অনিরাপদ সংগà§à¦°à¦¹à¦¸à§à¦¥à¦² বà§à¦¯à¦¬à¦¹à¦¾à¦° করা হবে"
-#: ../library/gnome-keyring-utils.c:168
-msgid "Access Denied"
-msgstr "পà§à¦°à¦¬à§‡à¦¶à¦¾à¦§à¦¿à¦•à¦¾à¦° পà§à¦°à¦¤à§à¦¯à¦¾à¦–à§à¦¯à¦¾à¦¤"
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr "পাসওয়ারà§à¦¡à§‡ গরমিল।"
-#: ../library/gnome-keyring-utils.c:170
-msgid "The gnome-keyring-daemon application is not running."
-msgstr "gnome-keyring-daemon অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ বরà§à¦¤à¦®à¦¾à¦¨à§‡ চলছে না।"
+#: ../ui/gku-prompt-tool.c:649
+msgid "Password cannot be blank"
+msgstr "পাসওয়ারà§à¦¡ ফাà¦à¦•à¦¾ রাখা যাবে না"
-#: ../library/gnome-keyring-utils.c:172
-msgid "Error communicating with gnome-keyring-daemon"
-msgstr "gnome-keyring-daemon-র সাথে যোগাযোগ করতে সমসà§à¦¯à¦¾"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:174
-msgid "A keyring with that name already exists"
-msgstr "à¦à¦‡ নামের à¦à¦•à¦Ÿà¦¿ কি-রং বরà§à¦¤à¦®à¦¾à¦¨à§‡ উপসà§à¦¥à¦¿à¦¤ রয়েছে"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:176
-msgid "Programmer error: The application sent invalid data."
-msgstr "পà§à¦°à§‹à¦—à§à¦°à¦¾à¦®à¦¾à¦° তà§à¦°à§à¦Ÿà¦¿: অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ দà§à¦¬à¦¾à¦°à¦¾ অবৈধ তথà§à¦¯ পà§à¦°à§‡à¦°à¦¿à¦¤ হয়েছে।"
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
+msgstr "নতà§à¦¨ পাসওয়ারà§à¦¡à§‡à¦° দৃà§à¦¤à¦¾"
-#: ../library/gnome-keyring-utils.c:178
-msgid "No matching results"
-msgstr "কোনো মিল পাওয়া যায়নি"
+#: ../ui/gku-prompt.ui.h:2
+#, fuzzy
+msgid "_Application:"
+msgstr "অবসà§à¦¥à¦¾à¦¨: (_L)"
-#: ../library/gnome-keyring-utils.c:180
-msgid "A keyring with that name does not exist."
-msgstr "à¦à¦‡ নামের কি-রং বরà§à¦¤à¦®à¦¾à¦¨à§‡ উপসà§à¦¥à¦¿à¦¤ নেই।"
+#: ../ui/gku-prompt.ui.h:3
+#, fuzzy
+msgid "_Confirm:"
+msgstr "পাসওয়ারà§à¦¡ নিশà§à¦šà¦¿à¦¤ করà§à¦¨:(_C)"
-#: ../library/gnome-keyring-utils.c:187
-msgid "The keyring has already been unlocked."
-msgstr "কি-রিং পূরà§à¦¬à§‡ আন-লক করা হয়েছে।"
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
-#: ../pkcs11/gck/gck-certificate.c:716
-msgid "Unnamed Certificate"
-msgstr "নামবিহীন সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦Ÿ"
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr ""
-#: ../pkcs11/ssh-store/gck-ssh-private-key.c:328
-msgid "Couldn't parse public SSH key"
-msgstr "সারà§à¦¬à¦œà¦¨à§€à¦¨ SSH-কি পারà§à¦¸ করতে বà§à¦¯à¦°à§à¦¥"
+#: ../ui/gku-prompt.ui.h:6
+#, fuzzy
+msgid "_Old Password:"
+msgstr "পà§à¦°à§‹à¦¨à§‹ পাসওয়ারà§à¦¡:(_O)"
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "পাসওয়ারà§à¦¡:(_P)"
diff --git a/po/bs.po b/po/bs.po
index 2badb0f3..65412279 100644
--- a/po/bs.po
+++ b/po/bs.po
@@ -7,377 +7,509 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.HEAD.bs\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-18 20:49+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2004-08-21 13:26+0200\n"
"Last-Translator: Mehemed Sacirovic <mesa@tesanj.net>\n"
"Language-Team: Bosnian <lokal@linux.org.ba>\n"
+"Language: bs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.3.1\n"
-#: ../gnome-keyring-ask.c:241
-msgid "_Old password:"
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
msgstr ""
-#: ../gnome-keyring-ask.c:262
-msgid "_Password:"
+#: ../daemon/dbus/gkd-secret-change.c:86
+#, fuzzy
+msgid "Change Keyring Password"
+msgstr "Nova Å¡ifra za privjesak."
+
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "Odaberite Å¡ifru za novi privjesak"
+
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
+msgid ""
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
msgstr ""
+"Nepoznati program želi kreirati uobiÄajeni privjesak. Odaberite Å¡ifru koju "
+"želite koristiti za njega."
-#: ../gnome-keyring-ask.c:284
-msgid "_Confirm new password:"
+#: ../daemon/dbus/gkd-secret-change.c:111
+msgid "The original password was incorrect"
msgstr ""
-#. Strength bar:
-#: ../gnome-keyring-ask.c:303
-msgid "<span weight=\"bold\">Password strength meter:</span>"
+#: ../daemon/dbus/gkd-secret-create.c:83
+msgid "New Keyring Password"
+msgstr "Nova Å¡ifra za privjesak."
+
+#: ../daemon/dbus/gkd-secret-create.c:84
+msgid "Choose password for new keyring"
+msgstr "Odaberite Å¡ifru za novi privjesak"
+
+#: ../daemon/dbus/gkd-secret-create.c:86
+#, fuzzy, c-format
+msgid ""
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
+"Nepoznata aplikacija želi kreirati novi privjesak sa nazivom '%s'. Odaberite "
+"šifru koju želite koristiti za njega."
-#: ../gnome-keyring-ask.c:329
-msgid "Old password cannot be blank."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+msgid "Certificate and Key Storage"
msgstr ""
-#: ../gnome-keyring-ask.c:340
-msgid "Password cannot be blank."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+msgid "GNOME Keyring: PKCS#11 Component"
msgstr ""
-#: ../gnome-keyring-ask.c:348
-msgid "Passwords do not match."
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+msgid "GNOME Keyring: Secret Service"
msgstr ""
-#: ../gnome-keyring-ask.c:407
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
-msgstr "Program '%s' (%s)želi da pristupi glavnom privjesku ali je zakljuÄan"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
+msgstr ""
-#: ../gnome-keyring-ask.c:411
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the keyring '%s', but it is locked"
-msgstr "Program '%s' (%s) želi pristupiti privjesku '%s' ali je zakljuÄan"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+msgid "GNOME Keyring: SSH Agent"
+msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:416
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to an unknown keyring, but it is "
-"locked"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
msgstr ""
-"Program '%s' (%s) želi pristupiti nepoznatom privjesku, ali je zakljuÄan"
-#: ../gnome-keyring-ask.c:422 ../gnome-keyring-ask.c:436
-#, c-format
-msgid ""
-"The application '%s' wants access to the default keyring, but it is locked"
-msgstr "Program '%s' želi pristupiti uobiÄajenom privjesku, ali je zakljuÄan"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+msgid "GNOME Keyring: GPG Agent"
+msgstr ""
-#: ../gnome-keyring-ask.c:426 ../gnome-keyring-ask.c:441
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
-msgstr "Program '%s' želi pristupiti privjesku '%s' ali je zakljuÄan"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+msgid "GPG Password Agent"
+msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:430 ../gnome-keyring-ask.c:446
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+msgid "Unknown"
+msgstr ""
+
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid ""
-"The application '%s' wants access to an unknown keyring, but it is locked"
-msgstr "Program '%s' želi pristupiti nepoznatom privjesku, ali je zakljuÄan"
+msgid "PGP Key: %s"
+msgstr ""
-#: ../gnome-keyring-ask.c:452
-msgid ""
-"An unknown application wants access to the default keyring, but it is locked"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-"Nepoznatu program želi pristupiti uobiÄajenom privjesku, ali je zakljuÄan"
-#: ../gnome-keyring-ask.c:456
-#, c-format
-msgid ""
-"An unknown application wants access to the keyring '%s', but it is locked"
-msgstr "Nepoznati program želi pristupiti privjesku '%s', ali je zakljuÄan"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
+msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:461
-msgid ""
-"An unknown application wants access to an unknown keyring, but it is locked"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-"Nepoznati program želi pristupiti nepoznatom privjesku, ali je zakljuÄan"
-#: ../gnome-keyring-ask.c:468
-msgid "Enter password for default keyring to unlock"
-msgstr "Unesi Å¡ifru za uobiÄajeni privjesak da bi ga otkljuÄali"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
+msgstr ""
-#: ../gnome-keyring-ask.c:470
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "Unesi password za privjesak '%s' da bi ga otkljuÄali"
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
+msgstr ""
-#: ../gnome-keyring-ask.c:474
-msgid "Unlock Keyring"
-msgstr "OtkljuÄaj privjesak"
+#: ../egg/egg-oid.c:41
+msgid "Domain Component"
+msgstr ""
-#: ../gnome-keyring-ask.c:479 ../gnome-keyring-ask.c:563
-#: ../gnome-keyring-ask.c:655 ../gnome-keyring-ask.c:711
-#: ../gnome-keyring-ask.c:798
-msgid "_Deny"
-msgstr "_Odbij"
+#: ../egg/egg-oid.c:43
+msgid "User ID"
+msgstr ""
-#: ../gnome-keyring-ask.c:517
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:46
+msgid "Email Address"
msgstr ""
-"Program '%s' (%s) želi kreirati novi privjesak sa nazivom '%s'. Odaberite "
-"šifru koju želite koristiti za njega."
-#: ../gnome-keyring-ask.c:521
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:54
+msgid "Date of Birth"
+msgstr ""
+
+#: ../egg/egg-oid.c:56
+msgid "Place of Birth"
+msgstr ""
+
+#: ../egg/egg-oid.c:58
+msgid "Gender"
+msgstr ""
+
+#: ../egg/egg-oid.c:60
+msgid "Country of Citizenship"
+msgstr ""
+
+#: ../egg/egg-oid.c:62
+msgid "Country of Residence"
+msgstr ""
+
+#: ../egg/egg-oid.c:65
+msgid "Common Name"
+msgstr ""
+
+#: ../egg/egg-oid.c:67
+msgid "Surname"
+msgstr ""
+
+#: ../egg/egg-oid.c:69
+msgid "Serial Number"
+msgstr ""
+
+#: ../egg/egg-oid.c:71
+msgid "Country"
+msgstr ""
+
+#: ../egg/egg-oid.c:73
+msgid "Locality"
+msgstr ""
+
+#: ../egg/egg-oid.c:75
+msgid "State"
+msgstr ""
+
+#: ../egg/egg-oid.c:77
+msgid "Street"
+msgstr ""
+
+#: ../egg/egg-oid.c:79
+msgid "Organization"
+msgstr ""
+
+#: ../egg/egg-oid.c:81
+msgid "Organizational Unit"
+msgstr ""
+
+#: ../egg/egg-oid.c:83
+msgid "Title"
+msgstr ""
+
+#: ../egg/egg-oid.c:85
+msgid "Telephone Number"
+msgstr ""
+
+#: ../egg/egg-oid.c:87
+msgid "Given Name"
+msgstr ""
+
+#: ../egg/egg-oid.c:89
+msgid "Initials"
+msgstr ""
+
+#: ../egg/egg-oid.c:91
+msgid "Generation Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:93
+msgid "DN Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:95
+msgid "Pseudonym"
+msgstr ""
+
+#: ../egg/egg-oid.c:98
+msgid "RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:99
+msgid "MD2 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:100
+msgid "MD5 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:101
+msgid "SHA1 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:103
+msgid "DSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:104
+msgid "SHA1 with DSA"
+msgstr ""
+
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
+
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
+
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
msgstr ""
-"Program '%s' (%s) želi kreirati novi uobiÄajeni privjesak. Odaberite Å¡ifru "
-"koju želite koristiti za njega"
-#: ../gnome-keyring-ask.c:527 ../gnome-keyring-ask.c:537
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
+msgid "Unexpected error in select() reading data from a child process (%s)"
msgstr ""
-"Program '%s' želi kreirati novi privjesak sa nazivom '%s'. Odaberite šifru "
-"koju želite koristiti za njega."
-#: ../gnome-keyring-ask.c:531 ../gnome-keyring-ask.c:541
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+msgid "Unexpected error in waitpid() (%s)"
msgstr ""
-"Program '%s' želi kreirati novi uobiÄajeni privjesak. Odaberite Å¡ifru koju "
-"želite koristiti za njega."
-#: ../gnome-keyring-ask.c:547
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr ""
+
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
+msgstr ""
+
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
-msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
+msgid "Unlock password for: %s"
msgstr ""
-"Nepoznata aplikacija želi kreirati novi privjesak sa nazivom '%s'. Odaberite "
-"šifru koju želite koristiti za njega."
-#: ../gnome-keyring-ask.c:551
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+msgid "The unlock password was incorrect"
msgstr ""
-"Nepoznati program želi kreirati uobiÄajeni privjesak. Odaberite Å¡ifru koju "
-"želite koristiti za njega."
-#: ../gnome-keyring-ask.c:558
-msgid "New Keyring Password"
-msgstr "Nova Å¡ifra za privjesak."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+#, fuzzy
+msgid "Unlock Login Keyring"
+msgstr "OtkljuÄaj privjesak"
-#: ../gnome-keyring-ask.c:559
-msgid "Choose password for new keyring"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
msgstr "Odaberite Å¡ifru za novi privjesak"
-#: ../gnome-keyring-ask.c:602
-#, fuzzy, c-format
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
msgstr ""
-"Program '%s' (%s) želi kreirati novi uobiÄajeni privjesak. Odaberite Å¡ifru "
-"koju želite koristiti za njega"
-#: ../gnome-keyring-ask.c:606
-#, fuzzy, c-format
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
+"The login keyring did not get unlocked when you logged into your computer."
msgstr ""
-"Program '%s' (%s) želi kreirati novi uobiÄajeni privjesak. Odaberite Å¡ifru "
-"koju želite koristiti za njega"
-#: ../gnome-keyring-ask.c:612 ../gnome-keyring-ask.c:622
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "OtkljuÄaj privjesak"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
+#, c-format
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "Unesi password za privjesak '%s' da bi ga otkljuÄali"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
#, fuzzy, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr "Nepoznati program želi pristupiti privjesku '%s', ali je zakljuÄan"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
msgstr ""
-"Program '%s' želi kreirati novi uobiÄajeni privjesak. Odaberite Å¡ifru koju "
-"želite koristiti za njega."
-#: ../gnome-keyring-ask.c:616 ../gnome-keyring-ask.c:626
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+#, fuzzy
+msgid "Unlock certificate"
+msgstr "OtkljuÄaj privjesak"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+#, fuzzy
+msgid "Unlock"
+msgstr "OtkljuÄaj privjesak"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+#, fuzzy
+msgid "Enter password to unlock the private key"
+msgstr "Unesi Å¡ifru za uobiÄajeni privjesak da bi ga otkljuÄali"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+#, fuzzy
+msgid "Enter password to unlock the public key"
+msgstr "Unesi Å¡ifru za uobiÄajeni privjesak da bi ga otkljuÄali"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+#, fuzzy
+msgid "Enter password to unlock"
+msgstr "Unesi password za privjesak '%s' da bi ga otkljuÄali"
+
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, fuzzy, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+msgid "An application wants access to the private key '%s', but it is locked"
+msgstr "Nepoznati program želi pristupiti privjesku '%s', ali je zakljuÄan"
+
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
+#, fuzzy, c-format
+msgid "An application wants access to the certificate '%s', but it is locked"
+msgstr "Nepoznati program želi pristupiti privjesku '%s', ali je zakljuÄan"
+
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
+#, fuzzy, c-format
+msgid "An application wants access to the public key '%s', but it is locked"
+msgstr "Nepoznati program želi pristupiti privjesku '%s', ali je zakljuÄan"
+
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
+#, fuzzy, c-format
+msgid "An application wants access to '%s', but it is locked"
+msgstr "Nepoznati program želi pristupiti privjesku '%s', ali je zakljuÄan"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
msgstr ""
-"Program '%s' želi kreirati novi uobiÄajeni privjesak. Odaberite Å¡ifru koju "
-"želite koristiti za njega."
-#: ../gnome-keyring-ask.c:632
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
#, fuzzy, c-format
msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr "Nepoznati program želi pristupiti privjesku '%s', ali je zakljuÄan"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
msgstr ""
-"Nepoznati program želi kreirati uobiÄajeni privjesak. Odaberite Å¡ifru koju "
-"želite koristiti za njega."
-#: ../gnome-keyring-ask.c:636
-#, fuzzy
-msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
msgstr ""
-"Nepoznati program želi kreirati uobiÄajeni privjesak. Odaberite Å¡ifru koju "
-"želite koristiti za njega."
-#: ../gnome-keyring-ask.c:643
-#, fuzzy, c-format
-msgid "Choose a new password for the '%s' keyring. "
-msgstr "Odaberite Å¡ifru za novi privjesak"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
+#, c-format
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
-#: ../gnome-keyring-ask.c:645
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
#, fuzzy
-msgid "Choose a new password for the default keyring. "
-msgstr "Odaberi Å¡ifru za uobiÄajeni privjesak"
+msgid "Change Password"
+msgstr "Nova Å¡ifra za privjesak."
-#: ../gnome-keyring-ask.c:650
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
#, fuzzy
-msgid "Change Keyring Password"
-msgstr "Nova Å¡ifra za privjesak."
+msgid "Change password for secure storage"
+msgstr "Odaberite Å¡ifru za novi privjesak"
-#: ../gnome-keyring-ask.c:689
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+"To change the password for '%s', the original and new passwords are required"
msgstr ""
-"Program '%s' (%s) želi pohraniti Å¡ifru, ali ne postoji uobiÄajeni privjesak. "
-"Da bi kreirali jedan, potrebno je da odabaret šifru koju želite koristiti za "
-"njega."
-#: ../gnome-keyring-ask.c:693 ../gnome-keyring-ask.c:697
+#: ../tool/gkr-tool.c:102
#, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+msgid "usage: gnome-keyring command [options]\n"
msgstr ""
-"Program '%s' želi pohraniti Å¡ifru, ali ne postoji uobiÄajeni privjesak. Da "
-"bi kreirali jedan, potrebno je da odabaret šifru koju želite koristiti za "
-"njega."
-#. app == APPLICATION_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:701
-msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
msgstr ""
-"Nepoznati program želi pohraniti Å¡ifru, ali ne postoji uobiÄajeni privjesak. "
-"Da bi kreirali jedan, potrebno je da odabaret šifru koju želite koristiti za "
-"njega."
-
-#: ../gnome-keyring-ask.c:706
-msgid "Create Default Keyring"
-msgstr "Kreiraj uobiÄajeni privjesak"
-#: ../gnome-keyring-ask.c:707
-msgid "Choose password for default keyring"
-msgstr "Odaberi Å¡ifru za uobiÄajeni privjesak"
-
-#: ../gnome-keyring-ask.c:747
-msgid "Allow application access to keyring?"
-msgstr "Dozvoli pristup programu privjesku?"
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
-#: ../gnome-keyring-ask.c:750
-#, c-format
-msgid "The application '%s' (%s) wants to access the password for '%s' in %s."
-msgstr "Program '%s' (%s) želi pristupiti šifri za '%s' u %s."
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
+msgstr ""
-#: ../gnome-keyring-ask.c:753
-#, c-format
+#: ../ui/gku-prompt-tool.c:592
msgid ""
-"The application '%s' (%s) wants to access the password for '%s' in the "
-"default keyring."
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
msgstr ""
-"Program '%s' (%s) želi pristupiti Å¡ifri za '%s' u obiÄajenom privjesku."
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:756
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '%s' in an "
-"unknown keyring."
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
msgstr ""
-"Program '%s' (%s) želi pristupiti žifri za '%s' u nepoznatom privjesku."
-#: ../gnome-keyring-ask.c:761 ../gnome-keyring-ask.c:772
-#, c-format
-msgid "The application '%s' wants to access the password for '%s' in %s."
-msgstr "Program '%s' želi pristupiti šifri za '%s' u %s."
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr ""
-#: ../gnome-keyring-ask.c:764 ../gnome-keyring-ask.c:775
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '%s' in the default "
-"keyring."
-msgstr "Program '%s' želi pristupiti Å¡ifri za '%s' u obiÄajenom privjesku."
+#: ../ui/gku-prompt-tool.c:649
+msgid "Password cannot be blank"
+msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:767 ../gnome-keyring-ask.c:778
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '%s' in an unknown "
-"keyring."
-msgstr "Program '%s' želi pristupiti šifri za '%s' u nepoznatom privjesku."
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
-#: ../gnome-keyring-ask.c:783
-#, c-format
-msgid "An unknown application wants to access the password for '%s' in %s."
-msgstr "Nepoznati program želi pristupiti šifri za '%s' u %s."
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
-#: ../gnome-keyring-ask.c:786
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '%s' in the default "
-"keyring."
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
msgstr ""
-"Nepoznati program želi pristupiti Å¡ifri za '%s' u uobiÄajenom privjesku."
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:789
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '%s' in an unknown "
-"keyring."
+#: ../ui/gku-prompt.ui.h:2
+msgid "_Application:"
msgstr ""
-"Nepoznati program želi pristupiti šifri za '%s' u nepoznatom privjesku."
-#: ../gnome-keyring-ask.c:794
-msgid "Allow access"
-msgstr "Dozvoli pristup"
+#: ../ui/gku-prompt.ui.h:3
+msgid "_Confirm:"
+msgstr ""
-#: ../gnome-keyring-ask.c:799
-msgid "Allow _Once"
-msgstr "Dozvoli _Jedanput"
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
-#: ../gnome-keyring-ask.c:800
-msgid "_Always Allow"
-msgstr "_Dozvoli uvijek"
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr ""
-#: ../gnome-keyring-ask.c:840
-msgid "You must specify the type of request to run\n"
-msgstr "Morate navesti tip zs pokretanju\n"
+#: ../ui/gku-prompt.ui.h:6
+msgid "_Old Password:"
+msgstr ""
-#: ../gnome-keyring-ask.c:857
-msgid "Unknown request type\n"
-msgstr "Nepoznati tip zahtjeva\n"
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr ""
diff --git a/po/ca.po b/po/ca.po
index db827513..894dabcd 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-23 13:19+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-19 18:47+0200\n"
"Last-Translator: Joan Duran <jodufi@gmail.com>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
@@ -97,8 +97,7 @@ msgstr "Anell de claus del GNOME: agent GPG"
msgid "GPG Password Agent"
msgstr "Agent de contrasenyes GPG"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Desconegut"
@@ -125,7 +124,7 @@ msgid "Forget this password when I log out"
msgstr "Oblida aquesta contrasenya quan surti"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Entrada"
@@ -169,7 +168,7 @@ msgstr "Nom comú"
msgid "Surname"
msgstr "Cognom"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Número de sèrie"
@@ -225,7 +224,7 @@ msgstr "Qualificador del nom de domini"
msgid "Pseudonym"
msgstr "Pseudònim"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -241,7 +240,7 @@ msgstr "MD5 amb RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 amb RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -282,590 +281,6 @@ msgstr ""
msgid "Unexpected error in waitpid() (%s)"
msgstr "S'ha produït un error inesperat a «waitpid()» (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "S'ha produït un error en carregar el mòdul PKCS#11: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "El mòdul PKCS#11 no és vàlid: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "No s'ha pogut configurar el mòdul PKCS#11: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "No s'ha pogut inicialitzar el mòdul PKCS#11: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "No s'han pogut inicialitzar els mòduls PKCS#11 registrats: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Nom"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Emès per"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "Venç"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:262
-msgid "Certificate"
-msgstr "Certificat"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Ja existeix un fitxer amb aquest nom.</b>\n"
-"\n"
-"Voleu reemplaçar-lo amb un fitxer nou?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_Reemplaça"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "S'ha cancel·lat l'operació."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Exporta el certificat"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Fitxers de certificat"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "Fitxers PEM"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Un altre nom"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "Adreça XMPP"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "Servidor DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "Correu electrònic"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "Adreça X400"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Nom del directori"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "Nom del grup EDI"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "Adreça IP"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "Identificador registrat"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Restriccions bàsiques"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "Autoritat de certificació"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Sí"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "No"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Longitud màxima del camí"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Sense límit"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Utilització ampliada de la clau"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Propòsits permesos"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Identificador de l'assumpte de la clau"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Identificador de la clau"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Signatura digital"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Xifrat de clau"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Xifrat de dades"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Acord sobre la clau"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Signatura del certificat"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Firma de la llista de revocació"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Utilització de la clau"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Utilitzacions"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Noms alternatius de l'assumpte"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Extensió"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Identificador"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Valor"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Crític"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "No s'ha pogut exportar el certificat."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "Identitat"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Verificat per"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "Venç"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Nom de l'assumpte"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Nom de l'emissor"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Certificat emès"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Versió"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "No és vàlid abans de"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "No és vàlid després de"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Empremtes del certificat"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Signatura"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Algorisme de la signatura"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Paràmetres de la signatura"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Informació de la clau pública"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Clau de l'algorisme"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Paràmetres de la clau"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Mida de la clau"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "Empremta de la clau SHA1"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:265
-msgid "Public Key"
-msgstr "Clau pública"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_Detalls"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "No s'ha pogut mostrar «%s»"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "No s'ha pogut mostrar el fitxer"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Raó"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "No es pot mostrar un fitxer d'aquest tipus."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Importa certificats i claus"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Importa a:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Contrasenya:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "Clau PGP"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "ID de la clau"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "El procés Gnupg ha sortit amb el codi: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "S'ha finalitzat el procés Gnupg amb la senyal: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1921 ../gcr/gcr-parser.c:2179
-msgid "The operation was cancelled"
-msgstr "S'ha cancel·lat l'operació"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Introduïu la contrasenya per desblocar la clau privada"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Introduïu la contrasenya per desblocar el certificat"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Introduïu la contrasenya per desblocar"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "S'ha de desblocar la clau privada per poder-la importar"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "S'ha de desblocar el certificat per poder-lo importar"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "S'han de desblocar les dades per poder-les importar"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "S'ha de desblocar la clau privada «%s» per poder-la importar"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "S'ha de desblocar el certificat «%s» per poder-lo importar"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "S'ha de desblocar «%s» per poder-lo importar"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "No hi ha cap ubicació disponible cap on importar"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Importa certificats/claus"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Trieu una ubicació on emmagatzemar els certificats/claus importats."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Clau"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Clau privada RSA"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Clau privada DSA"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:259
-msgid "Private Key"
-msgstr "Clau privada"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Clau pública DSA"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-msgstr[1] "%d bits"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Força"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algorisme"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Mida"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Empremtes"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1924
-msgid "Unrecognized or unsupported data."
-msgstr "Dades no reconegudes o no compatibles."
-
-#: ../gcr/gcr-parser.c:1927
-msgid "Could not parse invalid or corrupted data."
-msgstr "No s'han pogut analitzar les dades. No són vàlides o està malmeses."
-
-#: ../gcr/gcr-parser.c:1930
-msgid "The data is locked"
-msgstr "Les dades estan blocades"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr ""
-"No s'ha pogut trobar una ubicació on emmagatzemar el certificat importat"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Desbloca l'anell de claus automàticament quan estigui en la sessió"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Bloca aquest anell de claus després de"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Bloca aquest anell de claus si està inactiu durant"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Bloca aquest anell de claus quan surti"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minuts"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "Desbloca: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Desbloca"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "La contrasenya era incorrecta"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Contrasenya"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr ""
-"El contingut de «%s» està bloquejat. Per poder visualitzar el contingut, "
-"introduïu la contrasenya correcta."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr ""
-"El contingut està bloquejat. Per poder visualitzar el contingut, introduïu "
-"la contrasenya correcta."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "Visualitzador de certificats i claus GCR"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Mostra la versió de l'aplicació"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[fitxer...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- Visualitza fitxers de certificats i de claus"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "Visualitzador de certificats"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "La codificació de l'URI no és vàlida."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "L'URI no té l'esquema «pkcs11»."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "La sintaxi de l'URI no és correcta."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "El número de versió de l'URI no és correcte."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Certificat sense nom"
@@ -933,10 +348,26 @@ msgstr "Desbloca l'anell de claus"
msgid "Unlock public key"
msgstr "Desbloca la clau pública"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Desbloca"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Introduïu la contrasenya per desblocar la clau privada"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Introduïu la contrasenya per desblocar el certificat"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Introduïu la contrasenya per desblocar la clau pública"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Introduïu la contrasenya per desblocar"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1026,11 +457,11 @@ msgstr "ordres: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:596
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Voleu emmagatzemar les contrasenyes desxifrades?"
-#: ../ui/gku-prompt-tool.c:597
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1040,15 +471,15 @@ msgstr ""
"emmagatzemades no es xifraran amb seguretat. Aquestes seran accessibles per "
"qualsevol que tingui accés als vostres fitxers."
-#: ../ui/gku-prompt-tool.c:604
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Utilitza un magatzem no segur"
-#: ../ui/gku-prompt-tool.c:644
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Les contrasenyes no coincideixen."
-#: ../ui/gku-prompt-tool.c:654
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "La contrasenya no pot estar en blanc"
@@ -1087,809 +518,3 @@ msgstr "C_ontrasenya antiga:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "Contrasen_ya:"
-
-#~ msgid "Fingerprint"
-#~ msgstr "Empremta"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "No hi ha prou memòria disponible"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "L'identificador de la ranura especificada no és vàlid"
-
-#~ msgid "Internal error"
-#~ msgstr "Error intern"
-
-#~ msgid "The operation failed"
-#~ msgstr "Ha fallat l'operació"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "Arguments no vàlids"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "El mòdul no pot crear els fils necessaris"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "El mòdul no pot blocar adequadament les dades"
-
-#~ msgid "The field is read-only"
-#~ msgstr "El camp és només de lectura"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "El camp és sensible i no es pot mostrar"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "El camp no és vàlid o no existeix"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "El valor no és vàlid per al camp"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "La dada no és vàlida o no s'ha reconegut"
-
-#~ msgid "The data is too long"
-#~ msgstr "La dada és massa llarga"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "Ha succeït un error en el dispositiu"
-
-#~ msgid "Insufficient memory available on the device"
-#~ msgstr "No hi ha prou memòria disponible en el dispositiu"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "S'ha suprimit o s'ha desconnectat el dispositiu"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "La dada encriptada no és vàlida o no s'ha reconegut"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "La dada encriptada és massa llarga"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "Aquesta operació no és compatible"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "Falta la clau o no és vàlida"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "La mida de la clau és incorrecta"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "El tipus de la clau és incorrecte"
-
-#~ msgid "No key is needed"
-#~ msgstr "No es necessita cap clau"
-
-#~ msgid "The key is different than before"
-#~ msgstr "La clau és diferent que abans"
-
-#~ msgid "A key is needed"
-#~ msgstr "Es necessita una clau"
-
-#~ msgid "Cannot include the key in the digest"
-#~ msgstr "No es pot incloure la clau en el resum"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "No es pot fer aquesta operació amb aquesta clau"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "No es pot ajustar la clau"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "No es pot exportar aquesta clau"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "El mecanisme de xifratge no és vàlid o no s'ha reconegut"
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "El mecanisme de xifratge té un argument no vàlid"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "Falta l'objecte o no és vàlid"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "Ja s'està realitzant una altra operació"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "No s'està realitzant cap operació"
-
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "La contrasenya o el PIN són incorrectes"
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "La contrasenya o el PIN no són vàlids"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "La contrasenya o el PIN tenen una longitud no vàlida"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "La contrasenya o el PIN han vençut"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "La contrasenya o el PIN estan blocats"
-
-#~ msgid "The session is closed"
-#~ msgstr "La sessió està tancada"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "Hi ha massa sessions actives"
-
-#~ msgid "The session is invalid"
-#~ msgstr "La sessió no és vàlida"
-
-#~ msgid "The session is read-only"
-#~ msgstr "La sessió és només de lectura"
-
-#~ msgid "An open session exists"
-#~ msgstr "Ja existeix una sessió oberta"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "Ja existeix una sessió només de lectura"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "Ja existeix un administrador"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "La signatura no és vàlida o s'ha malmès"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "No s'ha reconegut la signatura o s'ha malmès"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "Falten alguns camps necessaris"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "Alguns camps tenen valors no vàlids"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "No hi ha el dispositiu o s'ha desconnectat"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "El dispositiu no és vàlid o no es pot reconèixer"
-
-#~ msgid "The device is write protected"
-#~ msgstr "El dispositiu està protegit contra escriptura"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "No es pot importar perquè la clau no és vàlida"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "No es pot importar perquè la mida de la clau és incorrecta"
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "No es pot importar perquè el tipus de la clau és incorrecte"
-
-#~ msgid "You are already logged in"
-#~ msgstr "Ja heu entrat"
-
-#~ msgid "No user has logged in"
-#~ msgstr "No ha entrat cap usuari"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "No s'ha establert la contrasenya o el PIN de l'usuari"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "El tipus de l'usuari no és vàlid"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "Ja ha entrat un altre usuari"
-
-#~ msgid "Too many users of different types are logged in"
-#~ msgstr "Han entrat massa usuaris de diferents tipus"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "No es pot importar una clau no vàlida"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "No es pot importar una clau de mida incorrecta"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "No es pot exportar perquè la clau no és vàlida"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "No es pot exportar perquè la mida de la clau és incorrecta"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "No es pot exportar perquè el tipus de la clau és incorrecte"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "No es pot inicialitzar el generador de números aleatoris"
-
-#~ msgid "No random number generator available"
-#~ msgstr "No hi ha disponible un generador de números aleatoris"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "El mecanisme de xifratge té un paràmetre no vàlid"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "No hi ha suficient espai per emmagatzemar el resultat"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "L'estat desat no és vàlid"
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "La informació és sensible i no es pot mostrar"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "No es pot desar l'estat"
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "No s'ha inicialitzat el mòdul"
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "Ja s'ha inicialitzat el mòdul"
-
-#~ msgid "Cannot lock data"
-#~ msgstr "No es pot blocar la dada"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "No es pot blocar la dada"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "L'usuari ha rebutjat la sol·licitud de signatura"
-
-#~ msgid "Unknown error"
-#~ msgstr "Error desconegut"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>No és part del certificat</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>desconegut</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<No és part del certificat>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>Empremtes</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Emès per</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Emès per a</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>Aquest certificat s'ha verificat per als usos següents:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>Validesa</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "Nom comú (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "Certificat del destinatari del correu electrònic"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "Certificat del signant del correu electrònic"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "Empremta MD5"
-
-#~ msgid "Organization (O)"
-#~ msgstr "Organització (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "Unitat organitzativa (OU)"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr "<span size='large' weight='bold'>Importa certificats i claus</span>"
-
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Aquesta opció habilita el component PKCS#11 en el dimoni del gnome-"
-#~ "keyring. Només té efecte quan s'inicia amb el gnome-session, (per "
-#~ "exemple, quan l'usuari entra a la sessió). Es pot sobreescriure si es "
-#~ "passa una opció de línia d'ordres al dimoni."
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "Aquesta opció habilita l'agent SSH en el dimoni del gnome-keyring. Només "
-#~ "té efecte quan s'inicia el gnome-keyring-daemon, (per exemple, quan "
-#~ "l'usuari entra a la sessió). Es pot sobreescriure aquest paràmetre si es "
-#~ "passa una opció de línia d'ordres al dimoni."
-
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Aquesta opció habilita el component de servei de secrets en el dimoni del "
-#~ "gnome-keyring. Només té efecte quan s'inicia amb el gnome-session, (per "
-#~ "exemple, quan l'usuari entra a la sessió). Es pot sobreescriure aquest "
-#~ "paràmetre si es passa una opció de línia d'ordres al dimoni."
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "Si està habilitat el component PKCS#11 del gnome-keyring."
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "Si està habilitat l'agent SSH del gnome-keyring."
-
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr "Si està habilitat el servei de secrets del gnome-keyring."
-
-#~ msgid "Unlock password for %s keyring"
-#~ msgstr "Contrasenya de desblocatge de l'anell de claus %s"
-
-#~ msgid "Automatically unlock secure storage when I log in."
-#~ msgstr "Desbloca automàticament el magatzem segur quan iniciï la sessió."
-
-#~ msgid ""
-#~ "<span size=\"large\" weight=\"bold\">Enter password for keyring 'login' "
-#~ "to unlock</span>\n"
-#~ "\n"
-#~ "An application wants access to the keyring 'xxx', but it is locked."
-#~ msgstr ""
-#~ "<span size=\"large\" weight=\"bold\">Introduïu la contrasenya per "
-#~ "desblocar l'anell de claus d'entrada</span>\n"
-#~ "\n"
-#~ "Una aplicació vol accedir a l'anell de claus «xxx», però està blocat."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol accedir a la contrasenya per a «<object "
-#~ "prop='name'/>» en l'anell de claus predeterminat."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol accedir a la contrasenya per a «<object "
-#~ "prop='name'/>» en %s."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "L'aplicació «%s» vol accedir a la contrasenya per a «<object prop='name'/"
-#~ ">» de l'anell de claus predeterminat."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "L'aplicació «%s» vol accedir a la contrasenya per a «<object prop='name'/"
-#~ ">» en %s."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "Una aplicació desconeguda vol accedir a la contrasenya per a «<object "
-#~ "prop='name'/>» de l'anell de claus predeterminat."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "Una aplicació desconeguda vol accedir a la contrasenya per a «<object "
-#~ "prop='name'/>» en %s."
-
-#~ msgid "Allow access"
-#~ msgstr "Permet l'accés"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol accedir a l'anell de claus predeterminat, però "
-#~ "està blocat"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol accedir a l'anell de claus «%s», però està "
-#~ "blocat"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-#~ msgstr ""
-#~ "L'aplicació «%s» vol accedir a l'anell de claus predeterminat, però està "
-#~ "blocat"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-#~ msgstr ""
-#~ "L'aplicació «%s» vol accedir a l'anell de claus «%s», però està blocat"
-
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Una aplicació desconeguda vol accedir a l'anell de claus predeterminat, "
-#~ "però està blocat"
-
-#~ msgid "Enter password for default keyring to unlock"
-#~ msgstr ""
-#~ "Introduïu la contrasenya per desblocar l'anell de claus predeterminat"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol crear un anell de claus nou anomenat «%s». Heu "
-#~ "d'establir la contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol crear un anell de claus predeterminat nou. Heu "
-#~ "d'establir la contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicació «%s» vol crear un anell de claus nou anomenat «%s». Heu "
-#~ "d'establir la contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicació «%s» vol crear un anell de claus predeterminat nou. Heu "
-#~ "d'establir la contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "Una aplicació desconeguda vol crear un anell de claus predeterminat nou. "
-#~ "Heu d'establir la contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol canviar la contrasenya de l'anell de claus "
-#~ "«%s». Heu d'escollir la contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol canviar la contrasenya de l'anell de claus "
-#~ "predeterminat. Heu d'escollir la contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicació «%s» vol canviar la contrasenya de l'anell de claus «%s». Heu "
-#~ "d'escollir la contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicació «%s» vol canviar la contrasenya de l'anell de claus "
-#~ "predeterminat. Heu d'escollir la contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Una aplicació desconeguda vol canviar l'anell de claus predeterminat. Heu "
-#~ "d'escollir la contrasenya que hi vulgueu utilitzar."
-
-#~ msgid "Choose a new password for the default keyring."
-#~ msgstr "Escolliu una contrasenya nova per a l'anell de claus predeterminat."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol emmagatzemar una contrasenya, però no hi ha cap "
-#~ "anell de claus predeterminat. Per crear-ne un, heu d'establir la "
-#~ "contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "L'aplicació «%s» vol emmagatzemar una contrasenya, però no hi ha cap "
-#~ "anell de claus predeterminat. Per crear-ne un, heu d'establir la "
-#~ "contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "Una aplicació desconeguda vol emmagatzemar una contrasenya, però no hi ha "
-#~ "cap anell de claus predeterminat. Per crear-ne un, heu d'establir la "
-#~ "contrasenya que hi vulgueu utilitzar."
-
-#~ msgid "Create Default Keyring"
-#~ msgstr "Crea l'anell de claus predeterminat"
-
-#~ msgid "Choose password for default keyring"
-#~ msgstr "Estableix una contrasenya per a l'anell de claus predeterminat"
-
-#~ msgid "Create Login Keyring"
-#~ msgstr "Crea un anell de claus d'entrada"
-
-#~ msgid "Enter your login password"
-#~ msgstr "Introduïu la contrasenya d'entrada"
-
-#~ msgid ""
-#~ "Your login keyring was not automatically created when you logged into "
-#~ "this computer. It will now be created."
-#~ msgstr ""
-#~ "No s'ha creat l'anell de claus d'entrada quan heu entrat a l'ordinador. "
-#~ "Es crearà ara."
-
-#~ msgid "Automatically unlock this private key when I log in."
-#~ msgstr "Desbloca aquesta clau privada quan inici la sessió."
-
-#~ msgid "Automatically unlock this certificate when I log in."
-#~ msgstr "Desbloca aquest certificat quan inici la sessió."
-
-#~ msgid "Automatically unlock this public key when I log in."
-#~ msgstr "Desbloca aquesta clau pública quan inici la sessió."
-
-#~ msgid "Automatically unlock this when I log in"
-#~ msgstr "Desbloca-ho quan inici la sessió"
-
-#~ msgid ""
-#~ "<b><big>Could not grab your mouse.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>No s'ha pogut capturar el ratolí.</big></b>\n"
-#~ "\n"
-#~ "Pot ser que un client maliciós estigui tafanejant la vostra sessió, que "
-#~ "hàgiu fet clic a un menú o que alguna aplicació hagi obtingut el focus.\n"
-#~ "\n"
-#~ "Torneu-ho a provar."
-
-#~ msgid ""
-#~ "<b><big>Could not grab your keyboard.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>No s'ha pogut capturar el teclat.</big></b>\n"
-#~ "\n"
-#~ "Pot ser que un client maliciós estigui tafanejant la vostra sessió, que "
-#~ "hàgiu fet clic a un menú o que alguna aplicació hagi obtingut el focus.\n"
-#~ "\n"
-#~ "Torneu-ho a provar."
-
-#~ msgid "_Deny"
-#~ msgstr "_Denega"
-
-#~ msgid "C_reate"
-#~ msgstr "C_rea"
-
-#~ msgid "C_hange"
-#~ msgstr "Can_via"
-
-#~ msgid "Allow _Once"
-#~ msgstr "Permet _una vegada"
-
-#~ msgid "_Always Allow"
-#~ msgstr "Permet _sempre"
-
-#~ msgid "Removable Disk: %s"
-#~ msgstr "Disc extraïble: %s"
-
-#~ msgid "Removable Disk"
-#~ msgstr "Disc extraïble"
-
-#~ msgid "Home"
-#~ msgstr "Inici"
-
-#~ msgid "The disk or drive this file is located on is not present"
-#~ msgstr "No hi ha el disc o la unitat a on hi ha aquest fitxer"
-
-#~ msgid "Couldn't create directory: %s"
-#~ msgstr "No s'ha pogut crear el directori: %s"
-
-#~ msgid "Access Denied"
-#~ msgstr "Accés denegat"
-
-#~ msgid "The gnome-keyring-daemon application is not running."
-#~ msgstr "No s'està executant l'aplicació gnome-keyring-daemon."
-
-#~ msgid "Error communicating with gnome-keyring-daemon"
-#~ msgstr "S'ha produït un error en comunicar-se amb el gnome-keyring-daemon."
-
-#~ msgid "A keyring with that name already exists"
-#~ msgstr "Ja existeix un anell de claus amb aquest nom"
-
-#~ msgid "Programmer error: The application sent invalid data."
-#~ msgstr "Error de programació: l'aplicació ha enviat dades errònies."
-
-#~ msgid "No matching results"
-#~ msgstr "No hi ha cap concordança"
-
-#~ msgid "A keyring with that name does not exist."
-#~ msgstr "No existeix cap anell de claus amb aquest nom."
-
-#~ msgid "The keyring has already been unlocked."
-#~ msgstr "Ja s'ha desblocat l'anell de claus."
-
-#~ msgid ""
-#~ "A list of paths to PKCS#11 modules to load. No modules are currently "
-#~ "listed by default, as this is still an experimental feature. This is used "
-#~ "by seahorse and other PKCS#11 aware applications."
-#~ msgstr ""
-#~ "Una llista de rutes dels mòduls PKCS#11 a carregar. Per defecte no hi ha "
-#~ "cap mòdul a la llista, ja que aquesta és una funció experimental. El "
-#~ "Seahorse i altres aplicacions PKCS#11 l'utilitzen."
-
-#~ msgid "Import private key"
-#~ msgstr "Importa la clau privada"
-
-#~ msgid "Import public key"
-#~ msgstr "Importa la clau pública"
-
-#~ msgid "Import"
-#~ msgstr "Importa"
-
-#~ msgid "The system wants to import the private key '%s', but it is locked"
-#~ msgstr "El sistema vol importar la clau privada «%s», però està blocada"
-
-#~ msgid "The system wants to import the certificate '%s', but it is locked"
-#~ msgstr "El sistema vol importar el certificat «%s», però està blocat"
-
-#~ msgid "The system wants to import the public key '%s', but it is locked"
-#~ msgstr "El sistema vol importar la clau pública «%s», però està blocada"
-
-#~ msgid "The system wants to import '%s', but it is locked"
-#~ msgstr "El sistema vol importar «%s», però està blocat"
-
-#~ msgid "Create Storage for Key Information"
-#~ msgstr "Crea un magatzem per a la informació de la clau"
-
-#~ msgid "Choose password to protect storage"
-#~ msgstr "Seleccioneu una contrasenya per protegir el magatzem"
-
-#~ msgid ""
-#~ "The system wants to store information about your keys and certificates. "
-#~ "In order to protect this information, choose a password with which it "
-#~ "will be locked."
-#~ msgstr ""
-#~ "El sistema vol emmagatzemar informació sobre les vostres claus i "
-#~ "certificats. Per poder protegir aquesta informació, trieu una contrasenya "
-#~ "per blocar-la."
-
-#~ msgid "Unlock Storage for Key Information"
-#~ msgstr "Desbloca el magatzem per obtenir la informació de la clau"
-
-#~ msgid "Enter password to unlock storage"
-#~ msgstr "Introduïu la contrasenya per desblocar el magatzem"
-
-#~ msgid ""
-#~ "The system wants to access information about your keys and certificates, "
-#~ "but it is locked."
-#~ msgstr ""
-#~ "El sistema vol accedir a la informació sobre les vostres claus i "
-#~ "certificats, però està blocada"
-
-#~ msgid "Trust Association"
-#~ msgstr "Associació de confiança"
-
-#~ msgid "Cannot delete '%s' because it is tied to other objects."
-#~ msgstr "No es pot suprimir «%s» perquè està lligat a altres objectes."
-
-#~ msgid "Lock private key"
-#~ msgstr "Bloca la clau privada"
-
-#~ msgid "Lock"
-#~ msgstr "Bloca"
-
-#~ msgid "Enter password to protect the private key"
-#~ msgstr "Introduïu la contrasenya per protegir la clau privada"
-
-#~ msgid "Enter password to protect storage"
-#~ msgstr "Introduïu la contrasenya per protegir el magatzem"
-
-#~ msgid ""
-#~ "The system wants to store the private key '%s' on your disk. Please enter "
-#~ "a password to lock it with."
-#~ msgstr ""
-#~ "El sistema vol emmagatzemar la clau privada «%s» al disc. Introduïu una "
-#~ "contrasenya a utilitzar per blocar-la."
-
-#~ msgid ""
-#~ "The system wants to store '%s' on your disk. Please enter a password to "
-#~ "lock it with."
-#~ msgstr ""
-#~ "El sistema vol emmagatzemar «%s» al disc. Introduïu una contrasenya a "
-#~ "utilitzar per blocar-ho."
-
-#~ msgid "Unrecognized or unsupported file."
-#~ msgstr "Fitxer no reconegut o no compatible."
-
-#~ msgid "Could not parse invalid or corrupted file."
-#~ msgstr "No s'ha pogut analitzar el fitxer. No és vàlid o està malmès."
-
-#~ msgid "Couldn't read secure shell private key: %s"
-#~ msgstr ""
-#~ "No s'ha pogut llegir la clau privada de l'intèrpret d'ordres segur: %s"
-
-#~ msgid "Invalid secure shell private key at: %s"
-#~ msgstr "La clau privada de l'intèrpret d'ordres segur no és vàlida a: %s"
-
-#~ msgid "Couldn't encrypt the SSH key to store it."
-#~ msgstr "No s'ha pogut xifrar la clau SSH per emmagatzemar-la."
-
-#~ msgid "Couldn't encode the SSH key to store it."
-#~ msgstr "No s'ha pogut codificar la clau SSH per emmagatzemar-la."
-
-#~ msgid "Old password cannot be blank."
-#~ msgstr "La contrasenya antiga no pot ser buida."
-
-#~ msgid "<span weight=\"bold\">Password strength meter:</span>"
-#~ msgstr ""
-#~ "<span weight=\"bold\">Mesurador de la força de la contrasenya:</span>"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol accedir a un anell de claus desconegut, però "
-#~ "està blocat"
-
-#~ msgid ""
-#~ "The application '%s' wants access to an unknown keyring, but it is locked"
-#~ msgstr ""
-#~ "L'aplicació «%s» vol accedir un anell de claus desconegut, però està "
-#~ "blocat"
-
-#~ msgid ""
-#~ "An unknown application wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Una aplicació desconeguda vol accedir a un anell de claus desconegut, "
-#~ "però està blocat"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol accedir a la contrasenya per a «%s» d'un anell "
-#~ "de claus desconegut."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '%s' in an unknown "
-#~ "keyring."
-#~ msgstr ""
-#~ "L'aplicació «%s» vol accedir a la contrasenya de «%s» d'un anell de claus "
-#~ "desconegut."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr ""
-#~ "Una aplicació desconeguda vol accedir a la contrasenya per a «%s» d'un "
-#~ "anell de claus desconegut."
-
-#~ msgid "You must specify the type of request to run\n"
-#~ msgstr "Heu d'especificar el tipus de petició a executar\n"
-
-#~ msgid "Unknown request type\n"
-#~ msgstr "Es desconeix el tipus de petició\n"
diff --git a/po/ca@valencia.po b/po/ca@valencia.po
index ecbdab47..82b7fd47 100644
--- a/po/ca@valencia.po
+++ b/po/ca@valencia.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-26 14:37+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-19 18:47+0200\n"
"Last-Translator: Joan Duran <jodufi@gmail.com>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
@@ -97,8 +97,7 @@ msgstr "Anell de claus del GNOME: agent GPG"
msgid "GPG Password Agent"
msgstr "Agent de contrasenyes GPG"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Desconegut"
@@ -125,7 +124,7 @@ msgid "Forget this password when I log out"
msgstr "Oblida esta contrasenya quan isca"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Entrada"
@@ -169,7 +168,7 @@ msgstr "Nom comú"
msgid "Surname"
msgstr "Cognom"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Número de sèrie"
@@ -225,7 +224,7 @@ msgstr "Qualificador del nom de domini"
msgid "Pseudonym"
msgstr "Pseudònim"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -241,7 +240,7 @@ msgstr "MD5 amb RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 amb RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -282,590 +281,6 @@ msgstr ""
msgid "Unexpected error in waitpid() (%s)"
msgstr "S'ha produït un error inesperat a «waitpid()» (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "S'ha produït un error en carregar el mòdul PKCS#11: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "El mòdul PKCS#11 no és vàlid: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "No s'ha pogut configurar el mòdul PKCS#11: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "No s'ha pogut inicialitzar el mòdul PKCS#11: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "No s'han pogut inicialitzar els mòduls PKCS#11 registrats: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:628
-msgctxt "column"
-msgid "Name"
-msgstr "Nom"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Emés per"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "Venç"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:262
-msgid "Certificate"
-msgstr "Certificat"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Ja existeix un fitxer amb este nom.</b>\n"
-"\n"
-"Voleu reemplaçar-lo amb un fitxer nou?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_Reemplaça"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "S'ha cancel·lat l'operació."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Exporta el certificat"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Fitxers de certificat"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "Fitxers PEM"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Un altre nom"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "Adreça XMPP"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "Servidor DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "Correu electrònic"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "Adreça X400"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Nom del directori"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "Nom del grup EDI"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "Adreça IP"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "Identificador registrat"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Restriccions bàsiques"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "Autoritat de certificació"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Sí"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "No"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Longitud màxima del camí"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Sense límit"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Utilització ampliada de la clau"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Propòsits permesos"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Identificador de l'assumpte de la clau"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Identificador de la clau"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Signatura digital"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Xifrat de clau"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Xifrat de dades"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Acord sobre la clau"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Signatura del certificat"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Firma de la llista de revocació"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Utilització de la clau"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Utilitzacions"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Noms alternatius de l'assumpte"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Extensió"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Identificador"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Valor"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Crític"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "No s'ha pogut exportar el certificat."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "Identitat"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Verificat per"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "Venç"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Nom de l'assumpte"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Nom de l'emissor"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Certificat emés"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Versió"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "No és vàlid abans de"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "No és vàlid després de"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Empremtes del certificat"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Signatura"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Algorisme de la signatura"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Paràmetres de la signatura"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Informació de la clau pública"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Clau de l'algorisme"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Paràmetres de la clau"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Mida de la clau"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "Empremta de la clau SHA1"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:265
-msgid "Public Key"
-msgstr "Clau pública"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_Detalls"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "No s'ha pogut mostrar «%s»"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "No s'ha pogut mostrar el fitxer"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Raó"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "No es pot mostrar un fitxer d'este tipus."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Importa certificats i claus"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Importa a:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Contrasenya:"
-
-#: ../gcr/gcr-gnupg-key.c:250
-msgid "PGP Key"
-msgstr "Clau PGP"
-
-#: ../gcr/gcr-gnupg-key.c:630
-msgctxt "column"
-msgid "Key ID"
-msgstr "ID de la clau"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "El procés Gnupg ha eixit amb el codi: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "S'ha finalitzat el procés Gnupg amb la senyal: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1921 ../gcr/gcr-parser.c:2179
-msgid "The operation was cancelled"
-msgstr "S'ha cancel·lat l'operació"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Introduïu la contrasenya per desblocar la clau privada"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Introduïu la contrasenya per desblocar el certificat"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Introduïu la contrasenya per desblocar"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "S'ha de desblocar la clau privada per poder-la importar"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "S'ha de desblocar el certificat per poder-lo importar"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "S'han de desblocar les dades per poder-les importar"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "S'ha de desblocar la clau privada «%s» per poder-la importar"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "S'ha de desblocar el certificat «%s» per poder-lo importar"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "S'ha de desblocar «%s» per poder-lo importar"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "No hi ha cap ubicació disponible cap on importar"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Importa certificats/claus"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Trieu una ubicació on emmagatzemar els certificats/claus importats."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Clau"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Clau privada RSA"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Clau privada DSA"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:259
-msgid "Private Key"
-msgstr "Clau privada"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Clau pública DSA"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-msgstr[1] "%d bits"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Força"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algorisme"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Mida"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Empremtes"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1924
-msgid "Unrecognized or unsupported data."
-msgstr "Dades no reconegudes o no compatibles."
-
-#: ../gcr/gcr-parser.c:1927
-msgid "Could not parse invalid or corrupted data."
-msgstr "No s'han pogut analitzar les dades. No són vàlides o està malmeses."
-
-#: ../gcr/gcr-parser.c:1930
-msgid "The data is locked"
-msgstr "Les dades estan blocades"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr ""
-"No s'ha pogut trobar una ubicació on emmagatzemar el certificat importat"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Desbloca l'anell de claus automàticament quan estiga en la sessió"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Bloca este anell de claus després de"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Bloca este anell de claus si està inactiu durant"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Bloca este anell de claus quan isca"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minuts"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "Desbloca: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Desbloca"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "La contrasenya era incorrecta"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Contrasenya"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr ""
-"El contingut de «%s» està bloquejat. Per poder visualitzar el contingut, "
-"introduïu la contrasenya correcta."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr ""
-"El contingut està bloquejat. Per poder visualitzar el contingut, introduïu "
-"la contrasenya correcta."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "Visualitzador de certificats i claus GCR"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Mostra la versió de l'aplicació"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[fitxer...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- Visualitza fitxers de certificats i de claus"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "Visualitzador de certificats"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "La codificació de l'URI no és vàlida."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "L'URI no té l'esquema «pkcs11»."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "La sintaxi de l'URI no és correcta."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "El número de versió de l'URI no és correcte."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Certificat sense nom"
@@ -933,10 +348,26 @@ msgstr "Desbloca l'anell de claus"
msgid "Unlock public key"
msgstr "Desbloca la clau pública"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Desbloca"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Introduïu la contrasenya per desblocar la clau privada"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Introduïu la contrasenya per desblocar el certificat"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Introduïu la contrasenya per desblocar la clau pública"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Introduïu la contrasenya per desblocar"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1026,11 +457,11 @@ msgstr "ordes: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:596
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Voleu emmagatzemar les contrasenyes desxifrades?"
-#: ../ui/gku-prompt-tool.c:597
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1040,15 +471,15 @@ msgstr ""
"emmagatzemades no es xifraran amb seguretat. Estes seran accessibles per "
"qualsevol que tinga accés als vostres fitxers."
-#: ../ui/gku-prompt-tool.c:604
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Utilitza un magatzem no segur"
-#: ../ui/gku-prompt-tool.c:644
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Les contrasenyes no coincideixen."
-#: ../ui/gku-prompt-tool.c:654
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "La contrasenya no pot estar en blanc"
@@ -1087,809 +518,3 @@ msgstr "C_ontrasenya antiga:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "Contrasen_ya:"
-
-#~ msgid "Fingerprint"
-#~ msgstr "Empremta"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "No hi ha prou memòria disponible"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "L'identificador de la ranura especificada no és vàlid"
-
-#~ msgid "Internal error"
-#~ msgstr "Error intern"
-
-#~ msgid "The operation failed"
-#~ msgstr "Ha fallat l'operació"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "Arguments no vàlids"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "El mòdul no pot crear els fils necessaris"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "El mòdul no pot blocar adequadament les dades"
-
-#~ msgid "The field is read-only"
-#~ msgstr "El camp és només de lectura"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "El camp és sensible i no es pot mostrar"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "El camp no és vàlid o no existeix"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "El valor no és vàlid per al camp"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "La dada no és vàlida o no s'ha reconegut"
-
-#~ msgid "The data is too long"
-#~ msgstr "La dada és massa llarga"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "Ha succeït un error en el dispositiu"
-
-#~ msgid "Insufficient memory available on the device"
-#~ msgstr "No hi ha prou memòria disponible en el dispositiu"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "S'ha suprimit o s'ha desconnectat el dispositiu"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "La dada encriptada no és vàlida o no s'ha reconegut"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "La dada encriptada és massa llarga"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "Aquesta operació no és compatible"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "Falta la clau o no és vàlida"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "La mida de la clau és incorrecta"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "El tipus de la clau és incorrecte"
-
-#~ msgid "No key is needed"
-#~ msgstr "No es necessita cap clau"
-
-#~ msgid "The key is different than before"
-#~ msgstr "La clau és diferent que abans"
-
-#~ msgid "A key is needed"
-#~ msgstr "Es necessita una clau"
-
-#~ msgid "Cannot include the key in the digest"
-#~ msgstr "No es pot incloure la clau en el resum"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "No es pot fer aquesta operació amb aquesta clau"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "No es pot ajustar la clau"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "No es pot exportar aquesta clau"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "El mecanisme de xifratge no és vàlid o no s'ha reconegut"
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "El mecanisme de xifratge té un argument no vàlid"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "Falta l'objecte o no és vàlid"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "Ja s'està realitzant una altra operació"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "No s'està realitzant cap operació"
-
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "La contrasenya o el PIN són incorrectes"
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "La contrasenya o el PIN no són vàlids"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "La contrasenya o el PIN tenen una longitud no vàlida"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "La contrasenya o el PIN han vençut"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "La contrasenya o el PIN estan blocats"
-
-#~ msgid "The session is closed"
-#~ msgstr "La sessió està tancada"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "Hi ha massa sessions actives"
-
-#~ msgid "The session is invalid"
-#~ msgstr "La sessió no és vàlida"
-
-#~ msgid "The session is read-only"
-#~ msgstr "La sessió és només de lectura"
-
-#~ msgid "An open session exists"
-#~ msgstr "Ja existeix una sessió oberta"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "Ja existeix una sessió només de lectura"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "Ja existeix un administrador"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "La signatura no és vàlida o s'ha malmès"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "No s'ha reconegut la signatura o s'ha malmès"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "Falten alguns camps necessaris"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "Alguns camps tenen valors no vàlids"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "No hi ha el dispositiu o s'ha desconnectat"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "El dispositiu no és vàlid o no es pot reconèixer"
-
-#~ msgid "The device is write protected"
-#~ msgstr "El dispositiu està protegit contra escriptura"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "No es pot importar perquè la clau no és vàlida"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "No es pot importar perquè la mida de la clau és incorrecta"
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "No es pot importar perquè el tipus de la clau és incorrecte"
-
-#~ msgid "You are already logged in"
-#~ msgstr "Ja heu entrat"
-
-#~ msgid "No user has logged in"
-#~ msgstr "No ha entrat cap usuari"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "No s'ha establert la contrasenya o el PIN de l'usuari"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "El tipus de l'usuari no és vàlid"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "Ja ha entrat un altre usuari"
-
-#~ msgid "Too many users of different types are logged in"
-#~ msgstr "Han entrat massa usuaris de diferents tipus"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "No es pot importar una clau no vàlida"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "No es pot importar una clau de mida incorrecta"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "No es pot exportar perquè la clau no és vàlida"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "No es pot exportar perquè la mida de la clau és incorrecta"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "No es pot exportar perquè el tipus de la clau és incorrecte"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "No es pot inicialitzar el generador de números aleatoris"
-
-#~ msgid "No random number generator available"
-#~ msgstr "No hi ha disponible un generador de números aleatoris"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "El mecanisme de xifratge té un paràmetre no vàlid"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "No hi ha suficient espai per emmagatzemar el resultat"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "L'estat desat no és vàlid"
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "La informació és sensible i no es pot mostrar"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "No es pot desar l'estat"
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "No s'ha inicialitzat el mòdul"
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "Ja s'ha inicialitzat el mòdul"
-
-#~ msgid "Cannot lock data"
-#~ msgstr "No es pot blocar la dada"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "No es pot blocar la dada"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "L'usuari ha rebutjat la sol·licitud de signatura"
-
-#~ msgid "Unknown error"
-#~ msgstr "Error desconegut"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>No és part del certificat</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>desconegut</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<No és part del certificat>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>Empremtes</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Emès per</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Emès per a</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>Aquest certificat s'ha verificat per als usos següents:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>Validesa</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "Nom comú (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "Certificat del destinatari del correu electrònic"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "Certificat del signant del correu electrònic"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "Empremta MD5"
-
-#~ msgid "Organization (O)"
-#~ msgstr "Organització (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "Unitat organitzativa (OU)"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr "<span size='large' weight='bold'>Importa certificats i claus</span>"
-
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Aquesta opció habilita el component PKCS#11 en el dimoni del gnome-"
-#~ "keyring. Només té efecte quan s'inicia amb el gnome-session, (per "
-#~ "exemple, quan l'usuari entra a la sessió). Es pot sobreescriure si es "
-#~ "passa una opció de línia d'ordres al dimoni."
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "Aquesta opció habilita l'agent SSH en el dimoni del gnome-keyring. Només "
-#~ "té efecte quan s'inicia el gnome-keyring-daemon, (per exemple, quan "
-#~ "l'usuari entra a la sessió). Es pot sobreescriure aquest paràmetre si es "
-#~ "passa una opció de línia d'ordres al dimoni."
-
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Aquesta opció habilita el component de servei de secrets en el dimoni del "
-#~ "gnome-keyring. Només té efecte quan s'inicia amb el gnome-session, (per "
-#~ "exemple, quan l'usuari entra a la sessió). Es pot sobreescriure aquest "
-#~ "paràmetre si es passa una opció de línia d'ordres al dimoni."
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "Si està habilitat el component PKCS#11 del gnome-keyring."
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "Si està habilitat l'agent SSH del gnome-keyring."
-
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr "Si està habilitat el servei de secrets del gnome-keyring."
-
-#~ msgid "Unlock password for %s keyring"
-#~ msgstr "Contrasenya de desblocatge de l'anell de claus %s"
-
-#~ msgid "Automatically unlock secure storage when I log in."
-#~ msgstr "Desbloca automàticament el magatzem segur quan iniciï la sessió."
-
-#~ msgid ""
-#~ "<span size=\"large\" weight=\"bold\">Enter password for keyring 'login' "
-#~ "to unlock</span>\n"
-#~ "\n"
-#~ "An application wants access to the keyring 'xxx', but it is locked."
-#~ msgstr ""
-#~ "<span size=\"large\" weight=\"bold\">Introduïu la contrasenya per "
-#~ "desblocar l'anell de claus d'entrada</span>\n"
-#~ "\n"
-#~ "Una aplicació vol accedir a l'anell de claus «xxx», però està blocat."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol accedir a la contrasenya per a «<object "
-#~ "prop='name'/>» en l'anell de claus predeterminat."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol accedir a la contrasenya per a «<object "
-#~ "prop='name'/>» en %s."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "L'aplicació «%s» vol accedir a la contrasenya per a «<object prop='name'/"
-#~ ">» de l'anell de claus predeterminat."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "L'aplicació «%s» vol accedir a la contrasenya per a «<object prop='name'/"
-#~ ">» en %s."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "Una aplicació desconeguda vol accedir a la contrasenya per a «<object "
-#~ "prop='name'/>» de l'anell de claus predeterminat."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "Una aplicació desconeguda vol accedir a la contrasenya per a «<object "
-#~ "prop='name'/>» en %s."
-
-#~ msgid "Allow access"
-#~ msgstr "Permet l'accés"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol accedir a l'anell de claus predeterminat, però "
-#~ "està blocat"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol accedir a l'anell de claus «%s», però està "
-#~ "blocat"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-#~ msgstr ""
-#~ "L'aplicació «%s» vol accedir a l'anell de claus predeterminat, però està "
-#~ "blocat"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-#~ msgstr ""
-#~ "L'aplicació «%s» vol accedir a l'anell de claus «%s», però està blocat"
-
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Una aplicació desconeguda vol accedir a l'anell de claus predeterminat, "
-#~ "però està blocat"
-
-#~ msgid "Enter password for default keyring to unlock"
-#~ msgstr ""
-#~ "Introduïu la contrasenya per desblocar l'anell de claus predeterminat"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol crear un anell de claus nou anomenat «%s». Heu "
-#~ "d'establir la contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol crear un anell de claus predeterminat nou. Heu "
-#~ "d'establir la contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicació «%s» vol crear un anell de claus nou anomenat «%s». Heu "
-#~ "d'establir la contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicació «%s» vol crear un anell de claus predeterminat nou. Heu "
-#~ "d'establir la contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "Una aplicació desconeguda vol crear un anell de claus predeterminat nou. "
-#~ "Heu d'establir la contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol canviar la contrasenya de l'anell de claus "
-#~ "«%s». Heu d'escollir la contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol canviar la contrasenya de l'anell de claus "
-#~ "predeterminat. Heu d'escollir la contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicació «%s» vol canviar la contrasenya de l'anell de claus «%s». Heu "
-#~ "d'escollir la contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "L'aplicació «%s» vol canviar la contrasenya de l'anell de claus "
-#~ "predeterminat. Heu d'escollir la contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Una aplicació desconeguda vol canviar l'anell de claus predeterminat. Heu "
-#~ "d'escollir la contrasenya que hi vulgueu utilitzar."
-
-#~ msgid "Choose a new password for the default keyring."
-#~ msgstr "Escolliu una contrasenya nova per a l'anell de claus predeterminat."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol emmagatzemar una contrasenya, però no hi ha cap "
-#~ "anell de claus predeterminat. Per crear-ne un, heu d'establir la "
-#~ "contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "L'aplicació «%s» vol emmagatzemar una contrasenya, però no hi ha cap "
-#~ "anell de claus predeterminat. Per crear-ne un, heu d'establir la "
-#~ "contrasenya que hi vulgueu utilitzar."
-
-#~ msgid ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "Una aplicació desconeguda vol emmagatzemar una contrasenya, però no hi ha "
-#~ "cap anell de claus predeterminat. Per crear-ne un, heu d'establir la "
-#~ "contrasenya que hi vulgueu utilitzar."
-
-#~ msgid "Create Default Keyring"
-#~ msgstr "Crea l'anell de claus predeterminat"
-
-#~ msgid "Choose password for default keyring"
-#~ msgstr "Estableix una contrasenya per a l'anell de claus predeterminat"
-
-#~ msgid "Create Login Keyring"
-#~ msgstr "Crea un anell de claus d'entrada"
-
-#~ msgid "Enter your login password"
-#~ msgstr "Introduïu la contrasenya d'entrada"
-
-#~ msgid ""
-#~ "Your login keyring was not automatically created when you logged into "
-#~ "this computer. It will now be created."
-#~ msgstr ""
-#~ "No s'ha creat l'anell de claus d'entrada quan heu entrat a l'ordinador. "
-#~ "Es crearà ara."
-
-#~ msgid "Automatically unlock this private key when I log in."
-#~ msgstr "Desbloca aquesta clau privada quan inici la sessió."
-
-#~ msgid "Automatically unlock this certificate when I log in."
-#~ msgstr "Desbloca aquest certificat quan inici la sessió."
-
-#~ msgid "Automatically unlock this public key when I log in."
-#~ msgstr "Desbloca aquesta clau pública quan inici la sessió."
-
-#~ msgid "Automatically unlock this when I log in"
-#~ msgstr "Desbloca-ho quan inici la sessió"
-
-#~ msgid ""
-#~ "<b><big>Could not grab your mouse.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>No s'ha pogut capturar el ratolí.</big></b>\n"
-#~ "\n"
-#~ "Pot ser que un client maliciós estigui tafanejant la vostra sessió, que "
-#~ "hàgiu fet clic a un menú o que alguna aplicació hagi obtingut el focus.\n"
-#~ "\n"
-#~ "Torneu-ho a provar."
-
-#~ msgid ""
-#~ "<b><big>Could not grab your keyboard.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>No s'ha pogut capturar el teclat.</big></b>\n"
-#~ "\n"
-#~ "Pot ser que un client maliciós estigui tafanejant la vostra sessió, que "
-#~ "hàgiu fet clic a un menú o que alguna aplicació hagi obtingut el focus.\n"
-#~ "\n"
-#~ "Torneu-ho a provar."
-
-#~ msgid "_Deny"
-#~ msgstr "_Denega"
-
-#~ msgid "C_reate"
-#~ msgstr "C_rea"
-
-#~ msgid "C_hange"
-#~ msgstr "Can_via"
-
-#~ msgid "Allow _Once"
-#~ msgstr "Permet _una vegada"
-
-#~ msgid "_Always Allow"
-#~ msgstr "Permet _sempre"
-
-#~ msgid "Removable Disk: %s"
-#~ msgstr "Disc extraïble: %s"
-
-#~ msgid "Removable Disk"
-#~ msgstr "Disc extraïble"
-
-#~ msgid "Home"
-#~ msgstr "Inici"
-
-#~ msgid "The disk or drive this file is located on is not present"
-#~ msgstr "No hi ha el disc o la unitat a on hi ha aquest fitxer"
-
-#~ msgid "Couldn't create directory: %s"
-#~ msgstr "No s'ha pogut crear el directori: %s"
-
-#~ msgid "Access Denied"
-#~ msgstr "Accés denegat"
-
-#~ msgid "The gnome-keyring-daemon application is not running."
-#~ msgstr "No s'està executant l'aplicació gnome-keyring-daemon."
-
-#~ msgid "Error communicating with gnome-keyring-daemon"
-#~ msgstr "S'ha produït un error en comunicar-se amb el gnome-keyring-daemon."
-
-#~ msgid "A keyring with that name already exists"
-#~ msgstr "Ja existeix un anell de claus amb aquest nom"
-
-#~ msgid "Programmer error: The application sent invalid data."
-#~ msgstr "Error de programació: l'aplicació ha enviat dades errònies."
-
-#~ msgid "No matching results"
-#~ msgstr "No hi ha cap concordança"
-
-#~ msgid "A keyring with that name does not exist."
-#~ msgstr "No existeix cap anell de claus amb aquest nom."
-
-#~ msgid "The keyring has already been unlocked."
-#~ msgstr "Ja s'ha desblocat l'anell de claus."
-
-#~ msgid ""
-#~ "A list of paths to PKCS#11 modules to load. No modules are currently "
-#~ "listed by default, as this is still an experimental feature. This is used "
-#~ "by seahorse and other PKCS#11 aware applications."
-#~ msgstr ""
-#~ "Una llista de rutes dels mòduls PKCS#11 a carregar. Per defecte no hi ha "
-#~ "cap mòdul a la llista, ja que aquesta és una funció experimental. El "
-#~ "Seahorse i altres aplicacions PKCS#11 l'utilitzen."
-
-#~ msgid "Import private key"
-#~ msgstr "Importa la clau privada"
-
-#~ msgid "Import public key"
-#~ msgstr "Importa la clau pública"
-
-#~ msgid "Import"
-#~ msgstr "Importa"
-
-#~ msgid "The system wants to import the private key '%s', but it is locked"
-#~ msgstr "El sistema vol importar la clau privada «%s», però està blocada"
-
-#~ msgid "The system wants to import the certificate '%s', but it is locked"
-#~ msgstr "El sistema vol importar el certificat «%s», però està blocat"
-
-#~ msgid "The system wants to import the public key '%s', but it is locked"
-#~ msgstr "El sistema vol importar la clau pública «%s», però està blocada"
-
-#~ msgid "The system wants to import '%s', but it is locked"
-#~ msgstr "El sistema vol importar «%s», però està blocat"
-
-#~ msgid "Create Storage for Key Information"
-#~ msgstr "Crea un magatzem per a la informació de la clau"
-
-#~ msgid "Choose password to protect storage"
-#~ msgstr "Seleccioneu una contrasenya per protegir el magatzem"
-
-#~ msgid ""
-#~ "The system wants to store information about your keys and certificates. "
-#~ "In order to protect this information, choose a password with which it "
-#~ "will be locked."
-#~ msgstr ""
-#~ "El sistema vol emmagatzemar informació sobre les vostres claus i "
-#~ "certificats. Per poder protegir aquesta informació, trieu una contrasenya "
-#~ "per blocar-la."
-
-#~ msgid "Unlock Storage for Key Information"
-#~ msgstr "Desbloca el magatzem per obtenir la informació de la clau"
-
-#~ msgid "Enter password to unlock storage"
-#~ msgstr "Introduïu la contrasenya per desblocar el magatzem"
-
-#~ msgid ""
-#~ "The system wants to access information about your keys and certificates, "
-#~ "but it is locked."
-#~ msgstr ""
-#~ "El sistema vol accedir a la informació sobre les vostres claus i "
-#~ "certificats, però està blocada"
-
-#~ msgid "Trust Association"
-#~ msgstr "Associació de confiança"
-
-#~ msgid "Cannot delete '%s' because it is tied to other objects."
-#~ msgstr "No es pot suprimir «%s» perquè està lligat a altres objectes."
-
-#~ msgid "Lock private key"
-#~ msgstr "Bloca la clau privada"
-
-#~ msgid "Lock"
-#~ msgstr "Bloca"
-
-#~ msgid "Enter password to protect the private key"
-#~ msgstr "Introduïu la contrasenya per protegir la clau privada"
-
-#~ msgid "Enter password to protect storage"
-#~ msgstr "Introduïu la contrasenya per protegir el magatzem"
-
-#~ msgid ""
-#~ "The system wants to store the private key '%s' on your disk. Please enter "
-#~ "a password to lock it with."
-#~ msgstr ""
-#~ "El sistema vol emmagatzemar la clau privada «%s» al disc. Introduïu una "
-#~ "contrasenya a utilitzar per blocar-la."
-
-#~ msgid ""
-#~ "The system wants to store '%s' on your disk. Please enter a password to "
-#~ "lock it with."
-#~ msgstr ""
-#~ "El sistema vol emmagatzemar «%s» al disc. Introduïu una contrasenya a "
-#~ "utilitzar per blocar-ho."
-
-#~ msgid "Unrecognized or unsupported file."
-#~ msgstr "Fitxer no reconegut o no compatible."
-
-#~ msgid "Could not parse invalid or corrupted file."
-#~ msgstr "No s'ha pogut analitzar el fitxer. No és vàlid o està malmès."
-
-#~ msgid "Couldn't read secure shell private key: %s"
-#~ msgstr ""
-#~ "No s'ha pogut llegir la clau privada de l'intèrpret d'ordres segur: %s"
-
-#~ msgid "Invalid secure shell private key at: %s"
-#~ msgstr "La clau privada de l'intèrpret d'ordres segur no és vàlida a: %s"
-
-#~ msgid "Couldn't encrypt the SSH key to store it."
-#~ msgstr "No s'ha pogut xifrar la clau SSH per emmagatzemar-la."
-
-#~ msgid "Couldn't encode the SSH key to store it."
-#~ msgstr "No s'ha pogut codificar la clau SSH per emmagatzemar-la."
-
-#~ msgid "Old password cannot be blank."
-#~ msgstr "La contrasenya antiga no pot ser buida."
-
-#~ msgid "<span weight=\"bold\">Password strength meter:</span>"
-#~ msgstr ""
-#~ "<span weight=\"bold\">Mesurador de la força de la contrasenya:</span>"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol accedir a un anell de claus desconegut, però "
-#~ "està blocat"
-
-#~ msgid ""
-#~ "The application '%s' wants access to an unknown keyring, but it is locked"
-#~ msgstr ""
-#~ "L'aplicació «%s» vol accedir un anell de claus desconegut, però està "
-#~ "blocat"
-
-#~ msgid ""
-#~ "An unknown application wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Una aplicació desconeguda vol accedir a un anell de claus desconegut, "
-#~ "però està blocat"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr ""
-#~ "L'aplicació «%s» (%s) vol accedir a la contrasenya per a «%s» d'un anell "
-#~ "de claus desconegut."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '%s' in an unknown "
-#~ "keyring."
-#~ msgstr ""
-#~ "L'aplicació «%s» vol accedir a la contrasenya de «%s» d'un anell de claus "
-#~ "desconegut."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr ""
-#~ "Una aplicació desconeguda vol accedir a la contrasenya per a «%s» d'un "
-#~ "anell de claus desconegut."
-
-#~ msgid "You must specify the type of request to run\n"
-#~ msgstr "Heu d'especificar el tipus de petició a executar\n"
-
-#~ msgid "Unknown request type\n"
-#~ msgstr "Es desconeix el tipus de petició\n"
diff --git a/po/cs.po b/po/cs.po
index 62f9c413..ec33cea5 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -13,23 +13,22 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring 3.2\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-09-19 08:45+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-25 12:11+0200\n"
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
+"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: cs\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: KBabel 1.11.4\n"
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Nepojmenovaná"
@@ -105,35 +104,34 @@ msgstr "KlíÄenka GNOME: Agent GPG"
msgid "GPG Password Agent"
msgstr "Agent hesel GPG"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Neznámý"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "KlÃ­Ä PGP: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Zadejte heslovou frázi"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Zapomenout toto heslo pÅ™i neÄinnosti delší než"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Zapomenout toto heslo za"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Zapomenout toto heslo po odhlášení"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Login"
@@ -177,7 +175,7 @@ msgstr "Běžný název"
msgid "Surname"
msgstr "Příjmení"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Sériové Äíslo"
@@ -233,7 +231,7 @@ msgstr "Kvalifikátor DN"
msgid "Pseudonym"
msgstr "Pseudonym"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -249,7 +247,7 @@ msgstr "MD5 s RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 s RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -289,587 +287,6 @@ msgstr ""
msgid "Unexpected error in waitpid() (%s)"
msgstr "NeoÄekávaná chyba ve funkci waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Chyba pÅ™i naÄítání modulu PKCS#11: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Neplatný modul PKCS#11: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Nelze nastavit modul PKCS#11: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "Nelze inicializovat modul PKCS#11: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "Nelze inicializovat registrovaný modul PKCS#11: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Název"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Vydal"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "Vyprší"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "Certifikát"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Soubor s tímto názvem již existuje.</b>\n"
-"\n"
-"Chcete jej nahradit novým souborem?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_Nahradit"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "Operace byla zrušena."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Export certifikátu"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Soubory s certifikáty"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "Soubory PEM"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Jiný název"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "Adresa XMPP"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "Záznam DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "E-mail"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "Adresa X400"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Adresářový název"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "Název EDI skupiny"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "Adresa URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "Adresa IP"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "Registrované ID"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Základní omezení"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "CertifikaÄní autorita"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Ano"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Ne"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Maximální délka cesty"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Bez omezení"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Použití rozšířeného klíÄe"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Povolené úÄely"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Identifikátor klíÄe subjektu"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Identifikátor klíÄe"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Digitální podpis"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Å ifrování klíÄe"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Šifrování dat"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Dohoda na klíÄi"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Podpis certifikátu"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Podpis seznamu odvolaných"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Použití klíÄe"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Použití"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Alternativní názvy subjektu"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Rozšíření"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Identifikátor"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Hodnota"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Kritické"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Nelze exportovat certifikát."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "Identita"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Ověřil"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "Vyprší"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Název subjektu"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Název vydavatele"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Vydaný certifikát"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Verze"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Není platný před"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Není platný po"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Otisky certifikátů"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Podpis"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Algoritmus podpisu"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Parametry podpisu"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Informace o veÅ™ejném klíÄi"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Algoritmus klíÄe"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Parametry klíÄe"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Velikost klíÄe"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "Otisk SHA1 klíÄe"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "VeÅ™ejný klíÄ"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "Po_drobnosti"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "Nelze zobrazit „%s“"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "Nelze zobrazit soubor"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Důvod"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Nelze zobrazit soubor tohoto typu."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Importovat certifikáty a klíÄe"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Import do:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Heslo:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "KlÃ­Ä PGP"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "ID klíÄe"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Proces gnupg skonÄil kódem: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Proces gnupg byl ukonÄen signálem: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919 ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "Operace byla zrušena"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Zadejte heslo k odemknutí soukromého klíÄe"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Zadejte heslo k odemknutí certifikátu"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Zadejte heslo k odemknutí"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Pokud chcete importovat soukromý klíÄ, musíte provést odemÄení"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Pokud chcete importovat certifikát, musíte provést odemÄení"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Pokud chcete importovat data, musíte je odemknout"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Pokud chcete importovat soukromý klÃ­Ä â€ž%s“, musíte provést odemÄení"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Pokud chcete importovat certifikát „%s“, musíte provést odemÄení"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Pokud chcete importovat „%s“, musíte provést odemÄení"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Není dostupné žádné umístění, kam lze importovat"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Importovat certifikáty/klíÄe"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Vyberte umístÄ›ní, kde chcete uchovávat importované certifikáty/klíÄe."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "KlíÄ"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Soukromý klÃ­Ä RSA"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Soukromý klÃ­Ä DSA"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "Soukromý klíÄ"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "VeÅ™ejný klÃ­Ä DSA"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-msgstr[1] "%d bity"
-msgstr[2] "%d bitů"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Síla"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algoritmus"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Velikost"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Otisky"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "Nerozpoznaná nebo nepodporovaná data."
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "Nelze analyzovat neplatná nebo poškozená data."
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "Data jsou uzamÄena"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Nelze najít místo, kde se mají uchovávat vyznaÄené certifikáty"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Automaticky odemknout klíÄenku, kdykoliv se pÅ™ihlásím"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Uzamknout tuto klíÄenku za"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Uzamknout tuto klíÄenku pÅ™i neÄinnosti delší než"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Uzamknout klíÄenku, pokud se odhlásím"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minut"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "Odemknutí: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Odemknout"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "Heslo nebylo správné"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Heslo"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr ""
-"Obsah „%s“ je zamknutý. Pro zobrazení obsahu musíte zadat správné heslo."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr "Obsah je zamknutý. Pro zobrazení obsahu musíte zadat správné heslo."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "ProhlížeÄ certifikátů a klíÄů GCR"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Zobrazit verzi aplikace"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[soubor…]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "– Zobrazit certifikáty a soubory s klíÄi"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "ProhlížeÄ certifikátů"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "Adresa URI má neplatné kódování."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "Adresa URI nemá schéma „pkcs11“."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "Adresa URI má chybnou syntaxi."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "Adresa URI má Å¡patné Äíslo verze."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Nepojmenovaný certifikát"
@@ -879,7 +296,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Nelze analyzovat veÅ™ejný klÃ­Ä zabezpeÄeného shellu."
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Odemykací heslo pro: %s"
@@ -938,10 +355,26 @@ msgstr "Odemknout certifikát"
msgid "Unlock public key"
msgstr "Odemknout veÅ™ejný klíÄ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Odemknout"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Zadejte heslo k odemknutí soukromého klíÄe"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Zadejte heslo k odemknutí certifikátu"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Zadejte heslo k odemknutí veÅ™ejného klíÄe"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Zadejte heslo k odemknutí"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1029,11 +462,11 @@ msgstr "příkazy: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Ukládat hesla nešifrovaně?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1042,15 +475,15 @@ msgstr ""
"Pokud zvolíte použití prázdného hesla, vaÅ¡e uložená hesla nebudou bezpeÄnÄ› "
"zašifrována. Budou přístupná každému, kdo bude mít přístup k vašim souborům."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Použít nezabezpeÄené úložiÅ¡tÄ›"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Hesla nesouhlasí."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Heslo nesmí být prázdné"
diff --git a/po/cy.po b/po/cy.po
index 8a947272..20c80dd2 100644
--- a/po/cy.po
+++ b/po/cy.po
@@ -9,390 +9,510 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-18 20:49+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2006-04-06 21:03+0100\n"
"Last-Translator: Rhys Jones <rhys@sucs.org>\n"
"Language-Team: Welsh <gnome-cy@pengwyn.linux.org.uk>\n"
+"Language: cy\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../gnome-keyring-ask.c:241
-#, fuzzy
-msgid "_Old password:"
-msgstr "_Cyfrinair:"
-
-#: ../gnome-keyring-ask.c:262
-msgid "_Password:"
-msgstr "_Cyfrinair:"
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
+msgstr ""
-#: ../gnome-keyring-ask.c:284
+#: ../daemon/dbus/gkd-secret-change.c:86
#, fuzzy
-msgid "_Confirm new password:"
-msgstr "C_adarnhau cyfrinair:"
+msgid "Change Keyring Password"
+msgstr "Cyfrinair y Cylch Allweddi Newydd"
-#. Strength bar:
-#: ../gnome-keyring-ask.c:303
-msgid "<span weight=\"bold\">Password strength meter:</span>"
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "Dewiswch gyfrinair ar gyfer y cylch allweddi newydd"
+
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
+msgid ""
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
msgstr ""
+"Mae rhaglen anhysbys am greu cylch allweddi ragosodedig newydd. Rhaid i chi "
+"ddewis y cyfrinair yr ydych am ei ddefnyddio ar ei chyfer."
-#: ../gnome-keyring-ask.c:329
-#, fuzzy
-msgid "Old password cannot be blank."
-msgstr "Gall cyfrinair ddim bod yn wag."
+#: ../daemon/dbus/gkd-secret-change.c:111
+msgid "The original password was incorrect"
+msgstr ""
-#: ../gnome-keyring-ask.c:340
-msgid "Password cannot be blank."
-msgstr "Gall cyfrinair ddim bod yn wag."
+#: ../daemon/dbus/gkd-secret-create.c:83
+msgid "New Keyring Password"
+msgstr "Cyfrinair y Cylch Allweddi Newydd"
-#: ../gnome-keyring-ask.c:348
-msgid "Passwords do not match."
-msgstr "Cyfrineiriau ddim yr un fath."
+#: ../daemon/dbus/gkd-secret-create.c:84
+msgid "Choose password for new keyring"
+msgstr "Dewiswch gyfrinair ar gyfer y cylch allweddi newydd"
-#: ../gnome-keyring-ask.c:407
-#, c-format
+#: ../daemon/dbus/gkd-secret-create.c:86
+#, fuzzy, c-format
msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
-"Mae'r rhaglen '%s' (%s) am gyrchu'r cylch allweddi rhagosodedig, ond mae ar "
-"glo"
+"Mae rhaglen anhysbys am greu cylch allweddi newydd o'r enw '%s'. Rhaid i chi "
+"ddewis y cyfrinair yr ydych am ei ddefnyddio ar ei chyfer."
-#: ../gnome-keyring-ask.c:411
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the keyring '%s', but it is locked"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+msgid "Certificate and Key Storage"
msgstr ""
-"Mae'r rhaglen '%s' (%s) am gyrchu'r cylch allweddi '%s', ond mae ar glo"
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:416
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to an unknown keyring, but it is "
-"locked"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+msgid "GNOME Keyring: PKCS#11 Component"
msgstr ""
-"Mae'r rhaglen '%s' (%s) am gyrchu cylch allweddi anhysbys, ond mae ar glo"
-#: ../gnome-keyring-ask.c:422 ../gnome-keyring-ask.c:436
-#, c-format
-msgid ""
-"The application '%s' wants access to the default keyring, but it is locked"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+msgid "GNOME Keyring: Secret Service"
msgstr ""
-"Mae'r rhaglen '%s' am gyrchu'r cylch allweddi ragosodedig, ond mae ar glo"
-#: ../gnome-keyring-ask.c:426 ../gnome-keyring-ask.c:441
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
-msgstr "Mae'r rhaglen '%s' am gyrchu'r cylch allweddi '%s', ond mae ar glo"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
+msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:430 ../gnome-keyring-ask.c:446
-#, c-format
-msgid ""
-"The application '%s' wants access to an unknown keyring, but it is locked"
-msgstr "Mae'r rhaglen '%s' am gyrchu cylch allweddi anhysbys, ond mae ar glo"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+msgid "GNOME Keyring: SSH Agent"
+msgstr ""
-#: ../gnome-keyring-ask.c:452
-msgid ""
-"An unknown application wants access to the default keyring, but it is locked"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
msgstr ""
-"Mae rhaglen anhysbys am gyrchu'r cylch allweddi ragosodedig, ond mae ar glo"
-#: ../gnome-keyring-ask.c:456
-#, c-format
-msgid ""
-"An unknown application wants access to the keyring '%s', but it is locked"
-msgstr "Mae rhaglen anhysbys am gyrchu'r cylch allweddi '%s', ond mae ar glo"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+msgid "GNOME Keyring: GPG Agent"
+msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:461
-msgid ""
-"An unknown application wants access to an unknown keyring, but it is locked"
-msgstr "Mae rhaglen anhysbys am gyrchu cylch allweddi anhysbys, ond mae ar glo"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+msgid "GPG Password Agent"
+msgstr ""
-#: ../gnome-keyring-ask.c:468
-msgid "Enter password for default keyring to unlock"
-msgstr "Rhowch gyfrinair y cylch allweddi ragosodedig er mwyn ei datgloi"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+msgid "Unknown"
+msgstr ""
-#: ../gnome-keyring-ask.c:470
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "Rhowch y cyfrinair i ddatgloi'r cylch allweddi '%s'"
+msgid "PGP Key: %s"
+msgstr ""
-#: ../gnome-keyring-ask.c:474
-msgid "Unlock Keyring"
-msgstr "Datgloi Cylch Allweddi"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
+msgstr ""
-#: ../gnome-keyring-ask.c:479 ../gnome-keyring-ask.c:563
-#: ../gnome-keyring-ask.c:655 ../gnome-keyring-ask.c:711
-#: ../gnome-keyring-ask.c:798
-msgid "_Deny"
-msgstr "_Gwrthod"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
+msgstr ""
-#: ../gnome-keyring-ask.c:517
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-"Mae'r rhaglen '%s' (%s) am greu cylch allweddi newydd o'r enw '%s'. Rhaid i "
-"chi ddewis y cyfrinair yr ydych am ei ddefnyddio ar ei chyfer."
-#: ../gnome-keyring-ask.c:521
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
+msgstr ""
+
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
+msgstr ""
+
+#: ../egg/egg-oid.c:41
+msgid "Domain Component"
+msgstr ""
+
+#: ../egg/egg-oid.c:43
+msgid "User ID"
+msgstr ""
+
+#: ../egg/egg-oid.c:46
+msgid "Email Address"
+msgstr ""
+
+#: ../egg/egg-oid.c:54
+msgid "Date of Birth"
+msgstr ""
+
+#: ../egg/egg-oid.c:56
+msgid "Place of Birth"
+msgstr ""
+
+#: ../egg/egg-oid.c:58
+msgid "Gender"
+msgstr ""
+
+#: ../egg/egg-oid.c:60
+msgid "Country of Citizenship"
+msgstr ""
+
+#: ../egg/egg-oid.c:62
+msgid "Country of Residence"
+msgstr ""
+
+#: ../egg/egg-oid.c:65
+msgid "Common Name"
+msgstr ""
+
+#: ../egg/egg-oid.c:67
+msgid "Surname"
+msgstr ""
+
+#: ../egg/egg-oid.c:69
+msgid "Serial Number"
+msgstr ""
+
+#: ../egg/egg-oid.c:71
+msgid "Country"
+msgstr ""
+
+#: ../egg/egg-oid.c:73
+msgid "Locality"
+msgstr ""
+
+#: ../egg/egg-oid.c:75
+msgid "State"
+msgstr ""
+
+#: ../egg/egg-oid.c:77
+msgid "Street"
+msgstr ""
+
+#: ../egg/egg-oid.c:79
+msgid "Organization"
+msgstr ""
+
+#: ../egg/egg-oid.c:81
+msgid "Organizational Unit"
+msgstr ""
+
+#: ../egg/egg-oid.c:83
+msgid "Title"
+msgstr ""
+
+#: ../egg/egg-oid.c:85
+msgid "Telephone Number"
+msgstr ""
+
+#: ../egg/egg-oid.c:87
+msgid "Given Name"
+msgstr ""
+
+#: ../egg/egg-oid.c:89
+msgid "Initials"
+msgstr ""
+
+#: ../egg/egg-oid.c:91
+msgid "Generation Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:93
+msgid "DN Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:95
+msgid "Pseudonym"
+msgstr ""
+
+#: ../egg/egg-oid.c:98
+msgid "RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:99
+msgid "MD2 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:100
+msgid "MD5 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:101
+msgid "SHA1 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:103
+msgid "DSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:104
+msgid "SHA1 with DSA"
+msgstr ""
+
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
msgstr ""
-"Mae'r rhaglen '%s' (%s) am greu cylch allweddi ragosodedig newydd. Rhaid i "
-"chi ddewis y cyfrinair yr ydych am ei ddefnyddio ar ei chyfer."
-#: ../gnome-keyring-ask.c:527 ../gnome-keyring-ask.c:537
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
+
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
+
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
+
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
+msgid "Unexpected error in select() reading data from a child process (%s)"
msgstr ""
-"Mae'r rhaglen '%s' am greu cylch allweddi newydd o'r enw '%s'. Rhaid i chi "
-"ddewis y cyfrinair yr ydych am ei ddefnyddio ar ei chyfer."
-#: ../gnome-keyring-ask.c:531 ../gnome-keyring-ask.c:541
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+msgid "Unexpected error in waitpid() (%s)"
+msgstr ""
+
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr ""
+
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
msgstr ""
-"Mae'r rhaglen '%s' am greu cylch allweddi ragosodedig newydd. Rhaid i chi "
-"ddewis y cyfrinair yr ydych am ei ddefnyddio ar ei chyfer."
-#: ../gnome-keyring-ask.c:547
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
-msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
+msgid "Unlock password for: %s"
msgstr ""
-"Mae rhaglen anhysbys am greu cylch allweddi newydd o'r enw '%s'. Rhaid i chi "
-"ddewis y cyfrinair yr ydych am ei ddefnyddio ar ei chyfer."
-#: ../gnome-keyring-ask.c:551
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+msgid "The unlock password was incorrect"
msgstr ""
-"Mae rhaglen anhysbys am greu cylch allweddi ragosodedig newydd. Rhaid i chi "
-"ddewis y cyfrinair yr ydych am ei ddefnyddio ar ei chyfer."
-#: ../gnome-keyring-ask.c:558
-msgid "New Keyring Password"
-msgstr "Cyfrinair y Cylch Allweddi Newydd"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+#, fuzzy
+msgid "Unlock Login Keyring"
+msgstr "Datgloi Cylch Allweddi"
-#: ../gnome-keyring-ask.c:559
-msgid "Choose password for new keyring"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
msgstr "Dewiswch gyfrinair ar gyfer y cylch allweddi newydd"
-#: ../gnome-keyring-ask.c:602
-#, fuzzy, c-format
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
msgstr ""
-"Mae'r rhaglen '%s' (%s) am greu cylch allweddi ragosodedig newydd. Rhaid i "
-"chi ddewis y cyfrinair yr ydych am ei ddefnyddio ar ei chyfer."
-#: ../gnome-keyring-ask.c:606
-#, fuzzy, c-format
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
+"The login keyring did not get unlocked when you logged into your computer."
msgstr ""
-"Mae'r rhaglen '%s' (%s) am greu cylch allweddi ragosodedig newydd. Rhaid i "
-"chi ddewis y cyfrinair yr ydych am ei ddefnyddio ar ei chyfer."
-#: ../gnome-keyring-ask.c:612 ../gnome-keyring-ask.c:622
-#, fuzzy, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
-msgstr ""
-"Mae'r rhaglen '%s' am greu cylch allweddi ragosodedig newydd. Rhaid i chi "
-"ddewis y cyfrinair yr ydych am ei ddefnyddio ar ei chyfer."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "Datgloi Cylch Allweddi"
-#: ../gnome-keyring-ask.c:616 ../gnome-keyring-ask.c:626
-#, fuzzy, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-"Mae'r rhaglen '%s' am greu cylch allweddi ragosodedig newydd. Rhaid i chi "
-"ddewis y cyfrinair yr ydych am ei ddefnyddio ar ei chyfer."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
+#, c-format
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "Rhowch y cyfrinair i ddatgloi'r cylch allweddi '%s'"
-#: ../gnome-keyring-ask.c:632
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
#, fuzzy, c-format
-msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr "Mae rhaglen anhysbys am gyrchu'r cylch allweddi '%s', ond mae ar glo"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
msgstr ""
-"Mae rhaglen anhysbys am greu cylch allweddi ragosodedig newydd. Rhaid i chi "
-"ddewis y cyfrinair yr ydych am ei ddefnyddio ar ei chyfer."
-#: ../gnome-keyring-ask.c:636
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
#, fuzzy
-msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+msgid "Unlock certificate"
+msgstr "Datgloi Cylch Allweddi"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
msgstr ""
-"Mae rhaglen anhysbys am greu cylch allweddi ragosodedig newydd. Rhaid i chi "
-"ddewis y cyfrinair yr ydych am ei ddefnyddio ar ei chyfer."
-#: ../gnome-keyring-ask.c:643
-#, fuzzy, c-format
-msgid "Choose a new password for the '%s' keyring. "
-msgstr "Dewiswch gyfrinair ar gyfer y cylch allweddi newydd"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+#, fuzzy
+msgid "Unlock"
+msgstr "Datgloi Cylch Allweddi"
-#: ../gnome-keyring-ask.c:645
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
#, fuzzy
-msgid "Choose a new password for the default keyring. "
-msgstr "Dewiswch gyfrinair ar gyfer y cylch allweddi ragosodedig"
+msgid "Enter password to unlock the private key"
+msgstr "Rhowch gyfrinair y cylch allweddi ragosodedig er mwyn ei datgloi"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr ""
-#: ../gnome-keyring-ask.c:650
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
#, fuzzy
-msgid "Change Keyring Password"
-msgstr "Cyfrinair y Cylch Allweddi Newydd"
+msgid "Enter password to unlock the public key"
+msgstr "Rhowch gyfrinair y cylch allweddi ragosodedig er mwyn ei datgloi"
-#: ../gnome-keyring-ask.c:689
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+#, fuzzy
+msgid "Enter password to unlock"
+msgstr "Rhowch y cyfrinair i ddatgloi'r cylch allweddi '%s'"
+
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
+#, fuzzy, c-format
+msgid "An application wants access to the private key '%s', but it is locked"
+msgstr "Mae rhaglen anhysbys am gyrchu'r cylch allweddi '%s', ond mae ar glo"
+
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
+#, fuzzy, c-format
+msgid "An application wants access to the certificate '%s', but it is locked"
+msgstr "Mae rhaglen anhysbys am gyrchu'r cylch allweddi '%s', ond mae ar glo"
+
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
+#, fuzzy, c-format
+msgid "An application wants access to the public key '%s', but it is locked"
+msgstr "Mae rhaglen anhysbys am gyrchu'r cylch allweddi '%s', ond mae ar glo"
+
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
+#, fuzzy, c-format
+msgid "An application wants access to '%s', but it is locked"
+msgstr "Mae rhaglen anhysbys am gyrchu'r cylch allweddi '%s', ond mae ar glo"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
msgstr ""
-"Mae'r rhaglen '%s' (%s) am gadw cyfrinair newydd, ond does yna ddim cylch "
-"allweddi ragosodedig. I greu cylch, rhaid i chi ddewis y cyfrinair yr ydych "
-"am ei ddefnyddio ar ei chyfer."
-#: ../gnome-keyring-ask.c:693 ../gnome-keyring-ask.c:697
-#, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
msgstr ""
-"Mae'r rhaglen '%s' am gadw cyfrinair newydd, ond does yna ddim cylch "
-"allweddi ragosodedig. I greu cylch, rhaid i chi ddewis y cyfrinair yr ydych "
-"am ei ddefnyddio ar ei chyfer."
-#. app == APPLICATION_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:701
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, fuzzy, c-format
msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr "Mae rhaglen anhysbys am gyrchu'r cylch allweddi '%s', ond mae ar glo"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
msgstr ""
-"Mae rhaglen anhysbys am gadw cyfrinair newydd, ond does yna ddim cylch "
-"allweddi ragosodedig. I greu cylch, rhaid i chi ddewis y cyfrinair yr ydych "
-"am ei ddefnyddio ar ei chyfer."
-#: ../gnome-keyring-ask.c:706
-msgid "Create Default Keyring"
-msgstr "Creu Cylch Allweddi Ragosodedig"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
+msgstr ""
-#: ../gnome-keyring-ask.c:707
-msgid "Choose password for default keyring"
-msgstr "Dewiswch gyfrinair ar gyfer y cylch allweddi ragosodedig"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
+#, c-format
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
-#: ../gnome-keyring-ask.c:747
-msgid "Allow application access to keyring?"
-msgstr "Caniatáu i raglenni gyrchu'r cylch allweddi?"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "Cyfrinair y Cylch Allweddi Newydd"
-#: ../gnome-keyring-ask.c:750
-#, c-format
-msgid "The application '%s' (%s) wants to access the password for '%s' in %s."
-msgstr "Mae'r rhaglen '%s' (%s) am gyrchu'r cyfrinair ar gyfer '%s' yn %s."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "Dewiswch gyfrinair ar gyfer y cylch allweddi newydd"
-#: ../gnome-keyring-ask.c:753
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
msgid ""
-"The application '%s' (%s) wants to access the password for '%s' in the "
-"default keyring."
+"To change the password for '%s', the original and new passwords are required"
msgstr ""
-"Mae'r rhaglen '%s' (%s) am gyrchu'r cyfrinair ar gyfer '%s' yn y cylch "
-"allweddi ragosodedig."
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:756
+#: ../tool/gkr-tool.c:102
#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '%s' in an "
-"unknown keyring."
+msgid "usage: gnome-keyring command [options]\n"
msgstr ""
-"Mae'r rhaglen '%s' (%s) am gyrchu'r cyfrinair ar gyfer '%s' mewn cylch "
-"allweddi anhysbys."
-#: ../gnome-keyring-ask.c:761 ../gnome-keyring-ask.c:772
-#, c-format
-msgid "The application '%s' wants to access the password for '%s' in %s."
-msgstr "Mae'r rhaglen '%s' am gyrchu'r cyfrinair ar gyfer '%s' yn %s."
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
-#: ../gnome-keyring-ask.c:764 ../gnome-keyring-ask.c:775
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '%s' in the default "
-"keyring."
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
msgstr ""
-"Mae'r rhaglen '%s' am gyrchu'r cyfrinair ar gyfer '%s' yn y cylch allweddi "
-"ragosodedig."
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:767 ../gnome-keyring-ask.c:778
-#, c-format
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:592
msgid ""
-"The application '%s' wants to access the password for '%s' in an unknown "
-"keyring."
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
msgstr ""
-"Mae'r rhaglen '%s' am gyrchu'r cyfrinair ar gyfer '%s' mewn cylch allweddi "
-"anhysbys."
-#: ../gnome-keyring-ask.c:783
-#, c-format
-msgid "An unknown application wants to access the password for '%s' in %s."
-msgstr "Mae rhaglen anhysbys am gyrchu'r cyfrinair ar gyfer '%s' yn %s."
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
+msgstr ""
-#: ../gnome-keyring-ask.c:786
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '%s' in the default "
-"keyring."
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr "Cyfrineiriau ddim yr un fath."
+
+#: ../ui/gku-prompt-tool.c:649
+#, fuzzy
+msgid "Password cannot be blank"
+msgstr "Gall cyfrinair ddim bod yn wag."
+
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
msgstr ""
-"Mae rhaglen anhysbys am gyrchu'r cyfrinair ar gyfer '%s' yn y cylch allweddi "
-"ragosodedig."
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:789
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '%s' in an unknown "
-"keyring."
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
msgstr ""
-"Mae rhaglen anhysbys am gyrchu'r cyfrinair ar gyfer '%s' mewn cylch allweddi "
-"anhysbys."
-#: ../gnome-keyring-ask.c:794
-msgid "Allow access"
-msgstr "Caniatau mynediad"
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
+msgstr ""
-#: ../gnome-keyring-ask.c:799
-msgid "Allow _Once"
-msgstr "Caniatau _Unwaith"
+#: ../ui/gku-prompt.ui.h:2
+msgid "_Application:"
+msgstr ""
-#: ../gnome-keyring-ask.c:800
-msgid "_Always Allow"
-msgstr "Caniatau o _Hyd"
+#: ../ui/gku-prompt.ui.h:3
+msgid "_Confirm:"
+msgstr ""
-#: ../gnome-keyring-ask.c:840
-msgid "You must specify the type of request to run\n"
-msgstr "Rhaid nodi pa fath o gais i'w redeg\n"
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
-#: ../gnome-keyring-ask.c:857
-msgid "Unknown request type\n"
-msgstr "Math cais anhysbys\n"
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:6
+#, fuzzy
+msgid "_Old Password:"
+msgstr "_Cyfrinair:"
+
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "_Cyfrinair:"
diff --git a/po/da.po b/po/da.po
index fe21c3bf..ad4f5ad9 100644
--- a/po/da.po
+++ b/po/da.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-18 23:54+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-18 23:04+0200\n"
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -28,7 +28,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Uden navn"
@@ -104,35 +104,34 @@ msgstr "GNOME-nøglering: GPG-agent"
msgid "GPG Password Agent"
msgstr "GPG-adgangskodeagent"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Ukendt"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP-nøgle: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Indtast adgangsfrase"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Glem denne adgangskode ved inaktivitet i"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Glem denne adgangskode efter"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Glem denne adgangskode når jeg logger ud"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Logind"
@@ -176,7 +175,7 @@ msgstr "Normalt navn"
msgid "Surname"
msgstr "Efternavn"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Serienummer"
@@ -232,7 +231,7 @@ msgstr "DN-kvalifikator"
msgid "Pseudonym"
msgstr "Pseudonym"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -248,7 +247,7 @@ msgstr "MD5 med RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 med RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -287,588 +286,6 @@ msgstr "Uventet fejl i select() ved læsning af data fra underproces (%s)"
msgid "Unexpected error in waitpid() (%s)"
msgstr "Uventet fejl i waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Fejl ved indlæsning af PKCS#11-modul: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Ugyldigt PKCS#11-modul: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Kunne ikke opsætte PKCS#11-modul: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "Kunne ikke initialisere PKCS#11-modul: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "Kunne ikke initialisere registrerede PKCS#11-moduler: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Navn"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Udstedt af"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "Udløber"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "Certifikat"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>En fil findes allerede med dette navn.</b>\n"
-"\n"
-"Ønsker du at erstatte den med en ny fil?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_Erstat"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "Operationen blev annulleret."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Eksporter certifikat"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Certifikatfiler"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "PEM-filer"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Andet navn"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "XMPP Addr"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "E-post-adresse"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "X400-adresse"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Mappenavn"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "EDI Party-navn"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "IP-adresse"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "Registreret ID"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Basisbegrænsninger"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "Certifikatautoritet"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Ja"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Nej"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Maks stilængde"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Ubegrænset"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Udvidet nøglebrug"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Tilladte formål"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Identifikator for emnenøgle"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Nøgleidentifikator"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Digital underskrift"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Nøglekodning"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Datakodning"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Nøgleaftale"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Certifikatunderskrift"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Underskrift for tilbagekaldsliste"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Nøglebrug"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Brug"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Alternative navne for emne"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Udvidelse"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Identifikator"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Værdi"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Kritisk"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Kunne ikke eksportere certifikatet."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "Identitet"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Verificeret af"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "Udløber"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Subjekts navn"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Udsteders navn"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Udstedt certifikat"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Version"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Ikke gyldig før"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Ugyldig efter"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Certifikatfingeraftryk"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Underskrift"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Algoritme til underskrift"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Parametre til underskrift"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Offentlig nøgleinformation"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Algoritme til nøgle"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Parametre til nøgle"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Nøglestørrelse"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "SHA1-fingeraftryk for nøgle"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "Offentlig nøgle"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_Detaljer"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "Kunne ikke vise \"%s\""
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "Kunne ikke vise filen"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Ã…rsag"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Kan ikke vise en fil af denne type."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Importér certifikater og nøgler"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Importér til:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Adgangskode:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "PGP-nøgle"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "Nøgle-ID"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Gnupg-proces afsluttedes med kode: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Gnupg-proces blev afsluttet med signal: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919 ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "Operationen blev annulleret"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Indtast adgangskode for at låse den private nøgle op"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Indtast adgangskode for at låse certifikatet op"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Indtast adgangskode for at låse op"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "For at kunne importere den private nøgle, skal denne låses op"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "For at kunne importere certifikatet, skal dette låses op"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "For at kunne importere dataene, skal disse låses op"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "For at kunne importere den private nøgle \"%s\", skal denne låses op"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "For at kunne importere certifikatet \"%s\", skal dette låses op"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "For at kunne importere \"%s\", som skal låses op"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Ingen ledig placering at importere til"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Importér certifikater/nøgler"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Vælg en placering til at lagre de importerede certifikater/nøgler."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Nøgle"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Privat RSA-nøgle"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Privat DSA-nøgle"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "Privat nøgle"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Offentlig DSA-nøgle"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-msgstr[1] "%d bit"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Styrke"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algoritme"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Størrelse"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Fingeraftryk"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "Ukendt eller ikke understøttetede data."
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "Kunne ikke fortolke ugyldige eller ødelagte data."
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "Dataene er låst"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Kunne ikke finde et sted at gemme det fastsatte certifikat"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Lås automatisk denne nøglering op når jeg logger ind"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Lås denne nøglering efter"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Lås denne nøglering hvis inaktiv i"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Lås denne nøglering når jeg logger ud"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minutter"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "LÃ¥s op: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "LÃ¥s op"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "Adgangskoden var forkert"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Adgangskode"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr ""
-"Indholdet af \"%s\" er låst. For at se indholdet så indtast den korrekte "
-"adgangskode."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr ""
-"Indholdet er låst. For at se indholdet så indtast den korrekte adgangskode."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "GCR-certifikat og nøglefremviser"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Vis programmets version"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[fil...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- Vis certifikat og nøglefiler"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "Certifikatfremviser"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "URI'en har en ugyldig kodning."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "URI'en har ikke skemaet \"pkcs11\"."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "URI'en har ugyldig syntaks."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "URI'en har et ugyldigt versionsnummer."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Unavngivet certifikat"
@@ -878,7 +295,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Kunne ikke fortolke offentlig SSH-nøgle"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "LÃ¥s adgangskode op for: %s"
@@ -937,10 +354,26 @@ msgstr "LÃ¥s certifikat op"
msgid "Unlock public key"
msgstr "Lås offentlig nøgle op"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "LÃ¥s op"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Indtast adgangskode for at låse den private nøgle op"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Indtast adgangskode for at låse certifikatet op"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Indtast adgangskode for at låse den offentlige nøgle op"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Indtast adgangskode for at låse op"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1030,11 +463,11 @@ msgstr "kommandoer: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Opbevar adgangskoder ukrypteret?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1044,17 +477,17 @@ msgstr ""
"krypteret sikkert. De vil være tilgængelige for hvem som helst som har "
"adgang til dine filer."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Brug usikker opbevaring"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Adgangskoder stemmer ikke overens."
# Måske skal det være
# Adgangskode kan ikke være blank
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Adgangskode kan ikke være tom"
diff --git a/po/de.po b/po/de.po
index f4a164b1..0660736d 100644
--- a/po/de.po
+++ b/po/de.po
@@ -13,12 +13,12 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring master\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-09-23 22:32+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-24 09:41+0200\n"
"Last-Translator: Mario Blättermann <mariobl@freenet.de>\n"
"Language-Team: German <gnome-de@gnome.org>\n"
+"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -29,7 +29,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Unbenannt"
@@ -106,35 +106,34 @@ msgstr "GNOME-Schlüsselbunddienst: GPG-Agent"
msgid "GPG Password Agent"
msgstr "GPG-Passwort-Agent"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Unbekannt"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP-Schlüssel: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Kennwort eingeben"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Dieses Passwort bei Untätigkeit vergessen nach"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Dieses Passwort vergessen nach"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Dieses Passwort beim Abmelden vergessen"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Anmeldung"
@@ -178,7 +177,7 @@ msgstr "Vorname"
msgid "Surname"
msgstr "Nachname"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Seriennummer"
@@ -234,7 +233,7 @@ msgstr "DN-Kennzeichnung"
msgid "Pseudonym"
msgstr "Pseudonym"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -250,7 +249,7 @@ msgstr "MD5 mit RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 mit RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -290,593 +289,6 @@ msgstr ""
msgid "Unexpected error in waitpid() (%s)"
msgstr "Unerwarteter Fehler in waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Fehler beim Laden des PKCS#11-Moduls: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Ungültiges PKCS#11-Modul: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "PKCS#11-Modul konnte nicht eingerichtet werden: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "PKCS#11-Modul konnte nicht initialisiert werden: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "PKCS#11-Modul konnte nicht registriert werden: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Name"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Ausgestellt von"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "Läuft ab"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "Zertifikat"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Eine Datei mit diesem Namen existiert bereits.</b>\n"
-"\n"
-"Möchten Sie diese Datei durch eine neue Datei ersetzen?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_Ersetzen"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "Der Vorgang wurde abgebrochen."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Zertifikat exportieren"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Zertifikatdateien"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "PEM-Dateien"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Sonstiger Name"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "XMPP-Adresse"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS-Server"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "E-Mail"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "X400-Adresse"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Ordnername"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "Name der EDI-Stelle"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "Adresse"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "IP-Adresse"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "Registrierte Kennung"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Globale Einschränkungen"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "Zertifizierungsstelle"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Ja"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Nein"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Maximale Pfadlänge"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Unbegrenzt"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Erweiterte Schlüsselverwendung"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Zugelassene Zwecke"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Personen-Schlüsselidentifikator"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Schlüsselidentifikator"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Digitale Signatur"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Schlüsselverschlüsselung"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Datenverschlüsselung"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Schlüsselaustausch"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Zertifikatsignatur"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Signatur der Zertifikatrücknahmeliste"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Schlüsselverwendung"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Verwendungszwecke"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Alternative Personennamen"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Erweiterung"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Bezeichner"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Wert"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Kritisch"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Zertifikat konnte nicht exportiert werden."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "Identität"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Überprüft durch"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "Läuft ab"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Personenname"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Name des Herausgebers"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Zertifikat des Herausgebers"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Version"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Nicht gültig vor"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Nicht gültig nach"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Zertifikat-Fingerabdrücke"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Signatur"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Signatur-Algorithmus"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Parameter der Signatur"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Informationen zum öffentlichen Schlüssel"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Schlüssel-Algorithmus"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Schlüsselparameter"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Schlüssellänge"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "SHA1-Fingerabdruck des Schlüssels"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "Öffentlicher Schlüssel"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_Details"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "»%s« kann nicht angezeigt werden"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "Datei kann nicht angezeigt werden"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Grund"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Eine Datei dieses Typs kann nicht angezeigt werden."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Zertifikate und Schlüssel importieren"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Importieren nach:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Passwort:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "PGP-Schlüssel"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "Schlüsselkennung"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Gnupg-Prozess endete mit Fehlercode: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Gnupg-Prozess wurde mit Signal beendet: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919 ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "Der Vorgang wurde abgebrochen"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Geben Sie das Passwort zum Entsperren des privaten Schlüssels ein"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Geben Sie das Passwort zum Entsperren des Zertifikats ein"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Geben Sie das Passwort zum Entsperren ein"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Der private Schlüssel muss zum Importieren entsperrt werden"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Das Zertifikat muss zum Importieren entsperrt werden"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Die Daten müssen zum Importieren entsperrt werden"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Der private Schlüssel »%s« muss zum Importieren entsperrt werden"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Das private Zertifikat »%s« muss zum Importieren entsperrt werden"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "»%s« muss zum Importieren entsperrt werden"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Es steht kein Ort für den Import zur Verfügung"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Zertifikate/Schlüssel importieren"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr ""
-"Wählen Sie einen Ort für die Hinterlegung der importierten Zertifikate/"
-"Schlüssel."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Schlüssel"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Privater RSA-Schlüssel"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Privater DSA-Schlüssel"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "Privater Schlüssel"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Öffentlicher DSA-Schlüssel"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-msgstr[1] "%d bit"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Länge"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algorithmus"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Größe"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Fingerabdrücke"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "Unbekannte oder nicht unterstützte Daten"
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "Ungültige oder defekte Daten konnten nicht verarbeitet werden."
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "Die Daten sind gesperrt"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr ""
-"Es konnte kein Ort für die Hinterlegung des importierten Zertifikats "
-"gefunden werden"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Diesen Schlüsselbund beim Anmelden automatisch entsperren."
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Diesen Schlüsselbund sperren nach"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Diesen Schlüsselbund bei Untätigkeit sperren nach"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Diesen Schlüsselbund beim Abmelden automatisch sperren."
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "Minuten"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "Entsperren: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Entsperren"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "Das Passwort war nicht korrekt"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Passwort"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr ""
-"Der Inhalt von »%s« ist gesperrt. Um den Inhalt anzeigen zu können, geben Sie "
-"das korrekte Passwort ein."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr ""
-"Der Inhalt ist gesperrt. Um den Inhalt anzeigen zu können, geben Sie das "
-"korrekte Passwort ein."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "GCR Zertifikat- und Schlüsselbetrachter"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Die Version der Anwendung anzeigen"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[Datei …]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- Zertifikat- und Schlüsseldateien anzeigen"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "Zertifikatbetrachter"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "Die Adresse hat eine ungültige Zeichenkodierung."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "Die Adresse entspricht nicht dem Schema »PKCS11«."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "Die Adresse hat eine ungültige Syntax."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "Die Adresse hat eine falsche Versionsnummer."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Unbenanntes Zertifikat"
@@ -886,7 +298,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Öffentlicher SSH-Schlüssel konnte nicht verarbeitet werden"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Passwort zum Entsperren von: %s"
@@ -949,10 +361,26 @@ msgstr "Zertifikat entsperren"
msgid "Unlock public key"
msgstr "Öffentlichen Schlüssel entsperren"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Entsperren"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Geben Sie das Passwort zum Entsperren des privaten Schlüssels ein"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Geben Sie das Passwort zum Entsperren des Zertifikats ein"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Geben Sie das Passwort zum Entsperren des öffentlichen Schlüssels ein"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Geben Sie das Passwort zum Entsperren ein"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1050,11 +478,11 @@ msgstr "Befehle: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Passwörter unverschlüsselt speichern?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1064,15 +492,15 @@ msgstr ""
"nicht sicher verschlüsselt werden. Sie werden für jeden mit Zugriff auf Ihre "
"Dateien zugänglich sein."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Unsichere Speicherung verwenden"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Die Passwörter stimmen nicht überein."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Das Passwort darf nicht leer sein"
@@ -1112,247 +540,3 @@ msgstr "_Altes Passwort:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Passwort:"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "Ungenügend Arbeitsspeicher verfügbar"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "Die angegebene Slot-ID ist nicht gültig"
-
-#~ msgid "Internal error"
-#~ msgstr "Interner Fehler"
-
-#~ msgid "The operation failed"
-#~ msgstr "Der Vorgang ist fehlgeschlagen"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "Ungültige Argumente"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "Benötigte Threads können nicht vom Modul erstellt werden"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "Daten können nicht richtig vom Modul gesperrt werden"
-
-#~ msgid "The field is read-only"
-#~ msgstr "Das Feld darf nur gelesen werden"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "Das Feld ist brisant und darf nicht gezeigt werden"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "Das Feld ist ungültig oder nicht vorhanden"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "Ungültiger Wert für das Feld"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "Die Daten sind ungültig oder nicht erkennbar"
-
-#~ msgid "The data is too long"
-#~ msgstr "Die Daten sind zu groß"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "Ein Fehler ist auf dem Gerät aufgetreten"
-
-#~ msgid "Insufficient memory available on the device"
-#~ msgstr "Ungenügend Speicher auf dem Gerät verfügbar"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "Das Gerät ist entfernt oder abgesteckt worden"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "Die verschlüsselten Daten sind ungültig oder nicht erkennbar"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "Die verschlüsselten Daten sind zu groß"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "Dieser Vorgang wird nicht unterstützt"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "Der Schlüssel fehlt oder ist ungültig"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "Der Schlüssel hat die falsche Größe"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "Der Schlüssel hat den falschen Typ"
-
-#~ msgid "No key is needed"
-#~ msgstr "Es wird kein Schlüssel benötigt"
-
-#~ msgid "The key is different than before"
-#~ msgstr "Der Schlüssel ist verschieden im Vergleich zu vorher"
-
-#~ msgid "A key is needed"
-#~ msgstr "Ein Schlüssel wird benötigt"
-
-#~ msgid "Cannot include the key in the digest"
-#~ msgstr "Der Schlüssel kann nicht in die Prüfsumme eingehen"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "Dieser Vorgang kann nicht mit diesem Schlüssel ausgeführt werden"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "Der Schlüssel kann nicht eingebunden werden"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "Dieser Schlüssel darf nicht exportiert werden"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "Die Kryptographie ist ungültig oder unbekannt"
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "Die Kryptographie hat ein ungültiges Argument"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "Das Objekt fehlt oder ist ungültig"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "Ein anderer Vorgang findet bereits statt"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "Kein Vorgang findet statt"
-
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "Das Passwort oder die PIN ist nicht korrekt"
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "Das Passwort oder die PIN ist ungültig"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "Das Passwort oder die PIN haben eine ungültige Länge"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "Das Passwort oder die PIN ist abgelaufen"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "Das Passwort oder die PIN ist gesperrt"
-
-#~ msgid "The session is closed"
-#~ msgstr "Die Sitzung ist geschlossen"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "Es sind zu viele Sitzungen aktiv"
-
-#~ msgid "The session is invalid"
-#~ msgstr "Die Sitzung ist ungültig"
-
-#~ msgid "The session is read-only"
-#~ msgstr "Die Sitzung darf nur gelesen werden"
-
-#~ msgid "An open session exists"
-#~ msgstr "Eine offene Sitzung besteht bereits"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "Eine nur lesbare Sitzung besteht bereits"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "Eine Verwaltungssitzung besteht bereits"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "Die Signatur ist schlecht oder defekt"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "Die Signatur ist nicht erkennbar oder defekt"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "Bestimmte erforderliche Felder fehlen"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "Bestimmte Felder besitzen ungültige Werte"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "Das Gerät ist nicht vorhanden oder abgesteckt"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "Das Gerät ist ungültig oder nicht erkennbar"
-
-#~ msgid "The device is write protected"
-#~ msgstr "Das Gerät ist schreibgeschützt"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "Schlüssel kann nicht importiert werden, weil er ungültig ist"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr ""
-#~ "Schlüssel kann nicht importiert werden, weil er die falsche Größe hat"
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "Schlüssel kann nicht importiert werden, weil der Typ falsch ist"
-
-#~ msgid "You are already logged in"
-#~ msgstr "Sie sind bereits angemeldet"
-
-#~ msgid "No user has logged in"
-#~ msgstr "Kein Benutzer hat sich angemeldet"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "Das Benutzerpasswort oder die PIN ist nicht gesetzt"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "Der Benutzer hat einen ungültigen Typ"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "Ein anderer Benutzer ist bereits angemeldet"
-
-#~ msgid "Too many users of different types are logged in"
-#~ msgstr "Es sind zu viele Benutzer verschiedener Typen angemeldet"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "Ungültiger Schlüssel kann nicht importiert werden"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "Schlüssel kann wegen falscher Größe nicht importiert werden"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "Schlüssel kann nicht exportiert werden, weil er ungültig ist"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr ""
-#~ "Schlüssel kann nicht exportiert werden, weil er die falsche Größe hat"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "Schlüssel kann nicht exportiert werden, weil es der falsche Typ ist"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "Der Generator für Zufallszahlen kann nicht initialisiert werden"
-
-#~ msgid "No random number generator available"
-#~ msgstr "Es ist kein Generator für Zufallszahlen verfügbar"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "Der Verschlüsselungsmechanismus hat einen ungültigen Parameter"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr ""
-#~ "Es ist nicht ausreichend Speicherplatz vorhanden, um das Ergebnis zu "
-#~ "speichern"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "Der gespeicherte Zustand ist ungültig"
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "Die Information ist brisant und darf nicht gezeigt werden"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "Der Zustand kann nicht abgespeichert werden"
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "Das Modul ist nicht initialisiert worden"
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "Das Modul ist bereits initialisiert worden"
-
-#~ msgid "Cannot lock data"
-#~ msgstr "Daten können nicht gesperrt werden"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "Die Daten können nicht gesperrt werden"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "Die Signaturanfrage ist vom Benutzer abgelehnt worden"
-
-#~ msgid "Unknown error"
-#~ msgstr "Unbekannter Fehler"
diff --git a/po/dz.po b/po/dz.po
index 90603f2d..d79d9f4d 100644
--- a/po/dz.po
+++ b/po/dz.po
@@ -6,10 +6,11 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.HEAD.dz\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-06-30 15:24+0000\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2008-09-18 11:01+0530\n"
"Last-Translator: Dawa pemo <daws_403@hotmail.com>\n"
"Language-Team: DZONGKHA <pgeyleg@dit.gov.bt>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -18,511 +19,513 @@ msgstr ""
"X-Poedit-Country: BHUTAN\n"
"X-Poedit-SourceCharset: utf-8\n"
-#: ../common/gkr-location.c:317
-#, c-format
-msgid "Removable Disk: %s"
-msgstr "བà½à½¼à½“་བà½à½´à½–་པའི་ ཌིཀསི: %s"
-
-#: ../common/gkr-location.c:319
-msgid "Removable Disk"
-msgstr "བà½à½¼à½“་བà½à½´à½–་པའི་ ཌིཀསི་ "
-
-#: ../common/gkr-location.c:534
-#: ../common/gkr-location.c:546
-msgid "Home"
-msgstr "à½à¾±à½²à½˜à¼‹ "
-
-#: ../common/gkr-location.c:1074
-#: ../common/gkr-location.c:1097
-#: ../pkix/gkr-pkix-parser.c:514
-#: ../pkix/gkr-pkix-serialize.c:58
-msgid "The disk or drive this file is located on is not present"
-msgstr "ཌིཀསི་ ཡང་ན་ འདྲེན་འཕྲུལ་ ཡིག་སྣོད་འདི་གནས་བཟུང་ཡོད་མི་དེ་ མིན་འདུག་ "
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:222
-#, c-format
-msgid "The application '%s' (%s) wants to access the password for '<object prop='name'/>' in the default keyring."
-msgstr "གློག་རིམ་'%s' (%s) དེ་གིས་ སྔོན་སྒྲིག་ལྡེ་འà½à½¼à½¢à¼‹à½“ང་ '<object prop='name'/>' གི་དོན་ལུ་ ཆོག་ཡིག་དེ་ལུ་ འཛུལ་སྤྱོད་འབད་ནི་ཨིན་པསà¼"
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
+msgstr ""
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:226
-#, c-format
-msgid "The application '%s' (%s) wants to access the password for '<object prop='name'/>' in %s."
-msgstr "གློག་རིམ་'%s' (%s) དེ་གིས་%s ནང་ '<object prop='name'/>' གི་དོན་ལུ་ ཆོག་ཡིག་དེ་ལུ་ འཛུལ་སྤྱོད་འབད་ནི་ཨིན་པསà¼"
+#: ../daemon/dbus/gkd-secret-change.c:86
+msgid "Change Keyring Password"
+msgstr "ལྡེ་འà½à½¼à½¢à¼‹à½‚ྱི་ཆོག་ཡིག་སོརà¼"
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:232
-#: ../daemon/gkr-daemon-ops.c:242
-#, c-format
-msgid "The application '%s' wants to access the password for '<object prop='name'/>' in the default keyring."
-msgstr "གློག་རིམ་'%s' དེ་གིས་ སྔོན་སྒྲིག་ལྡེ་འà½à½¼à½¢à¼‹à½“ང་ '<object prop='name'/>' གི་དོན་ལུ་ ཆོག་ཡིག་དེ་ལུ་ འཛུལ་སྤྱོད་འབད་ནི་ཨིན་པསà¼"
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "ལྡེ་འà½à½¼à½¢à¼‹'%s'གི་དོན་ལུ་ ཆོག་ཡིག་ཅིག་གདམ་à½à¼‹à½¢à¾à¾±à½–སà¼"
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:236
-#: ../daemon/gkr-daemon-ops.c:246
-#, c-format
-msgid "The application '%s' wants to access the password for '<object prop='name'/>' in %s."
-msgstr "གློག་རིམ་'%s' དེ་གིས་ %s ནང་ལུ་ '<object prop='name'/>' གི་དོན་ལས་ ཆོག་ཡིག་དེ་ལུ་ འཛུལ་སྤྱོད་འབད་འདོད་བསà¾à¾±à½ºà½‘à½à¼‹à½¨à½²à½“་མས༠"
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
+msgid ""
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
+msgstr ""
+"མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ ལྡེ་འà½à½¼à½¢à¼‹'%sགི་དོན་ལུ་ ཆོག་ཡིག་སོར་དགོ་མནོà½à¼‹à½¨à½²à½“་མས༠à½à¾±à½¼à½‘་ཀྱིས་དེ་གི་དོན་ལུ་ "
+"ལག་ལེན་འà½à½–་ནིའི་ཆོག་ཡིག་དེ་ གདམ་à½à¼‹à½–རà¾à¾±à½–་དགོà¼"
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:252
-msgid "An unknown application wants to access the password for '<object prop='name'/>' in the default keyring."
-msgstr "མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ སྔོན་སྒྲིག་ལྡེ་འà½à½¼à½¢à¼‹à½“ང་ '<object prop='name'/>' གི་དོན་ལུ་ ཆོག་ཡིག་ནང་བསà¾à¾±à½¼à½‘་འབད་འདོད་བསà¾à¾±à½ºà½‘པ་ཨིན་མས༠"
+#: ../daemon/dbus/gkd-secret-change.c:111
+msgid "The original password was incorrect"
+msgstr ""
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:255
-#, c-format
-msgid "An unknown application wants to access the password for '<object prop='name'/>' in %s."
-msgstr "མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ %s ནང་ '<object prop='name'/>' གི་དོན་ལུ་ ཆོག་ཡིག་ནང་བསà¾à¾±à½¼à½‘་འབད་འདོད་བསà¾à¾±à½ºà½‘པ་ཨིན་པས༠"
+#: ../daemon/dbus/gkd-secret-create.c:83
+msgid "New Keyring Password"
+msgstr "ལྡེ་འà½à½¼à½¢à¼‹à½‚ྱི་ཆོག་ཡིག་གསརཔ་"
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:261
-msgid "Allow access"
-msgstr "འཛུལ་སྤྱོད་འབད་བཅུག"
+#: ../daemon/dbus/gkd-secret-create.c:84
+msgid "Choose password for new keyring"
+msgstr "ལྡེ་འà½à½¼à½¢à¼‹à½‚སར་པའི་དོན་ལུ་ ཆོག་ཡིག་གདམ་à½à¼‹à½¢à¾à¾±à½–སà¼"
-#: ../daemon/gkr-daemon-ops.c:261
-msgid "Allow application access to keyring?"
-msgstr "གློག་རིམ་གྱིས་ལྡེ་འà½à½¼à½¢à¼‹à½£à½´à¼‹ འཛུལ་སྤྱོད་འབད་བཅུག"
+#: ../daemon/dbus/gkd-secret-create.c:86
+#, fuzzy, c-format
+msgid ""
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
+msgstr ""
+"མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ ལྡེ་འà½à½¼à½¢à¼‹à½‚སརཔ་'%s'ཟེར་མི་ཅིག་ གསར་བསà¾à¾²à½´à½“་འབད་ནི་ཨིན་པས༠à½à¾±à½¼à½‘་ཀྱིས་དེ་གི་"
+"དོན་ལུ་ ལག་ལེན་འà½à½–་ནིའི་ཆོག་ཡིག་དེ་ གདམ་à½à¼‹à½–རà¾à¾±à½–་དགོà¼"
-#: ../daemon/gkr-daemon-ops.c:311
-#, c-format
-msgid "Unlock password for %s keyring"
-msgstr " %s ལྡེ་འà½à½¼à½¢à¼‹ གྱི་དོན་ལུ་ ཆོག་ཡིག་ ལྡེ་མིག་à½à¼‹à½•à¾±à½ºà¼‹ "
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+msgid "Certificate and Key Storage"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:368
-#, c-format
-msgid "The application '%s' (%s) wants access to the default keyring, but it is locked"
-msgstr "གློག་རིམ་'%s' (%s)དེ་གིས་ སྔོན་སྒྲིག་ལྡེ་འà½à½¼à½¢à¼‹à½£à½´à¼‹ འཛུལ་སྤྱོད་འབད་འདོད་བསà¾à¾±à½ºà½‘་རུང་ ལྡེ་འà½à½¼à½¢à¼‹à½‘ེ་ ལྡེ་མིག་བརà¾à¾±à½–ས་ནུག"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+msgid "GNOME Keyring: PKCS#11 Component"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:372
-#, c-format
-msgid "The application '%s' (%s) wants access to the keyring '%s', but it is locked"
-msgstr "གློག་རིམ་'%s' (%s)དེ་གིས་ ལྡེ་འà½à½¼à½¢à¼‹'%s'ལུ་ འཛུལ་སྤྱོད་འབད་འདོད་བསà¾à¾±à½ºà½‘་རུང་ ལྡེ་འà½à½¼à½¢à¼‹à½‘ེ་ ལྡེ་མིག་བརà¾à¾±à½–ས་ནུག"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+msgid "GNOME Keyring: Secret Service"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:378
-#: ../daemon/gkr-daemon-ops.c:388
-#, c-format
-msgid "The application '%s' wants access to the default keyring, but it is locked"
-msgstr "གློག་རིམ་'%s' དེ་གིས་ སྔོན་སྒྲིག་ལྡེ་འà½à½¼à½¢à¼‹à½‘ེ་ལུ་ འཛུལ་སྤྱོད་འབད་འདོད་བསà¾à¾±à½ºà½‘་རུང་ ལྡེ་འà½à½¼à½¢à¼‹à½‘ེ་ ལྡེ་མིག་བརà¾à¾±à½–ས་ནུག"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:382
-#: ../daemon/gkr-daemon-ops.c:393
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
-msgstr "གློག་རིམ་'%s' དེ་གིས་ ལྡེ་འà½à½¼à½¢à¼‹'%s'དེ་ལུ་ འཛུལ་སྤྱོད་འབད་འདོད་བསà¾à¾±à½ºà½‘་རུང་ ལྡེ་འà½à½¼à½¢à¼‹à½‘ེ་ལྡེ་མིག་བརà¾à¾±à½–ས་ནུག"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+msgid "GNOME Keyring: SSH Agent"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:399
-#, c-format
-msgid "An unknown application wants access to the default keyring, but it is locked"
-msgstr "མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ སྔོན་སྒྲིག་འà½à½¼à½¢à¼‹à½£à¾¡à½ºà¼‹à½ à½à½¼à½¢à¼‹à½‘ེ་ལུ་ འཛུལ་སྤྱོད་འབད་འདོད་བསà¾à¾±à½ºà½‘་རུང་ ལྡེ་འà½à½¼à½¢à¼‹à½‘ེ་ལྡེ་མིག་བརà¾à¾±à½–ས་ནུག"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:403
-#, c-format
-msgid "An unknown application wants access to the keyring '%s', but it is locked"
-msgstr "མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ ལྡེ་འà½à½¼à½¢à¼‹'%s'དེ་ལུ་ འཛུལ་སྤྱོད་འབད་འདོད་བསà¾à¾±à½ºà½‘་རུང་ ལྡེ་འà½à½¼à½¢à¼‹à½‘ེ་ལྡེ་མིག་བརà¾à¾±à½–ས་ནུག"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+msgid "GNOME Keyring: GPG Agent"
+msgstr ""
+
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+#, fuzzy
+msgid "GPG Password Agent"
+msgstr "ཆོག་ཡིག་གསརཔ་གི་ཤུགས་ཚད"
-#: ../daemon/gkr-daemon-ops.c:410
-msgid "Enter password for default keyring to unlock"
-msgstr "སྔོན་སྒྲིག་ལྡེ་འà½à½¼à½¢à¼‹ ལྡེ་མིག་ཕྱེ་ནིའི་དོན་ལུ་ ཆོག་ཡིག་བཙུགསà¼"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+msgid "Unknown"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:412
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "སྔོན་སྒྲིག་ལྡེ་འà½à½¼à½¢à¼‹'%s' ལྡེ་་མིག་ཕྱེ་ནིའི་དོན་ལུ་ ཆོག་ཡིག་བཙུགསà¼"
+msgid "PGP Key: %s"
+msgstr ""
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:416
-msgid "Unlock Keyring"
-msgstr "ལྡེ་འà½à½¼à½¢à¼‹à½£à¾¡à½ºà¼‹à½˜à½²à½‚་ཕྱེà¼"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:428
-msgid "Automatically unlock this keyring when I log in."
-msgstr "ང་ ནང་སྤྱོད་འབད་བའི་སà¾à½–ས་ ལྡེ་འà½à½¼à½¢à¼‹à½ à½‘ི་ རང་བཞིན་གྱིས་ à½à¼‹à½•à¾±à½ºà¼ "
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:464
-#, c-format
-msgid "The application '%s' (%s) wants to create a new keyring called '%s'. You have to choose the password you want to use for it."
-msgstr "གློག་རིམ་'%s' (%s)དེ་གིས་ ལྡེ་འà½à½¼à½¢à¼‹à½‚སརཔ་'%s'ཟེར་མི་ཅིག་གསར་བསà¾à¾²à½´à½“་འབད་ནི་ཨིན་པས༠à½à¾±à½¼à½‘་ཀྱིས་དེ་གི་དོན་ལུ་ ལག་ལེན་འà½à½–་ནིའི་ཆོག་ཡིག་དེ་ གདམ་à½à¼‹à½–རà¾à¾±à½–་དགོà¼"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:468
-#, c-format
-msgid "The application '%s' (%s) wants to create a new default keyring. You have to choose the password you want to use for it."
-msgstr "གློག་རིམ་'%s' (%s)དེ་གིས་ སྔོན་སྒྲིག་ལྡེ་འà½à½¼à½¢à¼‹à½‚སརཔ་ཅིག་ གསར་བསà¾à¾²à½´à½“་འབད་ནི་ཨིན་པས༠à½à¾±à½¼à½‘་ཀྱིས་དེ་གི་དོན་ལུ་ ལག་ལེན་འà½à½–་ནིའི་ཆོག་ཡིག་དེ་ གདམ་à½à¼‹à½–རà¾à¾±à½–་དགོà¼"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:474
-#: ../daemon/gkr-daemon-ops.c:484
-#, c-format
-msgid "The application '%s' wants to create a new keyring called '%s'. You have to choose the password you want to use for it."
-msgstr "གློག་རིམ་'%s' དེ་གིས་ ལྡེ་འà½à½¼à½¢à¼‹à½‚སརཔ་'%s'ཟེར་མི་ཅིག་ གསར་བསà¾à¾²à½´à½“་འབད་ནི་ཨིན་པས༠à½à¾±à½¼à½‘་ཀྱིས་དེ་གི་དོན་ལུ་ ལག་ལེན་འà½à½–་ནིའི་ཆོག་ཡིག་དེ་ གདམ་à½à¼‹à½–རà¾à¾±à½–་དགོà¼"
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:478
-#: ../daemon/gkr-daemon-ops.c:488
-#, c-format
-msgid "The application '%s' wants to create a new default keyring. You have to choose the password you want to use for it."
-msgstr "གློག་རིམ་'%s' དེ་གིས་ སྔོན་སྒྲིག་ལྡེ་འà½à½¼à½¢à¼‹à½‚སརཔ་ཅིག་ གསར་བསà¾à¾²à½´à½“་འབད་ནི་ཨིན་པས༠à½à¾±à½¼à½‘་ཀྱིས་དེ་གི་དོན་ལུ་ ལག་ལེན་འà½à½–་ནིའི་ཆོག་ཡིག་དེ་ གདམ་à½à¼‹à½–རà¾à¾±à½–་དགོà¼"
+#: ../egg/egg-oid.c:41
+msgid "Domain Component"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:494
-#, c-format
-msgid "An unknown application wants to create a new keyring called '%s'. You have to choose the password you want to use for it."
-msgstr "མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ ལྡེ་འà½à½¼à½¢à¼‹à½‚སརཔ་'%s'ཟེར་མི་ཅིག་ གསར་བསà¾à¾²à½´à½“་འབད་ནི་ཨིན་པས༠à½à¾±à½¼à½‘་ཀྱིས་དེ་གི་དོན་ལུ་ ལག་ལེན་འà½à½–་ནིའི་ཆོག་ཡིག་དེ་ གདམ་à½à¼‹à½–རà¾à¾±à½–་དགོà¼"
+#: ../egg/egg-oid.c:43
+msgid "User ID"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:498
-#, c-format
-msgid "An unknown application wants to create a new default keyring. You have to choose the password you want to use for it."
-msgstr "མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ སྔོན་སྒྲིག་ལྡེ་འà½à½¼à½¢à¼‹à½‚སརཔ་ཅིག་ གསར་བསà¾à¾²à½´à½“་འབད་ནི་ཨིན་པས༠à½à¾±à½¼à½‘་ཀྱིས་དེ་གི་དོན་ལུ་ ལག་ལེན་འà½à½–་ནིའི་ཆོག་ཡིག་དེ་ གདམ་à½à¼‹à½–རà¾à¾±à½–་དགོà¼"
+#: ../egg/egg-oid.c:46
+msgid "Email Address"
+msgstr ""
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:504
-msgid "New Keyring Password"
-msgstr "ལྡེ་འà½à½¼à½¢à¼‹à½‚ྱི་ཆོག་ཡིག་གསརཔ་"
+#: ../egg/egg-oid.c:54
+msgid "Date of Birth"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:505
-msgid "Choose password for new keyring"
-msgstr "ལྡེ་འà½à½¼à½¢à¼‹à½‚སར་པའི་དོན་ལུ་ ཆོག་ཡིག་གདམ་à½à¼‹à½¢à¾à¾±à½–སà¼"
+#: ../egg/egg-oid.c:56
+msgid "Place of Birth"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:552
-#, c-format
-msgid "The application '%s' (%s) wants to change the password for the '%s' keyring. You have to choose the password you want to use for it."
-msgstr "གློག་རིམ་'%s' (%s)དེ་གིས་ ལྡེ་འà½à½¼à½¢à¼‹'%s'གི་དོན་ལུ་ ཆོག་ཡིག་སོར་དགོ་མནོà½à¼‹à½¨à½²à½“་མས༠à½à¾±à½¼à½‘་ཀྱིས་དེ་གི་དོན་ལུ་ ལག་ལེན་འà½à½–་ནིའི་ཆོག་ཡིག་དེ་ གདམ་à½à¼‹à½–རà¾à¾±à½–་དགོ"
+#: ../egg/egg-oid.c:58
+msgid "Gender"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:556
-#, c-format
-msgid "The application '%s' (%s) wants to change the password for the default keyring. You have to choose the password you want to use for it."
-msgstr "གློག་རིམ་'%s' (%s)དེ་གིས་ སྔོན་སྒྲིག་ལྡེ་འà½à½¼à½¢à¼‹à½‚ྱི་དོན་ལུ་ ཆོག་ཡིག་སོར་དགོ་མནོà½à¼‹à½¨à½²à½“་མས༠à½à¾±à½¼à½‘་ཀྱིས་དེ་གི་དོན་ལུ་ ལག་ལེན་འà½à½–་ནིའི་ཆོག་ཡིག་དེ་ གདམ་à½à¼‹à½–རà¾à¾±à½–་དགོ"
+#: ../egg/egg-oid.c:60
+msgid "Country of Citizenship"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:562
-#: ../daemon/gkr-daemon-ops.c:572
-#, c-format
-msgid "The application '%s' wants to change the password for the '%s' keyring. You have to choose the password you want to use for it."
-msgstr "གློག་རིམ་'%s' དེ་གིས་ ལྡེ་འà½à½¼à½¢à¼‹'%s'གི་དོན་ལུ་ ཆོག་ཡིག་སོར་དགོ་མནོà½à¼‹à½¨à½²à½“་མས༠à½à¾±à½¼à½‘་ཀྱིས་དེ་གི་དོན་ལུ་ ལག་ལེན་འà½à½–་ནིའི་ཆོག་ཡིག་དེ་ གདམ་à½à¼‹à½–རà¾à¾±à½–་དགོ"
+#: ../egg/egg-oid.c:62
+msgid "Country of Residence"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:566
-#: ../daemon/gkr-daemon-ops.c:576
-#, c-format
-msgid "The application '%s' wants to change the password for the default keyring. You have to choose the password you want to use for it."
-msgstr "གློག་རིམ་'%s' དེ་གིས་ སྔོན་སྒྲིག་ལྡེ་འà½à½¼à½¢à¼‹à½‚ྱི་དོན་ལུ་ ཆོག་ཡིག་སོར་དགོ་མནོà½à¼‹à½¨à½²à½“་མས༠à½à¾±à½¼à½‘་ཀྱིས་དེ་གི་དོན་ལུ་ ལག་ལེན་འà½à½–་ནིའི་ཆོག་ཡིག་དེ་ གདམ་à½à¼‹à½–རà¾à¾±à½–་དགོà¼"
+#: ../egg/egg-oid.c:65
+msgid "Common Name"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:582
-#, c-format
-msgid "An unknown application wants to change the password for the '%s' keyring. You have to choose the password you want to use for it."
-msgstr "མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ ལྡེ་འà½à½¼à½¢à¼‹'%sགི་དོན་ལུ་ ཆོག་ཡིག་སོར་དགོ་མནོà½à¼‹à½¨à½²à½“་མས༠à½à¾±à½¼à½‘་ཀྱིས་དེ་གི་དོན་ལུ་ ལག་ལེན་འà½à½–་ནིའི་ཆོག་ཡིག་དེ་ གདམ་à½à¼‹à½–རà¾à¾±à½–་དགོà¼"
+#: ../egg/egg-oid.c:67
+msgid "Surname"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:586
-#, c-format
-msgid "An unknown application wants to change the password for the default keyring. You have to choose the password you want to use for it."
-msgstr "མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ སྔོན་སྒྲིག་ལྡེ་འà½à½¼à½¢à¼‹à½‚ྱི་དོན་ལུ་ ཆོག་ཡིག་སོར་དགོ་མནོà½à¼‹à½¨à½²à½“་མས༠à½à¾±à½¼à½‘་ཀྱིས་དེ་གི་དོན་ལུ་ ལག་ལེན་འà½à½–་ནིའི་ཆོག་ཡིག་དེ་ གདམ་à½à¼‹à½–རà¾à¾±à½–་དགོ"
+#: ../egg/egg-oid.c:69
+msgid "Serial Number"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:596
-#, c-format
-msgid "Choose a new password for the '%s' keyring. "
-msgstr "ལྡེ་འà½à½¼à½¢à¼‹'%s'གི་དོན་ལུ་ ཆོག་ཡིག་ཅིག་གདམ་à½à¼‹à½¢à¾à¾±à½–སà¼"
+#: ../egg/egg-oid.c:71
+msgid "Country"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:598
-#, c-format
-msgid "Choose a new password for the default keyring. "
-msgstr "སྔོན་སྒྲིག་ལྡེ་འà½à½¼à½¢à¼‹à½‚ྱི་དོན་ལུ་ ཆོག་ཡིག་གསརཔ་ཅིག་གདམ་à½à¼‹à½¢à¾à¾±à½–སà¼"
+#: ../egg/egg-oid.c:73
+msgid "Locality"
+msgstr ""
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:602
-msgid "Change Keyring Password"
-msgstr "ལྡེ་འà½à½¼à½¢à¼‹à½‚ྱི་ཆོག་ཡིག་སོརà¼"
+#: ../egg/egg-oid.c:75
+msgid "State"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:672
-#, c-format
-msgid "The application '%s' (%s) wants to store a password, but there is no default keyring. To create one, you need to choose the password you wish to use for it."
-msgstr "གློག་རིམ་'%s' (%s) དེ་གིས་ ཆོག་ཡིག་ཅིག་ གསོག་འཇོག་འབད་ནི་འབདà½à¼‹à½‘་ སྔོན་སྒྲིག་ལྡེ་འà½à½¼à½¢à¼‹à½˜à½²à½“་འདུག གཅིག་གསར་བསà¾à¾²à½´à½“་འབད་ནི་ལུ་ à½à¾±à½¼à½‘་ཀྱིས་ལག་ལེན་འà½à½–་འདོད་ཡོད་པའི་ ཆོག་ཡིག་དེ་གདམ་à½à¼‹à½–རà¾à¾±à½–་དགོ"
+#: ../egg/egg-oid.c:77
+msgid "Street"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:676
-#: ../daemon/gkr-daemon-ops.c:680
-#, c-format
-msgid "The application '%s' wants to store a password, but there is no default keyring. To create one, you need to choose the password you wish to use for it."
-msgstr "གློག་རིམ་'%s' དེ་གིས་ ཆོག་ཡིག་ཅིག་ གསོག་འཇོག་འབད་ནི་འབདà½à¼‹à½‘་ སྔོན་སྒྲིག་ལྡེ་འà½à½¼à½¢à¼‹à½˜à½²à½“་འདུག གཅིག་གསར་བསà¾à¾²à½´à½“་འབད་ནི་ལུ་ à½à¾±à½¼à½‘་ཀྱིས་ལག་ལེན་འà½à½–་འདོད་ཡོད་པའི་ ཆོག་ཡིག་དེ་གདམ་à½à¼‹à½–རà¾à¾±à½–་དགོ"
+#: ../egg/egg-oid.c:79
+msgid "Organization"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:684
-#, c-format
-msgid "An unknown application wants to store a password, but there is no default keyring. To create one, you need to choose the password you wish to use for it."
-msgstr "མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ ཆོག་ཡིག་ཅིག་ གསོག་འཇོག་འབད་ནི་འབདà½à¼‹à½‘་ སྔོན་སྒྲིག་ལྡེ་འà½à½¼à½¢à¼‹à½˜à½²à½“་འདུག གཅིག་གསར་བསà¾à¾²à½´à½“་འབད་ནི་ལུ་ à½à¾±à½¼à½‘་ཀྱིས་ལག་ལེན་འà½à½–་འདོད་ཡོད་པའི་ ཆོག་ཡིག་དེ་གདམ་à½à¼‹à½–རà¾à¾±à½–་དགོ"
+#: ../egg/egg-oid.c:81
+msgid "Organizational Unit"
+msgstr ""
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:689
-msgid "Create Default Keyring"
-msgstr "སྔོན་སྒྲིག་ལྡེ་འà½à½¼à½¢à¼‹à½‚སར་བསà¾à¾²à½´à½“་འབདà¼"
+#: ../egg/egg-oid.c:83
+msgid "Title"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:689
-msgid "Choose password for default keyring"
-msgstr "སྔོན་སྒྲིག་ལྡེ་འà½à½¼à½¢à¼‹à½‚ྱི་དོན་ལུ་ ཆོག་ཡིག་གདམ་à½à¼‹à½¢à¾à¾±à½–སà¼"
+#: ../egg/egg-oid.c:85
+msgid "Telephone Number"
+msgstr ""
-#: ../data/gnome-keyring.schemas.in.h:1
-msgid "This option enables the PKCS#11 component in the gnome-keyring daemon. It only takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). This setting may be overridden when certain command line arguments are passed to the daemon."
-msgstr "གདམ་à½à¼‹à½ à½‘ི་གིས་ ཇི་ནོམ་ ལྡེ་འà½à½¼à½¢à¼‹ ཌེ་མཱོན་ནང་ལུ་ PKCS#11 ཆ་ཤས་ ལྕོགས་ཅན་བཟོà½à¼‹à½¨à½²à½“༠དེ་ ཇི་ནོམ་ ལྡེ་འà½à½¼à½¢à¼‹ ཌེ་མཱོན་ འགོ་བཙུགསཔ་ད་ལྕངམ་ཅིག་ ནུས་པ་à½à½¼à½–་ཨིན་ (དཔེར་ན་ ལག་ལེན་པ་དེ་ ནང་བསà¾à¾±à½¼à½‘་འབདà½à¼‹à½‘་ལུ་)༠ཌེ་མཱོན་ལུ་ བཀོད་ལམ་ལ་ལོ་ཅིག་ རྩིས་སྤྲོད་འབད་ཡོད་པའི་སà¾à½–ས་ གཞི་སྒྲིག་འདི་ ཡངན་ཅིན་ མེདཔ་གà½à½„་འོང་à¼"
+#: ../egg/egg-oid.c:87
+msgid "Given Name"
+msgstr ""
-#: ../data/gnome-keyring.schemas.in.h:2
-msgid "This option enables the SSH agent in the gnome-keyring daemon. It only takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). This setting may be overridden when certain command line arguments are passed to the daemon."
-msgstr "གདམ་à½à¼‹à½ à½‘ི་གིས་ ཇི་ནོམ་ ལྡེ་འà½à½¼à½¢à¼‹ ཌེ་མཱོན་ནང་ལུ་ SSH ལས་ཚབ་ ལྕོགས་ཅན་བཟོà½à¼‹à½¨à½²à½“༠དེ་ ཇི་ནོམ་ ལྡེ་འà½à½¼à½¢à¼‹ ཌེ་མཱོན་ འགོ་བཙུགསཔ་ད་ལྕངམ་ཅིག་ ནུས་པ་à½à½¼à½–་ཨིན་ (དཔེར་ན་ ལག་ལེན་པ་དེ་ ནང་བསà¾à¾±à½¼à½‘་འབདà½à¼‹à½‘་ལུ་)༠ཌེ་མཱོན་ལུ་ བཀོད་ལམ་ལ་ལོ་ཅིག་ རྩིས་སྤྲོད་འབད་ཡོད་པའི་སà¾à½–ས་ གཞི་སྒྲིག་འདི་ ཡངན་ཅིན་ མེདཔ་གà½à½„་འོང་à¼"
+#: ../egg/egg-oid.c:89
+msgid "Initials"
+msgstr ""
-#: ../data/gnome-keyring.schemas.in.h:3
-msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-msgstr "ཇི་ནོམ་་ལྡེ་འà½à½¼à½¢à¼‹ PKCS#11 ཆ་ཤས་དེ་ ལྕོགས་ཅན་བཟོ་དེ་ཡོད་ག་མེད་ག༠"
+#: ../egg/egg-oid.c:91
+msgid "Generation Qualifier"
+msgstr ""
-#: ../data/gnome-keyring.schemas.in.h:4
-msgid "Whether the gnome-keyring SSH agent is enabled."
-msgstr "ཇི་ནོམ་ ལྡེ་འà½à½¼à½¢à¼‹ ཨེས་ཨེས་ཨེཆ་ ལས་ཚབ་དེ་ ལྕོགས་ཅན་བཟོ་དེ་ཡོད་ག་མེད་ག༠"
+#: ../egg/egg-oid.c:93
+msgid "DN Qualifier"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:91
-msgid "Access Denied"
-msgstr "འཛུལ་སྤྱོད་འབད་ནི་ ཉན་མ་བà½à½´à½–་ "
+#: ../egg/egg-oid.c:95
+msgid "Pseudonym"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:93
-msgid "The gnome-keyring-daemon application is not running."
-msgstr "ཇི་ནོམ་ ལྡེ་འà½à½¼à½¢à¼‹ ཌེ་མཱོན་ གློག་རིམ་དེ་ ལཱ་མི་འབད་བས༠"
+#: ../egg/egg-oid.c:98
+msgid "RSA"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:95
-msgid "Error communicating with gnome-keyring-daemon"
-msgstr "ཇི་ནོམ་ ལྡེ་འà½à½¼à½¢à¼‹ ཌེ་མཱོན་དང་གཅིག་à½à½¢à¼‹ རྒྱུད་འབྲེལ་འà½à½–་པའི་སà¾à½–ས་ འཛོལ་བ་ "
+#: ../egg/egg-oid.c:99
+msgid "MD2 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:100
+msgid "MD5 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:101
+msgid "SHA1 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:103
+msgid "DSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:104
+msgid "SHA1 with DSA"
+msgstr ""
+
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
+
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
+
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
+
+#: ../egg/egg-spawn.c:273
+#, c-format
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:97
-msgid "A keyring with that name already exists"
-msgstr "འདི་བཟུམ་གྱི་མིང་ཡོད་པའི་ ལྡེ་འà½à½¼à½¢à¼‹à½…ིག་ ཧེ་མ་ལས་རང་འདུག་ "
+#: ../egg/egg-spawn.c:320
+#, c-format
+msgid "Unexpected error in waitpid() (%s)"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:99
-msgid "Programmer error: The application sent invalid data."
-msgstr "ལས་རིམ་བཟོ་མི་ འཛོལབ: གློག་རིམ་དེ་གིས་ ནུས་མེད་གནས་སྡུད་ བà½à½„་ཡོདཔ༠"
+#: ../pkcs11/gkm/gkm-certificate.c:572
+#, fuzzy
+msgid "Unnamed Certificate"
+msgstr "ལག་à½à¾±à½ºà½¢à¼‹ ལྡེ་མིག་à½à¼‹à½•à¾±à½ºà¼‹ "
-#: ../library/gnome-keyring-utils.c:101
-msgid "No matching results"
-msgstr "མà½à½´à½“་སྒྲིག་འབད་མི་ གྲུབ་འབྲས་ མིན་འདུག་ "
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:103
-msgid "A keyring with that name does not exist."
-msgstr "འདི་བཟུམ་གྱི་མིང་ཡོད་པའི་ ལྡེ་འà½à½¼à½¢à¼‹à½˜à½²à½“་འདུག༠"
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, fuzzy, c-format
+msgid "Unlock password for: %s"
+msgstr "'%s' གྱི་དོན་ལུ་ ཆོག་ཡིག་ ལྡེ་མིག་ཕྱེ་ "
-#: ../library/gnome-keyring-utils.c:110
-msgid "The keyring has already been unlocked."
-msgstr "ལྡེ་འà½à½¼à½¢à¼‹à½‘ེ་ ཧེ་མ་ལས་རང་ ལྡེ་མིག་ཕྱེ་དེ་འདུག༠"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+#, fuzzy
+msgid "The unlock password was incorrect"
+msgstr " %s ལྡེ་འà½à½¼à½¢à¼‹ གྱི་དོན་ལུ་ ཆོག་ཡིག་ ལྡེ་མིག་à½à¼‹à½•à¾±à½ºà¼‹ "
-#. And put together the ask request
-#: ../keyrings/gkr-keyring-login.c:98
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
msgid "Unlock Login Keyring"
msgstr "ནང་བསà¾à¾±à½¼à½‘་ ལྡེ་འà½à½¼à½¢à¼‹à½£à¾¡à½ºà¼‹à½˜à½²à½‚་ཕྱེ་ "
-#: ../keyrings/gkr-keyring-login.c:98
-msgid "Enter login password to unlock keyring"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
msgstr "ལྡེ་འà½à½¼à½¢à¼‹ ལྡེ་མིག་ཕྱེ་ནིའི་དོན་ལུ་ ནང་བསà¾à¾±à½¼à½‘་ཆོག་ཡིག་བཙུགས་"
-#: ../keyrings/gkr-keyring-login.c:100
-msgid "Your login keyring was not automatically unlocked when you logged into this computer."
-msgstr "à½à¾±à½¼à½‘་ གློག་རིག་འདི་ནང་ལུ་ ནང་བསà¾à¾±à½¼à½‘་འབད་ཡོད་པའི་སà¾à½–ས་ à½à¾±à½¼à½‘་རའི་ནང་བསà¾à¾±à½¼à½‘་ ལྡེ་འà½à½¼à½¢à¼‹à½‘ེ་ རང་བཞིན་གྱིས་ ལྡེ་མིག་ཕྱེ་དེ་ མིན་འདུག༠"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
+#, fuzzy
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr ""
+"à½à¾±à½¼à½‘་ གློག་རིག་འདི་ནང་ལུ་ ནང་བསà¾à¾±à½¼à½‘་འབད་ཡོད་པའི་སà¾à½–ས་ à½à¾±à½¼à½‘་རའི་ནང་བསà¾à¾±à½¼à½‘་ ལྡེ་འà½à½¼à½¢à¼‹à½‘ེ་ རང་བཞིན་གྱིས་ ལྡེ་"
+"མིག་ཕྱེ་དེ་ མིན་འདུག༠"
-#. And put together the ask request
-#: ../keyrings/gkr-keyring-login.c:124
-msgid "Create Login Keyring"
-msgstr "ནང་བསà¾à¾±à½¼à½‘་ ལྡེ་འà½à½¼à½¢à¼‹à½‚སར་བསà¾à¾²à½´à½“་འབདà¼"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "ལྡེ་འà½à½¼à½¢à¼‹à½£à¾¡à½ºà¼‹à½˜à½²à½‚་ཕྱེà¼"
-#: ../keyrings/gkr-keyring-login.c:124
-msgid "Enter your login password"
-msgstr "à½à¾±à½¼à½‘་རའི་ ནང་བསà¾à¾±à½¼à½‘་ ཆོག་ཡིག་བཙུགས་ "
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
+#, c-format
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "སྔོན་སྒྲིག་ལྡེ་འà½à½¼à½¢à¼‹'%s' ལྡེ་་མིག་ཕྱེ་ནིའི་དོན་ལུ་ ཆོག་ཡིག་བཙུགསà¼"
-#: ../keyrings/gkr-keyring-login.c:126
-msgid "Your login keyring was not automatically created when you logged into this computer. It will now be created."
-msgstr "à½à¾±à½¼à½‘་ གློག་རིག་འདི་ནང་ལུ་ ནང་བསà¾à¾±à½¼à½‘་འབད་ཡོད་པའི་སà¾à½–ས་ ནང་བསà¾à¾±à½¼à½‘་ ལྡེ་འà½à½¼à½¢à¼‹à½‘ེ་ རང་བཞིན་གྱིས་ གསར་བསà¾à¾²à½´à½“་འབད་དེ་མིན་འདུག༠ད་ གསར་བསà¾à¾²à½´à½“་འབད་འོང་༠"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, fuzzy, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr ""
+"མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ ལྡེ་འà½à½¼à½¢à¼‹'%s'དེ་ལུ་ འཛུལ་སྤྱོད་འབད་འདོད་བསà¾à¾±à½ºà½‘་རུང་ ལྡེ་འà½à½¼à½¢à¼‹à½‘ེ་ལྡེ་མིག་བརà¾à¾±à½–ས་"
+"ནུག"
-#: ../pk/gkr-pk-object-storage.c:100
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
msgid "Unlock private key"
msgstr "སྒེར་དོན་གྱི་ ལྡེ་མིག་ཕྱེ་ "
-#: ../pk/gkr-pk-object-storage.c:102
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
msgid "Unlock certificate"
msgstr "ལག་à½à¾±à½ºà½¢à¼‹ ལྡེ་མིག་à½à¼‹à½•à¾±à½ºà¼‹ "
-#: ../pk/gkr-pk-object-storage.c:104
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
msgid "Unlock public key"
msgstr "མི་མང་གི་ལྡེ་མིག་ ཕྱེ་ "
-#: ../pk/gkr-pk-object-storage.c:106
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
msgid "Unlock"
msgstr "ལྡེ་མིག་ཕྱེ "
-#: ../pk/gkr-pk-object-storage.c:117
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
msgid "Enter password to unlock the private key"
msgstr "སྒེར་དོན་ ལྡེ་མིག་ཕྱེ་ནིའི་དོན་ལུ་ ཆོག་ཡིག་བཙུགས་"
-#: ../pk/gkr-pk-object-storage.c:119
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
msgid "Enter password to unlock the certificate"
msgstr "ལག་à½à¾±à½ºà½¢à¼‹à½‘ེ་ ལྡེ་མིག་ཕྱེ་ནིའི་དོན་ལུ་ ཆོག་ཡིག་བཙུགས་ "
-#: ../pk/gkr-pk-object-storage.c:121
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "མི་མང་ ལྡེ་མིག་ཕྱེ་ནིའི་དོན་ལུ་ ཆོག་ཡིག་བཙུགསà¼"
-#: ../pk/gkr-pk-object-storage.c:123
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
msgid "Enter password to unlock"
msgstr "ལྡེ་མིག་ཕྱེ་ནིའི་དོན་ལུ་ ཆོག་ཡིག་བཙུགས་ "
-#: ../pk/gkr-pk-object-storage.c:134
-msgid "Automatically unlock this private key when I log in."
-msgstr "ང་ ནང་བསà¾à¾±à½¼à½‘་འབདà½à¼‹à½‘་ལུ་ སྒེར་དོན་གྱི་ ལྡེ་མིག་འདི་ རང་བཞིན་གྱིས་ ཕྱེ༠"
-
-#: ../pk/gkr-pk-object-storage.c:136
-msgid "Automatically unlock this certificate when I log in."
-msgstr "ང་ནང་བསà¾à¾±à½¼à½‘་འབདà½à¼‹à½‘་ལུ་ ལག་à½à¾±à½ºà½¢à¼‹à½ à½‘ི་ རང་བཞིན་གྱིས་ ལྡེ་མིག་ཕྱེ༠"
-
-#: ../pk/gkr-pk-object-storage.c:138
-msgid "Automatically unlock this public key when I log in."
-msgstr "ང་ ནང་བསà¾à¾±à½¼à½‘་འབདà½à¼‹à½‘་ལུ་ མི་མང་གི་ལྡེ་མིག་འདི་ རང་བཞིན་གྱིས ཕྱེ༠"
-
-#: ../pk/gkr-pk-object-storage.c:140
-msgid "Automatically unlock this when I log in"
-msgstr "ང་ ནང་བསà¾à¾±à½¼à½‘་འབདà½à¼‹à½‘་ལུ་ འདི་ རང་བཞིན་གྱིས་ ལྡེ་མིག་ཕྱེ་ "
-
-#: ../pk/gkr-pk-object-storage.c:155
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
msgid "An application wants access to the private key '%s', but it is locked"
-msgstr "མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ སྒེར་དོན་ལྡེ་མིག་'%s'དེ་ལུ་ འཛུལ་སྤྱོད་འབད་འདོད་བསà¾à¾±à½ºà½‘་རུང་ ལྡེ་མིག་བརà¾à¾±à½–ས་ནུག་"
+msgstr ""
+"མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ སྒེར་དོན་ལྡེ་མིག་'%s'དེ་ལུ་ འཛུལ་སྤྱོད་འབད་འདོད་བསà¾à¾±à½ºà½‘་རུང་ ལྡེ་མིག་བརà¾à¾±à½–ས་ནུག་"
-#: ../pk/gkr-pk-object-storage.c:157
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
#, c-format
msgid "An application wants access to the certificate '%s', but it is locked"
-msgstr "མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ ལག་à½à¾±à½ºà½¢à¼‹ %s'དེ་ལུ་ འཛུལ་སྤྱོད་འབད་འདོད་བསà¾à¾±à½ºà½‘་རུང་ ལྡེ་མིག་བརà¾à¾±à½–ས་ནུག་ "
+msgstr ""
+"མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ ལག་à½à¾±à½ºà½¢à¼‹ %s'དེ་ལུ་ འཛུལ་སྤྱོད་འབད་འདོད་བསà¾à¾±à½ºà½‘་རུང་ ལྡེ་མིག་བརà¾à¾±à½–ས་ནུག་ "
-#: ../pk/gkr-pk-object-storage.c:159
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
#, c-format
msgid "An application wants access to the public key '%s', but it is locked"
-msgstr "མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ མི་མང་ལྡེ་མིག་'%s'དེ་ལུ་ འཛུལ་སྤྱོད་འབད་འདོད་བསà¾à¾±à½ºà½‘་རུང་ ལྡེ་མིག་བརà¾à¾±à½–ས་ནུག་"
+msgstr ""
+"མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ མི་མང་ལྡེ་མིག་'%s'དེ་ལུ་ འཛུལ་སྤྱོད་འབད་འདོད་བསà¾à¾±à½ºà½‘་རུང་ ལྡེ་མིག་བརà¾à¾±à½–ས་ནུག་"
-#: ../pk/gkr-pk-object-storage.c:161
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
#, c-format
msgid "An application wants access to '%s', but it is locked"
msgstr "མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ '%s'དེ་ལུ་ འཛུལ་སྤྱོད་འབད་འདོད་བསà¾à¾±à½ºà½‘་རུང་ ལྡེ་མིག་བརà¾à¾±à½–ས་ནུག"
-#: ../pk/gkr-pk-object-storage.c:167
-#, c-format
-msgid "The system wants to import the private key '%s', but it is locked"
-msgstr "གློག་རིམ་དེ་གིས་ '%s' ནང་འདྲེན་འབད་འདོད་བསà¾à¾±à½ºà½‘་རང་ ལྡེ་མིག་བརà¾à¾±à½–ས་ནུག༠"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+#, fuzzy
+msgid "Unlock certificate/key storage"
+msgstr "ལག་à½à¾±à½ºà½¢à¼‹ ལྡེ་མིག་à½à¼‹à½•à¾±à½ºà¼‹ "
-#: ../pk/gkr-pk-object-storage.c:169
-#, c-format
-msgid "The system wants to import the certificate '%s', but it is locked"
-msgstr "གློག་རིམ་དེ་གིས་ '%s' ནང་འདྲེན་འབད་འདོད་བསà¾à¾±à½ºà½‘་རུང་ ལྡེ་མིག་བརà¾à¾±à½–ས་ནུག༠"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+#, fuzzy
+msgid "Enter password to unlock the certificate/key storage"
+msgstr "ལག་à½à¾±à½ºà½¢à¼‹à½‘ེ་ ལྡེ་མིག་ཕྱེ་ནིའི་དོན་ལུ་ ཆོག་ཡིག་བཙུགས་ "
+
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, fuzzy, c-format
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr ""
+"མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ ལག་à½à¾±à½ºà½¢à¼‹ %s'དེ་ལུ་ འཛུལ་སྤྱོད་འབད་འདོད་བསà¾à¾±à½ºà½‘་རུང་ ལྡེ་མིག་བརà¾à¾±à½–ས་ནུག་ "
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+#, fuzzy
+msgid "New Password Required"
+msgstr "ཆོག་ཡིག་གསརཔ་གི་ཤུགས་ཚད"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
+msgstr ""
-#: ../pk/gkr-pk-object-storage.c:171
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
#, c-format
-msgid "The system wants to import the public key '%s', but it is locked"
-msgstr "གློག་རིམ་དེ་གིས་ '%s' ནང་འདྲེན་འབད་འདོད་བསà¾à¾±à½ºà½‘་་རུང་ ལྡེ་མིག་བརà¾à¾±à½–ས་ནུག"
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "ལྡེ་འà½à½¼à½¢à¼‹à½‚ྱི་ཆོག་ཡིག་སོརà¼"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "ལྡེ་འà½à½¼à½¢à¼‹à½‚སར་པའི་དོན་ལུ་ ཆོག་ཡིག་གདམ་à½à¼‹à½¢à¾à¾±à½–སà¼"
-#: ../pk/gkr-pk-object-storage.c:173
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
-msgid "The system wants to import '%s', but it is locked"
-msgstr "གློག་རིམ་དེ་གིས་ '%s' ནང་འདྲེན་ འབད་འདོད་བསà¾à¾±à½ºà½‘་རུང་ ལྡེ་མིག་བརà¾à¾±à½–ས་ནུག"
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
+msgstr ""
-#: ../pk/gkr-pk-object-storage.c:289
+#: ../tool/gkr-tool.c:102
#, c-format
-msgid "Unlock password for '%s'"
-msgstr "'%s' གྱི་དོན་ལུ་ ཆོག་ཡིག་ ལྡེ་མིག་ཕྱེ་ "
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
-#: ../pkix/gkr-pkix-parser.c:445
-msgid "Unrecognized or unsupported file."
-msgstr "ངོས་འཛིན་མ་འབདà½à¼‹ ཡང་ན་ རྒྱབ་སà¾à¾±à½¼à½¢à¼‹à½˜à½ºà½‘་པའི་ ཡིག་སྣོད༠"
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
-#: ../pkix/gkr-pkix-parser.c:449
-msgid "Could not parse invalid or corrupted file."
-msgstr "ནུས་མེད་ ཡང་ན་ ངན་ཅན་གྱི་ ཡིག་སྣོད་ མིང་དཔྱད་འབད་མ་ཚུགས༠"
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
-#: ../ui/gkr-ask-tool.c:182
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "གསོག་འཇོག་ ཆོག་ཡིག་ གསང་བ་མ་བཟོ་ཡ?"
-#: ../ui/gkr-ask-tool.c:183
-msgid "By choosing to use a blank password, your stored passwords will not be safely encrypted. They will be accessible by anyone with access to your files."
-msgstr "ཆོག་ཡིག་སྟོངམ་ ལག་ལེན་འà½à½–་ནི་ གདམ་à½à¼‹à½¢à¾à¾±à½–་མི་དེ་གིས་ à½à¾±à½¼à½‘་རའི་ གསོག་འཇོག་འབད་ཡོད་པའི་ ཆོག་ཡིག་ཚུ་ ཉེན་མེད་སྦེ་ གསང་བ་བཟོ་མི་ཚུགས༠འདི་ཚུ་ནང་ à½à¾±à½¼à½‘་རའི་ ཡིག་སྣོད་ཚུ་ལུ་ འཛུལ་སྤྱོད་འབད་ཚུགས་མི་ ག་ར་གིས་ འཛུལ་སྤྱོད་འབད་ཚུགས༠"
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
+"ཆོག་ཡིག་སྟོངམ་ ལག་ལེན་འà½à½–་ནི་ གདམ་à½à¼‹à½¢à¾à¾±à½–་མི་དེ་གིས་ à½à¾±à½¼à½‘་རའི་ གསོག་འཇོག་འབད་ཡོད་པའི་ ཆོག་ཡིག་ཚུ་ "
+"ཉེན་མེད་སྦེ་ གསང་བ་བཟོ་མི་ཚུགས༠འདི་ཚུ་ནང་ à½à¾±à½¼à½‘་རའི་ ཡིག་སྣོད་ཚུ་ལུ་ འཛུལ་སྤྱོད་འབད་ཚུགས་མི་ ག་ར་"
+"གིས་ འཛུལ་སྤྱོད་འབད་ཚུགས༠"
-#: ../ui/gkr-ask-tool.c:190
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "ཉེན་ཅན་ གསོག་འཇོག་ ལག་ལེན་འà½à½–་ "
-#: ../ui/gkr-ask-tool.c:413
-msgid "_Location:"
-msgstr "གནས་à½à½¼à½„ས་ (_L)"
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr "ཆོག་ཡིག་མི་མà½à½´à½“་པསà¼"
-#: ../ui/gkr-ask-tool.c:426
-msgid "_Old password:"
-msgstr "ཆོག་ཡིག་རྙིངམ་:(_P)"
+#: ../ui/gku-prompt-tool.c:649
+msgid "Password cannot be blank"
+msgstr "ཆོག་ཡིག་སྟོངམ་སྦེ་མི་བà½à½´à½–་ "
-#: ../ui/gkr-ask-tool.c:446
-msgid "_Password:"
-msgstr "ཆོག་ཡིག་:(_P)"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
-#: ../ui/gkr-ask-tool.c:468
-msgid "_Confirm password:"
-msgstr "ཆོག་ཡིག་གསརཔ་་ངེས་དཔྱད་འབད:(_C)"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
-#: ../ui/gkr-ask-tool.c:488
+#: ../ui/gku-prompt.ui.h:1
msgid "New password strength"
msgstr "ཆོག་ཡིག་གསརཔ་གི་ཤུགས་ཚད"
-#: ../ui/gkr-ask-tool.c:546
-msgid "Passwords do not match."
-msgstr "ཆོག་ཡིག་མི་མà½à½´à½“་པསà¼"
+#: ../ui/gku-prompt.ui.h:2
+#, fuzzy
+msgid "_Application:"
+msgstr "གནས་à½à½¼à½„ས་ (_L)"
-#: ../ui/gkr-ask-tool.c:562
-msgid "Password cannot be blank"
-msgstr "ཆོག་ཡིག་སྟོངམ་སྦེ་མི་བà½à½´à½–་ "
+#: ../ui/gku-prompt.ui.h:3
+#, fuzzy
+msgid "_Confirm:"
+msgstr "ཆོག་ཡིག་གསརཔ་་ངེས་དཔྱད་འབད:(_C)"
-#: ../ui/gkr-ask-tool.c:613
-msgid "Deny"
-msgstr "ཉན་མི་བà½à½´à½–་པས"
-
-#: ../ui/gkr-ask-tool.c:625
-msgid "Allow _Once"
-msgstr "à½à½ºà½„ས་གཅིག་འབད་བཅུག(_O)"
-
-#: ../ui/gkr-ask-tool.c:629
-msgid "_Always Allow"
-msgstr "ཨ་རྟག་ར་འབད་བཅུག(_A)"
-
-#~ msgid "Old password cannot be blank."
-#~ msgstr "ཆོག་ཡིག་རྙིངམ་སྟོངམ་བà½à½¼à½“་མི་བà½à½´à½–་པསà¼"
-#~ msgid "Must be run from gnome-keyring\n"
-#~ msgstr "ཇི་ནོམ་ལྡེ་འà½à½¼à½¢à¼‹à½“ང་ལས་གཡོག་བཀོལ་དགོ་\n"
-#~ msgid "<span weight=\"bold\">Password strength meter:</span>"
-#~ msgstr "<span weight=\"bold\">ཆོག་ཡིག་སྟོབས་ཤུགས་མི་ཊར</span>"
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "གློག་རིམ་'%s' (%s)དེ་གིས་ མ་ཤེས་པའི་ལྡེ་འà½à½¼à½¢à¼‹à½…ིག་ལུ་ འཛུལ་སྤྱོད་འབད་འདོད་བསà¾à¾±à½ºà½‘་རུང་ ལྡེ་འà½à½¼à½¢à¼‹à½‘ེ་ "
-#~ "ལྡེ་མིག་བརà¾à¾±à½–ས་ནུག"
-#~ msgid ""
-#~ "The application '%s' wants access to an unknown keyring, but it is locked"
-#~ msgstr ""
-#~ "གློག་རིམ་'%s' དེ་གིས་ མ་ཤེས་པའི་ལྡེ་འà½à½¼à½¢à¼‹à½…ིག་ལུ་ འཛུལ་སྤྱོད་འབད་འདོད་བསà¾à¾±à½ºà½‘་རུང་ ལྡེ་འà½à½¼à½¢à¼‹à½‘ེ་ལྡེ་མིག་"
-#~ "བརà¾à¾±à½–ས་ནུག"
-#~ msgid ""
-#~ "An unknown application wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ མ་ཤེས་པའི་ལྡེ་འà½à½¼à½¢à¼‹à½…ིག་ལུ་ འཛུལ་སྤྱོད་འབད་འདོད་བསà¾à¾±à½ºà½‘་རུང་ ལྡེ་འà½à½¼à½¢à¼‹à½‘ེ་ལྡེ་"
-#~ "མིག་བརà¾à¾±à½–ས་ནུག"
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr ""
-#~ "གློག་རིམ་'%s' (%s) དེ་གིས་ མ་ཤེས་པའི་ལྡེ་འà½à½¼à½¢à¼‹à½…ིག་ནང་ '%s' གི་དོན་ལས་ ཆོག་ཡིག་དེ་ལུ་ འཛུལ་"
-#~ "སྤྱོད་འབད་ནི་ཨིན་པསà¼"
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '%s' in an unknown "
-#~ "keyring."
-#~ msgstr ""
-#~ "གློག་རིམ་'%s' དེ་གིས་ མ་ཤེས་པའི་ལྡེ་འà½à½¼à½¢à¼‹à½…ིག་ནང་'%s' གི་དོན་ལུ་ ཆོག་ཡིག་དེ་ལུ་ འཛུལ་སྤྱོད་འབད་ནི་"
-#~ "ཨིན་པསà¼"
-#~ msgid ""
-#~ "An unknown application wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr ""
-#~ "མ་ཤེས་པའི་གློག་རིམ་ཅིག་གིས་ མ་ཤེས་པའི་ལྡེ་འà½à½¼à½¢à¼‹à½…ིག་ནང་'%s' གི་དོན་ལས་ ཆོག་ཡིག་དེ་ལུ་ འཛུལ་སྤྱོད་"
-#~ "འབད་ནི་ཨིན་མསà¼"
-#~ msgid "You must specify the type of request to run\n"
-#~ msgstr "à½à¾±à½¼à½‘་ཀྱིས་གཡོག་བཀོལ་ནིའི་དོན་ལུ་ ཞུ་བའི་དབྱེ་བ་དེ་ གསལ་བཀོད་འབད་དགོà¼\n"
-#~ msgid "Unknown request type\n"
-#~ msgstr "མ་ཤེས་པའི་ཞུ་བའི་དབྱེ་བà¼\n"
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:6
+#, fuzzy
+msgid "_Old Password:"
+msgstr "ཆོག་ཡིག་རྙིངམ་:(_P)"
+
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "ཆོག་ཡིག་:(_P)"
diff --git a/po/el.po b/po/el.po
index cd4ff9a1..40fb29fc 100644
--- a/po/el.po
+++ b/po/el.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: el\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-13 11:58+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-01-13 11:59+0200\n"
"Last-Translator: Kostas Papadimas <pkst@gnome.org>\n"
"Language-Team: Greek <team@gnome.gr>\n"
@@ -22,10 +22,9 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANSLATORS: This is the label for an keyring created without a label
-#: ../daemon/dbus/gkd-secret-change.c:78
-#: ../daemon/dbus/gkd-secret-create.c:74
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "ΧωÏίς όνομα"
@@ -41,25 +40,33 @@ msgstr "Επιλέξτε νέο κωδικό για την κλειδοθήκη
#: ../daemon/dbus/gkd-secret-change.c:92
#, c-format
-msgid "An application wants to change the password for the '%s' keyring. Choose the new password you want to use for it."
-msgstr "Μια εφαÏμογή επιθυμεί να αλλάξει το κωδικό για την κλειδοθήκη '%s'. Επιλέξετε τον κωδικό που θέλετε να χÏησιμοποιήσετε για αυτό."
+msgid ""
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
+msgstr ""
+"Μια εφαÏμογή επιθυμεί να αλλάξει το κωδικό για την κλειδοθήκη '%s'. "
+"Επιλέξετε τον κωδικό που θέλετε να χÏησιμοποιήσετε για αυτό."
#: ../daemon/dbus/gkd-secret-change.c:111
msgid "The original password was incorrect"
msgstr "Ο αÏχικός κωδικός ήταν λάθος"
-#: ../daemon/dbus/gkd-secret-create.c:78
+#: ../daemon/dbus/gkd-secret-create.c:83
msgid "New Keyring Password"
msgstr "Îέος κωδικός κλειδοθήκης"
-#: ../daemon/dbus/gkd-secret-create.c:79
+#: ../daemon/dbus/gkd-secret-create.c:84
msgid "Choose password for new keyring"
msgstr "Επιλέξτε κωδικό για νέα κλειδοθήκη"
-#: ../daemon/dbus/gkd-secret-create.c:81
+#: ../daemon/dbus/gkd-secret-create.c:86
#, c-format
-msgid "An application wants to create a new keyring called '%s'. Choose the password you want to use for it."
-msgstr "Μια εφαÏμογή επιθυμεί να δημιουÏγήσει μια νέα κλειδοθήκη με το όνομα '%s'. Επιλέξτε τον κωδικό που θέλετε να χÏησιμοποιήσετε για αυτό."
+msgid ""
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
+msgstr ""
+"Μια εφαÏμογή επιθυμεί να δημιουÏγήσει μια νέα κλειδοθήκη με το όνομα '%s'. "
+"Επιλέξτε τον κωδικό που θέλετε να χÏησιμοποιήσετε για αυτό."
#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
msgid "Certificate and Key Storage"
@@ -93,36 +100,34 @@ msgstr "Κλειδοθήκη GNOME: ΠÏάκτοÏας (agent) GPG"
msgid "GPG Password Agent"
msgstr "ΠÏόγÏαμμα ÎºÏ‰Î´Î¹ÎºÎ¿Ï GPG"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104
-#: ../gcr/gcr-key-renderer.c:291
-#: ../gcr/gcr-key-renderer.c:296
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Άγνωστο"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:199
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "Κλειδί PGP: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:348
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:349
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Εισάγετε την κωδική φÏάση"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:383
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Îα ξεχαστεί αυτός ο κωδικός αν είναι αδÏανής για"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:384
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Îα ξεχαστεί αυτός ο κωδικός μετά από"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:385
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Îα ξεχαστεί αυτός ο κωδικός όταν αποσυνδεθώ"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "ΣÏνδεση"
@@ -167,7 +172,6 @@ msgid "Surname"
msgstr "Επώνυμο"
#: ../egg/egg-oid.c:69
-#: ../gcr/gcr-certificate-renderer.c:379
msgid "Serial Number"
msgstr "ΣειÏιακός αÏιθμός"
@@ -224,641 +228,63 @@ msgid "Pseudonym"
msgstr "Ψευδώνυμο"
#: ../egg/egg-oid.c:98
-#: ../gcr/gcr-key-renderer.c:287
msgid "RSA"
msgstr "RSA"
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "MD2 με RSA"
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "MD5 με RSA"
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "SHA1 με RSA"
-#: ../egg/egg-oid.c:107
-#: ../gcr/gcr-key-renderer.c:289
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "SHA1 με DSA"
-#: ../egg/egg-spawn.c:273
-#, c-format
-msgid "Unexpected error in select() reading data from a child process (%s)"
-msgstr "ΑπÏόσμενο σφάλμα στο select() ανάγνωσης δεδομένων από μια θυγατÏική διεÏγασία (%s)"
-
-#: ../egg/egg-spawn.c:320
-#, c-format
-msgid "Unexpected error in waitpid() (%s)"
-msgstr "ΑπÏόσμενο σφάλμα στο waitpid() (%s)"
-
-#: ../gcr/gcr-certificate-renderer.c:82
-#: ../gcr/gcr-parser.c:201
-msgid "Certificate"
-msgstr "Πιστοποιητικό"
-
-#: ../gcr/gcr-certificate-renderer.c:107
-msgid "Extension"
-msgstr "Επέκταση"
-
-#: ../gcr/gcr-certificate-renderer.c:112
-msgid "Identifier"
-msgstr "ΑναγνωÏιστικό"
-
-#: ../gcr/gcr-certificate-renderer.c:120
-msgid "Value"
-msgstr "Τιμή"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "Critical"
-msgstr "ΚÏίσιμο"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "Yes"
-msgstr "Îαι"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "No"
-msgstr "Όχι"
-
-#: ../gcr/gcr-certificate-renderer.c:339
-msgid "Identity"
-msgstr "ΤαυτοÌτητα"
-
-#: ../gcr/gcr-certificate-renderer.c:343
-msgid "Verified by"
-msgstr "ΕπαληθεÏτηκε από"
-
-#: ../gcr/gcr-certificate-renderer.c:350
-msgid "Expires"
-msgstr "ΛηÌγει"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:360
-msgid "Subject Name"
-msgstr "Όνομα θέματος"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:364
-msgid "Issuer Name"
-msgstr "Όνομα εκδότη"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:368
-msgid "Issued Certificate"
-msgstr "Εκδοθέν πιστοποιητικό"
-
-#: ../gcr/gcr-certificate-renderer.c:373
-msgid "Version"
-msgstr "Έκδοση"
-
-#: ../gcr/gcr-certificate-renderer.c:387
-msgid "Not Valid Before"
-msgstr "ΈναÏξη ισχÏος"
-
-#: ../gcr/gcr-certificate-renderer.c:392
-msgid "Not Valid After"
-msgstr "Λήξη ισχÏος"
-
-#: ../gcr/gcr-certificate-renderer.c:401
-msgid "Signature Algorithm"
-msgstr "ΑλγόÏιθμος υπογÏαφής"
-
-#: ../gcr/gcr-certificate-renderer.c:406
-msgid "Signature Parameters"
-msgstr "ΠαÏάμετÏοι υπογÏαφής"
-
-#: ../gcr/gcr-certificate-renderer.c:413
-msgid "Signature"
-msgstr "ΥπογÏαφή"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:418
-msgid "Public Key Info"
-msgstr "ΠληÏοφοÏίες Δημοσίου ΚλειδιοÏ"
-
-#: ../gcr/gcr-certificate-renderer.c:423
-msgid "Key Algorithm"
-msgstr "ΑλγόÏιθμος κλειδιοÏ"
-
-#: ../gcr/gcr-certificate-renderer.c:429
-msgid "Key Parameters"
-msgstr "ΠαÏάμετÏοι κλειδιοÏ"
-
-#: ../gcr/gcr-certificate-renderer.c:436
-msgid "Key Size"
-msgstr "Μέγεθος κλειδιοÏ"
-
-#: ../gcr/gcr-certificate-renderer.c:444
-#: ../gcr/gcr-key-renderer.c:271
-#: ../gcr/gcr-parser.c:204
-msgid "Public Key"
-msgstr "Δημόσιο κλειδί"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:449
-msgid "Fingerprints"
-msgstr "Αποτυπώματα"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Εισαγωγή πιστοποιητικών και κλειδιών"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Εισαγωγή στο:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Κωδικός:"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Αυτόματο ξεκλείδωμα αυτής της κλειδοθήκης κατά την είσοδό μου"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Κλείδωμα αυτής της κλειδοθήκης μετά από"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Κλείδωμα αυτής της κλειδοθήκης αν είναι αδÏανές για"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Κλείδωμα αυτής της κλειδοθήκης όταν αποσυνδεθώ"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "λεπτά"
-
-#: ../gcr/gcr-importer.c:133
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Εισάγετε κωδικό για το ξεκλείδωμα του Î¹Î´Î¹Ï‰Ï„Î¹ÎºÎ¿Ï ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï"
-
-#: ../gcr/gcr-importer.c:135
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Εισάγετε κωδικό για το ξεκλείδωμα του πιστοποιητικοÏ"
-
-#: ../gcr/gcr-importer.c:137
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Εισάγετε κωδικό για ξεκλείδωμα"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:146
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Για να γίνει εισαγωγή του Î¹Î´Î¹Ï‰Ï„Î¹ÎºÎ¿Ï ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï, Ï€Ïέπει να μην είναι κλειδωμένο"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:149
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Για να γίνει εισαγωγή του πιστοποιητικοÏ, Ï€Ïέπει να μην είναι κλειδωμένο"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:152
-msgid "In order to import the data, it must be unlocked"
-msgstr "Για να γίνει εισαγωγή των δεδομένων, Ï€Ïέπει να μην είναι κλειδωμένα"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:157
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Για να γίνει εισαγωγή του Î¹Î´Î¹Ï‰Ï„Î¹ÎºÎ¿Ï ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï '%s', Ï€Ïέπει να μην είναι κλειδωμένο"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:160
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Για να γίνει εισαγωγή του Ï€Î¹ÏƒÏ„Î¿Ï€Î¿Î¹Î·Ï„Î¹ÎºÎ¿Ï '%s', Ï€Ïέπει να μην είναι κλειδωμένο"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:163
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Για να γίνει εισαγωγή του '%s', Ï€Ïέπει να μην είναι κλειδωμένο"
-
-#: ../gcr/gcr-importer.c:254
-#: ../gcr/gcr-parser.c:1566
-#: ../gcr/gcr-parser.c:1757
-#: ../gck/gck-misc.c:98
-msgid "The operation was cancelled"
-msgstr "Η διεÏγασία ακυÏώθηκε"
-
-#: ../gcr/gcr-importer.c:346
-#, c-format
-msgid "No location available to import to"
-msgstr "Δεν υπάÏχει τοποθεσία διαθέσιμη για την εισαγωγή"
-
-#: ../gcr/gcr-importer.c:495
-msgid "Import Certificates/Keys"
-msgstr "Εισαγωγή πιστοποιητικών/κλειδιών"
-
-#: ../gcr/gcr-importer.c:502
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Επιλέξτε τοποθεσία για την αποθήκευση των εισηγμένων πιστοποιητικών/κλειδιών."
-
-#: ../gcr/gcr-key-renderer.c:69
-msgid "Key"
-msgstr "ΚλειδιÌ"
-
-#: ../gcr/gcr-key-renderer.c:260
-msgid "Private RSA Key"
-msgstr "Î™Î´Î¹Ï‰Ï„Î¹ÎºÎ¿Ì ÎºÎ»ÎµÎ¹Î´Î¹Ì RSA"
-
-#: ../gcr/gcr-key-renderer.c:262
-msgid "Private DSA Key"
-msgstr "Ιδιωτικό κλειδί DSA"
-
-#: ../gcr/gcr-key-renderer.c:264
-#: ../gcr/gcr-parser.c:198
-msgid "Private Key"
-msgstr "Ιδιωτικό κλειδί"
-
-#: ../gcr/gcr-key-renderer.c:267
-#: ../gcr/gcr-key-renderer.c:269
-msgid "Public DSA Key"
-msgstr "Δημόσιο κλειδί DSA"
-
-#: ../gcr/gcr-key-renderer.c:278
-#, c-format
-msgid "%d bits"
-msgstr "%d bits"
-
-#: ../gcr/gcr-key-renderer.c:279
-msgid "Strength"
-msgstr "ΙσχυÌÏ‚"
-
-#: ../gcr/gcr-key-renderer.c:292
-msgid "Algorithm"
-msgstr "ΑλγοÌÏιθμος"
-
-#: ../gcr/gcr-key-renderer.c:299
-msgid "Size"
-msgstr "ΜεÌγεθος"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+#, fuzzy
+msgid "Server Authentication"
+msgstr "Πιστοποιητικό εξυπηÏετητή SSL"
-#. TODO: We need to have consistent key fingerprints.
-#: ../gcr/gcr-key-renderer.c:303
-msgid "Fingerprint"
-msgstr "ΑποτÏπωμα"
+#: ../egg/egg-oid.c:108
+#, fuzzy
+msgid "Client Authentication"
+msgstr "Πιστοποιητικό πελάτη SSL"
-#: ../gcr/gcr-parser.c:1569
-msgid "Unrecognized or unsupported data."
-msgstr "Μη αναγνωÏίσιμα ή μη υποστηÏιζόμενα δεδομένα."
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
-#: ../gcr/gcr-parser.c:1572
-msgid "Could not parse invalid or corrupted data."
-msgstr "Αδυναμία ανάλυσης μη έγκυÏων ή κατεστÏαμμένων δεδομένων."
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
-#: ../gcr/gcr-parser.c:1575
-msgid "The data is locked"
-msgstr "Τα δεδομένα είναι κλειδωμένα"
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
-#: ../gcr/gcr-trust.c:417
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Αδυναμία εÏÏεσης τοποθεσίας για την αποθήκευση του πιστοποιητικοÏ"
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr ""
+"ΑπÏόσμενο σφάλμα στο select() ανάγνωσης δεδομένων από μια θυγατÏική "
+"διεÏγασία (%s)"
-#: ../gck/gck-uri.c:78
-#: ../gck/gck-uri.c:135
-#: ../gck/gck-uri.c:170
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid "The URI has invalid syntax. The '%s' field encoding is invalid."
-msgstr "Το URI έχει λανθασμένη σÏνταξη. Η κωδικοποίηση του πεδίου '%s' είναι λανθασμένη."
-
-#: ../gck/gck-uri.c:195
-msgid "The URI has does not have the 'pkcs11' scheme."
-msgstr "Το URI δεν έχει το σχήμα 'pkcs11'"
-
-#: ../gck/gck-misc.c:101
-msgid "Insufficient memory available"
-msgstr "Δεν υπάÏχει επαÏκής μνήμη"
-
-#: ../gck/gck-misc.c:103
-msgid "The specified slot ID is not valid"
-msgstr "Το καθοÏισμένο slot ID δεν είναι έγκυÏο"
-
-#: ../gck/gck-misc.c:105
-msgid "Internal error"
-msgstr "ΕσωτεÏικό σφάλμα"
-
-#: ../gck/gck-misc.c:107
-msgid "The operation failed"
-msgstr "Η διεÏγασία απέτυχε"
-
-#: ../gck/gck-misc.c:109
-msgid "Invalid arguments"
-msgstr "Μη έγκυÏοι παÏάμετÏοι"
-
-#: ../gck/gck-misc.c:111
-msgid "The module cannot create needed threads"
-msgstr "Η λειτουÏγική μονάδα δεν μποÏεί να δημιουÏγήσει τα απαιτοÏμενα νήματα"
-
-#: ../gck/gck-misc.c:113
-msgid "The module cannot lock data properly"
-msgstr "Αδυναμία έγκυÏου κλειδώματος από την λειτουÏγική μονάδα"
-
-#: ../gck/gck-misc.c:115
-msgid "The field is read-only"
-msgstr "Το πεδίο είναι μόνο για ανάγνωση"
-
-#: ../gck/gck-misc.c:117
-msgid "The field is sensitive and cannot be revealed"
-msgstr "Το πεδίο είναι ευαίσθητο και δεν μποÏεί να αποκαλυφθεί"
-
-#: ../gck/gck-misc.c:119
-msgid "The field is invalid or does not exist"
-msgstr "Το πεδίο δεν είναι έγκυÏο ή δεν υπάÏχει"
-
-#: ../gck/gck-misc.c:121
-msgid "Invalid value for field"
-msgstr "Μη έγκυÏη τιμή για το πεδίο"
-
-#: ../gck/gck-misc.c:123
-msgid "The data is not valid or unrecognized"
-msgstr "Τα δεδομένα είναι άκυÏα ή μην αναγνωÏίσιμα"
-
-#: ../gck/gck-misc.c:125
-msgid "The data is too long"
-msgstr "Τα δεδομένα είναι Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿Ï… μήκους"
-
-#: ../gck/gck-misc.c:127
-msgid "An error occurred on the device"
-msgstr "Συνέβηκε ένα σφάλμα στη συσκευή"
-
-#: ../gck/gck-misc.c:129
-msgid "Insufficient memory available on the device"
-msgstr "Δεν υπάÏχει επαÏκής μνήμη στην συσκευή"
-
-#: ../gck/gck-misc.c:131
-msgid "The device was removed or unplugged"
-msgstr "Η συσκευή απομακÏÏνθηκε ή αποσυνδέθηκε"
-
-#: ../gck/gck-misc.c:133
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "Τα κÏυπτογÏαφημένα δεδομένα δεν είναι έγκυÏα ή δεν είναι αναγνωÏίσιμα"
-
-#: ../gck/gck-misc.c:135
-msgid "The encrypted data is too long"
-msgstr "Τα κÏυπτογÏαφημένα δεδομένα είναι Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿Ï… μήκους"
-
-#: ../gck/gck-misc.c:137
-msgid "This operation is not supported"
-msgstr "Η διεÏγασία δεν υποστηÏίζεται"
-
-#: ../gck/gck-misc.c:139
-msgid "The key is missing or invalid"
-msgstr "Το κλειδί λείπει ή δεν είναι έγκυÏο"
-
-#: ../gck/gck-misc.c:141
-msgid "The key is the wrong size"
-msgstr "Το κλειδί έχει λανθασμένο μέγεθος"
-
-#: ../gck/gck-misc.c:143
-msgid "The key is of the wrong type"
-msgstr "Το κλειδί έχει λανθασμένο Ï„Ïπο"
-
-#: ../gck/gck-misc.c:145
-msgid "No key is needed"
-msgstr "Δεν χÏειάζεται κλειδί"
-
-#: ../gck/gck-misc.c:147
-msgid "The key is different than before"
-msgstr "Το κλειδί είναι διαφοÏετικό από Ï€Ïιν"
-
-#: ../gck/gck-misc.c:149
-msgid "A key is needed"
-msgstr "ΧÏειάζεται ένα κλειδί"
-
-#: ../gck/gck-misc.c:151
-msgid "Cannot include the key in the digest"
-msgstr "Αδυναμία συμπεÏίληψης του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï ÏƒÏ„Î¿ digest"
-
-#: ../gck/gck-misc.c:153
-msgid "This operation cannot be done with this key"
-msgstr "Δεν είναι δυνατή η εκτέλεση αυτής της διεÏγασίας με αυτό το κλειδί"
-
-#: ../gck/gck-misc.c:155
-msgid "The key cannot be wrapped"
-msgstr "Δεν είναι δυνατή η αναδίπλωση του κλειδιοÏ"
-
-#: ../gck/gck-misc.c:157
-msgid "Cannot export this key"
-msgstr "Αδυναμία εξαγωγής Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… κλειδιοÏ"
-
-#: ../gck/gck-misc.c:159
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "Ο μηχανισμός κÏυπτογÏάφησης δεν είναι έγκυÏος ή είναι μη αναγνωÏίσιμος"
-
-#: ../gck/gck-misc.c:161
-msgid "The crypto mechanism has an invalid argument"
-msgstr "Ο μηχανισμός κÏυπτογÏάφησης έχει μια μη έγκυÏη παÏάμετÏο"
-
-#: ../gck/gck-misc.c:163
-msgid "The object is missing or invalid"
-msgstr "Το αντικείμενο λείπει ή δεν είναι έγκυÏο"
-
-#: ../gck/gck-misc.c:165
-msgid "Another operation is already taking place"
-msgstr "Μια άλλη διεÏγασία εκτελείται ήδη"
-
-#: ../gck/gck-misc.c:167
-msgid "No operation is taking place"
-msgstr "Δεν εκτελείται καμιά διεÏγασία"
-
-#: ../gck/gck-misc.c:169
-msgid "The password or PIN is incorrect"
-msgstr "Ο κωδικός ή το PIN είναι λάθος"
-
-#: ../gck/gck-misc.c:171
-msgid "The password or PIN is invalid"
-msgstr "Ο κωδικός ή το PIN δεν είναι έγκυÏα"
-
-#: ../gck/gck-misc.c:173
-msgid "The password or PIN is of an invalid length"
-msgstr "Ο κωδικός ή το PIN δεν έχουν έγκυÏο μήκος"
-
-#: ../gck/gck-misc.c:175
-msgid "The password or PIN has expired"
-msgstr "Ο κωδικός ή το PIN έχουν λήξει"
-
-#: ../gck/gck-misc.c:177
-msgid "The password or PIN is locked"
-msgstr "Ο κωδικός ή το PIN είναι κλειδωμένα"
-
-#: ../gck/gck-misc.c:179
-msgid "The session is closed"
-msgstr "Η συνεδÏία είναι κλειστή"
-
-#: ../gck/gck-misc.c:181
-msgid "Too many sessions are active"
-msgstr "ΥπάÏχουν πάÏα πολλές συνεδÏίες ενεÏγές"
-
-#: ../gck/gck-misc.c:183
-msgid "The session is invalid"
-msgstr "Η συνεδÏία δεν είναι έγκυÏη"
-
-#: ../gck/gck-misc.c:185
-msgid "The session is read-only"
-msgstr "Η συνεδÏία είναι μόνο για ανάγνωση"
-
-#: ../gck/gck-misc.c:187
-msgid "An open session exists"
-msgstr "Μια ανοικτή συνεδÏία υπάÏχει ήδη"
-
-#: ../gck/gck-misc.c:189
-msgid "A read-only session exists"
-msgstr "ΥπάÏχει μια συνεδÏία που είναι μόνο για ανάγνωση"
-
-#: ../gck/gck-misc.c:191
-msgid "An administrator session exists"
-msgstr "ΥπάÏχει μια συνεδÏία διαχειÏιστή"
-
-#: ../gck/gck-misc.c:193
-msgid "The signature is bad or corrupted"
-msgstr "Η υπογÏαφή είναι λάθος ή είναι κατεστÏαμμένη"
-
-#: ../gck/gck-misc.c:195
-msgid "The signature is unrecognized or corrupted"
-msgstr "Η υπογÏαφή είναι μη αναγνωÏίσιμη ή είναι κατεστÏαμμένη"
-
-#: ../gck/gck-misc.c:197
-msgid "Certain required fields are missing"
-msgstr "Λείπουν μεÏικά απαιτοÏμενα πεδία"
-
-#: ../gck/gck-misc.c:199
-msgid "Certain fields have invalid values"
-msgstr "ΜεÏικά πεδία έχουν μη έγκυÏες τιμές"
-
-#: ../gck/gck-misc.c:201
-msgid "The device is not present or unplugged"
-msgstr "Η συσκευή δεν είναι παÏοÏσα ή δεν είναι συνδεδεμένη"
-
-#: ../gck/gck-misc.c:203
-msgid "The device is invalid or unrecognizable"
-msgstr "Η συσκευή δεν είναι έγκυÏη ή είναι μη αναγνωÏίσιμη"
-
-#: ../gck/gck-misc.c:205
-msgid "The device is write protected"
-msgstr "Η συσκευή έχει Ï€Ïοστασία εγγÏαφής"
-
-#: ../gck/gck-misc.c:207
-msgid "Cannot import because the key is invalid"
-msgstr "Αδυναμία εισαγωγής επειδή το κλειδί δεν είναι έγκυÏο"
-
-#: ../gck/gck-misc.c:209
-msgid "Cannot import because the key is of the wrong size"
-msgstr "Αδυναμία εισαγωγής επειδή το κλειδί είναι λανθασμένου μεγέθους"
-
-#: ../gck/gck-misc.c:211
-msgid "Cannot import because the key is of the wrong type"
-msgstr "Αδυναμία εισαγωγής επειδή το κλειδί είναι λανθασμένου Ï„Ïπου"
-
-#: ../gck/gck-misc.c:213
-msgid "You are already logged in"
-msgstr "Έχετε ήδη συνδεθεί"
-
-#: ../gck/gck-misc.c:215
-msgid "No user has logged in"
-msgstr "Ο χÏήστης δεν είναι συνδεδεμένος"
-
-#: ../gck/gck-misc.c:217
-msgid "The user's password or PIN is not set"
-msgstr "Δεν έχει οÏισθεί κωδικός ή PIN χÏήστη"
-
-#: ../gck/gck-misc.c:219
-msgid "The user is of an invalid type"
-msgstr "Δεν είναι έγκυÏος ο Ï„Ïπος χÏήστη"
-
-#: ../gck/gck-misc.c:221
-msgid "Another user is already logged in"
-msgstr "Ένας άλλος χÏήστης είναι ήδη συνδεδεμένος"
-
-#: ../gck/gck-misc.c:223
-msgid "Too many users of different types are logged in"
-msgstr "Έχουν συνδεθεί πάÏα πολλοί χÏήστες διαφοÏÎµÏ„Î¹ÎºÎ¿Ï Ï„Ïπου"
-
-#: ../gck/gck-misc.c:225
-msgid "Cannot import an invalid key"
-msgstr "Αδυναμία εισαγωγής ενός μη έγκυÏου κλειδιοÏ"
-
-#: ../gck/gck-misc.c:227
-msgid "Cannot import a key of the wrong size"
-msgstr "Αδυναμία εισαγωγής επειδή το κλειδί είναι λανθασμένου μεγέθους"
-
-#: ../gck/gck-misc.c:229
-msgid "Cannot export because the key is invalid"
-msgstr "Αδυναμία εξαγωγής επειδή το κλειδί δεν είναι έγκυÏο"
-
-#: ../gck/gck-misc.c:231
-msgid "Cannot export because the key is of the wrong size"
-msgstr "Αδυναμία εξαγωγής επειδή το κλειδί είναι λανθασμένου μεγέθους"
-
-#: ../gck/gck-misc.c:233
-msgid "Cannot export because the key is of the wrong type"
-msgstr "Αδυναμία εξαγωγής επειδή το κλειδί είναι λανθασμένου Ï„Ïπου"
-
-#: ../gck/gck-misc.c:235
-msgid "Unable to initialize the random number generator"
-msgstr "Αδυναμία αÏχικοποίησης της γεννήτÏιας τυχαίων αÏιθμών"
-
-#: ../gck/gck-misc.c:237
-msgid "No random number generator available"
-msgstr "Δεν υπάÏχει διαθέσιμη γεννήτÏια τυχαίων αÏιθμών"
-
-#: ../gck/gck-misc.c:239
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "Ο μηχανισμός κÏυπτογÏάφησης έχει μια μη έγκυÏη παÏάμετÏο"
-
-#: ../gck/gck-misc.c:241
-msgid "Not enough space to store the result"
-msgstr "Δεν υπάÏχει αÏκετός ελεÏθεÏος χώÏος για την αποθήκευση του αποτελέσματος"
-
-#: ../gck/gck-misc.c:243
-msgid "The saved state is invalid"
-msgstr "Η αποθηκευμένη κατάσταση δεν είναι έγκυÏη"
-
-#: ../gck/gck-misc.c:245
-msgid "The information is sensitive and cannot be revealed"
-msgstr "Οι πληÏοφοÏίες είναι ευαίσθητες και δεν είναι δυνατή η αποκάλυψή τους"
-
-#: ../gck/gck-misc.c:247
-msgid "The state cannot be saved"
-msgstr "Δεν είναι δυνατή η αποθήκευση της κατάστασης"
-
-#: ../gck/gck-misc.c:249
-msgid "The module has not been initialized"
-msgstr "Η λειτουÏγική μονάδα δεν έχει αÏχικοποιηθεί"
-
-#: ../gck/gck-misc.c:251
-msgid "The module has already been initialized"
-msgstr "Η λειτουÏγική μονάδα έχει ήδη αÏχικοποιηθεί"
-
-#: ../gck/gck-misc.c:253
-msgid "Cannot lock data"
-msgstr "Αδυναμία κλειδώματος δεδομένων"
-
-#: ../gck/gck-misc.c:255
-msgid "The data cannot be locked"
-msgstr "Δεν είναι δυνατό το κλείδωμα των δεδομένων"
-
-#: ../gck/gck-misc.c:257
-msgid "The signature request was rejected by the user"
-msgstr "Η αίτηση υπογÏαφής αποÏÏίφθηκε από τον χÏήστη"
-
-#: ../gck/gck-misc.c:261
-msgid "Unknown error"
-msgstr "Άγνωστο σφάλμα"
+msgid "Unexpected error in waitpid() (%s)"
+msgstr "ΑπÏόσμενο σφάλμα στο waitpid() (%s)"
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
@@ -869,7 +295,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Αδυναμία ανάλυσης δημόσιου ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï SSH"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Ξεκλείδωμα ÎºÏ‰Î´Î¹ÎºÎ¿Ï Î³Î¹Î±: %s"
@@ -888,12 +314,19 @@ msgid "Enter password to unlock your login keyring"
msgstr "Εισαγωγή ÎºÏ‰Î´Î¹ÎºÎ¿Ï Î³Î¹Î± ξεκλείδωμα της κλειδοθήκης εισόδου"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
-msgid "The password you use to log in to your computer no longer matches that of your login keyring."
-msgstr "Ο κωδικός που χÏησιμοποιείτε για να συνδεθείτε στον υπολογιστή σας δεν ταιÏιάζει πλέον με αυτό της κλειδοθήκης εισόδου."
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
+msgstr ""
+"Ο κωδικός που χÏησιμοποιείτε για να συνδεθείτε στον υπολογιστή σας δεν "
+"ταιÏιάζει πλέον με αυτό της κλειδοθήκης εισόδου."
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
-msgid "The login keyring did not get unlocked when you logged into your computer."
-msgstr "Η κλειδοθήκη εισόδου σας δεν ξεκλειδώθηκε όταν συνδεθήκατε σε αυτόν τον υπολογιστή."
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr ""
+"Η κλειδοθήκη εισόδου σας δεν ξεκλειδώθηκε όταν συνδεθήκατε σε αυτόν τον "
+"υπολογιστή."
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
msgid "Unlock Keyring"
@@ -907,7 +340,8 @@ msgstr "Εισάγετε κωδικό για την κλειδοθήκη '%s' γ
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
#, c-format
msgid "An application wants access to the keyring '%s', but it is locked"
-msgstr "Μια εφαÏμογή επιθυμεί Ï€Ïόσβαση στη κλειδοθήκη '%s', αλλά είναι κλειδωμένο"
+msgstr ""
+"Μια εφαÏμογή επιθυμεί Ï€Ïόσβαση στη κλειδοθήκη '%s', αλλά είναι κλειδωμένο"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
msgid "Unlock private key"
@@ -925,27 +359,43 @@ msgstr "Ξεκλείδωμα δημοσίου κλειδιοÏ"
msgid "Unlock"
msgstr "Ξεκλείδωμα"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Εισάγετε κωδικό για το ξεκλείδωμα του Î¹Î´Î¹Ï‰Ï„Î¹ÎºÎ¿Ï ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Εισάγετε κωδικό για το ξεκλείδωμα του πιστοποιητικοÏ"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Εισάγετε κωδικό για το ξεκλείδωμα του δημόσιου κλειδιοÏ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Εισάγετε κωδικό για ξεκλείδωμα"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
msgid "An application wants access to the private key '%s', but it is locked"
-msgstr "Μια εφαÏμογή επιθυμεί Ï€Ïόσβαση στο ιδιωτικό κλειδί '%s', αλλά είναι κλειδωμένο"
+msgstr ""
+"Μια εφαÏμογή επιθυμεί Ï€Ïόσβαση στο ιδιωτικό κλειδί '%s', αλλά είναι "
+"κλειδωμένο"
#. TRANSLATORS: The certificate is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
#, c-format
msgid "An application wants access to the certificate '%s', but it is locked"
-msgstr "Μια εφαÏμογή επιθυμεί Ï€Ïόσβαση στο πιστοποιητικό '%s', αλλά είναι κλειδωμένο"
+msgstr ""
+"Μια εφαÏμογή επιθυμεί Ï€Ïόσβαση στο πιστοποιητικό '%s', αλλά είναι κλειδωμένο"
#. TRANSLATORS: The public key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
#, c-format
msgid "An application wants access to the public key '%s', but it is locked"
-msgstr "Μια εφαÏμογή επιθυμεί Ï€Ïόσβαση στο δημόσιο κλειδί '%s', αλλά είναι κλειδωμένο"
+msgstr ""
+"Μια εφαÏμογή επιθυμεί Ï€Ïόσβαση στο δημόσιο κλειδί '%s', αλλά είναι κλειδωμένο"
#. TRANSLATORS: The object '%s' is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
@@ -959,13 +409,18 @@ msgstr "Ξεκλείδωμα πιστοποιητικοÏ/αποθήκης κλÎ
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
msgid "Enter password to unlock the certificate/key storage"
-msgstr "Εισάγετε κωδικό για το ξεκλείδωμα του πιστοποιητικοÏ/της αποθήκης κλειδιών"
+msgstr ""
+"Εισάγετε κωδικό για το ξεκλείδωμα του πιστοποιητικοÏ/της αποθήκης κλειδιών"
#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
#, c-format
-msgid "An application wants access to the certificate/key storage '%s', but it is locked"
-msgstr "Μια εφαÏμογή επιθυμεί Ï€Ïόσβαση στο πιστοποιητικό/αποθήκη κλειδιών '%s', αλλά αυτό είναι κλειδωμένο"
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr ""
+"Μια εφαÏμογή επιθυμεί Ï€Ïόσβαση στο πιστοποιητικό/αποθήκη κλειδιών '%s', αλλά "
+"αυτό είναι κλειδωμένο"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
msgid "New Password Required"
@@ -977,8 +432,12 @@ msgstr "Απαιτείται νέος κωδικός για την ασφαλή
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
#, c-format
-msgid "In order to prepare '%s' for storage of certificates or keys, a password is required"
-msgstr "Απαιτείται κωδικός για την Ï€Ïοετοιμασία του '%s' για αποθήκευση πιστοποιητικών ή κλειδιών"
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
+"Απαιτείται κωδικός για την Ï€Ïοετοιμασία του '%s' για αποθήκευση "
+"πιστοποιητικών ή κλειδιών"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
msgid "Change Password"
@@ -990,29 +449,59 @@ msgstr "Αλλαγή ÎºÏ‰Î´Î¹ÎºÎ¿Ï Î³Î¹Î± ασφαλή αποθήκευση"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
-msgid "To change the password for '%s', the original and new passwords are required"
-msgstr "Για να αλλάξετε τον κωδικό για '%s', απαιτοÏνται ο αÏχικός και ο νέος κωδικός"
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
+msgstr ""
+"Για να αλλάξετε τον κωδικό για '%s', απαιτοÏνται ο αÏχικός και ο νέος κωδικός"
-#: ../ui/gku-prompt-tool.c:538
+#: ../tool/gkr-tool.c:102
+#, c-format
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
+
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
+
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Αποθήκευση κωδικών χωÏίς κÏυπτογÏάφηση;"
-#: ../ui/gku-prompt-tool.c:539
-msgid "By choosing to use a blank password, your stored passwords will not be safely encrypted. They will be accessible by anyone with access to your files."
-msgstr "Αν επιλέξετε την χÏήση ενός ÎºÎµÎ½Î¿Ï ÎºÏ‰Î´Î¹ÎºÎ¿Ï, δεν θα κÏυπτογÏαφηθοÏν με ασφάλεια οι αποθηκευμένοι σας κωδικοί. Θα είναι Ï€Ïοσβάσιμοι στον καθένα που έχει Ï€Ïόσβαση στα αÏχεία σας."
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
+"Αν επιλέξετε την χÏήση ενός ÎºÎµÎ½Î¿Ï ÎºÏ‰Î´Î¹ÎºÎ¿Ï, δεν θα κÏυπτογÏαφηθοÏν με "
+"ασφάλεια οι αποθηκευμένοι σας κωδικοί. Θα είναι Ï€Ïοσβάσιμοι στον καθένα που "
+"έχει Ï€Ïόσβαση στα αÏχεία σας."
-#: ../ui/gku-prompt-tool.c:546
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "ΧÏήση μη ασφαλοÏÏ‚ αποθήκευσης"
-#: ../ui/gku-prompt-tool.c:584
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Οι κωδικοί δεν ταιÏιάζουν."
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Ο κωδικός δεν Ï€Ïέπει να είναι κενός"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
+
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
+
#: ../ui/gku-prompt.ui.h:1
msgid "New password strength"
msgstr "ΙσχÏÏ‚ νέου κωδικοÏ"
@@ -1040,66 +529,3 @@ msgstr "_Παλιός κωδικός:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Κωδικός:"
-
-#~ msgid "Email"
-#~ msgstr "Ηλ. διεÏθυνση"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>Δεν πεÏιέχεται στο πιστοποιητικό</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>άγνωστο</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<Δεν πεÏιέχεται στο πιστοποιητικό>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>Αποτυπώματα</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Εκδόθηκε από</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Εκδόθηκε για</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr ""
-#~ "<b>Αυτό το πιστοποιητικό έχει επαληθευτεί για τις ακόλουθες χÏήσεις:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>ΙσχÏÏ‚</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "Όνομα, υποκοÏιστικό (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "Πιστοποιητικό παÏαλήπτη email"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "Πιστοποιητικό υπογÏάφοντος email"
-
-#~ msgid "Issued On"
-#~ msgstr "Εκδόθηκε στις"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "ΑποτÏπωμα MD5"
-
-#~ msgid "Organization (O)"
-#~ msgstr "ΟÏγανισμός (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "Μονάδα ΟÏÎ³Î±Î½Î¹ÏƒÎ¼Î¿Ï (OU)"
-
-#~ msgid "SHA1 Fingerprint"
-#~ msgstr "ΑποτÏπωμα SHA1"
-
-#~ msgid "SSL Client Certificate"
-#~ msgstr "Πιστοποιητικό πελάτη SSL"
-
-#~ msgid "SSL Server Certificate"
-#~ msgstr "Πιστοποιητικό εξυπηÏετητή SSL"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr ""
-#~ "<span size='large' weight='bold'>Εισαγωγή πιστοποιητικών και κλειδιών</"
-#~ "span>"
diff --git a/po/en@shaw.po b/po/en@shaw.po
index 5e1166ba..16c94e54 100644
--- a/po/en@shaw.po
+++ b/po/en@shaw.po
@@ -4,72 +4,23 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-keyring&component=general\n"
-"POT-Creation-Date: 2010-05-12 07:24+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2010-05-12 18:36 -0400\n"
"Last-Translator: Thomas Thurman <tthurman@gnome.org>\n"
"Language-Team: Shavian <ubuntu-l10n-en-shaw@launchpad.net>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n!=1;\n"
-#, fuzzy
-#: ../daemon/data/gnome-keyring.schemas.in.h:1
-msgid ""
-"This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-"only takes effect during startup with gnome-session, (ie: when the user logs "
-"in). This setting may be overridden when certain command line arguments are "
-"passed to the daemon."
-msgstr ""
-"ð‘žð‘¦ð‘• ð‘ªð‘ð‘–ð‘©ð‘¯ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘Ÿ ð‘ž PKCS#11 ð‘’ð‘©ð‘¥ð‘ð‘´ð‘¯ð‘©ð‘¯ð‘‘ ð‘¦ð‘¯ ð‘ž ð‘¯ð‘´ð‘¥-ð‘’ð‘°ð‘®ð‘¦ð‘™ ð‘›ð‘°ð‘¥ð‘©ð‘¯. ð‘¦ð‘‘ ð‘´ð‘¯ð‘¤ð‘¦ ð‘‘ð‘±ð‘’ð‘• "
-"ð‘¦ð‘“ð‘§ð‘’ð‘‘ ð‘›ð‘˜ð‘«ð‘¼ð‘¦ð‘™ ð‘•ð‘‘ð‘¸ð‘‘ð‘³ð‘ ð‘¢ð‘¦ð‘ž ð‘¯ð‘´ð‘¥-ð‘•ð‘§ð‘–ð‘©ð‘¯, (ie: ð‘¢ð‘§ð‘¯ ð‘ž ð‘¿ð‘Ÿð‘¼ ð‘¤ð‘ªð‘œð‘Ÿ ð‘¦ð‘¯). ð‘žð‘¦ð‘• ð‘•ð‘§ð‘‘ð‘¦ð‘™ ð‘¥ð‘± ð‘šð‘° "
-"ð‘´ð‘ð‘»ð‘®ð‘¦ð‘›ð‘©ð‘¯ ð‘¢ð‘§ð‘¯ ð‘•ð‘»ð‘‘ð‘©ð‘¯ ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¤ð‘²ð‘¯ ð‘¸ð‘œð‘¿ð‘¥ð‘©ð‘¯ð‘‘𑕠𑸠ð‘ð‘­ð‘•ð‘‘ ð‘‘ ð‘ž ð‘›ð‘°ð‘¥ð‘©ð‘¯."
-
-#, fuzzy
-#: ../daemon/data/gnome-keyring.schemas.in.h:2
-msgid ""
-"This option enables the SSH agent in the gnome-keyring daemon. It only takes "
-"effect as gnome-keyring-daemon starts, (ie: when the user logs in). This "
-"setting may be overridden when certain command line arguments are passed to "
-"the daemon."
-msgstr ""
-"ð‘žð‘¦ð‘• ð‘ªð‘ð‘–ð‘©ð‘¯ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘Ÿ ð‘ž SSH ð‘±ð‘¡ð‘©ð‘¯ð‘‘ ð‘¦ð‘¯ ð‘ž ð‘¯ð‘´ð‘¥-ð‘’ð‘°ð‘®ð‘¦ð‘™ ð‘›ð‘°ð‘¥ð‘©ð‘¯. ð‘¦ð‘‘ ð‘´ð‘¯ð‘¤ð‘¦ ð‘‘ð‘±ð‘’ð‘• ð‘¦ð‘“ð‘§ð‘’ð‘‘ ð‘¨ð‘Ÿ "
-"ð‘¯ð‘´ð‘¥-ð‘’ð‘°ð‘®ð‘¦ð‘™-ð‘›ð‘°ð‘¥ð‘©ð‘¯ ð‘•ð‘‘ð‘¸ð‘‘ð‘•, (ie: ð‘¢ð‘§ð‘¯ ð‘ž ð‘¿ð‘Ÿð‘¼ ð‘¤ð‘ªð‘œð‘Ÿ ð‘¦ð‘¯). ð‘žð‘¦ð‘• ð‘•ð‘§ð‘‘ð‘¦ð‘™ ð‘¥ð‘± ð‘šð‘° ð‘´ð‘ð‘»ð‘®ð‘¦ð‘›ð‘©ð‘¯ ð‘¢ð‘§ð‘¯ "
-"ð‘•ð‘»ð‘‘ð‘©ð‘¯ ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¤ð‘²ð‘¯ ð‘¸ð‘œð‘¿ð‘¥ð‘©ð‘¯ð‘‘𑕠𑸠ð‘ð‘­ð‘•ð‘‘ ð‘‘ ð‘ž ð‘›ð‘°ð‘¥ð‘©ð‘¯."
-
-#, fuzzy
-#: ../daemon/data/gnome-keyring.schemas.in.h:3
-msgid ""
-"This option enables the secret service component in the gnome-keyring daemon. "
-"It only takes effect during startup with gnome-session, (ie: when the user "
-"logs in). This setting may be overridden when certain command line arguments "
-"are passed to the daemon."
-msgstr ""
-"ð‘žð‘¦ð‘• ð‘ªð‘ð‘–ð‘©ð‘¯ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘Ÿ ð‘ž ð‘•ð‘°ð‘’ð‘®ð‘©ð‘‘ ð‘•ð‘»ð‘ð‘¦ð‘• ð‘’ð‘©ð‘¥ð‘ð‘´ð‘¯ð‘©ð‘¯ð‘‘ ð‘¦ð‘¯ ð‘ž ð‘¯ð‘´ð‘¥-ð‘’ð‘°ð‘®ð‘¦ð‘™ ð‘›ð‘°ð‘¥ð‘©ð‘¯. ð‘¦ð‘‘ ð‘´ð‘¯ð‘¤ð‘¦ ð‘‘ð‘±ð‘’ð‘• "
-"ð‘¦ð‘“ð‘§ð‘’ð‘‘ ð‘›ð‘˜ð‘«ð‘¼ð‘¦ð‘™ ð‘•ð‘‘ð‘¸ð‘‘ð‘³ð‘ ð‘¢ð‘¦ð‘ž ð‘¯ð‘´ð‘¥-ð‘•ð‘§ð‘–ð‘©ð‘¯, (ie: ð‘¢ð‘§ð‘¯ ð‘ž ð‘¿ð‘Ÿð‘¼ ð‘¤ð‘ªð‘œð‘Ÿ ð‘¦ð‘¯). ð‘žð‘¦ð‘• ð‘•ð‘§ð‘‘ð‘¦ð‘™ ð‘¥ð‘± ð‘šð‘° "
-"ð‘´ð‘ð‘»ð‘®ð‘¦ð‘›ð‘©ð‘¯ ð‘¢ð‘§ð‘¯ ð‘•ð‘»ð‘‘ð‘©ð‘¯ ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¤ð‘²ð‘¯ ð‘¸ð‘œð‘¿ð‘¥ð‘©ð‘¯ð‘‘𑕠𑸠ð‘ð‘­ð‘•ð‘‘ ð‘‘ ð‘ž ð‘›ð‘°ð‘¥ð‘©ð‘¯."
-
-#, fuzzy
-#: ../daemon/data/gnome-keyring.schemas.in.h:4
-msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-msgstr "ð‘¢ð‘§ð‘žð‘¼ ð‘ž ð‘¯ð‘´ð‘¥-ð‘’ð‘°ð‘®ð‘¦ð‘™ PKCS#11 ð‘’ð‘©ð‘¥ð‘ð‘´ð‘¯ð‘©ð‘¯ð‘‘ ð‘¦ð‘Ÿ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘›."
-
-#, fuzzy
-#: ../daemon/data/gnome-keyring.schemas.in.h:5
-msgid "Whether the gnome-keyring SSH agent is enabled."
-msgstr "ð‘¢ð‘§ð‘žð‘¼ ð‘ž ð‘¯ð‘´ð‘¥-ð‘’ð‘°ð‘®ð‘¦ð‘™ SSH ð‘±ð‘¡ð‘©ð‘¯ð‘‘ ð‘¦ð‘Ÿ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘›."
-
-#, fuzzy
-#: ../daemon/data/gnome-keyring.schemas.in.h:6
-msgid "Whether the gnome-keyring secret service is enabled."
-msgstr "ð‘¢ð‘§ð‘žð‘¼ ð‘ž ð‘¯ð‘´ð‘¥-ð‘’ð‘°ð‘®ð‘¦ð‘™ ð‘•ð‘°ð‘’ð‘®ð‘©ð‘‘ ð‘•ð‘»ð‘ð‘¦ð‘• ð‘¦ð‘Ÿ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘›."
-
#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
#, fuzzy
-#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:74
-#: ../daemon/dbus/gkd-secret-unlock.c:120 ../daemon/login/gkd-login.c:641
-#: ../pkcs11/secret-store/gck-secret-collection.c:322
msgid "Unnamed"
msgstr "ð‘©ð‘¯ð‘¯ð‘±ð‘¥ð‘›"
@@ -77,274 +28,116 @@ msgstr "ð‘©ð‘¯ð‘¯ð‘±ð‘¥ð‘›"
msgid "Change Keyring Password"
msgstr "ð‘—ð‘±ð‘¯ð‘¡ ð‘’ð‘°ð‘®ð‘¦ð‘™ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘›"
-#, fuzzy, c-format
#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
msgid "Choose a new password for the '%s' keyring"
msgstr "ð‘—ð‘µð‘Ÿ ð‘© ð‘¯ð‘¿ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘“𑹠𑞠'%s' ð‘’ð‘°ð‘®ð‘¦ð‘™."
-#, fuzzy, c-format
#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
msgid ""
"An application wants to change the password for the '%s' keyring. Choose the "
"new password you want to use for it."
msgstr ""
-"ð‘©ð‘¯ ð‘³ð‘¯ð‘´ð‘¯ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ ð‘¢ð‘ªð‘¯ð‘‘ð‘• ð‘‘ ð‘—ð‘±ð‘¯ð‘¡ ð‘ž ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘“𑹠𑞠'%s' ð‘’ð‘°ð‘®ð‘¦ð‘™. ð‘¿ ð‘£ð‘¨ð‘ ð‘‘ ð‘—ð‘µð‘Ÿ ð‘ž ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› "
-"ð‘¿ ð‘¢ð‘ªð‘¯ð‘‘ ð‘‘ ð‘¿ð‘• ð‘“𑹠ð‘¦ð‘‘."
+"ð‘©ð‘¯ ð‘³ð‘¯ð‘´ð‘¯ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ ð‘¢ð‘ªð‘¯ð‘‘ð‘• ð‘‘ ð‘—ð‘±ð‘¯ð‘¡ ð‘ž ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘“𑹠𑞠'%s' ð‘’ð‘°ð‘®ð‘¦ð‘™. ð‘¿ ð‘£ð‘¨ð‘ ð‘‘ ð‘—ð‘µð‘Ÿ ð‘ž "
+"ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘¿ ð‘¢ð‘ªð‘¯ð‘‘ ð‘‘ ð‘¿ð‘• ð‘“𑹠ð‘¦ð‘‘."
-#, fuzzy
#: ../daemon/dbus/gkd-secret-change.c:111
+#, fuzzy
msgid "The original password was incorrect"
msgstr "ð‘ž ð‘©ð‘®ð‘¦ð‘¡ð‘©ð‘¯ð‘©ð‘¤ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘¢ð‘ªð‘Ÿ ð‘¦ð‘¯ð‘’ð‘©ð‘®ð‘§ð‘’ð‘‘"
-#: ../daemon/dbus/gkd-secret-create.c:78
+#: ../daemon/dbus/gkd-secret-create.c:83
msgid "New Keyring Password"
msgstr "ð‘¯ð‘¿ ð‘’ð‘°ð‘®ð‘¦ð‘™ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘›"
-#: ../daemon/dbus/gkd-secret-create.c:79
+#: ../daemon/dbus/gkd-secret-create.c:84
msgid "Choose password for new keyring"
msgstr "ð‘—ð‘µð‘Ÿ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘“𑹠ð‘¯ð‘¿ ð‘’ð‘°ð‘®ð‘¦ð‘™"
+#: ../daemon/dbus/gkd-secret-create.c:86
#, fuzzy, c-format
-#: ../daemon/dbus/gkd-secret-create.c:81
msgid ""
-"An application wants to create a new keyring called '%s'. Choose the password "
-"you want to use for it."
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
"ð‘©ð‘¯ ð‘³ð‘¯ð‘´ð‘¯ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ ð‘¢ð‘ªð‘¯ð‘‘ð‘• ð‘‘ ð‘’ð‘®ð‘¦ð‘±ð‘‘ ð‘© ð‘¯ð‘¿ ð‘’ð‘°ð‘®ð‘¦ð‘™ ð‘’ð‘·ð‘¤ð‘› '%s'. ð‘¿ ð‘£ð‘¨ð‘ ð‘‘ ð‘—ð‘µð‘Ÿ ð‘ž ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘¿ "
"ð‘¢ð‘ªð‘¯ð‘‘ ð‘‘ ð‘¿ð‘• ð‘“𑹠ð‘¦ð‘‘."
-#: ../daemon/dbus/gkd-secret-unlock.c:135
-msgid "Unlock Login Keyring"
-msgstr "ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘¤ð‘ªð‘œð‘¦ð‘¯ ð‘’ð‘°ð‘®ð‘¦ð‘™"
-
-#, fuzzy
-#: ../daemon/dbus/gkd-secret-unlock.c:137
-msgid "Enter password for to unlock your login keyring"
-msgstr "ð‘§ð‘¯ð‘‘𑼠ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘“𑹠𑑠ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘¿ð‘¼ ð‘¤ð‘ªð‘œð‘¦ð‘¯ ð‘’ð‘°ð‘®ð‘¦ð‘™"
-
-#, fuzzy
-#: ../daemon/dbus/gkd-secret-unlock.c:141
-msgid ""
-"The password you use to log in to your computer no longer matches that of "
-"your login keyring."
-msgstr ""
-"ð‘ž ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘¿ ð‘¿ð‘Ÿ ð‘‘ ð‘¤ð‘ªð‘œ ð‘¦ð‘¯ ð‘‘ ð‘¿ð‘¼ ð‘’ð‘©ð‘¥ð‘ð‘¿ð‘‘𑼠ð‘¯ð‘´ ð‘¤ð‘ªð‘™ð‘œð‘¼ ð‘¥ð‘¨ð‘—ð‘©ð‘Ÿ ð‘žð‘¨ð‘‘ ð‘ ð‘¿ð‘¼ ð‘¤ð‘ªð‘œð‘¦ð‘¯ ð‘’ð‘°ð‘®ð‘¦ð‘™."
-
-#, fuzzy
-#: ../daemon/dbus/gkd-secret-unlock.c:143
-msgid ""
-"The login keyring did not get unlocked when you logged into your computer."
-msgstr "ð‘ž ð‘¤ð‘ªð‘œð‘¦ð‘¯ ð‘’ð‘°ð‘®ð‘¦ð‘™ ð‘›ð‘¦ð‘› ð‘¯ð‘ªð‘‘ ð‘œð‘§ð‘‘ ð‘©ð‘¯ð‘¤ð‘­ð‘’ð‘‘ ð‘¢ð‘§ð‘¯ ð‘¿ ð‘¤ð‘ªð‘œð‘› ð‘¦ð‘¯ð‘‘ð‘« ð‘¿ð‘¼ ð‘’ð‘©ð‘¥ð‘ð‘¿ð‘‘ð‘¼."
-
-#: ../daemon/dbus/gkd-secret-unlock.c:184
-msgid "Unlock Keyring"
-msgstr "ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘’ð‘°ð‘®ð‘¦ð‘™"
-
-#, c-format
-#: ../daemon/dbus/gkd-secret-unlock.c:186
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "ð‘§ð‘¯ð‘‘𑼠ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘“𑹠ð‘’ð‘°ð‘®ð‘¦ð‘™ '%s' ð‘‘ ð‘©ð‘¯ð‘¤ð‘­ð‘’"
-
-#, fuzzy, c-format
-#: ../daemon/dbus/gkd-secret-unlock.c:190
-msgid "An application wants access to the keyring '%s', but it is locked"
-msgstr "ð‘©ð‘¯ ð‘³ð‘¯ð‘´ð‘¯ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ ð‘¢ð‘ªð‘¯ð‘‘ð‘• ð‘¨ð‘’ð‘•ð‘§ð‘• ð‘‘ ð‘ž ð‘’ð‘°ð‘®ð‘¦ð‘™ '%s', ð‘šð‘³ð‘‘ ð‘¦ð‘‘ ð‘¦ð‘Ÿ ð‘¤ð‘ªð‘’ð‘‘"
-
-#, fuzzy
-#: ../daemon/dbus/gkd-secret-unlock.c:226
-msgid "The unlock password was incorrect"
-msgstr "ð‘ž ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘¢ð‘ªð‘Ÿ ð‘¦ð‘¯ð‘’ð‘©ð‘®ð‘§ð‘’ð‘‘"
-
-#, fuzzy
#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+#, fuzzy
msgid "Certificate and Key Storage"
msgstr "ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘ 𑯠ð‘’ð‘° ð‘•ð‘‘ð‘¹ð‘¦ð‘¡"
-#, fuzzy
#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+#, fuzzy
msgid "GNOME Keyring: PKCS#11 Component"
msgstr "ð‘¯ð‘´ð‘¥ ð‘’ð‘°ð‘®ð‘¦ð‘™: PKCS#11 ð‘’ð‘©ð‘¥ð‘ð‘´ð‘¯ð‘©ð‘¯ð‘‘"
-#, fuzzy
#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+#, fuzzy
msgid "GNOME Keyring: Secret Service"
msgstr "ð‘¯ð‘´ð‘¥ ð‘’ð‘°ð‘®ð‘¦ð‘™: ð‘•ð‘°ð‘’ð‘®ð‘©ð‘‘ ð‘•ð‘»ð‘ð‘¦ð‘•"
-#, fuzzy
#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+#, fuzzy
msgid "Secret Storage Service"
msgstr "ð‘•ð‘°ð‘’ð‘®ð‘©ð‘‘ ð‘•ð‘‘ð‘¹ð‘¦ð‘¡ ð‘•ð‘»ð‘ð‘¦ð‘•"
-#, fuzzy
#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+#, fuzzy
msgid "GNOME Keyring: SSH Agent"
msgstr "ð‘¯ð‘´ð‘¥ ð‘’ð‘°ð‘®ð‘¦ð‘™: SSH ð‘±ð‘¡ð‘©ð‘¯ð‘‘"
-#, fuzzy
#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+#, fuzzy
msgid "SSH Key Agent"
msgstr "SSH ð‘’ð‘° ð‘±ð‘¡ð‘©ð‘¯ð‘‘"
-#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
#, fuzzy
-#: ../daemon/login/gkd-login.c:207
-msgid "Login"
-msgstr "ð‘¤ð‘ªð‘œð‘¦ð‘¯"
-
-#, fuzzy, c-format
-#: ../daemon/login/gkd-login.c:643
-msgid "Unlock password for: %s"
-msgstr "ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘“𑹠%s ð‘’ð‘°ð‘®ð‘¦ð‘™"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:294
-msgid "New Password Required"
-msgstr "ð‘¯ð‘¿ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘®ð‘¦ð‘’ð‘¢ð‘²ð‘¼ð‘›"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:295
-msgid "New password required for secure storage"
-msgstr "ð‘¯ð‘¿ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘®ð‘¦ð‘’ð‘¢ð‘²ð‘¼ð‘› ð‘“𑹠ð‘•ð‘¦ð‘’ð‘˜ð‘«ð‘¼ ð‘•ð‘‘ð‘¹ð‘¦ð‘¡"
-
-#, c-format
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:297
-msgid ""
-"In order to prepare '%s' for storage of certificates or keys, a password is "
-"required"
-msgstr "ð‘¦ð‘¯ ð‘¹ð‘›ð‘¼ ð‘‘ ð‘ð‘®ð‘°ð‘𑺠'%s' ð‘“𑹠ð‘•ð‘‘ð‘¹ð‘¦ð‘¡ ð‘ ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘𑕠𑹠ð‘’ð‘°ð‘Ÿ, ð‘© ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘¦ð‘Ÿ ð‘®ð‘¦ð‘’ð‘¢ð‘²ð‘¼ð‘›"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:360
-msgid "Unlock private key"
-msgstr "ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘ð‘®ð‘²ð‘ð‘©ð‘‘ ð‘’ð‘°"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:362
-msgid "Unlock certificate"
-msgstr "ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:364
-msgid "Unlock public key"
-msgstr "ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘ð‘³ð‘šð‘¤ð‘¦ð‘’ ð‘’ð‘°"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:366
-msgid "Unlock"
-msgstr "ð‘©ð‘¯ð‘¤ð‘­ð‘’"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:375 ../gcr/gcr-importer.c:436
-msgid "Enter password to unlock the private key"
-msgstr "ð‘§ð‘¯ð‘‘𑼠ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘‘ ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘ž ð‘ð‘®ð‘²ð‘ð‘©ð‘‘ ð‘’ð‘°"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:377 ../gcr/gcr-importer.c:438
-msgid "Enter password to unlock the certificate"
-msgstr "ð‘§ð‘¯ð‘‘𑼠ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘‘ ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘ž ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:379
-msgid "Enter password to unlock the public key"
-msgstr "ð‘§ð‘¯ð‘‘𑼠ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘‘ ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘ž ð‘ð‘³ð‘šð‘¤ð‘¦ð‘’ ð‘’ð‘°"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:381 ../gcr/gcr-importer.c:440
-msgid "Enter password to unlock"
-msgstr "ð‘§ð‘¯ð‘‘𑼠ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘‘ ð‘©ð‘¯ð‘¤ð‘­ð‘’"
-
-#. TRANSLATORS: The private key is locked
-#, c-format
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:391
-msgid "An application wants access to the private key '%s', but it is locked"
-msgstr "ð‘©ð‘¯ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ ð‘¢ð‘ªð‘¯ð‘‘ð‘• ð‘¨ð‘’ð‘•ð‘§ð‘• ð‘‘ ð‘ž ð‘ð‘®ð‘²ð‘ð‘©ð‘‘ ð‘’ð‘° '%s', ð‘šð‘³ð‘‘ ð‘¦ð‘‘ ð‘¦ð‘Ÿ ð‘¤ð‘ªð‘’ð‘‘"
-
-#. TRANSLATORS: The certificate is locked
-#, c-format
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:394
-msgid "An application wants access to the certificate '%s', but it is locked"
-msgstr "ð‘©ð‘¯ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ ð‘¢ð‘ªð‘¯ð‘‘ð‘• ð‘¨ð‘’ð‘•ð‘§ð‘• ð‘‘ ð‘ž ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘ '%s', ð‘šð‘³ð‘‘ ð‘¦ð‘‘ ð‘¦ð‘Ÿ ð‘¤ð‘ªð‘’ð‘‘"
-
-#. TRANSLATORS: The public key is locked
-#, c-format
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:397
-msgid "An application wants access to the public key '%s', but it is locked"
-msgstr "ð‘©ð‘¯ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ ð‘¢ð‘ªð‘¯ð‘‘ð‘• ð‘¨ð‘’ð‘•ð‘§ð‘• ð‘‘ ð‘ž ð‘ð‘³ð‘šð‘¤ð‘¦ð‘’ ð‘’ð‘° '%s', ð‘šð‘³ð‘‘ ð‘¦ð‘‘ ð‘¦ð‘Ÿ ð‘¤ð‘ªð‘’ð‘‘"
-
-#. TRANSLATORS: The object '%s' is locked
-#, c-format
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:400
-msgid "An application wants access to '%s', but it is locked"
-msgstr "ð‘©ð‘¯ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ ð‘¢ð‘ªð‘¯ð‘‘ð‘• ð‘¨ð‘’ð‘•ð‘§ð‘• ð‘‘ '%s', ð‘šð‘³ð‘‘ ð‘¦ð‘‘ ð‘¦ð‘Ÿ ð‘¤ð‘ªð‘’ð‘‘"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:595
-msgid "Unlock certificate/key storage"
-msgstr "ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘/ð‘’ð‘° ð‘•ð‘‘ð‘¹ð‘¦ð‘¡"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:596
-msgid "Enter password to unlock the certificate/key storage"
-msgstr "ð‘§ð‘¯ð‘‘𑼠ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘‘ ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘ž ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘/ð‘’ð‘° ð‘•ð‘‘ð‘¹ð‘¦ð‘¡"
-
-#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
-#, c-format
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:599
-msgid ""
-"An application wants access to the certificate/key storage '%s', but it is "
-"locked"
-msgstr "ð‘©ð‘¯ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ ð‘¢ð‘ªð‘¯ð‘‘ð‘• ð‘¨ð‘’ð‘•ð‘§ð‘• ð‘‘ ð‘ž ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘/ð‘’ð‘° ð‘•ð‘‘ð‘¹ð‘¦ð‘¡ '%s', ð‘šð‘³ð‘‘ ð‘¦ð‘‘ ð‘¦ð‘Ÿ ð‘¤ð‘ªð‘’ð‘‘"
+msgid "GNOME Keyring: GPG Agent"
+msgstr "ð‘¯ð‘´ð‘¥ ð‘’ð‘°ð‘®ð‘¦ð‘™: SSH ð‘±ð‘¡ð‘©ð‘¯ð‘‘"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
#, fuzzy
-#: ../daemon/prompt/gkd-prompt-tool.c:393
-msgid "Store passwords unencrypted?"
-msgstr "ð‘•ð‘‘𑹠ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘›ð‘Ÿ unencrypted?"
-
-#: ../daemon/prompt/gkd-prompt-tool.c:394
-msgid ""
-"By choosing to use a blank password, your stored passwords will not be safely "
-"encrypted. They will be accessible by anyone with access to your files."
-msgstr ""
-"ð‘šð‘² ð‘—ð‘µð‘Ÿð‘¦ð‘™ ð‘‘ ð‘¿ð‘• ð‘© ð‘šð‘¤ð‘¨ð‘™ð‘’ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘›, ð‘¿ð‘¼ ð‘•ð‘‘ð‘¹ð‘› ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘›ð‘Ÿ ð‘¢ð‘¦ð‘¤ ð‘¯ð‘ªð‘‘ ð‘šð‘° ð‘•ð‘±ð‘“ð‘¤ð‘¦ ð‘¦ð‘¯ð‘’ð‘®ð‘¦ð‘ð‘‘ð‘©ð‘›. ð‘žð‘± "
-"ð‘¢ð‘¦ð‘¤ ð‘šð‘° ð‘¨ð‘’ð‘•ð‘§ð‘•ð‘©ð‘šð‘©ð‘¤ ð‘šð‘² ð‘§ð‘¯ð‘¦ð‘¢ð‘³ð‘¯ ð‘¢ð‘¦ð‘ž ð‘¨ð‘’ð‘•ð‘§ð‘• ð‘‘ ð‘¿ð‘¼ ð‘“ð‘²ð‘¤ð‘Ÿ."
-
-#: ../daemon/prompt/gkd-prompt-tool.c:401
-msgid "Use Unsafe Storage"
-msgstr "ð‘¿ð‘Ÿ ð‘©ð‘¯ð‘•ð‘±ð‘“ ð‘•ð‘‘ð‘¹ð‘¦ð‘¡"
-
-#: ../daemon/prompt/gkd-prompt-tool.c:431
-msgid "Passwords do not match."
-msgstr "ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘›ð‘Ÿ ð‘›ð‘µ ð‘¯ð‘ªð‘‘ ð‘¥ð‘¨ð‘—."
-
-#: ../daemon/prompt/gkd-prompt-tool.c:441
-msgid "Password cannot be blank"
-msgstr "ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘šð‘° ð‘šð‘¤ð‘¨ð‘™ð‘’"
+msgid "GPG Password Agent"
+msgstr "ð‘¯ð‘¿ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘•ð‘‘ð‘®ð‘§ð‘™ð‘”"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
#, fuzzy
-#: ../daemon/prompt/gkd-prompt.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "ð‘·ð‘‘ð‘©ð‘¥ð‘¨ð‘‘ð‘¦ð‘’ð‘¤ð‘¦ ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘žð‘¦ð‘• ð‘’ð‘°ð‘®ð‘¦ð‘™ ð‘¢ð‘§ð‘¯ð‘§ð‘𑼠ð‘²'ð‘§ð‘¥ ð‘¤ð‘ªð‘œð‘› ð‘¦ð‘¯"
+msgid "Unknown"
+msgstr "ð‘³ð‘¯ð‘´ð‘¯ ð‘»ð‘¼"
-#: ../daemon/prompt/gkd-prompt.ui.h:2
-msgid "New password strength"
-msgstr "ð‘¯ð‘¿ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘•ð‘‘ð‘®ð‘§ð‘™ð‘”"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
+#, c-format
+msgid "PGP Key: %s"
+msgstr ""
-#, fuzzy
-#: ../daemon/prompt/gkd-prompt.ui.h:3
-msgid "_Application:"
-msgstr "_Application:"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
+msgstr ""
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
#, fuzzy
-#: ../daemon/prompt/gkd-prompt.ui.h:4
-msgid "_Confirm:"
-msgstr "_Confirm:"
+msgid "Forget this password if idle for"
+msgstr "ð‘¤ð‘ªð‘’ ð‘žð‘¦ð‘• ð‘’ð‘°ð‘®ð‘¦ð‘™ ð‘¦ð‘“ ð‘²ð‘›ð‘©ð‘¤ ð‘“ð‘¹"
-#, fuzzy
-#: ../daemon/prompt/gkd-prompt.ui.h:5
-msgid "_Details:"
-msgstr "_Details:"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
+msgstr ""
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
#, fuzzy
-#: ../daemon/prompt/gkd-prompt.ui.h:6
-msgid "_Name:"
-msgstr "_Name:"
+msgid "Forget this password when I log out"
+msgstr "ð‘¤ð‘ªð‘’ ð‘žð‘¦ð‘• ð‘’ð‘°ð‘®ð‘¦ð‘™ ð‘¢ð‘§ð‘¯ 𑲠ð‘¤ð‘ªð‘œ ð‘¬ð‘‘"
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
#, fuzzy
-#: ../daemon/prompt/gkd-prompt.ui.h:7
-msgid "_Old Password:"
-msgstr "_Old ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘›:"
-
-#: ../daemon/prompt/gkd-prompt.ui.h:8
-msgid "_Password:"
-msgstr "_ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘›:"
+msgid "Login"
+msgstr "ð‘¤ð‘ªð‘œð‘¦ð‘¯"
#: ../egg/egg-oid.c:41
msgid "Domain Component"
@@ -355,8 +148,8 @@ msgid "User ID"
msgstr "ð‘¿ð‘Ÿð‘¼ ID"
#: ../egg/egg-oid.c:46
-msgid "Email"
-msgstr "ð‘°ð‘¥ð‘±ð‘¤"
+msgid "Email Address"
+msgstr ""
#: ../egg/egg-oid.c:54
msgid "Date of Birth"
@@ -386,8 +179,7 @@ msgstr "ð‘’ð‘ªð‘¥ð‘©ð‘¯ ð‘¯ð‘±ð‘¥"
msgid "Surname"
msgstr "ð‘•ð‘»ð‘¯ð‘±ð‘¥"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-basics-widget.ui.h:18
-#: ../gcr/gcr-certificate-details-widget.c:322
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "ð‘•ð‘¦ð‘®ð‘°ð‘©ð‘¤ ð‘¯ð‘³ð‘¥ð‘šð‘¼"
@@ -435,8 +227,8 @@ msgstr "ð‘¦ð‘¯ð‘¦ð‘–ð‘©ð‘¤ð‘Ÿ"
msgid "Generation Qualifier"
msgstr "ð‘¡ð‘§ð‘¯ð‘»ð‘±ð‘–ð‘ªð‘¯ ð‘’ð‘¢ð‘­ð‘¤ð‘©ð‘“ð‘²ð‘»"
-#, fuzzy
#: ../egg/egg-oid.c:93
+#, fuzzy
msgid "DN Qualifier"
msgstr "DN ð‘’ð‘¢ð‘­ð‘¤ð‘©ð‘“ð‘²ð‘»"
@@ -444,641 +236,307 @@ msgstr "DN ð‘’ð‘¢ð‘­ð‘¤ð‘©ð‘“ð‘²ð‘»"
msgid "Pseudonym"
msgstr "ð‘•ð‘µð‘›ð‘©ð‘¯ð‘¦ð‘¥"
-#, fuzzy
#: ../egg/egg-oid.c:98
+#, fuzzy
msgid "RSA"
msgstr "RSA"
+#: ../egg/egg-oid.c:99
#, fuzzy
-#: ../egg/egg-oid.c:100
msgid "MD2 with RSA"
msgstr "MD2 ð‘¢ð‘¦ð‘ž RSA"
+#: ../egg/egg-oid.c:100
#, fuzzy
-#: ../egg/egg-oid.c:102
msgid "MD5 with RSA"
msgstr "MD5 ð‘¢ð‘¦ð‘ž RSA"
+#: ../egg/egg-oid.c:101
#, fuzzy
-#: ../egg/egg-oid.c:104
msgid "SHA1 with RSA"
msgstr "SHA1 ð‘¢ð‘¦ð‘ž RSA"
+#: ../egg/egg-oid.c:103
#, fuzzy
-#: ../egg/egg-oid.c:107
msgid "DSA"
msgstr "DSA"
+#: ../egg/egg-oid.c:104
#, fuzzy
-#: ../egg/egg-oid.c:109
msgid "SHA1 with DSA"
msgstr "SHA1 ð‘¢ð‘¦ð‘ž DSA"
-#, fuzzy, c-format
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+#, fuzzy
+msgid "Server Authentication"
+msgstr "SSL ð‘•ð‘»ð‘𑼠ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘"
+
+#: ../egg/egg-oid.c:108
+#, fuzzy
+msgid "Client Authentication"
+msgstr "SSL ð‘’ð‘¤ð‘²ð‘©ð‘¯ð‘‘ ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘"
+
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
+
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
+
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
+
#: ../egg/egg-spawn.c:273
+#, fuzzy, c-format
msgid "Unexpected error in select() reading data from a child process (%s)"
msgstr "ð‘³ð‘¯ð‘¦ð‘’ð‘•ð‘ð‘§ð‘’ð‘‘ð‘©ð‘› ð‘»ð‘¼ ð‘¦ð‘¯ ð‘•ð‘©ð‘¤ð‘§ð‘’ð‘‘() ð‘®ð‘°ð‘›ð‘¦ð‘™ ð‘›ð‘±ð‘‘ð‘© ð‘“ð‘®ð‘ªð‘¥ ð‘© ð‘—ð‘²ð‘¤ð‘› ð‘ð‘®ð‘´ð‘•ð‘§ð‘• (%s)"
-#, fuzzy, c-format
#: ../egg/egg-spawn.c:320
+#, fuzzy, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "ð‘³ð‘¯ð‘¦ð‘’ð‘•ð‘ð‘§ð‘’ð‘‘ð‘©ð‘› ð‘»ð‘¼ ð‘¦ð‘¯ waitpid() (%s)"
-#: ../gcr/gcr-certificate-basics-widget.c:59
-msgid "<i>Not Part of Certificate</i>"
-msgstr "<i>ð‘¯ð‘ªð‘‘ ð‘ð‘¸ð‘‘ ð‘ ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘</i>"
-
-#: ../gcr/gcr-certificate-basics-widget.c:80
-msgid "<i>unknown</i>"
-msgstr "<i>ð‘³ð‘¯ð‘´ð‘¯</i>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:1
-msgid "<Not Part of Certificate>"
-msgstr "<ð‘¯ð‘ªð‘‘ ð‘ð‘¸ð‘‘ ð‘ ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:2
-msgid "<b>Fingerprints</b>"
-msgstr "<b>ð‘“ð‘¦ð‘™ð‘œð‘¼ð‘ð‘®ð‘¦ð‘¯ð‘‘ð‘•</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:3
-msgid "<b>Issued By</b>"
-msgstr "<b>ð‘¦ð‘–ð‘µð‘› ð‘šð‘²</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:4
-msgid "<b>Issued To</b>"
-msgstr "<b>ð‘¦ð‘–ð‘µð‘› ð‘‘</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:5
-msgid "<b>This certificate has been verified for the following uses:</b>"
-msgstr "<b>ð‘žð‘¦ð‘• ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘ ð‘£ð‘¨ð‘Ÿ ð‘šð‘°ð‘¯ ð‘ð‘§ð‘®ð‘¦ð‘“ð‘²ð‘› ð‘“𑹠𑞠ð‘“ð‘ªð‘¤ð‘´ð‘¦ð‘™ ð‘¿ð‘Ÿð‘©ð‘Ÿ:</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:6
-msgid "<b>Validity</b>"
-msgstr "<b>ð‘ð‘©ð‘¤ð‘¦ð‘›ð‘©ð‘‘ð‘°</b>"
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr "ð‘©ð‘¯ð‘¯ð‘±ð‘¥ð‘› ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘"
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
#, fuzzy
-#: ../gcr/gcr-certificate-basics-widget.ui.h:7
-msgid "Common Name (CN)"
-msgstr "ð‘’ð‘ªð‘¥ð‘©ð‘¯ ð‘¯ð‘±ð‘¥ (CN)"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:8
-msgid "Email Recipient Certificate"
-msgstr "ð‘°ð‘¥ð‘±ð‘¤ ð‘®ð‘©ð‘•ð‘¦ð‘ð‘°ð‘©ð‘¯ð‘‘ ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:9
-msgid "Email Signer Certificate"
-msgstr "ð‘°ð‘¥ð‘±ð‘¤ ð‘•ð‘²ð‘¯ð‘» ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:10
-msgid "Expires On"
-msgstr "ð‘¦ð‘’ð‘•ð‘ð‘²ð‘»ð‘Ÿ ð‘ªð‘¯"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:11
-msgid "Issued On"
-msgstr "ð‘¦ð‘–ð‘µð‘› ð‘ªð‘¯"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:12
-msgid "MD5 Fingerprint"
-msgstr "MD5 ð‘“ð‘¦ð‘™ð‘œð‘¼ð‘ð‘®ð‘¦ð‘¯ð‘‘"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:13
-msgid "Organization (O)"
-msgstr "ð‘¹ð‘œð‘©ð‘¯ð‘¦ð‘Ÿð‘±ð‘–ð‘©ð‘¯ (O)"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:14
-msgid "Organizational Unit (OU)"
-msgstr "ð‘ªð‘®ð‘œð‘©ð‘¯ð‘©ð‘Ÿð‘±ð‘–ð‘©ð‘¯ð‘©ð‘¤ ð‘¿ð‘¯ð‘¦ð‘‘ (OU)"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:15
-msgid "SHA1 Fingerprint"
-msgstr "SHA1 ð‘“ð‘¦ð‘™ð‘œð‘¼ð‘ð‘®ð‘¦ð‘¯ð‘‘"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:16
-msgid "SSL Client Certificate"
-msgstr "SSL ð‘’ð‘¤ð‘²ð‘©ð‘¯ð‘‘ ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:17
-msgid "SSL Server Certificate"
-msgstr "SSL ð‘•ð‘»ð‘𑼠ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘"
+msgid "Couldn't parse public SSH key"
+msgstr "ð‘’ð‘«ð‘›ð‘¯ð‘‘ ð‘ð‘¸ð‘• ð‘ð‘³ð‘šð‘¤ð‘¦ð‘’ SSH ð‘’ð‘°"
-#: ../gcr/gcr-certificate-details-widget.c:207
-msgid "Extension"
-msgstr "ð‘©ð‘’ð‘•ð‘‘ð‘§ð‘¯ð‘–ð‘©ð‘¯"
-
-#: ../gcr/gcr-certificate-details-widget.c:212
-msgid "Identifier"
-msgstr "ð‘²ð‘›ð‘§ð‘¯ð‘‘ð‘¦ð‘“ð‘²ð‘¼"
-
-#: ../gcr/gcr-certificate-details-widget.c:222
-msgid "Value"
-msgstr "ð‘ð‘¨ð‘¤ð‘¿"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "Critical"
-msgstr "ð‘’ð‘®ð‘¦ð‘‘ð‘¦ð‘’ð‘©ð‘¤"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "Yes"
-msgstr "ð‘˜ð‘§ð‘•"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "No"
-msgstr "ð‘¯ð‘´"
-
-#. The subject
-#: ../gcr/gcr-certificate-details-widget.c:303
-msgid "Subject Name"
-msgstr "ð‘•ð‘³ð‘šð‘¡ð‘§ð‘’ð‘‘ ð‘¯ð‘±ð‘¥"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-details-widget.c:307
-msgid "Issuer Name"
-msgstr "ð‘¦ð‘–ð‘µð‘» ð‘¯ð‘±ð‘¥"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-details-widget.c:311
-msgid "Issued Certificate"
-msgstr "ð‘¦ð‘–ð‘µð‘› ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘"
-
-#: ../gcr/gcr-certificate-details-widget.c:316
-msgid "Version"
-msgstr "ð‘ð‘»ð‘ ð‘©ð‘¯"
-
-#: ../gcr/gcr-certificate-details-widget.c:329
-msgid "Not Valid Before"
-msgstr "ð‘¯ð‘ªð‘‘ ð‘ð‘¨ð‘¤ð‘¦ð‘› ð‘šð‘¦ð‘“ð‘¹"
-
-#: ../gcr/gcr-certificate-details-widget.c:334
-msgid "Not Valid After"
-msgstr "ð‘¯ð‘ªð‘‘ ð‘ð‘¨ð‘¤ð‘¦ð‘› ð‘­ð‘“ð‘‘ð‘¼"
-
-#. Signature
-#: ../gcr/gcr-certificate-details-widget.c:339
-#: ../gcr/gcr-certificate-details-widget.c:355
-msgid "Signature"
-msgstr "ð‘•ð‘¦ð‘œð‘¯ð‘©ð‘—ð‘¼"
-
-#: ../gcr/gcr-certificate-details-widget.c:343
-msgid "Signature Algorithm"
-msgstr "ð‘•ð‘¦ð‘œð‘¯ð‘©ð‘—𑼠ð‘¨ð‘¤ð‘œð‘»ð‘¦ð‘žð‘©ð‘¥"
-
-#: ../gcr/gcr-certificate-details-widget.c:348
-msgid "Signature Parameters"
-msgstr "ð‘•ð‘¦ð‘œð‘¯ð‘©ð‘—𑼠ð‘ð‘¼ð‘¨ð‘¥ð‘©ð‘‘ð‘¼ð‘Ÿ"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-details-widget.c:359
-msgid "Public Key Info"
-msgstr "ð‘ð‘³ð‘šð‘¤ð‘¦ð‘’ ð‘’ð‘° ð‘¦ð‘¯ð‘“ð‘´"
-
-#: ../gcr/gcr-certificate-details-widget.c:363
-msgid "Key Algorithm"
-msgstr "ð‘’ð‘° ð‘¨ð‘¤ð‘œð‘»ð‘¦ð‘žð‘©ð‘¥"
-
-#: ../gcr/gcr-certificate-details-widget.c:368
-msgid "Key Parameters"
-msgstr "ð‘’ð‘° ð‘ð‘¼ð‘¨ð‘¥ð‘©ð‘‘ð‘¼ð‘Ÿ"
-
-#: ../gcr/gcr-certificate-details-widget.c:375
-msgid "Key Size"
-msgstr "ð‘’ð‘° ð‘•ð‘²ð‘Ÿ"
-
-#: ../gcr/gcr-certificate-details-widget.c:382 ../gcr/gcr-parser.c:202
-msgid "Public Key"
-msgstr "ð‘ð‘³ð‘šð‘¤ð‘¦ð‘’ ð‘’ð‘°"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-details-widget.c:386
-msgid "Fingerprints"
-msgstr "ð‘“ð‘¦ð‘™ð‘œð‘¼ð‘ð‘®ð‘¦ð‘¯ð‘‘ð‘•"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-msgstr "<span size='large' weight='bold'>ð‘¦ð‘¥ð‘ð‘¹ð‘‘ ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘𑕠𑯠ð‘’ð‘°ð‘Ÿ</span>"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "ð‘¦ð‘¥ð‘ð‘¹ð‘‘ ð‘¦ð‘¯ð‘‘ð‘«:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘›:"
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, fuzzy, c-format
+msgid "Unlock password for: %s"
+msgstr "ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘“𑹠%s ð‘’ð‘°ð‘®ð‘¦ð‘™"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
#, fuzzy
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Lock this keyring after"
-msgstr "ð‘¤ð‘ªð‘’ ð‘žð‘¦ð‘• ð‘’ð‘°ð‘®ð‘¦ð‘™ ð‘­ð‘“ð‘‘ð‘¼"
+msgid "The unlock password was incorrect"
+msgstr "ð‘ž ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘¢ð‘ªð‘Ÿ ð‘¦ð‘¯ð‘’ð‘©ð‘®ð‘§ð‘’ð‘‘"
-#, fuzzy
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring if idle for"
-msgstr "ð‘¤ð‘ªð‘’ ð‘žð‘¦ð‘• ð‘’ð‘°ð‘®ð‘¦ð‘™ ð‘¦ð‘“ ð‘²ð‘›ð‘©ð‘¤ ð‘“ð‘¹"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+msgid "Unlock Login Keyring"
+msgstr "ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘¤ð‘ªð‘œð‘¦ð‘¯ ð‘’ð‘°ð‘®ð‘¦ð‘™"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
#, fuzzy
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring when I log out"
-msgstr "ð‘¤ð‘ªð‘’ ð‘žð‘¦ð‘• ð‘’ð‘°ð‘®ð‘¦ð‘™ ð‘¢ð‘§ð‘¯ 𑲠ð‘¤ð‘ªð‘œ ð‘¬ð‘‘"
+msgid "Enter password to unlock your login keyring"
+msgstr "ð‘§ð‘¯ð‘‘𑼠ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘“𑹠𑑠ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘¿ð‘¼ ð‘¤ð‘ªð‘œð‘¦ð‘¯ ð‘’ð‘°ð‘®ð‘¦ð‘™"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
#, fuzzy
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "minutes"
-msgstr "ð‘¥ð‘¦ð‘¯ð‘¦ð‘‘ð‘•"
-
-#: ../gcr/gcr-importer.c:163 ../gcr/gcr-parser.c:1573 ../gp11/gp11-misc.c:98
-msgid "The operation was cancelled"
-msgstr "ð‘ž ð‘ªð‘ð‘¼ð‘±ð‘–ð‘©ð‘¯ ð‘¢ð‘ªð‘Ÿ ð‘’ð‘¨ð‘¯ð‘•ð‘©ð‘¤ð‘›"
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
+msgstr ""
+"ð‘ž ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘¿ ð‘¿ð‘Ÿ ð‘‘ ð‘¤ð‘ªð‘œ ð‘¦ð‘¯ ð‘‘ ð‘¿ð‘¼ ð‘’ð‘©ð‘¥ð‘ð‘¿ð‘‘𑼠ð‘¯ð‘´ ð‘¤ð‘ªð‘™ð‘œð‘¼ ð‘¥ð‘¨ð‘—ð‘©ð‘Ÿ ð‘žð‘¨ð‘‘ ð‘ ð‘¿ð‘¼ ð‘¤ð‘ªð‘œð‘¦ð‘¯ ð‘’ð‘°ð‘®ð‘¦ð‘™."
-#, c-format
-#: ../gcr/gcr-importer.c:255
-msgid "No location available to import to"
-msgstr "ð‘¯ð‘´ ð‘¤ð‘´ð‘’ð‘±ð‘–ð‘©ð‘¯ ð‘©ð‘ð‘±ð‘¤ð‘©ð‘šð‘©ð‘¤ ð‘‘ ð‘¦ð‘¥ð‘ð‘¹ð‘‘ ð‘‘"
-
-#: ../gcr/gcr-importer.c:404
-msgid "Import Certificates/Keys"
-msgstr "ð‘¦ð‘¥ð‘ð‘¹ð‘‘ ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘ð‘•/ð‘’ð‘°ð‘Ÿ"
-
-#: ../gcr/gcr-importer.c:411
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "ð‘—ð‘µð‘Ÿ ð‘© ð‘¤ð‘´ð‘’ð‘±ð‘–ð‘©ð‘¯ ð‘‘ ð‘•ð‘‘𑹠𑞠ð‘¦ð‘¥ð‘ð‘¹ð‘‘ð‘©ð‘› ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘ð‘•/ð‘’ð‘°ð‘Ÿ."
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:449
-msgid "In order to import the private key, it must be unlocked"
-msgstr "ð‘¦ð‘¯ ð‘¹ð‘›ð‘¼ ð‘‘ ð‘¦ð‘¥ð‘ð‘¹ð‘‘ ð‘ž ð‘ð‘®ð‘²ð‘ð‘©ð‘‘ ð‘’ð‘°, ð‘¦ð‘‘ ð‘¥ð‘³ð‘•ð‘‘ ð‘šð‘° ð‘©ð‘¯ð‘¤ð‘­ð‘’ð‘‘"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:452
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "ð‘¦ð‘¯ ð‘¹ð‘›ð‘¼ ð‘‘ ð‘¦ð‘¥ð‘ð‘¹ð‘‘ ð‘ž ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘, ð‘¦ð‘‘ ð‘¥ð‘³ð‘•ð‘‘ ð‘šð‘° ð‘©ð‘¯ð‘¤ð‘­ð‘’ð‘‘"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:455
-msgid "In order to import the data, it must be unlocked"
-msgstr "ð‘¦ð‘¯ ð‘¹ð‘›ð‘¼ ð‘‘ ð‘¦ð‘¥ð‘ð‘¹ð‘‘ ð‘ž ð‘›ð‘±ð‘‘ð‘©, ð‘¦ð‘‘ ð‘¥ð‘³ð‘•ð‘‘ ð‘šð‘° ð‘©ð‘¯ð‘¤ð‘­ð‘’ð‘‘"
-
-#. TRANSLATORS: The key is locked.
-#, c-format
-#: ../gcr/gcr-importer.c:460
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "ð‘¦ð‘¯ ð‘¹ð‘›ð‘¼ ð‘‘ ð‘¦ð‘¥ð‘ð‘¹ð‘‘ ð‘ž ð‘ð‘®ð‘²ð‘ð‘©ð‘‘ ð‘’ð‘° '%s', ð‘¦ð‘‘ ð‘¥ð‘³ð‘•ð‘‘ ð‘šð‘° ð‘©ð‘¯ð‘¤ð‘­ð‘’ð‘‘"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
+#, fuzzy
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr "ð‘ž ð‘¤ð‘ªð‘œð‘¦ð‘¯ ð‘’ð‘°ð‘®ð‘¦ð‘™ ð‘›ð‘¦ð‘› ð‘¯ð‘ªð‘‘ ð‘œð‘§ð‘‘ ð‘©ð‘¯ð‘¤ð‘­ð‘’ð‘‘ ð‘¢ð‘§ð‘¯ ð‘¿ ð‘¤ð‘ªð‘œð‘› ð‘¦ð‘¯ð‘‘ð‘« ð‘¿ð‘¼ ð‘’ð‘©ð‘¥ð‘ð‘¿ð‘‘ð‘¼."
-#. TRANSLATORS: The certificate is locked.
-#, c-format
-#: ../gcr/gcr-importer.c:463
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "ð‘¦ð‘¯ ð‘¹ð‘›ð‘¼ ð‘‘ ð‘¦ð‘¥ð‘ð‘¹ð‘‘ ð‘ž ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘ '%s', ð‘¦ð‘‘ ð‘¥ð‘³ð‘•ð‘‘ ð‘šð‘° ð‘©ð‘¯ð‘¤ð‘­ð‘’ð‘‘"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘’ð‘°ð‘®ð‘¦ð‘™"
-#. TRANSLATORS: The object '%s' is locked.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
#, c-format
-#: ../gcr/gcr-importer.c:466
-msgid "In order to import '%s', it must be unlocked"
-msgstr "ð‘¦ð‘¯ ð‘¹ð‘›ð‘¼ ð‘‘ ð‘¦ð‘¥ð‘ð‘¹ð‘‘ '%s', ð‘¦ð‘‘ ð‘¥ð‘³ð‘•ð‘‘ ð‘šð‘° ð‘©ð‘¯ð‘¤ð‘­ð‘’ð‘‘"
-
-#: ../gcr/gcr-parser.c:196
-msgid "Private Key"
-msgstr "ð‘ð‘®ð‘²ð‘ð‘©ð‘‘ ð‘’ð‘°"
-
-#: ../gcr/gcr-parser.c:199
-msgid "Certificate"
-msgstr "ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘"
-
-#: ../gcr/gcr-parser.c:1576
-msgid "Unrecognized or unsupported data."
-msgstr "ð‘©ð‘¯ð‘®ð‘§ð‘’ð‘©ð‘œð‘¯ð‘²ð‘Ÿð‘› 𑹠ð‘³ð‘¯ð‘•ð‘©ð‘ð‘¹ð‘‘ð‘©ð‘› ð‘›ð‘±ð‘‘ð‘©."
-
-#: ../gcr/gcr-parser.c:1579
-msgid "Could not parse invalid or corrupted data."
-msgstr "ð‘’ð‘«ð‘› ð‘¯ð‘ªð‘‘ ð‘ð‘¸ð‘• ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘› 𑹠ð‘’ð‘¼ð‘³ð‘ð‘‘ð‘©ð‘› ð‘›ð‘±ð‘‘ð‘©."
-
-#: ../gcr/gcr-parser.c:1582
-msgid "The data is locked"
-msgstr "ð‘ž ð‘›ð‘±ð‘‘ð‘© ð‘¦ð‘Ÿ ð‘¤ð‘ªð‘’ð‘‘"
-
-#: ../gp11/gp11-misc.c:101
-msgid "Insufficient memory available"
-msgstr "ð‘¦ð‘¯ð‘•ð‘©ð‘“ð‘¦ð‘–ð‘©ð‘¯ð‘‘ ð‘¥ð‘§ð‘¥ð‘¼ð‘¦ ð‘©ð‘ð‘±ð‘¤ð‘©ð‘šð‘©ð‘¤"
-
-#: ../gp11/gp11-misc.c:103
-msgid "The specified slot ID is not valid"
-msgstr "ð‘ž ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘•ð‘¤ð‘ªð‘‘ ID ð‘¦ð‘Ÿ ð‘¯ð‘ªð‘‘ ð‘ð‘¨ð‘¤ð‘¦ð‘›"
-
-#: ../gp11/gp11-misc.c:105
-msgid "Internal error"
-msgstr "ð‘¦ð‘¯ð‘‘ð‘»ð‘¯ð‘©ð‘¤ ð‘»ð‘¼"
-
-#: ../gp11/gp11-misc.c:107
-msgid "The operation failed"
-msgstr "ð‘ž ð‘ªð‘ð‘¼ð‘±ð‘–ð‘©ð‘¯ ð‘“ð‘±ð‘¤ð‘›"
-
-#: ../gp11/gp11-misc.c:109
-msgid "Invalid arguments"
-msgstr "ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘› ð‘¸ð‘œð‘¿ð‘¥ð‘©ð‘¯ð‘‘ð‘•"
-
-#: ../gp11/gp11-misc.c:111
-msgid "The module cannot create needed threads"
-msgstr "ð‘ž ð‘¥ð‘ªð‘›ð‘¿ð‘¤ ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘’ð‘®ð‘¦ð‘±ð‘‘ ð‘¯ð‘°ð‘›ð‘©ð‘› ð‘”ð‘®ð‘§ð‘›ð‘Ÿ"
-
-#: ../gp11/gp11-misc.c:113
-msgid "The module cannot lock data properly"
-msgstr "ð‘ž ð‘¥ð‘ªð‘›ð‘¿ð‘¤ ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘¤ð‘ªð‘’ ð‘›ð‘±ð‘‘ð‘© ð‘ð‘®ð‘ªð‘ð‘¼ð‘¤ð‘¦"
-
-#: ../gp11/gp11-misc.c:115
-msgid "The field is read-only"
-msgstr "ð‘ž ð‘“ð‘°ð‘¤ð‘› ð‘¦ð‘Ÿ ð‘®ð‘§ð‘›-ð‘´ð‘¯ð‘¤ð‘¦"
-
-#: ../gp11/gp11-misc.c:117
-msgid "The field is sensitive and cannot be revealed"
-msgstr "ð‘ž ð‘“ð‘°ð‘¤ð‘› ð‘¦ð‘Ÿ ð‘•ð‘§ð‘¯ð‘•ð‘¦ð‘‘ð‘¦ð‘ 𑯠ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘šð‘° ð‘®ð‘¦ð‘ð‘°ð‘¤ð‘›"
-
-#: ../gp11/gp11-misc.c:119
-msgid "The field is invalid or does not exist"
-msgstr "ð‘ž ð‘“ð‘°ð‘¤ð‘› ð‘¦ð‘Ÿ ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘› 𑹠ð‘›ð‘´ð‘Ÿ ð‘¯ð‘ªð‘‘ ð‘§ð‘’ð‘Ÿð‘¦ð‘•ð‘‘"
-
-#: ../gp11/gp11-misc.c:121
-msgid "Invalid value for field"
-msgstr "ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘› ð‘ð‘¨ð‘¤ð‘¿ ð‘“𑹠ð‘“ð‘°ð‘¤ð‘›"
-
-#: ../gp11/gp11-misc.c:123
-msgid "The data is not valid or unrecognized"
-msgstr "ð‘ž ð‘›ð‘±ð‘‘ð‘© ð‘¦ð‘Ÿ ð‘¯ð‘ªð‘‘ ð‘ð‘¨ð‘¤ð‘¦ð‘› 𑹠ð‘©ð‘¯ð‘®ð‘§ð‘’ð‘©ð‘œð‘¯ð‘²ð‘Ÿð‘›"
-
-#: ../gp11/gp11-misc.c:125
-msgid "The data is too long"
-msgstr "ð‘ž ð‘›ð‘±ð‘‘ð‘© ð‘¦ð‘Ÿ ð‘‘𑵠ð‘¤ð‘ªð‘™"
-
-#: ../gp11/gp11-misc.c:127
-msgid "An error occurred on the device"
-msgstr "ð‘©ð‘¯ ð‘»ð‘¼ ð‘ªð‘’ð‘»ð‘› ð‘ªð‘¯ ð‘ž ð‘›ð‘¦ð‘ð‘²ð‘•"
-
-#: ../gp11/gp11-misc.c:129
-msgid "Insufficient memory available on device"
-msgstr "ð‘¦ð‘¯ð‘•ð‘©ð‘“ð‘¦ð‘–ð‘©ð‘¯ð‘‘ ð‘¥ð‘§ð‘¥ð‘¼ð‘¦ ð‘©ð‘ð‘±ð‘¤ð‘©ð‘šð‘©ð‘¤ ð‘ªð‘¯ ð‘›ð‘¦ð‘ð‘²ð‘•"
-
-#: ../gp11/gp11-misc.c:131
-msgid "The device was removed or unplugged"
-msgstr "ð‘ž ð‘›ð‘¦ð‘ð‘²ð‘• ð‘¢ð‘ªð‘Ÿ ð‘®ð‘¦ð‘¥ð‘µð‘𑛠𑹠ð‘©ð‘¯ð‘ð‘¤ð‘©ð‘œð‘›"
-
-#: ../gp11/gp11-misc.c:133
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "ð‘ž ð‘¦ð‘¯ð‘’ð‘®ð‘¦ð‘ð‘‘ð‘©ð‘› ð‘›ð‘±ð‘‘ð‘© ð‘¦ð‘Ÿ ð‘¯ð‘ªð‘‘ ð‘ð‘¨ð‘¤ð‘¦ð‘› 𑹠ð‘©ð‘¯ð‘®ð‘§ð‘’ð‘©ð‘œð‘¯ð‘²ð‘Ÿð‘›"
-
-#: ../gp11/gp11-misc.c:135
-msgid "The encrypted data is too long"
-msgstr "ð‘ž ð‘¦ð‘¯ð‘’ð‘®ð‘¦ð‘ð‘‘ð‘©ð‘› ð‘›ð‘±ð‘‘ð‘© ð‘¦ð‘Ÿ ð‘‘𑵠ð‘¤ð‘ªð‘™"
-
-#: ../gp11/gp11-misc.c:137
-msgid "This operation is not supported"
-msgstr "ð‘žð‘¦ð‘• ð‘ªð‘ð‘¼ð‘±ð‘–ð‘©ð‘¯ ð‘¦ð‘Ÿ ð‘¯ð‘ªð‘‘ ð‘•ð‘©ð‘ð‘¹ð‘‘ð‘©ð‘›"
-
-#: ../gp11/gp11-misc.c:139
-msgid "The key is missing or invalid"
-msgstr "ð‘ž ð‘’ð‘° ð‘¦ð‘Ÿ ð‘¥ð‘¦ð‘•ð‘¦ð‘™ 𑹠ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘›"
-
-#: ../gp11/gp11-misc.c:141
-msgid "The key is the wrong size"
-msgstr "ð‘ž ð‘’ð‘° ð‘¦ð‘Ÿ ð‘ž ð‘®ð‘ªð‘™ ð‘•ð‘²ð‘Ÿ"
-
-#: ../gp11/gp11-misc.c:143
-msgid "The key is of the wrong type"
-msgstr "ð‘ž ð‘’ð‘° ð‘¦ð‘Ÿ ð‘ ð‘ž ð‘®ð‘ªð‘™ ð‘‘ð‘²ð‘"
-
-#: ../gp11/gp11-misc.c:145
-msgid "No key is needed"
-msgstr "ð‘¯ð‘´ ð‘’ð‘° ð‘¦ð‘Ÿ ð‘¯ð‘°ð‘›ð‘©ð‘›"
-
-#: ../gp11/gp11-misc.c:147
-msgid "The key is different than before"
-msgstr "ð‘ž ð‘’ð‘° ð‘¦ð‘Ÿ ð‘›ð‘¦ð‘“ð‘¼ð‘©ð‘¯ð‘‘ ð‘žð‘¨ð‘¯ ð‘šð‘¦ð‘“ð‘¹"
-
-#: ../gp11/gp11-misc.c:149
-msgid "A key is needed"
-msgstr "ð‘© ð‘’ð‘° ð‘¦ð‘Ÿ ð‘¯ð‘°ð‘›ð‘©ð‘›"
-
-#: ../gp11/gp11-misc.c:151
-msgid "Cannot include the key in digest"
-msgstr "ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘¦ð‘¯ð‘’ð‘¤ð‘µð‘› ð‘ž ð‘’ð‘° ð‘¦ð‘¯ ð‘›ð‘²ð‘¡ð‘§ð‘•ð‘‘"
-
-#: ../gp11/gp11-misc.c:153
-msgid "This operation cannot be done with this key"
-msgstr "ð‘žð‘¦ð‘• ð‘ªð‘ð‘¼ð‘±ð‘–ð‘©ð‘¯ ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘šð‘° ð‘›ð‘³ð‘¯ ð‘¢ð‘¦ð‘ž ð‘žð‘¦ð‘• ð‘’ð‘°"
-
-#: ../gp11/gp11-misc.c:155
-msgid "The key cannot be wrapped"
-msgstr "ð‘ž ð‘’ð‘° ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘šð‘° ð‘®ð‘¨ð‘ð‘‘"
-
-#: ../gp11/gp11-misc.c:157
-msgid "Cannot export this key"
-msgstr "ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘§ð‘’ð‘•ð‘ð‘¹ð‘‘ ð‘žð‘¦ð‘• ð‘’ð‘°"
-
-#: ../gp11/gp11-misc.c:159
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "ð‘ž ð‘’ð‘®ð‘¦ð‘ð‘‘ð‘´ ð‘¥ð‘§ð‘’ð‘©ð‘¯ð‘¦ð‘Ÿð‘¥ ð‘¦ð‘Ÿ ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘› 𑹠ð‘©ð‘¯ð‘®ð‘§ð‘’ð‘©ð‘œð‘¯ð‘²ð‘Ÿð‘›"
-
-#: ../gp11/gp11-misc.c:161
-msgid "The crypto mechanism has an invalid argument"
-msgstr "ð‘ž ð‘’ð‘®ð‘¦ð‘ð‘‘ð‘´ ð‘¥ð‘§ð‘’ð‘©ð‘¯ð‘¦ð‘Ÿð‘¥ ð‘£ð‘¨ð‘Ÿ ð‘©ð‘¯ ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘› ð‘¸ð‘œð‘¿ð‘¥ð‘©ð‘¯ð‘‘"
-
-#: ../gp11/gp11-misc.c:163
-msgid "The object is missing or invalid"
-msgstr "ð‘ž ð‘ªð‘šð‘¡ð‘§ð‘’ð‘‘ ð‘¦ð‘Ÿ ð‘¥ð‘¦ð‘•ð‘¦ð‘™ 𑹠ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘›"
-
-#: ../gp11/gp11-misc.c:165
-msgid "Another operation is already taking place"
-msgstr "ð‘©ð‘¯ð‘³ð‘žð‘¼ ð‘ªð‘ð‘¼ð‘±ð‘–ð‘©ð‘¯ ð‘¦ð‘Ÿ ð‘·ð‘¤ð‘®ð‘§ð‘›ð‘¦ ð‘‘ð‘±ð‘’ð‘¦ð‘™ ð‘ð‘¤ð‘±ð‘•"
-
-#: ../gp11/gp11-misc.c:167
-msgid "No operation is taking place"
-msgstr "ð‘¯ð‘´ ð‘ªð‘ð‘¼ð‘±ð‘–ð‘©ð‘¯ ð‘¦ð‘Ÿ ð‘‘ð‘±ð‘’ð‘¦ð‘™ ð‘ð‘¤ð‘±ð‘•"
-
-#: ../gp11/gp11-misc.c:169
-msgid "The password or PIN is incorrect"
-msgstr "ð‘ž ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› 𑹠PIN ð‘¦ð‘Ÿ ð‘¦ð‘¯ð‘’ð‘¼ð‘§ð‘’ð‘‘"
-
-#: ../gp11/gp11-misc.c:171
-msgid "The password or PIN is invalid"
-msgstr "ð‘ž ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› 𑹠PIN ð‘¦ð‘Ÿ ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘›"
-
-#: ../gp11/gp11-misc.c:173
-msgid "The password or PIN is of an invalid length"
-msgstr "ð‘ž ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› 𑹠PIN ð‘¦ð‘Ÿ ð‘ ð‘©ð‘¯ ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘› ð‘¤ð‘§ð‘™ð‘”"
-
-#: ../gp11/gp11-misc.c:175
-msgid "The password or PIN has expired"
-msgstr "ð‘ž ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› 𑹠PIN ð‘£ð‘¨ð‘Ÿ ð‘¦ð‘’ð‘•ð‘ð‘²ð‘®ð‘›"
-
-#: ../gp11/gp11-misc.c:177
-msgid "The password or PIN is locked"
-msgstr "ð‘ž ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› 𑹠PIN ð‘¦ð‘Ÿ ð‘¤ð‘ªð‘’ð‘‘"
-
-#: ../gp11/gp11-misc.c:179
-msgid "The session is closed"
-msgstr "ð‘ž ð‘•ð‘§ð‘–ð‘©ð‘¯ ð‘¦ð‘Ÿ ð‘’ð‘¤ð‘´ð‘Ÿð‘›"
-
-#: ../gp11/gp11-misc.c:181
-msgid "Too many sessions are active"
-msgstr "ð‘‘𑵠ð‘¥ð‘§ð‘¯ð‘¦ ð‘•ð‘§ð‘–ð‘©ð‘¯ð‘Ÿ 𑸠ð‘¨ð‘’ð‘‘ð‘¦ð‘"
-
-#: ../gp11/gp11-misc.c:183
-msgid "The session is invalid"
-msgstr "ð‘ž ð‘•ð‘§ð‘–ð‘©ð‘¯ ð‘¦ð‘Ÿ ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘›"
-
-#: ../gp11/gp11-misc.c:185
-msgid "The session is read-only"
-msgstr "ð‘ž ð‘•ð‘§ð‘–ð‘©ð‘¯ ð‘¦ð‘Ÿ ð‘®ð‘§ð‘›-ð‘´ð‘¯ð‘¤ð‘¦"
-
-#: ../gp11/gp11-misc.c:187
-msgid "An open session exists"
-msgstr "ð‘©ð‘¯ ð‘´ð‘ð‘©ð‘¯ ð‘•ð‘§ð‘–ð‘©ð‘¯ ð‘§ð‘’ð‘Ÿð‘¦ð‘•ð‘‘ð‘•"
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "ð‘§ð‘¯ð‘‘𑼠ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘“𑹠ð‘’ð‘°ð‘®ð‘¦ð‘™ '%s' ð‘‘ ð‘©ð‘¯ð‘¤ð‘­ð‘’"
-#: ../gp11/gp11-misc.c:189
-msgid "A read-only session exists"
-msgstr "ð‘© ð‘®ð‘§ð‘›-ð‘´ð‘¯ð‘¤ð‘¦ ð‘•ð‘§ð‘–ð‘©ð‘¯ ð‘§ð‘’ð‘Ÿð‘¦ð‘•ð‘‘ð‘•"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, fuzzy, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr "ð‘©ð‘¯ ð‘³ð‘¯ð‘´ð‘¯ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ ð‘¢ð‘ªð‘¯ð‘‘ð‘• ð‘¨ð‘’ð‘•ð‘§ð‘• ð‘‘ ð‘ž ð‘’ð‘°ð‘®ð‘¦ð‘™ '%s', ð‘šð‘³ð‘‘ ð‘¦ð‘‘ ð‘¦ð‘Ÿ ð‘¤ð‘ªð‘’ð‘‘"
-#: ../gp11/gp11-misc.c:191
-msgid "An administrator session exists"
-msgstr "ð‘©ð‘¯ ð‘©ð‘›ð‘¥ð‘¦ð‘¯ð‘¦ð‘•ð‘‘ð‘®ð‘±ð‘‘𑼠ð‘•ð‘§ð‘–ð‘©ð‘¯ ð‘§ð‘’ð‘Ÿð‘¦ð‘•ð‘‘ð‘•"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
+msgstr "ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘ð‘®ð‘²ð‘ð‘©ð‘‘ ð‘’ð‘°"
-#: ../gp11/gp11-misc.c:193
-msgid "The signature is bad or corrupted"
-msgstr "ð‘ž ð‘•ð‘¦ð‘œð‘¯ð‘©ð‘—𑼠ð‘¦ð‘Ÿ ð‘šð‘¨ð‘› 𑹠ð‘’ð‘¼ð‘³ð‘ð‘‘ð‘©ð‘›"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+msgid "Unlock certificate"
+msgstr "ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘"
-#: ../gp11/gp11-misc.c:195
-msgid "The signature is unrecognized or corrupted"
-msgstr "ð‘ž ð‘•ð‘¦ð‘œð‘¯ð‘©ð‘—𑼠ð‘¦ð‘Ÿ ð‘©ð‘¯ð‘®ð‘§ð‘’ð‘©ð‘œð‘¯ð‘²ð‘Ÿð‘› 𑹠ð‘’ð‘¼ð‘³ð‘ð‘‘ð‘©ð‘›"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
+msgstr "ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘ð‘³ð‘šð‘¤ð‘¦ð‘’ ð‘’ð‘°"
-#: ../gp11/gp11-misc.c:197
-msgid "Certain required fields are missing"
-msgstr "ð‘•ð‘»ð‘‘ð‘©ð‘¯ ð‘®ð‘¦ð‘’ð‘¢ð‘²ð‘¼ð‘› ð‘“ð‘°ð‘¤ð‘›ð‘Ÿ 𑸠ð‘¥ð‘¦ð‘•ð‘¦ð‘™"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "ð‘©ð‘¯ð‘¤ð‘­ð‘’"
-#: ../gp11/gp11-misc.c:199
-msgid "Certain fields have invalid values"
-msgstr "ð‘•ð‘»ð‘‘ð‘©ð‘¯ ð‘“ð‘°ð‘¤ð‘›ð‘Ÿ ð‘£ð‘¨ð‘ ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘› ð‘ð‘¨ð‘¤ð‘¿ð‘Ÿ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "ð‘§ð‘¯ð‘‘𑼠ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘‘ ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘ž ð‘ð‘®ð‘²ð‘ð‘©ð‘‘ ð‘’ð‘°"
-#: ../gp11/gp11-misc.c:201
-msgid "The device is not present or unplugged"
-msgstr "ð‘ž ð‘›ð‘¦ð‘ð‘²ð‘• ð‘¦ð‘Ÿ ð‘¯ð‘ªð‘‘ ð‘ð‘®ð‘©ð‘Ÿð‘§ð‘¯ð‘‘ 𑹠ð‘©ð‘¯ð‘ð‘¤ð‘©ð‘œð‘›"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "ð‘§ð‘¯ð‘‘𑼠ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘‘ ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘ž ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘"
-#: ../gp11/gp11-misc.c:203
-msgid "The device is invalid or unrecognizable"
-msgstr "ð‘ž ð‘›ð‘¦ð‘ð‘²ð‘• ð‘¦ð‘Ÿ ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘› 𑹠ð‘©ð‘¯ð‘®ð‘§ð‘’ð‘©ð‘œð‘¯ð‘²ð‘Ÿð‘©ð‘šð‘©ð‘¤"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+msgid "Enter password to unlock the public key"
+msgstr "ð‘§ð‘¯ð‘‘𑼠ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘‘ ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘ž ð‘ð‘³ð‘šð‘¤ð‘¦ð‘’ ð‘’ð‘°"
-#: ../gp11/gp11-misc.c:205
-msgid "The device is write protected"
-msgstr "ð‘ž ð‘›ð‘¦ð‘ð‘²ð‘• ð‘¦ð‘Ÿ ð‘®ð‘²ð‘‘ ð‘ð‘®ð‘©ð‘‘ð‘§ð‘’ð‘‘ð‘©ð‘›"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "ð‘§ð‘¯ð‘‘𑼠ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘‘ ð‘©ð‘¯ð‘¤ð‘­ð‘’"
-#: ../gp11/gp11-misc.c:207
-msgid "Cannot import because the key is invalid"
-msgstr "ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘¦ð‘¥ð‘ð‘¹ð‘‘ ð‘šð‘¦ð‘’ð‘ªð‘Ÿ ð‘ž ð‘’ð‘° ð‘¦ð‘Ÿ ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘›"
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
+#, c-format
+msgid "An application wants access to the private key '%s', but it is locked"
+msgstr "ð‘©ð‘¯ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ ð‘¢ð‘ªð‘¯ð‘‘ð‘• ð‘¨ð‘’ð‘•ð‘§ð‘• ð‘‘ ð‘ž ð‘ð‘®ð‘²ð‘ð‘©ð‘‘ ð‘’ð‘° '%s', ð‘šð‘³ð‘‘ ð‘¦ð‘‘ ð‘¦ð‘Ÿ ð‘¤ð‘ªð‘’ð‘‘"
-#: ../gp11/gp11-misc.c:209
-msgid "Cannot import because the key is of the wrong size"
-msgstr "ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘¦ð‘¥ð‘ð‘¹ð‘‘ ð‘šð‘¦ð‘’ð‘ªð‘Ÿ ð‘ž ð‘’ð‘° ð‘¦ð‘Ÿ ð‘ ð‘ž ð‘®ð‘ªð‘™ ð‘•ð‘²ð‘Ÿ"
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
+#, c-format
+msgid "An application wants access to the certificate '%s', but it is locked"
+msgstr "ð‘©ð‘¯ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ ð‘¢ð‘ªð‘¯ð‘‘ð‘• ð‘¨ð‘’ð‘•ð‘§ð‘• ð‘‘ ð‘ž ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘ '%s', ð‘šð‘³ð‘‘ ð‘¦ð‘‘ ð‘¦ð‘Ÿ ð‘¤ð‘ªð‘’ð‘‘"
-#: ../gp11/gp11-misc.c:211
-msgid "Cannot import because the key is of the wrong type"
-msgstr "ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘¦ð‘¥ð‘ð‘¹ð‘‘ ð‘šð‘¦ð‘’ð‘ªð‘Ÿ ð‘ž ð‘’ð‘° ð‘¦ð‘Ÿ ð‘ ð‘ž ð‘®ð‘ªð‘™ ð‘‘ð‘²ð‘"
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
+#, c-format
+msgid "An application wants access to the public key '%s', but it is locked"
+msgstr "ð‘©ð‘¯ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ ð‘¢ð‘ªð‘¯ð‘‘ð‘• ð‘¨ð‘’ð‘•ð‘§ð‘• ð‘‘ ð‘ž ð‘ð‘³ð‘šð‘¤ð‘¦ð‘’ ð‘’ð‘° '%s', ð‘šð‘³ð‘‘ ð‘¦ð‘‘ ð‘¦ð‘Ÿ ð‘¤ð‘ªð‘’ð‘‘"
-#: ../gp11/gp11-misc.c:213
-msgid "You are already logged in"
-msgstr "𑿠𑸠ð‘·ð‘¤ð‘®ð‘§ð‘›ð‘¦ ð‘¤ð‘ªð‘œð‘› ð‘¦ð‘¯"
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
+#, c-format
+msgid "An application wants access to '%s', but it is locked"
+msgstr "ð‘©ð‘¯ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ ð‘¢ð‘ªð‘¯ð‘‘ð‘• ð‘¨ð‘’ð‘•ð‘§ð‘• ð‘‘ '%s', ð‘šð‘³ð‘‘ ð‘¦ð‘‘ ð‘¦ð‘Ÿ ð‘¤ð‘ªð‘’ð‘‘"
-#: ../gp11/gp11-misc.c:215
-msgid "No user has logged in"
-msgstr "ð‘¯ð‘´ ð‘¿ð‘Ÿð‘¼ ð‘£ð‘¨ð‘Ÿ ð‘¤ð‘ªð‘œð‘› ð‘¦ð‘¯"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
+msgstr "ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘/ð‘’ð‘° ð‘•ð‘‘ð‘¹ð‘¦ð‘¡"
-#: ../gp11/gp11-misc.c:217
-msgid "The user's password or PIN is not set"
-msgstr "ð‘ž ð‘¿ð‘Ÿð‘¼'ð‘• ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› 𑹠PIN ð‘¦ð‘Ÿ ð‘¯ð‘ªð‘‘ ð‘•ð‘§ð‘‘"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
+msgstr "ð‘§ð‘¯ð‘‘𑼠ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘‘ ð‘©ð‘¯ð‘¤ð‘­ð‘’ ð‘ž ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘/ð‘’ð‘° ð‘•ð‘‘ð‘¹ð‘¦ð‘¡"
-#: ../gp11/gp11-misc.c:219
-msgid "The user is of an invalid type"
-msgstr "ð‘ž ð‘¿ð‘Ÿð‘¼ ð‘¦ð‘Ÿ ð‘ ð‘©ð‘¯ ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘› ð‘‘ð‘²ð‘"
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, c-format
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr "ð‘©ð‘¯ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ ð‘¢ð‘ªð‘¯ð‘‘ð‘• ð‘¨ð‘’ð‘•ð‘§ð‘• ð‘‘ ð‘ž ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘/ð‘’ð‘° ð‘•ð‘‘ð‘¹ð‘¦ð‘¡ '%s', ð‘šð‘³ð‘‘ ð‘¦ð‘‘ ð‘¦ð‘Ÿ ð‘¤ð‘ªð‘’ð‘‘"
-#: ../gp11/gp11-misc.c:221
-msgid "Another user is already logged in"
-msgstr "ð‘©ð‘¯ð‘³ð‘žð‘¼ ð‘¿ð‘Ÿð‘¼ ð‘¦ð‘Ÿ ð‘·ð‘¤ð‘®ð‘§ð‘›ð‘¦ ð‘¤ð‘ªð‘œð‘› ð‘¦ð‘¯"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
+msgstr "ð‘¯ð‘¿ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘®ð‘¦ð‘’ð‘¢ð‘²ð‘¼ð‘›"
-#: ../gp11/gp11-misc.c:223
-msgid "Too many users of different types logged in"
-msgstr "ð‘‘𑵠ð‘¥ð‘§ð‘¯ð‘¦ ð‘¿ð‘Ÿð‘¼ð‘Ÿ ð‘ ð‘›ð‘¦ð‘“ð‘¼ð‘©ð‘¯ð‘‘ ð‘‘ð‘²ð‘ð‘• ð‘¤ð‘ªð‘œð‘› ð‘¦ð‘¯"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
+msgstr "ð‘¯ð‘¿ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘®ð‘¦ð‘’ð‘¢ð‘²ð‘¼ð‘› ð‘“𑹠ð‘•ð‘¦ð‘’ð‘˜ð‘«ð‘¼ ð‘•ð‘‘ð‘¹ð‘¦ð‘¡"
-#: ../gp11/gp11-misc.c:225
-msgid "Cannot import an invalid key"
-msgstr "ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘¦ð‘¥ð‘ð‘¹ð‘‘ ð‘©ð‘¯ ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘› ð‘’ð‘°"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
+#, c-format
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr "ð‘¦ð‘¯ ð‘¹ð‘›ð‘¼ ð‘‘ ð‘ð‘®ð‘°ð‘𑺠'%s' ð‘“𑹠ð‘•ð‘‘ð‘¹ð‘¦ð‘¡ ð‘ ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘𑕠𑹠ð‘’ð‘°ð‘Ÿ, ð‘© ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘¦ð‘Ÿ ð‘®ð‘¦ð‘’ð‘¢ð‘²ð‘¼ð‘›"
-#: ../gp11/gp11-misc.c:227
-msgid "Cannot import a key of the wrong size"
-msgstr "ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘¦ð‘¥ð‘ð‘¹ð‘‘ ð‘© ð‘’ð‘° ð‘ ð‘ž ð‘®ð‘ªð‘™ ð‘•ð‘²ð‘Ÿ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "ð‘—ð‘±ð‘¯ð‘¡ ð‘’ð‘°ð‘®ð‘¦ð‘™ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘›"
-#: ../gp11/gp11-misc.c:229
-msgid "Cannot export because the key is invalid"
-msgstr "ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘§ð‘’ð‘•ð‘ð‘¹ð‘‘ ð‘šð‘¦ð‘’ð‘ªð‘Ÿ ð‘ž ð‘’ð‘° ð‘¦ð‘Ÿ ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘›"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "ð‘¯ð‘¿ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘®ð‘¦ð‘’ð‘¢ð‘²ð‘¼ð‘› ð‘“𑹠ð‘•ð‘¦ð‘’ð‘˜ð‘«ð‘¼ ð‘•ð‘‘ð‘¹ð‘¦ð‘¡"
-#: ../gp11/gp11-misc.c:231
-msgid "Cannot export because the key is of the wrong size"
-msgstr "ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘§ð‘’ð‘•ð‘ð‘¹ð‘‘ ð‘šð‘¦ð‘’ð‘ªð‘Ÿ ð‘ž ð‘’ð‘° ð‘¦ð‘Ÿ ð‘ ð‘ž ð‘®ð‘ªð‘™ ð‘•ð‘²ð‘Ÿ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
+#, c-format
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
+msgstr ""
-#: ../gp11/gp11-misc.c:233
-msgid "Cannot export because the key is of the wrong type"
-msgstr "ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘§ð‘’ð‘•ð‘ð‘¹ð‘‘ ð‘šð‘¦ð‘’ð‘ªð‘Ÿ ð‘ž ð‘’ð‘° ð‘¦ð‘Ÿ ð‘ ð‘ž ð‘®ð‘ªð‘™ ð‘‘ð‘²ð‘"
+#: ../tool/gkr-tool.c:102
+#, c-format
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
-#: ../gp11/gp11-misc.c:235
-msgid "Unable to initialize the random number generator"
-msgstr "ð‘³ð‘¯ð‘±ð‘šð‘©ð‘¤ ð‘‘ ð‘¦ð‘¯ð‘¦ð‘–ð‘©ð‘¤ð‘²ð‘Ÿ ð‘ž ð‘®ð‘¨ð‘¯ð‘›ð‘©ð‘¥ ð‘¯ð‘³ð‘¥ð‘šð‘¼ ð‘¡ð‘§ð‘¯ð‘»ð‘±ð‘‘ð‘»"
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
-#: ../gp11/gp11-misc.c:237
-msgid "No random number generator available"
-msgstr "ð‘¯ð‘´ ð‘®ð‘¨ð‘¯ð‘›ð‘©ð‘¥ ð‘¯ð‘³ð‘¥ð‘šð‘¼ ð‘¡ð‘§ð‘¯ð‘»ð‘±ð‘‘ð‘» ð‘©ð‘ð‘±ð‘¤ð‘©ð‘šð‘©ð‘¤"
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
-#: ../gp11/gp11-misc.c:239
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "ð‘ž ð‘’ð‘®ð‘¦ð‘ð‘‘ð‘´ ð‘¥ð‘§ð‘’ð‘©ð‘¯ð‘¦ð‘Ÿð‘¥ ð‘£ð‘¨ð‘Ÿ ð‘©ð‘¯ ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘› ð‘ð‘¼ð‘¨ð‘¥ð‘©ð‘‘ð‘¼"
+#: ../ui/gku-prompt-tool.c:591
+#, fuzzy
+msgid "Store passwords unencrypted?"
+msgstr "ð‘•ð‘‘𑹠ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘›ð‘Ÿ unencrypted?"
-#: ../gp11/gp11-misc.c:241
-msgid "Not enough space to store the result"
-msgstr "ð‘¯ð‘ªð‘‘ ð‘¦ð‘¯ð‘³ð‘“ ð‘•ð‘ð‘±ð‘• ð‘‘ ð‘•ð‘‘𑹠𑞠ð‘®ð‘¦ð‘Ÿð‘³ð‘¤ð‘‘"
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
+"ð‘šð‘² ð‘—ð‘µð‘Ÿð‘¦ð‘™ ð‘‘ ð‘¿ð‘• ð‘© ð‘šð‘¤ð‘¨ð‘™ð‘’ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘›, ð‘¿ð‘¼ ð‘•ð‘‘ð‘¹ð‘› ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘›ð‘Ÿ ð‘¢ð‘¦ð‘¤ ð‘¯ð‘ªð‘‘ ð‘šð‘° ð‘•ð‘±ð‘“ð‘¤ð‘¦ ð‘¦ð‘¯ð‘’ð‘®ð‘¦ð‘ð‘‘ð‘©ð‘›. ð‘žð‘± "
+"ð‘¢ð‘¦ð‘¤ ð‘šð‘° ð‘¨ð‘’ð‘•ð‘§ð‘•ð‘©ð‘šð‘©ð‘¤ ð‘šð‘² ð‘§ð‘¯ð‘¦ð‘¢ð‘³ð‘¯ ð‘¢ð‘¦ð‘ž ð‘¨ð‘’ð‘•ð‘§ð‘• ð‘‘ ð‘¿ð‘¼ ð‘“ð‘²ð‘¤ð‘Ÿ."
-#: ../gp11/gp11-misc.c:243
-msgid "The saved state is invalid"
-msgstr "ð‘ž ð‘•ð‘±ð‘ð‘› ð‘•ð‘‘ð‘±ð‘‘ ð‘¦ð‘Ÿ ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘›"
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
+msgstr "ð‘¿ð‘Ÿ ð‘©ð‘¯ð‘•ð‘±ð‘“ ð‘•ð‘‘ð‘¹ð‘¦ð‘¡"
-#: ../gp11/gp11-misc.c:245
-msgid "The information is sensitive and cannot be revealed"
-msgstr "ð‘ž ð‘¦ð‘¯ð‘“ð‘¼ð‘¥ð‘±ð‘–ð‘©ð‘¯ ð‘¦ð‘Ÿ ð‘•ð‘§ð‘¯ð‘•ð‘¦ð‘‘ð‘¦ð‘ 𑯠ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘šð‘° ð‘®ð‘¦ð‘ð‘°ð‘¤ð‘›"
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr "ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘›ð‘Ÿ ð‘›ð‘µ ð‘¯ð‘ªð‘‘ ð‘¥ð‘¨ð‘—."
-#: ../gp11/gp11-misc.c:247
-msgid "The state cannot be saved"
-msgstr "ð‘ž ð‘•ð‘‘ð‘±ð‘‘ ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘šð‘° ð‘•ð‘±ð‘ð‘›"
+#: ../ui/gku-prompt-tool.c:649
+msgid "Password cannot be blank"
+msgstr "ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘šð‘° ð‘šð‘¤ð‘¨ð‘™ð‘’"
-#: ../gp11/gp11-misc.c:249
-msgid "The module has not been initialized"
-msgstr "ð‘ž ð‘¥ð‘ªð‘›ð‘¿ð‘¤ ð‘£ð‘¨ð‘Ÿ ð‘¯ð‘ªð‘‘ ð‘šð‘°ð‘¯ ð‘¦ð‘¯ð‘¦ð‘–ð‘©ð‘¤ð‘²ð‘Ÿð‘›"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
-#: ../gp11/gp11-misc.c:251
-msgid "The module has already been initialized"
-msgstr "ð‘ž ð‘¥ð‘ªð‘›ð‘¿ð‘¤ ð‘£ð‘¨ð‘Ÿ ð‘·ð‘¤ð‘®ð‘§ð‘›ð‘¦ ð‘šð‘°ð‘¯ ð‘¦ð‘¯ð‘¦ð‘–ð‘©ð‘¤ð‘²ð‘Ÿð‘›"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
-#: ../gp11/gp11-misc.c:253
-msgid "Cannot lock data"
-msgstr "ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘¤ð‘ªð‘’ ð‘›ð‘±ð‘‘ð‘©"
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
+msgstr "ð‘¯ð‘¿ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘•ð‘‘ð‘®ð‘§ð‘™ð‘”"
-#: ../gp11/gp11-misc.c:255
-msgid "The data cannot be locked"
-msgstr "ð‘ž ð‘›ð‘±ð‘‘ð‘© ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘šð‘° ð‘¤ð‘ªð‘’ð‘‘"
+#: ../ui/gku-prompt.ui.h:2
+#, fuzzy
+msgid "_Application:"
+msgstr "_Application:"
-#: ../gp11/gp11-misc.c:257
-msgid "The signature request was rejected by the user"
-msgstr "ð‘ž ð‘•ð‘¦ð‘œð‘¯ð‘©ð‘—𑼠ð‘®ð‘¦ð‘’ð‘¢ð‘§ð‘•ð‘‘ ð‘¢ð‘ªð‘Ÿ ð‘®ð‘¦ð‘¡ð‘§ð‘’ð‘‘ð‘§ð‘› ð‘šð‘² ð‘ž ð‘¿ð‘Ÿð‘¼"
+#: ../ui/gku-prompt.ui.h:3
+#, fuzzy
+msgid "_Confirm:"
+msgstr "_Confirm:"
-#: ../gp11/gp11-misc.c:261
-msgid "Unknown error"
-msgstr "ð‘³ð‘¯ð‘´ð‘¯ ð‘»ð‘¼"
+#: ../ui/gku-prompt.ui.h:4
+#, fuzzy
+msgid "_Details:"
+msgstr "_Details:"
-#: ../pkcs11/gck/gck-certificate.c:740
-msgid "Unnamed Certificate"
-msgstr "ð‘©ð‘¯ð‘¯ð‘±ð‘¥ð‘› ð‘•ð‘©ð‘‘ð‘¦ð‘“ð‘¦ð‘’ð‘©ð‘‘"
+#: ../ui/gku-prompt.ui.h:5
+#, fuzzy
+msgid "_Name:"
+msgstr "_Name:"
+#: ../ui/gku-prompt.ui.h:6
#, fuzzy
-#: ../pkcs11/ssh-store/gck-ssh-private-key.c:339
-msgid "Couldn't parse public SSH key"
-msgstr "ð‘’ð‘«ð‘›ð‘¯ð‘‘ ð‘ð‘¸ð‘• ð‘ð‘³ð‘šð‘¤ð‘¦ð‘’ SSH ð‘’ð‘°"
+msgid "_Old Password:"
+msgstr "_Old ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘›:"
+
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "_ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘›:"
diff --git a/po/en_CA.po b/po/en_CA.po
index dd709ba5..6b601471 100644
--- a/po/en_CA.po
+++ b/po/en_CA.po
@@ -8,394 +8,520 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring 0.1.90\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-08-15 15:20-0400\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2005-01-14 23:42-0500\n"
"Last-Translator: Adam Weinberger <adamw@gnome.org>\n"
"Language-Team: Canadian English <adamw@gnome.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../common/gkr-location.c:290
-#, c-format
-msgid "Removable Disk: %s"
-msgstr "Removable Disk: %s"
-
-#: ../common/gkr-location.c:292
-msgid "Removable Disk"
-msgstr "Removable Disk"
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
+msgstr ""
-#: ../common/gkr-location.c:436
-msgid "Home"
-msgstr "Home"
+#: ../daemon/dbus/gkd-secret-change.c:86
+msgid "Change Keyring Password"
+msgstr "Change Keyring Password"
-#. TRANSLATORS: this is the title for an item
-#: ../daemon/gkr-daemon-ops.c:83
-#, c-format
-msgid "Unlock password for %s keyring"
-msgstr "Unlock password for %s keyring"
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "Choose a new password for the '%s' keyring. "
-#: ../daemon/gkr-daemon-ops.c:309
-#, c-format
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in the default keyring."
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
msgstr ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in the default keyring."
+"An unknown application wants to change the password for the '%s' keyring. "
+"You have to choose the password you want to use for it."
-#: ../daemon/gkr-daemon-ops.c:312
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in %s."
+#: ../daemon/dbus/gkd-secret-change.c:111
+msgid "The original password was incorrect"
msgstr ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in %s."
-#: ../daemon/gkr-daemon-ops.c:317 ../daemon/gkr-daemon-ops.c:325
-#, c-format
+#: ../daemon/dbus/gkd-secret-create.c:83
+msgid "New Keyring Password"
+msgstr "New Keyring Password"
+
+#: ../daemon/dbus/gkd-secret-create.c:84
+msgid "Choose password for new keyring"
+msgstr "Choose password for new keyring"
+
+#: ../daemon/dbus/gkd-secret-create.c:86
+#, fuzzy, c-format
msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in the default keyring."
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in the default keyring."
+"An unknown application wants to create a new keyring called '%s'. You have "
+"to choose the password you want to use for it."
-#: ../daemon/gkr-daemon-ops.c:320 ../daemon/gkr-daemon-ops.c:328
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in %s."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+msgid "Certificate and Key Storage"
msgstr ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in %s."
-#: ../daemon/gkr-daemon-ops.c:333
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in the default keyring."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+msgid "GNOME Keyring: PKCS#11 Component"
msgstr ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in the default keyring."
-#: ../daemon/gkr-daemon-ops.c:335
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in %s."
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+msgid "GNOME Keyring: Secret Service"
msgstr ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in %s."
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:341
-msgid "Allow access"
-msgstr "Allow access"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:341
-msgid "Allow application access to keyring?"
-msgstr "Allow application access to keyring?"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+msgid "GNOME Keyring: SSH Agent"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:439
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
msgstr ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
-#: ../daemon/gkr-daemon-ops.c:443
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the keyring '%s', but it is locked"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+msgid "GNOME Keyring: GPG Agent"
msgstr ""
-"The application '%s' (%s) wants access to the keyring '%s', but it is locked"
-#: ../daemon/gkr-daemon-ops.c:449 ../daemon/gkr-daemon-ops.c:459
-#, c-format
-msgid ""
-"The application '%s' wants access to the default keyring, but it is locked"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+#, fuzzy
+msgid "GPG Password Agent"
+msgstr "New password strength"
+
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+msgid "Unknown"
msgstr ""
-"The application '%s' wants access to the default keyring, but it is locked"
-#: ../daemon/gkr-daemon-ops.c:453 ../daemon/gkr-daemon-ops.c:464
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
+msgid "PGP Key: %s"
msgstr ""
-"The application '%s' wants access to the keyring '%s', but it is locked"
-#: ../daemon/gkr-daemon-ops.c:470
-#, c-format
-msgid ""
-"An unknown application wants access to the default keyring, but it is locked"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-"An unknown application wants access to the default keyring, but it is locked"
-#: ../daemon/gkr-daemon-ops.c:474
-#, c-format
-msgid ""
-"An unknown application wants access to the keyring '%s', but it is locked"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
msgstr ""
-"An unknown application wants access to the keyring '%s', but it is locked"
-#: ../daemon/gkr-daemon-ops.c:481
-msgid "Enter password for default keyring to unlock"
-msgstr "Enter password for default keyring to unlock"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:483
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "Enter password for keyring '%s' to unlock"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
+msgstr ""
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:487
-msgid "Unlock Keyring"
-msgstr "Unlock Keyring"
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:499
-msgid "Automatically unlock this keyring when I log in."
-msgstr "Automatically unlock this keyring when I log in."
+#: ../egg/egg-oid.c:41
+msgid "Domain Component"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:535
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:43
+msgid "User ID"
msgstr ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
-#: ../daemon/gkr-daemon-ops.c:539
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:46
+msgid "Email Address"
msgstr ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-#: ../daemon/gkr-daemon-ops.c:545 ../daemon/gkr-daemon-ops.c:555
-#, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:54
+msgid "Date of Birth"
msgstr ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
-#: ../daemon/gkr-daemon-ops.c:549 ../daemon/gkr-daemon-ops.c:559
-#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:56
+msgid "Place of Birth"
+msgstr ""
+
+#: ../egg/egg-oid.c:58
+msgid "Gender"
+msgstr ""
+
+#: ../egg/egg-oid.c:60
+msgid "Country of Citizenship"
+msgstr ""
+
+#: ../egg/egg-oid.c:62
+msgid "Country of Residence"
+msgstr ""
+
+#: ../egg/egg-oid.c:65
+msgid "Common Name"
+msgstr ""
+
+#: ../egg/egg-oid.c:67
+msgid "Surname"
+msgstr ""
+
+#: ../egg/egg-oid.c:69
+msgid "Serial Number"
+msgstr ""
+
+#: ../egg/egg-oid.c:71
+msgid "Country"
+msgstr ""
+
+#: ../egg/egg-oid.c:73
+msgid "Locality"
+msgstr ""
+
+#: ../egg/egg-oid.c:75
+msgid "State"
+msgstr ""
+
+#: ../egg/egg-oid.c:77
+msgid "Street"
+msgstr ""
+
+#: ../egg/egg-oid.c:79
+msgid "Organization"
+msgstr ""
+
+#: ../egg/egg-oid.c:81
+msgid "Organizational Unit"
+msgstr ""
+
+#: ../egg/egg-oid.c:83
+msgid "Title"
+msgstr ""
+
+#: ../egg/egg-oid.c:85
+msgid "Telephone Number"
+msgstr ""
+
+#: ../egg/egg-oid.c:87
+msgid "Given Name"
+msgstr ""
+
+#: ../egg/egg-oid.c:89
+msgid "Initials"
+msgstr ""
+
+#: ../egg/egg-oid.c:91
+msgid "Generation Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:93
+msgid "DN Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:95
+msgid "Pseudonym"
+msgstr ""
+
+#: ../egg/egg-oid.c:98
+msgid "RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:99
+msgid "MD2 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:100
+msgid "MD5 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:101
+msgid "SHA1 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:103
+msgid "DSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:104
+msgid "SHA1 with DSA"
+msgstr ""
+
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
+
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
+
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
msgstr ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-#: ../daemon/gkr-daemon-ops.c:565
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
+msgid "Unexpected error in select() reading data from a child process (%s)"
msgstr ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
-#: ../daemon/gkr-daemon-ops.c:569
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+msgid "Unexpected error in waitpid() (%s)"
msgstr ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:575
-msgid "New Keyring Password"
-msgstr "New Keyring Password"
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:576
-msgid "Choose password for new keyring"
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
+msgstr ""
+
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, fuzzy, c-format
+msgid "Unlock password for: %s"
+msgstr "Unlock password for %s keyring"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+#, fuzzy
+msgid "The unlock password was incorrect"
+msgstr "Unlock password for %s keyring"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+#, fuzzy
+msgid "Unlock Login Keyring"
+msgstr "Unlock Keyring"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
msgstr "Choose password for new keyring"
-#: ../daemon/gkr-daemon-ops.c:623
-#, c-format
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
msgstr ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
-#: ../daemon/gkr-daemon-ops.c:627
-#, c-format
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
+"The login keyring did not get unlocked when you logged into your computer."
msgstr ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
-#: ../daemon/gkr-daemon-ops.c:633 ../daemon/gkr-daemon-ops.c:643
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "Unlock Keyring"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
#, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "Enter password for keyring '%s' to unlock"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, fuzzy, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
msgstr ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
+"An unknown application wants access to the keyring '%s', but it is locked"
-#: ../daemon/gkr-daemon-ops.c:637 ../daemon/gkr-daemon-ops.c:647
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
msgstr ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
-#: ../daemon/gkr-daemon-ops.c:653
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+#, fuzzy
+msgid "Unlock certificate"
+msgstr "Unlock Keyring"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
msgstr ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
-#: ../daemon/gkr-daemon-ops.c:657
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+#, fuzzy
+msgid "Unlock"
+msgstr "Unlock Keyring"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+#, fuzzy
+msgid "Enter password to unlock the private key"
+msgstr "Enter password for default keyring to unlock"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
msgstr ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
-#: ../daemon/gkr-daemon-ops.c:667
-#, c-format
-msgid "Choose a new password for the '%s' keyring. "
-msgstr "Choose a new password for the '%s' keyring. "
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+#, fuzzy
+msgid "Enter password to unlock the public key"
+msgstr "Enter password for default keyring to unlock"
-#: ../daemon/gkr-daemon-ops.c:669
-#, c-format
-msgid "Choose a new password for the default keyring. "
-msgstr "Choose a new password for the default keyring. "
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+#, fuzzy
+msgid "Enter password to unlock"
+msgstr "Enter password for keyring '%s' to unlock"
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:673
-msgid "Change Keyring Password"
-msgstr "Change Keyring Password"
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
+#, fuzzy, c-format
+msgid "An application wants access to the private key '%s', but it is locked"
+msgstr ""
+"An unknown application wants access to the keyring '%s', but it is locked"
-#: ../daemon/gkr-daemon-ops.c:740
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
+#, fuzzy, c-format
+msgid "An application wants access to the certificate '%s', but it is locked"
msgstr ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+"An unknown application wants access to the keyring '%s', but it is locked"
-#: ../daemon/gkr-daemon-ops.c:744 ../daemon/gkr-daemon-ops.c:748
-#, c-format
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
+#, fuzzy, c-format
+msgid "An application wants access to the public key '%s', but it is locked"
+msgstr ""
+"An unknown application wants access to the keyring '%s', but it is locked"
+
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
+#, fuzzy, c-format
+msgid "An application wants access to '%s', but it is locked"
+msgstr ""
+"An unknown application wants access to the keyring '%s', but it is locked"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
+msgstr ""
+
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, fuzzy, c-format
msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
msgstr ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+"An unknown application wants access to the keyring '%s', but it is locked"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+#, fuzzy
+msgid "New Password Required"
+msgstr "New password strength"
-#: ../daemon/gkr-daemon-ops.c:752
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
#, c-format
msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
msgstr ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:757
-msgid "Create Default Keyring"
-msgstr "Create Default Keyring"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "Change Keyring Password"
-#: ../daemon/gkr-daemon-ops.c:757
-msgid "Choose password for default keyring"
-msgstr "Choose password for default keyring"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "Choose password for new keyring"
-#: ../library/gnome-keyring-utils.c:109
-msgid "Access Denied"
-msgstr "Access Denied"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
+#, c-format
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:111
-msgid "The gnome-keyring-daemon application is not running."
-msgstr "The gnome-keyring-daemon application is not running."
+#: ../tool/gkr-tool.c:102
+#, c-format
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:113 ../library/gnome-keyring-utils.c:126
-msgid "The keyring has already been unlocked."
-msgstr "The keyring has already been unlocked."
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
-#: ../library/gnome-keyring-utils.c:115
-msgid "Error communicating with gnome-keyring-daemon"
-msgstr "Error communicating with gnome-keyring-daemon"
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
-#: ../library/gnome-keyring-utils.c:117
-msgid "A keyring with that name already exists"
-msgstr "A keyring with that name already exists"
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:119
-msgid "Programmer error: The application sent invalid data."
-msgstr "Programming error: The application sent invalid data."
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
-#: ../ui/gkr-ask-tool.c:314
-msgid "_Location:"
-msgstr "_Location:"
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
+msgstr ""
-#: ../ui/gkr-ask-tool.c:327
-msgid "_Old password:"
-msgstr "_Old password:"
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr "Passwords do not match."
-#: ../ui/gkr-ask-tool.c:347
-msgid "_Password:"
-msgstr "_Password:"
+#: ../ui/gku-prompt-tool.c:649
+#, fuzzy
+msgid "Password cannot be blank"
+msgstr "Password cannot be blank."
-#: ../ui/gkr-ask-tool.c:369
-msgid "_Confirm password:"
-msgstr "_Confirm password:"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
+
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
-#: ../ui/gkr-ask-tool.c:388
+#: ../ui/gku-prompt.ui.h:1
msgid "New password strength"
msgstr "New password strength"
-#: ../ui/gkr-ask-tool.c:444
-msgid "Old password cannot be blank."
-msgstr "Old password cannot be blank."
+#: ../ui/gku-prompt.ui.h:2
+#, fuzzy
+msgid "_Application:"
+msgstr "_Location:"
-#: ../ui/gkr-ask-tool.c:456
-msgid "Password cannot be blank."
-msgstr "Password cannot be blank."
+#: ../ui/gku-prompt.ui.h:3
+#, fuzzy
+msgid "_Confirm:"
+msgstr "_Confirm password:"
-#: ../ui/gkr-ask-tool.c:465
-msgid "Passwords do not match."
-msgstr "Passwords do not match."
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
-#: ../ui/gkr-ask-tool.c:514
-msgid "Deny"
-msgstr "Deny"
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr ""
-#: ../ui/gkr-ask-tool.c:526
-msgid "Allow _Once"
-msgstr "Allow _Once"
+#: ../ui/gku-prompt.ui.h:6
+#, fuzzy
+msgid "_Old Password:"
+msgstr "_Old password:"
-#: ../ui/gkr-ask-tool.c:530
-msgid "_Always Allow"
-msgstr "_Always Allow"
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "_Password:"
diff --git a/po/en_GB.po b/po/en_GB.po
index 9c6086d8..3e24f40a 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-19 13:18+0100\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-19 13:19+0100\n"
"Last-Translator: Bruce Cowan <bruce@bcowan.me.uk>\n"
"Language-Team: British English <en@li.org>\n"
@@ -23,7 +23,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Unnamed"
@@ -99,35 +99,34 @@ msgstr "GNOME Keyring: GPG Agent"
msgid "GPG Password Agent"
msgstr "GPG Password Agent"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Unknown"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP Key: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Enter Passphrase"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Forget this password if idle for"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Forget this password after"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Forget this password when I log out"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Login"
@@ -171,7 +170,7 @@ msgstr "Common Name"
msgid "Surname"
msgstr "Surname"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Serial Number"
@@ -227,7 +226,7 @@ msgstr "DN Qualifier"
msgid "Pseudonym"
msgstr "Pseudonym"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -243,7 +242,7 @@ msgstr "MD5 with RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 with RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -282,589 +281,6 @@ msgstr "Unexpected error in select() reading data from a child process (%s)"
msgid "Unexpected error in waitpid() (%s)"
msgstr "Unexpected error in waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Error loading PKCS#11 module: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Invalid PKCS#11 module: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Couldn't setup PKCS#11 module: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "Couldn't initialise PKCS#11 module: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "Couldn't initialise registered PKCS#11 modules: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Name"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Issued By"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "Expires"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "Certificate"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_Replace"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "The operation was cancelled."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Export certificate"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Certificate files"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "PEM files"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Other Name"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "XMPP Addr"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "E-mail"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "X400 Address"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Directory Name"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "EDI Party Name"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "IP Address"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "Registered ID"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Basic Constraints"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "Certificate Authority"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Yes"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "No"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Max Path Length"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Unlimited"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Extended Key Usage"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Allowed Purposes"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Subject Key Identifier"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Key Identifier"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Digital signature"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Key encypherment"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Data encypherment"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Key agreement"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Certificate signature"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Revocation list signature"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Key Usage"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Usages"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Subject Alternative Names"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Extension"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Identifier"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Value"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Critical"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Couldn't export the certificate."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "Identity"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Verified by"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "Expires"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Subject Name"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Issuer Name"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Issued Certificate"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Version"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Not Valid Before"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Not Valid After"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Certificate Fingerprints"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Signature"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Signature Algorithm"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Signature Parameters"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Public Key Info"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Key Algorithm"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Key Parameters"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Key Size"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "Key SHA1 Fingerprint"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "Public Key"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_Details"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "Could not display '%s'"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "Could not display file"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Reason"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Cannot display a file of this type."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Import Certificates and Keys"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Import Into:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Password:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "PGP Key"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "Key ID"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Gnupg process exited with code: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Gnupg process was terminated with signal: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919 ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "The operation was cancelled"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Enter password to unlock the private key"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Enter password to unlock the certificate"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Enter password to unlock"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "In order to import the private key, it must be unlocked"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "In order to import the certificate, it must be unlocked"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "In order to import the data, it must be unlocked"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "In order to import the private key '%s', it must be unlocked"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "In order to import the certificate '%s', it must be unlocked"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "In order to import '%s', it must be unlocked"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "No location available to import to"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Import Certificates/Keys"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Choose a location to store the imported certificates/keys."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Key"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Private RSA Key"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Private DSA Key"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "Private Key"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Public DSA Key"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-msgstr[1] "%d bits"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Strength"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algorithm"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Size"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Fingerprints"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "Unrecognised or unsupported data."
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "Could not parse invalid or corrupted data."
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "The data is locked"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Couldn't find a place to store the pinned certificate"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Automatically unlock this keyring whenever I'm logged in"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Lock this keyring after"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Lock this keyring if idle for"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Lock this keyring when I log out"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minutes"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "Unlock: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Unlock"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "The password was incorrect"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Password"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "GCR Certificate and Key Viewer"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Show the application's version"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[file…]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- View certificate and key files"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "Certificate Viewer"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "The URI has invalid encoding."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "The URI does not have the 'pkcs11' scheme."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "The URI has bad syntax."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "The URI has a bad version number."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Unnamed Certificate"
@@ -874,7 +290,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Couldn't parse public SSH key"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Unlock password for: %s"
@@ -932,10 +348,26 @@ msgstr "Unlock certificate"
msgid "Unlock public key"
msgstr "Unlock public key"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Unlock"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Enter password to unlock the private key"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Enter password to unlock the certificate"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Enter password to unlock the public key"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Enter password to unlock"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1024,11 +456,11 @@ msgstr "commands: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Store passwords unencrypted?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1038,15 +470,15 @@ msgstr ""
"safely encrypted. They will be accessible by anyone with access to your "
"files."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Use Unsafe Storage"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Passwords do not match."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Password cannot be blank"
@@ -1085,784 +517,3 @@ msgstr "_Old Password:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Password:"
-
-#~ msgid "Fingerprint"
-#~ msgstr "Fingerprint"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "Insufficient memory available"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "The specified slot ID is not valid"
-
-#~ msgid "Internal error"
-#~ msgstr "Internal error"
-
-#~ msgid "The operation failed"
-#~ msgstr "The operation failed"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "Invalid arguments"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "The module cannot create needed threads"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "The module cannot lock data properly"
-
-#~ msgid "The field is read-only"
-#~ msgstr "The field is read-only"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "The field is sensitive and cannot be revealed"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "The field is invalid or does not exist"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "Invalid value for field"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "The data is not valid or unrecognised"
-
-#~ msgid "The data is too long"
-#~ msgstr "The data is too long"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "An error occurred on the device"
-
-#~ msgid "Insufficient memory available on the device"
-#~ msgstr "Insufficient memory available on the device"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "The device was removed or unplugged"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "The encrypted data is not valid or unrecognised"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "The encrypted data is too long"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "This operation is not supported"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "The key is missing or invalid"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "The key is the wrong size"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "The key is of the wrong type"
-
-#~ msgid "No key is needed"
-#~ msgstr "No key is needed"
-
-#~ msgid "The key is different than before"
-#~ msgstr "The key is different than before"
-
-#~ msgid "A key is needed"
-#~ msgstr "A key is needed"
-
-#~ msgid "Cannot include the key in the digest"
-#~ msgstr "Cannot include the key in the digest"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "This operation cannot be done with this key"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "The key cannot be wrapped"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "Cannot export this key"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "The crypto mechanism is invalid or unrecognised"
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "The crypto mechanism has an invalid argument"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "The object is missing or invalid"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "Another operation is already taking place"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "No operation is taking place"
-
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "The password or PIN is incorrect"
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "The password or PIN is invalid"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "The password or PIN is of an invalid length"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "The password or PIN has expired"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "The password or PIN is locked"
-
-#~ msgid "The session is closed"
-#~ msgstr "The session is closed"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "Too many sessions are active"
-
-#~ msgid "The session is invalid"
-#~ msgstr "The session is invalid"
-
-#~ msgid "The session is read-only"
-#~ msgstr "The session is read-only"
-
-#~ msgid "An open session exists"
-#~ msgstr "An open session exists"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "A read-only session exists"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "An administrator session exists"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "The signature is bad or corrupted"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "The signature is unrecognised or corrupted"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "Certain required fields are missing"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "Certain fields have invalid values"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "The device is not present or unplugged"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "The device is invalid or unrecognisable"
-
-#~ msgid "The device is write protected"
-#~ msgstr "The device is write-protected"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "Cannot import because the key is invalid"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "Cannot import because the key is of the wrong size"
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "Cannot import because the key is of the wrong type"
-
-#~ msgid "You are already logged in"
-#~ msgstr "You are already logged in"
-
-#~ msgid "No user has logged in"
-#~ msgstr "No user has logged in"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "The user's password or PIN is not set"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "The user is of an invalid type"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "Another user is already logged in"
-
-#~ msgid "Too many users of different types are logged in"
-#~ msgstr "Too many users of different types are logged in"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "Cannot import an invalid key"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "Cannot import a key of the wrong size"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "Cannot export because the key is invalid"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "Cannot export because the key is of the wrong size"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "Cannot export because the key is of the wrong type"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "Unable to initialise the random number generator"
-
-#~ msgid "No random number generator available"
-#~ msgstr "No random number generator available"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "The crypto mechanism has an invalid parameter"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "Not enough space to store the result"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "The saved state is invalid"
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "The information is sensitive and cannot be revealed"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "The state cannot be saved"
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "The module has not been initialised"
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "The module has already been initialised"
-
-#~ msgid "Cannot lock data"
-#~ msgstr "Cannot lock data"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "The data cannot be locked"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "The signature request was rejected by the user"
-
-#~ msgid "Unknown error"
-#~ msgstr "Unknown error"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>Not Part of Certificate</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>unknown</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<Not Part of Certificate>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>Fingerprints</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Issued By</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Issued To</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>This certificate has been verified for the following uses:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>Validity</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "Common Name (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "E-mail Recipient Certificate"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "E-mail Signer Certificate"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "MD5 Fingerprint"
-
-#~ msgid "Organization (O)"
-#~ msgstr "Organisation (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "Organisational Unit (OU)"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr ""
-#~ "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (i.e.: when the user logs "
-#~ "in). This setting may be overridden when certain command line arguments "
-#~ "are passed to the daemon."
-
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "Whether the gnome-keyring PKCS#11 component is enabled."
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "Whether the gnome-keyring SSH agent is enabled."
-
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr "Whether the gnome-keyring secret service is enabled."
-
-#~ msgid "Automatically unlock secure storage when I log in."
-#~ msgstr "Automatically unlock secure storage when I log in."
-
-#~ msgid ""
-#~ "<span size=\"large\" weight=\"bold\">Enter password for keyring 'login' "
-#~ "to unlock</span>\n"
-#~ "\n"
-#~ "An application wants access to the keyring 'xxx', but it is locked."
-#~ msgstr ""
-#~ "<span size=\"large\" weight=\"bold\">Enter password for keyring 'login' "
-#~ "to unlock</span>\n"
-#~ "\n"
-#~ "An application wants access to the keyring 'xxx', but it is locked."
-
-#~ msgid "Prompt me for each application that accesses this keyring."
-#~ msgstr "Prompt me for each application that accesses this keyring."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-
-#~ msgid "Allow access"
-#~ msgstr "Allow access"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-#~ msgstr ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-#~ msgstr ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-
-#~ msgid "Enter password for default keyring to unlock"
-#~ msgstr "Enter password for default keyring to unlock"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-
-#~ msgid ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-
-#~ msgid ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-
-#~ msgid "Choose a new password for the default keyring."
-#~ msgstr "Choose a new password for the default keyring."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-#~ msgstr ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-
-#~ msgid ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-
-#~ msgid ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-
-#~ msgid "Create Default Keyring"
-#~ msgstr "Create Default Keyring"
-
-#~ msgid "Choose password for default keyring"
-#~ msgstr "Choose password for default keyring"
-
-#~ msgid "Create Login Keyring"
-#~ msgstr "Create Login Keyring"
-
-#~ msgid "Enter your login password"
-#~ msgstr "Enter your login password"
-
-#~ msgid ""
-#~ "Your login keyring was not automatically created when you logged into "
-#~ "this computer. It will now be created."
-#~ msgstr ""
-#~ "Your login keyring was not automatically created when you logged into "
-#~ "this computer. It will now be created."
-
-#~ msgid "Unlock password for %s keyring"
-#~ msgstr "Unlock password for %s keyring"
-
-#~ msgid "Automatically unlock this private key when I log in."
-#~ msgstr "Automatically unlock this private key when I log in."
-
-#~ msgid "Automatically unlock this certificate when I log in."
-#~ msgstr "Automatically unlock this certificate when I log in."
-
-#~ msgid "Automatically unlock this public key when I log in."
-#~ msgstr "Automatically unlock this public key when I log in."
-
-#~ msgid "Automatically unlock this when I log in"
-#~ msgstr "Automatically unlock this when I log in"
-
-#~ msgid ""
-#~ "<b><big>Could not grab your mouse.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>Could not grab your mouse.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session, or you may have "
-#~ "just clicked a menu, or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-
-#~ msgid ""
-#~ "<b><big>Could not grab your keyboard.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>Could not grab your keyboard.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session, or you may have "
-#~ "just clicked a menu, or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-
-#~ msgid "_Deny"
-#~ msgstr "_Deny"
-
-#~ msgid "C_reate"
-#~ msgstr "C_reate"
-
-#~ msgid "C_hange"
-#~ msgstr "C_hange"
-
-#~ msgid "Allow _Once"
-#~ msgstr "Allow _Once"
-
-#~ msgid "_Always Allow"
-#~ msgstr "_Always Allow"
-
-#~ msgid "Removable Disk: %s"
-#~ msgstr "Removable Disk: %s"
-
-#~ msgid "Removable Disk"
-#~ msgstr "Removable Disk"
-
-#~ msgid "Home"
-#~ msgstr "Home"
-
-#~ msgid "The disk or drive this file is located on is not present"
-#~ msgstr "The disk or drive this file is located on is not present"
-
-#~ msgid "Couldn't create directory: %s"
-#~ msgstr "Couldn't create directory: %s"
-
-#~ msgid "Access Denied"
-#~ msgstr "Access Denied"
-
-#~ msgid "The gnome-keyring-daemon application is not running."
-#~ msgstr "The gnome-keyring-daemon application is not running."
-
-#~ msgid "Error communicating with gnome-keyring-daemon"
-#~ msgstr "Error communicating with gnome-keyring-daemon"
-
-#~ msgid "A keyring with that name already exists"
-#~ msgstr "A keyring with that name already exists"
-
-#~ msgid "Programmer error: The application sent invalid data."
-#~ msgstr "Programmer error: The application sent invalid data."
-
-#~ msgid "No matching results"
-#~ msgstr "No matching results"
-
-#~ msgid "A keyring with that name does not exist."
-#~ msgstr "A keyring with that name does not exist."
-
-#~ msgid "The keyring has already been unlocked."
-#~ msgstr "The keyring has already been unlocked."
-
-#~ msgid ""
-#~ "A list of paths to PKCS#11 modules to load. No modules are currently "
-#~ "listed by default, as this is still an experimental feature. This is used "
-#~ "by seahorse and other PKCS#11 aware applications."
-#~ msgstr ""
-#~ "A list of paths to PKCS#11 modules to load. No modules are currently "
-#~ "listed by default, as this is still an experimental feature. This is used "
-#~ "by seahorse and other PKCS#11 aware applications."
-
-#~ msgid "Import private key"
-#~ msgstr "Import private key"
-
-#~ msgid "Import public key"
-#~ msgstr "Import public key"
-
-#~ msgid "The system wants to import the public key '%s', but it is locked"
-#~ msgstr "The system wants to import the public key '%s', but it is locked"
-
-#~ msgid "Create Storage for Key Information"
-#~ msgstr "Create Storage for Key Information"
-
-#~ msgid "Choose password to protect storage"
-#~ msgstr "Choose password to protect storage"
-
-#~ msgid ""
-#~ "The system wants to store information about your keys and certificates. "
-#~ "In order to protect this information, choose a password with which it "
-#~ "will be locked."
-#~ msgstr ""
-#~ "The system wants to store information about your keys and certificates. "
-#~ "In order to protect this information, choose a password with which it "
-#~ "will be locked."
-
-#~ msgid "Unlock Storage for Key Information"
-#~ msgstr "Unlock Storage for Key Information"
-
-#~ msgid "Enter password to unlock storage"
-#~ msgstr "Enter password to unlock storage"
-
-#~ msgid ""
-#~ "The system wants to access information about your keys and certificates, "
-#~ "but it is locked."
-#~ msgstr ""
-#~ "The system wants to access information about your keys and certificates, "
-#~ "but it is locked."
-
-#~ msgid "Trust Association"
-#~ msgstr "Trust Association"
-
-#~ msgid "Cannot delete '%s' because it is tied to other objects."
-#~ msgstr "Cannot delete '%s' because it is tied to other objects."
-
-#~ msgid "Lock private key"
-#~ msgstr "Lock private key"
-
-#~ msgid "Lock"
-#~ msgstr "Lock"
-
-#~ msgid "Enter password to protect the private key"
-#~ msgstr "Enter password to protect the private key"
-
-#~ msgid ""
-#~ "The system wants to store the private key '%s' on your disk. Please enter "
-#~ "a password to lock it with."
-#~ msgstr ""
-#~ "The system wants to store the private key '%s' on your disk. Please enter "
-#~ "a password with which to lock it."
-
-#~ msgid ""
-#~ "The system wants to store '%s' on your disk. Please enter a password to "
-#~ "lock it with."
-#~ msgstr ""
-#~ "The system wants to store '%s' on your disk. Please enter a password with "
-#~ "which to lock it."
-
-#~ msgid "Couldn't read secure shell private key: %s"
-#~ msgstr "Couldn't read secure shell private key: %s"
-
-#~ msgid "Invalid secure shell private key at: %s"
-#~ msgstr "Invalid secure shell private key at: %s"
-
-#~ msgid "Couldn't encrypt the SSH key to store it."
-#~ msgstr "Couldn't encrypt the SSH key to store it."
-
-#~ msgid "Couldn't encode the SSH key to store it."
-#~ msgstr "Couldn't encode the SSH key to store it."
-
-#~ msgid "Old password cannot be blank."
-#~ msgstr "Old password cannot be blank."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "The application '%s' (%s) wants access to an unknown keyring, but it is "
-#~ "locked"
-
-#~ msgid ""
-#~ "The application '%s' wants access to an unknown keyring, but it is locked"
-#~ msgstr ""
-#~ "The application '%s' wants access to an unknown keyring, but it is locked"
-
-#~ msgid ""
-#~ "An unknown application wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "An unknown application wants access to an unknown keyring, but it is "
-#~ "locked"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr ""
-#~ "The application '%s' (%s) wants to access the password for '%s' in an "
-#~ "unknown keyring."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '%s' in an unknown "
-#~ "keyring."
-#~ msgstr ""
-#~ "The application '%s' wants to access the password for '%s' in an unknown "
-#~ "keyring."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr ""
-#~ "An unknown application wants to access the password for '%s' in an "
-#~ "unknown keyring."
-
-#~ msgid "You must specify the type of request to run\n"
-#~ msgstr "You must specify the type of request to run\n"
-
-#~ msgid "Unknown request type\n"
-#~ msgstr "Unknown request type\n"
diff --git a/po/eo.po b/po/eo.po
index 6245c4d5..ff29ed43 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7,9 +7,8 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-04-09 06:52+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-04-09 19:30+0200\n"
"Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
"Language-Team: Esperanto <ubuntu-l10n-eo@lists.launchpad.net>\n"
@@ -24,7 +23,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Sennome"
@@ -96,35 +95,34 @@ msgstr ""
msgid "GPG Password Agent"
msgstr ""
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:305
-#: ../gcr/gcr-key-renderer.c:310
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Nekonate"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP-Ålosilo: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Enigi pasfrazon"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Forgesi ĉi tiun pasvorton se senokupite post"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Forgesi ĉi tiun pasvorton post"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Forgesi ĉi tiun pasvorton kiam mi elsalutas"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Ensaluti"
@@ -168,7 +166,7 @@ msgstr "Komuna nomo"
msgid "Surname"
msgstr "Familinomo"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:398
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Seria numero"
@@ -224,635 +222,60 @@ msgstr ""
msgid "Pseudonym"
msgstr "PseÅ­donimo"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:301
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "MD2 kun RSA"
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "MD5 kun RSA"
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "SHA1 kun RSA"
-#: ../egg/egg-oid.c:107 ../gcr/gcr-key-renderer.c:303
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "SHA1 kun DSA"
-#: ../egg/egg-spawn.c:273
-#, c-format
-msgid "Unexpected error in select() reading data from a child process (%s)"
-msgstr "Neatendita eraro en select() dum datumlegado de procezido (%s)"
-
-#: ../egg/egg-spawn.c:320
-#, c-format
-msgid "Unexpected error in waitpid() (%s)"
-msgstr "Neatendita eraro en waitpid() (%s)"
-
-#: ../gcr/gcr-certificate-renderer.c:96 ../gcr/gcr-parser.c:275
-msgid "Certificate"
-msgstr "Atestilo"
-
-#: ../gcr/gcr-certificate-renderer.c:121
-msgid "Extension"
-msgstr "Etendaĵo"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "Identifier"
-msgstr "Identigilo"
-
-#: ../gcr/gcr-certificate-renderer.c:134
-msgid "Value"
-msgstr "Valoro"
-
-#: ../gcr/gcr-certificate-renderer.c:140
-msgid "Critical"
-msgstr "Kritike"
-
-#: ../gcr/gcr-certificate-renderer.c:140
-msgid "Yes"
-msgstr "Jes"
-
-#: ../gcr/gcr-certificate-renderer.c:140
-msgid "No"
-msgstr "Ne"
-
-#: ../gcr/gcr-certificate-renderer.c:358
-msgid "Identity"
-msgstr "Identeco"
-
-#: ../gcr/gcr-certificate-renderer.c:362
-msgid "Verified by"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
msgstr ""
-#: ../gcr/gcr-certificate-renderer.c:369
-msgid "Expires"
-msgstr "SenvalidiÄos"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:379
-msgid "Subject Name"
-msgstr ""
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:383
-msgid "Issuer Name"
-msgstr "Nomo de la eldoninto"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:387
-msgid "Issued Certificate"
-msgstr "Atestilo de la eldoninto"
-
-#: ../gcr/gcr-certificate-renderer.c:392
-msgid "Version"
-msgstr "Versio"
-
-#: ../gcr/gcr-certificate-renderer.c:406
-msgid "Not Valid Before"
-msgstr "Ne valida antaÅ­e"
-
-#: ../gcr/gcr-certificate-renderer.c:411
-msgid "Not Valid After"
-msgstr "Ne valida poste"
-
-#: ../gcr/gcr-certificate-renderer.c:420
-msgid "Signature Algorithm"
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
msgstr ""
-#: ../gcr/gcr-certificate-renderer.c:425
-msgid "Signature Parameters"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:432
-msgid "Signature"
-msgstr "Subskribo"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:437
-msgid "Public Key Info"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:442
-msgid "Key Algorithm"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:448
-msgid "Key Parameters"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:455
-msgid "Key Size"
-msgstr "Åœlosilgrando"
-
-#: ../gcr/gcr-certificate-renderer.c:463 ../gcr/gcr-key-renderer.c:285
-#: ../gcr/gcr-parser.c:278
-msgid "Public Key"
-msgstr "Publika Ålosilo"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:468
-msgid "Fingerprints"
-msgstr "Fingropremaĵoj"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Importi atestilojn kaj Ålosilojn"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Importi en:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Pasvorto:"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr ""
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr ""
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr ""
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr ""
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minutoj"
-
-#: ../gcr/gcr-importer.c:170 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Enigi pasvorton por malÅlosi la privatan Ålosilon"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Enigi pasvorton por malÅlosi la atestilon"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Enigi pasvorton por malÅlosi"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:183
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Por importi la privatan Ålosilon, Äi devas esti malÅlosita"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:186
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Por importi la atestilon, Äi devas esti malÅlosita"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:189
-msgid "In order to import the data, it must be unlocked"
-msgstr "Por importi la datumon, Äi devas esti malÅlosita"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:194
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Por importi la privatan Ålosilon '%s', Äi devas esti malÅlosita"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:197
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Por importi la atestilon '%s', Äi devas esti malÅlosita"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:200
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Por importi '%s', Äi devas esti malÅlosita"
-
-#: ../gcr/gcr-importer.c:291 ../gcr/gcr-parser.c:1708 ../gcr/gcr-parser.c:1947
-#: ../gck/gck-misc.c:104
-msgid "The operation was cancelled"
-msgstr "La ago estis nuligita"
-
-#: ../gcr/gcr-importer.c:383
-#, c-format
-msgid "No location available to import to"
-msgstr ""
-
-#: ../gcr/gcr-importer.c:532
-msgid "Import Certificates/Keys"
-msgstr "Importi atestilojn/Ålosilon"
-
-#: ../gcr/gcr-importer.c:539
-msgid "Choose a location to store the imported certificates/keys."
-msgstr ""
-
-#: ../gcr/gcr-key-renderer.c:83
-msgid "Key"
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
msgstr ""
-#: ../gcr/gcr-key-renderer.c:274
-msgid "Private RSA Key"
-msgstr "Privata RSA-Ålosilo"
-
-#: ../gcr/gcr-key-renderer.c:276
-msgid "Private DSA Key"
-msgstr "Privata DSA-Ålosilo"
-
-#: ../gcr/gcr-key-renderer.c:278 ../gcr/gcr-parser.c:272
-msgid "Private Key"
-msgstr "Privata Ålosilo"
-
-#: ../gcr/gcr-key-renderer.c:281 ../gcr/gcr-key-renderer.c:283
-msgid "Public DSA Key"
-msgstr "Publika DSA-Ålosilo"
-
-#: ../gcr/gcr-key-renderer.c:292
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../gcr/gcr-key-renderer.c:293
-msgid "Strength"
-msgstr "Forto"
-
-#: ../gcr/gcr-key-renderer.c:306
-msgid "Algorithm"
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
msgstr ""
-#: ../gcr/gcr-key-renderer.c:313
-msgid "Size"
-msgstr "Grando"
-
-#. TODO: We need to have consistent key fingerprints.
-#: ../gcr/gcr-key-renderer.c:317
-msgid "Fingerprint"
-msgstr "Fingropremaĵo"
-
-#: ../gcr/gcr-parser.c:1711
-msgid "Unrecognized or unsupported data."
-msgstr "Nekonataj aÅ­ nesubtenataj datumoj."
-
-#: ../gcr/gcr-parser.c:1714
-msgid "Could not parse invalid or corrupted data."
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
msgstr ""
-#: ../gcr/gcr-parser.c:1717
-msgid "The data is locked"
-msgstr "La datumoj estas Ålositaj"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:420
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr ""
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr "Neatendita eraro en select() dum datumlegado de procezido (%s)"
-#: ../gck/gck-uri.c:129 ../gck/gck-uri.c:186 ../gck/gck-uri.c:221
-#: ../gck/gck-uri.c:253
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid "The URI has invalid syntax. The '%s' field encoding is invalid."
-msgstr ""
-
-#: ../gck/gck-uri.c:292
-msgid "The URI has does not have the 'pkcs11' scheme."
-msgstr ""
-
-#: ../gck/gck-misc.c:107
-msgid "Insufficient memory available"
-msgstr ""
-
-#: ../gck/gck-misc.c:109
-msgid "The specified slot ID is not valid"
-msgstr ""
-
-#: ../gck/gck-misc.c:111
-msgid "Internal error"
-msgstr "Interna eraro"
-
-#: ../gck/gck-misc.c:113
-msgid "The operation failed"
-msgstr "La ago fiaskis"
-
-#: ../gck/gck-misc.c:115
-msgid "Invalid arguments"
-msgstr "Nevalidaj argumentoj"
-
-#: ../gck/gck-misc.c:117
-msgid "The module cannot create needed threads"
-msgstr ""
-
-#: ../gck/gck-misc.c:119
-msgid "The module cannot lock data properly"
-msgstr ""
-
-#: ../gck/gck-misc.c:121
-msgid "The field is read-only"
-msgstr "La kampo estas nurlega"
-
-#: ../gck/gck-misc.c:123
-msgid "The field is sensitive and cannot be revealed"
-msgstr ""
-
-#: ../gck/gck-misc.c:125
-msgid "The field is invalid or does not exist"
-msgstr "La kampo ne validas aÅ­ ne ekzistas"
-
-#: ../gck/gck-misc.c:127
-msgid "Invalid value for field"
-msgstr "Nevalida valoro por la kampo"
-
-#: ../gck/gck-misc.c:129
-msgid "The data is not valid or unrecognized"
-msgstr ""
-
-#: ../gck/gck-misc.c:131
-msgid "The data is too long"
-msgstr "La datumo estas tro longa"
-
-#: ../gck/gck-misc.c:133
-msgid "An error occurred on the device"
-msgstr "Eraro okazis en la aparato"
-
-#: ../gck/gck-misc.c:135
-msgid "Insufficient memory available on the device"
-msgstr ""
-
-#: ../gck/gck-misc.c:137
-msgid "The device was removed or unplugged"
-msgstr ""
-
-#: ../gck/gck-misc.c:139
-msgid "The encrypted data is not valid or unrecognized"
-msgstr ""
-
-#: ../gck/gck-misc.c:141
-msgid "The encrypted data is too long"
-msgstr ""
-
-#: ../gck/gck-misc.c:143
-msgid "This operation is not supported"
-msgstr "La ago ne estas subtenata"
-
-#: ../gck/gck-misc.c:145
-msgid "The key is missing or invalid"
-msgstr "La Ålosilo mankas aÅ­ ne validas"
-
-#: ../gck/gck-misc.c:147
-msgid "The key is the wrong size"
-msgstr ""
-
-#: ../gck/gck-misc.c:149
-msgid "The key is of the wrong type"
-msgstr ""
-
-#: ../gck/gck-misc.c:151
-msgid "No key is needed"
-msgstr ""
-
-#: ../gck/gck-misc.c:153
-msgid "The key is different than before"
-msgstr ""
-
-#: ../gck/gck-misc.c:155
-msgid "A key is needed"
-msgstr "Åœlosilo estas bezonata"
-
-#: ../gck/gck-misc.c:157
-msgid "Cannot include the key in the digest"
-msgstr ""
-
-#: ../gck/gck-misc.c:159
-msgid "This operation cannot be done with this key"
-msgstr ""
-
-#: ../gck/gck-misc.c:161
-msgid "The key cannot be wrapped"
-msgstr ""
-
-#: ../gck/gck-misc.c:163
-msgid "Cannot export this key"
-msgstr "Ne eblas eksporti la Ålosilon"
-
-#: ../gck/gck-misc.c:165
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr ""
-
-#: ../gck/gck-misc.c:167
-msgid "The crypto mechanism has an invalid argument"
-msgstr ""
-
-#: ../gck/gck-misc.c:169
-msgid "The object is missing or invalid"
-msgstr ""
-
-#: ../gck/gck-misc.c:171
-msgid "Another operation is already taking place"
-msgstr ""
-
-#: ../gck/gck-misc.c:173
-msgid "No operation is taking place"
-msgstr ""
-
-#: ../gck/gck-misc.c:175
-msgid "The password or PIN is incorrect"
-msgstr ""
-
-#: ../gck/gck-misc.c:177
-msgid "The password or PIN is invalid"
-msgstr ""
-
-#: ../gck/gck-misc.c:179
-msgid "The password or PIN is of an invalid length"
-msgstr ""
-
-#: ../gck/gck-misc.c:181
-msgid "The password or PIN has expired"
-msgstr ""
-
-#: ../gck/gck-misc.c:183
-msgid "The password or PIN is locked"
-msgstr ""
-
-#: ../gck/gck-misc.c:185
-msgid "The session is closed"
-msgstr "La seanco estas fermita"
-
-#: ../gck/gck-misc.c:187
-msgid "Too many sessions are active"
-msgstr "Tro multaj seancoj estas aktivaj"
-
-#: ../gck/gck-misc.c:189
-msgid "The session is invalid"
-msgstr "La seanco estas nevalida"
-
-#: ../gck/gck-misc.c:191
-msgid "The session is read-only"
-msgstr "La seanco estas nurlega"
-
-#: ../gck/gck-misc.c:193
-msgid "An open session exists"
-msgstr "Malfermita seanco jam ekzistas"
-
-#: ../gck/gck-misc.c:195
-msgid "A read-only session exists"
-msgstr "Nurlega seanco jam ekzistas"
-
-#: ../gck/gck-misc.c:197
-msgid "An administrator session exists"
-msgstr "Seanco kiel administranto jam ekzistas"
-
-#: ../gck/gck-misc.c:199
-msgid "The signature is bad or corrupted"
-msgstr ""
-
-#: ../gck/gck-misc.c:201
-msgid "The signature is unrecognized or corrupted"
-msgstr ""
-
-#: ../gck/gck-misc.c:203
-msgid "Certain required fields are missing"
-msgstr "Kelkaj bezonataj kampoj mankas"
-
-#: ../gck/gck-misc.c:205
-msgid "Certain fields have invalid values"
-msgstr "Kelkaj kampoj enhavas nevalidajn valorojn"
-
-#: ../gck/gck-misc.c:207
-msgid "The device is not present or unplugged"
-msgstr ""
-
-#: ../gck/gck-misc.c:209
-msgid "The device is invalid or unrecognizable"
-msgstr ""
-
-#: ../gck/gck-misc.c:211
-msgid "The device is write protected"
-msgstr ""
-
-#: ../gck/gck-misc.c:213
-msgid "Cannot import because the key is invalid"
-msgstr ""
-
-#: ../gck/gck-misc.c:215
-msgid "Cannot import because the key is of the wrong size"
-msgstr ""
-
-#: ../gck/gck-misc.c:217
-msgid "Cannot import because the key is of the wrong type"
-msgstr ""
-
-#: ../gck/gck-misc.c:219
-msgid "You are already logged in"
-msgstr "Vi estas jam ensalutita"
-
-#: ../gck/gck-misc.c:221
-msgid "No user has logged in"
-msgstr "Neniu uzanto estas ensalutita"
-
-#: ../gck/gck-misc.c:223
-msgid "The user's password or PIN is not set"
-msgstr ""
-
-#: ../gck/gck-misc.c:225
-msgid "The user is of an invalid type"
-msgstr ""
-
-#: ../gck/gck-misc.c:227
-msgid "Another user is already logged in"
-msgstr "Alia uzanto estas jam ensalutita"
-
-#: ../gck/gck-misc.c:229
-msgid "Too many users of different types are logged in"
-msgstr "Tro multaj uzantoj de malsamaj tipoj ensalutis"
-
-#: ../gck/gck-misc.c:231
-msgid "Cannot import an invalid key"
-msgstr "Ne eblas importi nevalidan Ålosilon"
-
-#: ../gck/gck-misc.c:233
-msgid "Cannot import a key of the wrong size"
-msgstr ""
-
-#: ../gck/gck-misc.c:235
-msgid "Cannot export because the key is invalid"
-msgstr "Ne eblas eksporti ĉar la Ålosilo ne validas"
-
-#: ../gck/gck-misc.c:237
-msgid "Cannot export because the key is of the wrong size"
-msgstr ""
-
-#: ../gck/gck-misc.c:239
-msgid "Cannot export because the key is of the wrong type"
-msgstr ""
-
-#: ../gck/gck-misc.c:241
-msgid "Unable to initialize the random number generator"
-msgstr ""
-
-#: ../gck/gck-misc.c:243
-msgid "No random number generator available"
-msgstr ""
-
-#: ../gck/gck-misc.c:245
-msgid "The crypto mechanism has an invalid parameter"
-msgstr ""
-
-#: ../gck/gck-misc.c:247
-msgid "Not enough space to store the result"
-msgstr ""
-
-#: ../gck/gck-misc.c:249
-msgid "The saved state is invalid"
-msgstr ""
-
-#: ../gck/gck-misc.c:251
-msgid "The information is sensitive and cannot be revealed"
-msgstr ""
-
-#: ../gck/gck-misc.c:253
-msgid "The state cannot be saved"
-msgstr ""
-
-#: ../gck/gck-misc.c:255
-msgid "The module has not been initialized"
-msgstr ""
-
-#: ../gck/gck-misc.c:257
-msgid "The module has already been initialized"
-msgstr ""
-
-#: ../gck/gck-misc.c:259
-msgid "Cannot lock data"
-msgstr ""
-
-#: ../gck/gck-misc.c:261
-msgid "The data cannot be locked"
-msgstr ""
-
-#: ../gck/gck-misc.c:263
-msgid "The signature request was rejected by the user"
-msgstr ""
-
-#: ../gck/gck-misc.c:267
-msgid "Unknown error"
-msgstr "Nekonata eraro"
+msgid "Unexpected error in waitpid() (%s)"
+msgstr "Neatendita eraro en waitpid() (%s)"
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
@@ -863,7 +286,7 @@ msgid "Couldn't parse public SSH key"
msgstr ""
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "MalÅlospasvorto por: %s"
@@ -922,10 +345,22 @@ msgstr "MalÅlosi publikan Ålosilon"
msgid "Unlock"
msgstr "MalÅlosi"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Enigi pasvorton por malÅlosi la privatan Ålosilon"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Enigi pasvorton por malÅlosi la atestilon"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Enigi pasvorton por malÅlosi publikan Ålosilon"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Enigi pasvorton por malÅlosi"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1012,26 +447,26 @@ msgstr ""
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:597
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Ĉu memori neĉifritajn pasvortojn?"
-#: ../ui/gku-prompt-tool.c:598
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
"files."
msgstr ""
-#: ../ui/gku-prompt-tool.c:605
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Uzi nesekuran memorejon"
-#: ../ui/gku-prompt-tool.c:643
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Pasvortoj ne kongruas."
-#: ../ui/gku-prompt-tool.c:653
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Pasvortoj ne povas esti malplenaj"
@@ -1070,43 +505,3 @@ msgstr "Maln_ova pasvorto:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Pasvorto:"
-
-#~ msgid "Email"
-#~ msgstr "RetpoÅtadreso"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>nekonate</i>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>Fingropremaĵoj</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Eldonite de</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Eldonite al</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>Valideco</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "Komuna nomo (KN)"
-
-#~ msgid "Issued On"
-#~ msgstr "Eldonite je"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "MD5-Fingropremaĵo"
-
-#~ msgid "Organization (O)"
-#~ msgstr "Organizo (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "Organiza unuo (OU)"
-
-#~ msgid "SHA1 Fingerprint"
-#~ msgstr "SHA1-Fingropremaĵo"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr ""
-#~ "<span size='large' weight='bold'>Importi atestilojn kaj Ålosilojn</span>"
diff --git a/po/es.po b/po/es.po
index 269d2556..7d18dd60 100644
--- a/po/es.po
+++ b/po/es.po
@@ -11,12 +11,12 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.master\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-09-10 09:12+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-14 17:33+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Español <gnome-es-list@gnome.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -26,7 +26,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Sin nombre"
@@ -102,35 +102,34 @@ msgstr "Depósito de claves de GNOME: agente GPG"
msgid "GPG Password Agent"
msgstr "Agente de contraseñas GPG"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Desconocido"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "Clave GPG: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Introducir la contraseña"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Olvidar esta contraseña si se está inactivo durante"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Olvidar esta contraseña después de"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Olvidar esta contraseña al salir de la sesión"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Inicio de sesión"
@@ -174,7 +173,7 @@ msgstr "Nombre común"
msgid "Surname"
msgstr "Apellido"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Número de serie"
@@ -230,7 +229,7 @@ msgstr "Calificador del nombre de dominio"
msgid "Pseudonym"
msgstr "Seudónimo"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -246,7 +245,7 @@ msgstr "MD5 con RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 con RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -285,590 +284,6 @@ msgstr "Error inesperado en select() al leer los datos de un proceso hijo (%s)"
msgid "Unexpected error in waitpid() (%s)"
msgstr "Error inesperado en waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Error al cargar el módulo PKCS#11: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Módulos PKCS#11 no válido: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "No se pudo configurar el moÌdulo PKCS#11: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "No se pudo inicializar el módulo PKCS#11: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "No se pudieron inicializar los módulos PKCS#11 registrados: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Nombre"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Emitido por"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "Caduca"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "Certificado"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Ya existe un archivo con este nombre.</b>\n"
-"\n"
-"¿Quiere reemplazarlo por uno nuevo?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_Reemplazar"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "Se canceló la operación."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Exportar certificado"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Archivos de certificados"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "Archivos PEM"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Otro nombre"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "DireccioÌn XMPP"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "Servidor de DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "Correo-e"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "DireccioÌn X400"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Nombre de la carpeta"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "Nombre del grupo EDI"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "DireccioÌn IP"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "ID registrado"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Restricciones básicas"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "Autoridad de certificación"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Sí"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "No"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Longitud máxima de la ruta"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Sin límite"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Uso extendido de la clave"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Propósitos permitidos"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Identificador del asunto de la clave"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Identificador de clave"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Firma digital"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Cifrado de la clave"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Cifrado de los datos"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Acuerdo de la clave"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Firma del certificado"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Firma de la lista de revocación"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Uso de la clave"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Usos"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Nombres alternativos del asunto"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Extensión"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Identificador"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Valor"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Crítico"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "No se pudo exportar el certificado."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "Identidad"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Verificado por"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "Caduca"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Nombre del asunto"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Nombre del emisor"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Certificado emitido"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Versión"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "No es válido antes de"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "No es válido después de"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Huellas de certificados"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Firma"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Algoritmo de firma"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Parámetros de la firma"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Información de la clave pública"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Clave del algoritmo"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Parámetros de la clave"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Tamaño de la clave"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "Huella de la clave SHA1"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "Clave privada"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_Detalles"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "No se pudo mostrar «%s»"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "No se pudo mostrar el archivo"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Razón"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "No se pueden mostrar los archivos de este tipo."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Importar certificados y claves"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Importar en:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Contraseña:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "Clave GPG"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "ID de la clave"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "El proceso Gnupg finalizoÌ con el código: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "El proceso Gnupg terminoÌ con la señal: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1786 ../gcr/gcr-parser.c:2044
-msgid "The operation was cancelled"
-msgstr "Se canceló la operación"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Introduzca la contraseña para desbloquear la clave privada"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Introduzca la contraseña para desbloquear el certificado"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Introduzca la contraseña para desbloquearlo"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Para poder importar la clave privada, se debe desbloquear"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Para poder importar el certificado, se debe desbloquear"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Para poder importar los datos, se debe desbloquear"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Para poder importar la clave privada «%s», se debe desbloquear"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Para poder impotar el certificado «%s», se debe desbloquear"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Para poder importar «%s», se debe desbloquear"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "No existe una ubicación disponible en la que importar"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Importar certificados/claves"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr ""
-"Elija una ubicación donde almacenar los certificados/claves importados."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Clave"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Clave privada RSA"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Clave privada DSA"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "Clave privada"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Clave pública DSA"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-msgstr[1] "%d bits"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Fortaleza"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algoritmo"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Tamaño"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Huellas"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1789
-msgid "Unrecognized or unsupported data."
-msgstr "Datos no reconocidos o no soportados."
-
-#: ../gcr/gcr-parser.c:1792
-msgid "Could not parse invalid or corrupted data."
-msgstr "No se pudo analizar los datos no válidos o corruptos."
-
-#: ../gcr/gcr-parser.c:1795
-msgid "The data is locked"
-msgstr "Los datos están bloqueados"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "No se pudo encontrar un lugar para almacenar el certificado importado"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Desbloquear este depósito de claves siempre que haya iniciado sesión"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Bloquear después este depósito de claves"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Bloquear este depósito de claves si está inactivo durante"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Bloquear este depósito de claves al cerrar la sesión"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minutos"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "Desbloquear: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Desbloquear"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "La contraseña era incorrecta"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Contraseña"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr ""
-"El contenido de «%s» está bloqueado. Para poder ver el contenido debe "
-"introducir la contraseña correcta."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr ""
-"El contenido está bloqueado. Introduzca la contraseña correcta para poder "
-"ver el contenido."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "Certificado GCR y visor de claves"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Mostrar la versión de la aplicación"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[archivo…]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr ": ver certificados y archivos de claves"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "Visor de certificados"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "El URI tiene una codificación no válida."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "El URI no tiene el esquema «pkcs11»."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "El URI tiene una sintaxis incorrecta."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "El URI tiene un número de versión incorrecto."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Certificado sin nombre"
@@ -878,7 +293,7 @@ msgid "Couldn't parse public SSH key"
msgstr "No se pudo analizar la clave SSH pública"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Contraseña de desbloqueo para %s"
@@ -940,10 +355,26 @@ msgstr "Desbloquear el certificado"
msgid "Unlock public key"
msgstr "Desbloquear la clave pública"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Desbloquear"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Introduzca la contraseña para desbloquear la clave privada"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Introduzca la contraseña para desbloquear el certificado"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Introduzca la contraseña para desbloquear la clave pública"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Introduzca la contraseña para desbloquearlo"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1036,11 +467,11 @@ msgstr "comandos: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "¿Almacenar sus contraseñan sin cifrarlas?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1050,15 +481,15 @@ msgstr ""
"estarán cifradas de forma segura. Serán accesibles por cualquiera que tenga "
"acceso a sus archivos."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Usar depósito inseguro"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Las contraseñas no coinciden."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "La contraseña no puede estar vacía"
@@ -1097,798 +528,3 @@ msgstr "Contraseña _antigua:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Contraseña:"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "No hay suficiente memoria disponible"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "El ID de la ranura especificada no es válido"
-
-#~ msgid "Internal error"
-#~ msgstr "Error interno"
-
-#~ msgid "The operation failed"
-#~ msgstr "Falló la operación"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "Argumentos no válidos"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "El módulo no pudo crear los hilos necesarios"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "El módulo no puede bloquear los datos adecuadamente"
-
-#~ msgid "The field is read-only"
-#~ msgstr "El campo es de sólo lectura"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "El campo es sensible y no se puede revelar"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "El campo no es válido o no existe"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "Valor no válido para el campo"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "El dato no es válido o reconocible"
-
-#~ msgid "The data is too long"
-#~ msgstr "El dato es demasiado largo"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "Ocurrió un error en el dispositivo"
-
-#~ msgid "Insufficient memory available on the device"
-#~ msgstr "No hay memoria suficiente en el dispositivo"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "El dispositivo se extrajo o desconectó"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "El dato cifrados no son válidos o reconocibles"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "El dato cifrado es demasiado largo"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "Esta operación no está soportada"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "Falta la clave o no es válida"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "La clave tiene un tamaño incorrecto"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "La clave es de tipo erróneo"
-
-#~ msgid "No key is needed"
-#~ msgstr "No se necesita clave"
-
-#~ msgid "The key is different than before"
-#~ msgstr "La clave es diferente que anteriormente"
-
-#~ msgid "A key is needed"
-#~ msgstr "Se necesita una clave"
-
-#~ msgid "Cannot include the key in the digest"
-#~ msgstr "No se puede incluir la clave en el resumen"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "Esta operación no se puede realizar con esta clave"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "La clave no se puede envolver"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "No se puede exportar esta clave"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "El mecanismo de cifrado no es válido o no se reconoce"
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "El mecanismo de cifrado tiene un argumento no válido"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "El objeto falta o no es válido"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "Ya se está realizando otra operación"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "No se está realizando ninguna operación"
-
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "La contraseña o PIN es incorrecta"
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "La contraseña o PIN no es válida"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "La contraseña o PIN es de una longitud no válida"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "La contraseña o PIN ha caducado"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "La contraseña o PIN está bloqueada"
-
-#~ msgid "The session is closed"
-#~ msgstr "La sesión está cerrada"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "Hay demasiadas sesiones activas"
-
-#~ msgid "The session is invalid"
-#~ msgstr "La sesión no es válida"
-
-#~ msgid "The session is read-only"
-#~ msgstr "La sesión es de sólo lectura"
-
-#~ msgid "An open session exists"
-#~ msgstr "Existe una sesión abierta"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "Existe una sesión de sólo lectura"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "Existe una sesión de administrador"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "La firma es errónea o está corrupta"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "La firma no es reconocible o está corrupta"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "Faltan ciertos campos necesarios"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "Ciertos campos tienen valores no válidos"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "El dispositivo no está presente o no está conectado"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "El dispositivo no es válido o es irreconocible"
-
-#~ msgid "The device is write protected"
-#~ msgstr "El dispositivo está protegido contra escritura"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "No se puede importar porque la clave no es válida"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "No se puede importar porque la clave es de tamaño erróneo"
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "No se puede importar porque la clave es de tipo erróneo"
-
-#~ msgid "You are already logged in"
-#~ msgstr "Ya ha iniciado sesión"
-
-#~ msgid "No user has logged in"
-#~ msgstr "Ningún usuario ha iniciado sesión"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "La contraseña o PIN del usuario no está establecida"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "El usuario es de tipo no válido"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "Otro usuario ya ha iniciado sesión"
-
-#~ msgid "Too many users of different types are logged in"
-#~ msgstr "Demasiados usuarios de tipos diferentes han iniciado sesión"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "No se puede importar una clave válida"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "No se puede importar una clave de tamaño incorrecto"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "No se puede exportar porque la clave no es válida"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "No se puede exportar porque la clave es de tamaño incorrecto"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "No se puede exportar porque la clave es de tipo erróneo"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "No se pudo inicializar el generador de números aleatorios"
-
-#~ msgid "No random number generator available"
-#~ msgstr "No existe un generador de números aleatorios disponible"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "El mecanismo de cifrado tiene un parámetro no válido"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "No hay suficiente espacio para almacenar el resultado"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "El estado guardado no es válido"
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "La información es sensible y no se puede revelar"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "El estado no se puede guardar"
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "El módulo no se ha inicializado"
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "El módulo ya se ha inicializado"
-
-#~ msgid "Cannot lock data"
-#~ msgstr "No se pueden bloquear los datos"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "Los datos no se pueden bloquear"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "El usuario rechazó la petición de firma"
-
-#~ msgid "Unknown error"
-#~ msgstr "Error desconocido"
-
-#~ msgid "Fingerprint"
-#~ msgstr "Huella"
-
-#~ msgid "Insufficient memory available on device"
-#~ msgstr "No hay memoria suficiente en el dispositivo"
-
-#~ msgid "The key is different from before"
-#~ msgstr "La clave es diferente que anteriormente"
-
-#~ msgid "Cannot include the key in digest"
-#~ msgstr "No se puede incluir la clave en el resumen"
-
-#~ msgid "Too many users of different types logged in"
-#~ msgstr "Demasiados usuarios de tipos diferentes han iniciado sesión"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>No es parte del certificado</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>desconocido</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<No es parte del certificado>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>Huellas</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Emitido por</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Emitido para</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr ""
-#~ "<b>Este certificado ha sido verificado para los siguientes usos:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>Validez</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "Nombre común (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "Certificado del destinatario del correo-e"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "Certificado del firmante del correo-e"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "Huella MD5"
-
-#~ msgid "Organization (O)"
-#~ msgstr "Organización (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "Unidad organizativa (OU)"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr ""
-#~ "<span size='large' weight='bold'>Importar certificados y claves</span>"
-
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Esta opción activa el componente PKCS#11 en el demonio del Depósito de "
-#~ "claves. Sólo toma efecto cuando se inicia gnome-session, (ej: cuando el "
-#~ "usuario entra en el sistema). Este ajuste se puede sobreescribir al pasar "
-#~ "ciertos parámetros al demonio a través de la línea de comandos."
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "Esta opción activa el agente SSH en el demonio del Depósito de claves. "
-#~ "Sólo toma efecto cuando se inicia gnome-keyring-daemon, (ej: cuando el "
-#~ "usuario entra en el sistema). Este ajuste se puede sobreescribir al pasar "
-#~ "ciertos parámetros al demonio a traes de la línea de comandos."
-
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Esta opción activa el componente de servicio de secretos en el demonio "
-#~ "del Depósito de claves. Sólo toma efecto cuando se inicia con gnome-"
-#~ "session, (ej: cuando el usuario entra en el sistema). Este ajuste se "
-#~ "puede sobreescribir al pasar ciertos parámetros al demonio a través de la "
-#~ "línea de comandos."
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr ""
-#~ "Indica si el componente PKCS#11 del depósito de claves está activado."
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "Indica si el agente SSH del depósito de claves está activado."
-
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr ""
-#~ "Indica si el servicio de secretos del depósito de claves está activado."
-
-#~ msgid "Automatically unlock secure storage when I log in."
-#~ msgstr "Desbloquear automáticamente el depósito seguro al iniciar sesión."
-
-#~ msgid ""
-#~ "<span size=\"large\" weight=\"bold\">Enter password for keyring 'login' "
-#~ "to unlock</span>\n"
-#~ "\n"
-#~ "An application wants access to the keyring 'xxx', but it is locked."
-#~ msgstr ""
-#~ "<span size=\"large\" weight=\"bold\">Introducir la contraseña para "
-#~ "desbloquear el depósito de claves «Inicio de sesión»</span>\n"
-#~ "\n"
-#~ "Una aplicación quiere acceder al depósito de claves «xxx», pero está "
-#~ "bloqueado"
-
-#~| msgid "Allow application access to keyring?"
-#~ msgid "Prompt me for each application that accesses this keyring."
-#~ msgstr ""
-#~ "Preguntarme para cada aplicación que acceda a este depósito de claves."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "La aplicación «%s» (%s) quiere acceder a la contraseña para «<object "
-#~ "prop='name'/>» en el depósito de claves predeterminado."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "La aplicación «%s» (%s) quiere acceder a la contraseña para «<object "
-#~ "prop='name'/>» en %s."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "La aplicación «%s» quiere acceder a la contraseña para «<object prop='name'/"
-#~ ">» en el depósito predeterminado."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "La aplicación «%s» quiere acceder a la contraseña para «<object prop='name'/"
-#~ ">» en %s."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "Una aplicación desconocida quiere acceder a la contraseña para «<object "
-#~ "prop='name'/>» en el depósito de claves predeterminado."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "Una aplicación desconocida quiere acceder a la contraseña para «<object "
-#~ "prop='name'/>» en %s."
-
-#~ msgid "Allow access"
-#~ msgstr "Permitir acceso"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "La aplicación «%s» (%s) quiere acceder al depósito de claves "
-#~ "predeterminado, pero está bloqueado"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "La aplicación «%s» (%s) quiere acceder al depósito de claves «%s», pero "
-#~ "está bloqueado"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-#~ msgstr ""
-#~ "La aplicación «%s» quiere acceder al depósito de claves predeterminado, "
-#~ "pero está bloqueado"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-#~ msgstr ""
-#~ "La aplicación «%s» quiere acceder al depósito de claves «%s», pero está "
-#~ "bloqueado"
-
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Una aplicación desconocida quiere acceder al depósito de claves "
-#~ "predeterminado, pero está bloqueado"
-
-#~ msgid "Enter password for default keyring to unlock"
-#~ msgstr ""
-#~ "Introduzca la contraseña para desbloquear el depósito predeterminado"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "La aplicación «%s» (%s) quiere crear un depósito de claves nuevo llamado «%"
-#~ "s». Tiene que elegir la contraseña que quiere usar con él."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "La aplicación «%s» (%s) quiere crear un depósito de claves predeterminado "
-#~ "nuevo. Tiene que elegir la contraseña que quiere usar con él."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "La aplicación «%s» quiere crear un depósito de claves nuevo llamado «%s». "
-#~ "Tiene que elegir la contraseña que quiere usar con él."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "La aplicación «%s» quiere crear un depósito de claves predeterminado "
-#~ "nuevo. Tiene que elegir la contraseña que quiere usar con él."
-
-#~ msgid ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "Una aplicación desconocida quiere crear un depósito de claves "
-#~ "predeterminado nuevo. Tiene que elegir la contraseña que quiere usar con "
-#~ "él."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "La aplicación «%s» (%s) quiere cambiar la contraseña para el depósito de "
-#~ "claves «%s». Tiene que elegir la contraseña que quiere usar con él."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "La aplicación «%s» (%s) quiere cambiar la contraseña para el depósito de "
-#~ "claves predeterminado. Tiene que elegir la contraseña que quiere usar con "
-#~ "él."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "La aplicación «%s» quiere cambiar la contraseña para el depósito de claves "
-#~ "«%s». Tiene que elegir la contraseña que quiere usar con él."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "La aplicación «%s» quiere cambiar la contraseña para el depósito de claves "
-#~ "predeterminado. Tiene que elegir la contraseña que quiere usar con él."
-
-#~ msgid ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Una aplicación desconocida quiere cambiar la contraseña del depósito de "
-#~ "claves predeterminado nuevo. Tiene que elegir la contraseña que quiere "
-#~ "usar con él."
-
-#~| msgid "Choose a new password for the default keyring. "
-#~ msgid "Choose a new password for the default keyring."
-#~ msgstr "Elija una contraseña nueva para el depósito predeterminado. "
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-#~ msgstr ""
-#~ "La aplicación «%s» (%s) desea almacenar una contraseña, pero no hay un "
-#~ "depósito de claves predeterminado. Para crear uno debe elegir la "
-#~ "contraseña que quiere usar en él."
-
-#~ msgid ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "La aplicación %s desea almacenar una contraseña, pero no hay un depósito "
-#~ "de claves predeterminado. Para crear uno debe elegir la contraseña que "
-#~ "quiere usar en él."
-
-#~ msgid ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "Una aplicación desconocida desea almacenar una contraseña, pero no hay un "
-#~ "depósito de claves predeterminado. Para crear uno debe elegir la "
-#~ "contraseña que quiere usar en él."
-
-#~ msgid "Create Default Keyring"
-#~ msgstr "Crear depósito predeterminado"
-
-#~ msgid "Choose password for default keyring"
-#~ msgstr "Elija una contraseña para el depósito de claves predeterminado"
-
-#~ msgid "Create Login Keyring"
-#~ msgstr "Crear depósito de inicio"
-
-#~ msgid "Enter your login password"
-#~ msgstr "Introduzca su contraseña de inicio"
-
-#~ msgid ""
-#~ "Your login keyring was not automatically created when you logged into "
-#~ "this computer. It will now be created."
-#~ msgstr ""
-#~ "Al iniciar sesión en este equipo no se creó automáticamente su depósito "
-#~ "de inicio. Se creará ahora."
-
-#~ msgid "Automatically unlock this private key when I log in."
-#~ msgstr "Desbloquear esta clave privada automáticamente al iniciar sesión."
-
-#~ msgid "Automatically unlock this certificate when I log in."
-#~ msgstr "Desbloquear este certificado automáticamente al iniciar sesión."
-
-#~ msgid "Automatically unlock this public key when I log in."
-#~ msgstr "Desbloquear esta clave pública automáticamente al iniciar sesión."
-
-#~ msgid "Automatically unlock this when I log in"
-#~ msgstr "Desbloquear esto automáticamente al iniciar sesión"
-
-#~ msgid ""
-#~ "<b><big>Could not grab your mouse.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>No se pudo capturar su ratón.</big></b>\n"
-#~ "\n"
-#~ "Un cliente malicioso puede estar fisgoneando su sesión o puede que haya "
-#~ "pulsado sobre un menú o una aplicación puede haber obtenido el foco.\n"
-#~ "\n"
-#~ "Inténtelo de nuevo."
-
-#~ msgid ""
-#~ "<b><big>Could not grab your keyboard.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>No se pudo capturar su teclado.</big></b>\n"
-#~ "\n"
-#~ "Un cliente malicioso puede estar fisgoneando su sesión o puede que haya "
-#~ "pulsado sobre un menú o una aplicación puede haber obtenido el foco.\n"
-#~ "\n"
-#~ "Inténtelo de nuevo."
-
-#~ msgid "_Deny"
-#~ msgstr "_Denegar"
-
-#~ msgid "C_reate"
-#~ msgstr "C_rear"
-
-#~ msgid "C_hange"
-#~ msgstr "Ca_mbiar"
-
-#~ msgid "Allow _Once"
-#~ msgstr "Permitir _una vez"
-
-#~ msgid "_Always Allow"
-#~ msgstr "Permitir _siempre"
-
-#~ msgid "Removable Disk: %s"
-#~ msgstr "Disco extraíble: %s"
-
-#~ msgid "Removable Disk"
-#~ msgstr "Disco extraíble"
-
-#~ msgid "Home"
-#~ msgstr "Inicio"
-
-#~ msgid "The disk or drive this file is located on is not present"
-#~ msgstr ""
-#~ "El disco o la unidad en la que está ubicado este archivo no está presente"
-
-#~ msgid "Couldn't create directory: %s"
-#~ msgstr "No se pudo crear el directorio: %s"
-
-#~ msgid "Access Denied"
-#~ msgstr "Acceso denegado"
-
-#~ msgid "The gnome-keyring-daemon application is not running."
-#~ msgstr "La aplicación gnome-keyring-daemon no se está ejecutando."
-
-#~ msgid "Error communicating with gnome-keyring-daemon"
-#~ msgstr "Error al comunicarse con gnome-keyring-daemon"
-
-#~ msgid "A keyring with that name already exists"
-#~ msgstr "Ya existe un depósito de claves con ese nombre"
-
-#~ msgid "Programmer error: The application sent invalid data."
-#~ msgstr "Error de programación: La aplicación envió datos no válidos."
-
-#~ msgid "No matching results"
-#~ msgstr "No se encontró ningún resultado coincidente"
-
-#~ msgid "A keyring with that name does not exist."
-#~ msgstr "No existe un depósito de claves con ese nombre."
-
-#~ msgid "The keyring has already been unlocked."
-#~ msgstr "El depósito de claves ya se ha desbloqueado."
-
-#~ msgid ""
-#~ "A list of paths to PKCS#11 modules to load. No modules are currently "
-#~ "listed by default, as this is still an experimental feature. This is used "
-#~ "by seahorse and other PKCS#11 aware applications."
-#~ msgstr ""
-#~ "Una lista de rutas de módulos PKCS#11 que cargar. De forma predeterminada "
-#~ "no se lista ningún módulo, ya que ésta es una característica "
-#~ "experimental. Contraseñas y claves de cifrado y otras aplicaciones "
-#~ "PKCS#11 lo usan."
-
-#~ msgid "Import private key"
-#~ msgstr "Importar clave privada"
-
-#~ msgid "Import public key"
-#~ msgstr "Importar clave pública"
-
-#~ msgid "Import"
-#~ msgstr "Importar"
-
-#~ msgid "The system wants to import the private key '%s', but it is locked"
-#~ msgstr ""
-#~ "El sistema quiere importar la clave privada «%s», pero está bloqueada"
-
-#~ msgid "The system wants to import the certificate '%s', but it is locked"
-#~ msgstr "El sistema quiere importar el certificado «%s», pero está bloqueado"
-
-#~ msgid "The system wants to import the public key '%s', but it is locked"
-#~ msgstr ""
-#~ "El sistema quiere importar la clave privada «%s», pero está bloqueada"
-
-#~ msgid "The system wants to import '%s', but it is locked"
-#~ msgstr "El sistema quiere importar «%s», pero está bloqueado"
-
-#~ msgid "Create Storage for Key Information"
-#~ msgstr "Crear depósito para la información de la clave"
-
-#~ msgid "Choose password to protect storage"
-#~ msgstr "Elija la contraseña para el depósito"
-
-#~ msgid ""
-#~ "The system wants to store information about your keys and certificates. "
-#~ "In order to protect this information, choose a password with which it "
-#~ "will be locked."
-#~ msgstr ""
-#~ "El sistema quiere almacenar información acerca de sus claves y "
-#~ "certificados. Para poder proteger esta información, elija una contraseña "
-#~ "con la que se bloquearán."
-
-#~ msgid "Unlock Storage for Key Information"
-#~ msgstr "Desbloquear el depósito para la información de la clave"
-
-#~ msgid "Enter password to unlock storage"
-#~ msgstr "Introduzca la contraseña para desbloquear el depósito"
-
-#~ msgid ""
-#~ "The system wants to access information about your keys and certificates, "
-#~ "but it is locked."
-#~ msgstr ""
-#~ "El sistema quiere acceder a la información acerca de sus claves y "
-#~ "certificados, pero está bloqueado."
-
-#~ msgid "Trust Association"
-#~ msgstr "Asociación de confianza"
-
-#~ msgid "Cannot delete '%s' because it is tied to other objects."
-#~ msgstr "No se puede borrar «%s» porque está atada a otros objetos."
-
-#~ msgid "Lock private key"
-#~ msgstr "Bloquear la clave privada"
-
-#~ msgid "Lock"
-#~ msgstr "Bloquear"
-
-#~ msgid "Enter password to protect the private key"
-#~ msgstr "Introduzca la contraseña para proteger la clave privada"
-
-#~ msgid "Enter password to protect storage"
-#~ msgstr "Introduzca la contraseña para proteger el depósito"
-
-#~ msgid ""
-#~ "The system wants to store the private key '%s' on your disk. Please enter "
-#~ "a password to lock it with."
-#~ msgstr ""
-#~ "El sistema quiere almacenar la clave privada «%s» en su disco. Introduzca "
-#~ "una contraseña para bloquearlo con ella."
-
-#~ msgid ""
-#~ "The system wants to store '%s' on your disk. Please enter a password to "
-#~ "lock it with."
-#~ msgstr ""
-#~ "El sistema quiere almacenar «%s» en su disco. Introduzca una contraseña "
-#~ "para bloquearlo con ella."
-
-#~ msgid "Unrecognized or unsupported file."
-#~ msgstr "Archivo no reconocido o no soportado."
-
-#~ msgid "Could not parse invalid or corrupted file."
-#~ msgstr "No se pudo analizar el archivo inválido o corrupto."
-
-#~ msgid "Couldn't encode secure shell public key."
-#~ msgstr "No se pudo codificar la clave pública de la shell segura."
-
-#~ msgid "Couldn't read secure shell private key: %s"
-#~ msgstr "No se pudo leer la clave privada de la shell segura: %s"
-
-#~ msgid "Invalid secure shell private key at: %s"
-#~ msgstr "Clave privada de shell segura no válida en: %s"
-
-#~ msgid "Couldn't encrypt the SSH key to store it."
-#~ msgstr "No se pudo cifrar la clave SSH para almacenarla."
-
-#~ msgid "Couldn't encode the SSH key to store it."
-#~ msgstr "No se pudo codificar la clave SSH para almacenarla."
-
-#~ msgid "Secondary prompt text"
-#~ msgstr "Texto secundario de la pregunta"
-
-#~ msgid "gtk-cancel"
-#~ msgstr "gtk-cancel"
-
-#~ msgid "gtk-ok"
-#~ msgstr "gtk-ok"
-
-#~ msgid "Cannot set a random seed"
-#~ msgstr "No se puede establecer una semilla aleatoria"
diff --git a/po/et.po b/po/et.po
index df6d7271..d48f59a0 100644
--- a/po/et.po
+++ b/po/et.po
@@ -11,29 +11,35 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring MASTER\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&component=general\n"
-"POT-Creation-Date: 2011-03-09 19:00+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-03-10 08:00+0200\n"
"Last-Translator: Ivar Smolin <okul@linux.ee>\n"
"Language-Team: Estonian <gnome-et@linux.ee>\n"
+"Language: et\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: et\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Nimetu"
+#: ../daemon/dbus/gkd-secret-change.c:86
msgid "Change Keyring Password"
msgstr "Võtmerõnga parooli vahetamine"
+#: ../daemon/dbus/gkd-secret-change.c:88
#, c-format
msgid "Choose a new password for the '%s' keyring"
msgstr "Määra võtmerõngale '%s' uus parool"
+#: ../daemon/dbus/gkd-secret-change.c:92
#, c-format
msgid ""
"An application wants to change the password for the '%s' keyring. Choose the "
@@ -42,15 +48,19 @@ msgstr ""
"Rakendus tahab muuta võtmerõnga '%s' parooli. Määra selle võtmerõnga jaoks "
"uus parool."
+#: ../daemon/dbus/gkd-secret-change.c:111
msgid "The original password was incorrect"
msgstr "Algne parool ei ole korrektne"
+#: ../daemon/dbus/gkd-secret-create.c:83
msgid "New Keyring Password"
msgstr "Uue võtmerõnga parool"
+#: ../daemon/dbus/gkd-secret-create.c:84
msgid "Choose password for new keyring"
msgstr "Sisesta uue võtmerõnga parool"
+#: ../daemon/dbus/gkd-secret-create.c:86
#, c-format
msgid ""
"An application wants to create a new keyring called '%s'. Choose the "
@@ -59,627 +69,250 @@ msgstr ""
"Rakendus tahab luua uut võtmerõngast nimega '%s'. Määra selle võtmerõnga "
"jaoks parool."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
msgid "Certificate and Key Storage"
msgstr "Sertifikaadi- ja võtmehoidla"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
msgid "GNOME Keyring: PKCS#11 Component"
msgstr "GNOME võtmerõngas: PKCS#11 komponent"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
msgid "GNOME Keyring: Secret Service"
msgstr "GNOME võtmerõngas: saladuste teenus"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
msgid "Secret Storage Service"
msgstr "Saladuste hoidmise teenus"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
msgid "GNOME Keyring: SSH Agent"
msgstr "GNOME võtmerõngas: SSH-agent"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
msgid "SSH Key Agent"
msgstr "SSH-võtmete agent"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
msgid "GNOME Keyring: GPG Agent"
msgstr "GNOME võtmerõngas: GPG-agent"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
msgid "GPG Password Agent"
msgstr "GPG-võtmete agent"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Tundmatu"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP-võti: %s"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Sisesta parool"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "See parool tuleb unustada, kui ma olen jõude"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "See parool unustatakse pärast"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "See parool tuleb minu väljalogimisel unustada"
# Kas see peaks olema "Sisselogimisel"?
#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Sisselogimine"
+#: ../egg/egg-oid.c:41
msgid "Domain Component"
msgstr "Domeeni osa"
+#: ../egg/egg-oid.c:43
msgid "User ID"
msgstr "Kasutaja ID"
+#: ../egg/egg-oid.c:46
msgid "Email Address"
msgstr "E-posti aadress"
+#: ../egg/egg-oid.c:54
msgid "Date of Birth"
msgstr "Sünniaeg"
+#: ../egg/egg-oid.c:56
msgid "Place of Birth"
msgstr "Sünnikoht"
+#: ../egg/egg-oid.c:58
msgid "Gender"
msgstr "Sugu"
+#: ../egg/egg-oid.c:60
msgid "Country of Citizenship"
msgstr "Koduriik"
+#: ../egg/egg-oid.c:62
msgid "Country of Residence"
msgstr "Asukohariik"
+#: ../egg/egg-oid.c:65
msgid "Common Name"
msgstr "Ãœldine nimi"
+#: ../egg/egg-oid.c:67
msgid "Surname"
msgstr "Perekonnanimi"
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Seerianumber"
+#: ../egg/egg-oid.c:71
msgid "Country"
msgstr "Riik"
+#: ../egg/egg-oid.c:73
msgid "Locality"
msgstr "Paikkond"
+#: ../egg/egg-oid.c:75
msgid "State"
msgstr "Maakond"
+#: ../egg/egg-oid.c:77
msgid "Street"
msgstr "Tänav"
+#: ../egg/egg-oid.c:79
msgid "Organization"
msgstr "Organisatsioon"
+#: ../egg/egg-oid.c:81
msgid "Organizational Unit"
msgstr "Organisatsiooni üksus"
+#: ../egg/egg-oid.c:83
msgid "Title"
msgstr "Tiitel"
+#: ../egg/egg-oid.c:85
msgid "Telephone Number"
msgstr "Telefoni number"
+#: ../egg/egg-oid.c:87
msgid "Given Name"
msgstr "Eesnimi"
+#: ../egg/egg-oid.c:89
msgid "Initials"
msgstr "Initsiaalid"
+#: ../egg/egg-oid.c:91
msgid "Generation Qualifier"
msgstr "Põlvkonna eraldaja"
+#: ../egg/egg-oid.c:93
msgid "DN Qualifier"
msgstr "Eraldusnime (DN) eraldaja"
+#: ../egg/egg-oid.c:95
msgid "Pseudonym"
msgstr "Pseudonüüm"
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "MD2 koos RSA-ga"
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "MD5 koos RSA-ga"
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "SHA1 koos RSA-ga"
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "SHA1 koos DSA-ga"
-#, c-format
-msgid "Unexpected error in select() reading data from a child process (%s)"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
msgstr ""
-"Ootamatu viga alamprotsessilt andmete lugemisel funktsiooniga select() (%s)"
-
-#, c-format
-msgid "Unexpected error in waitpid() (%s)"
-msgstr "Ootamatu viga waitpid() funktsioonis (%s)"
-
-msgid "Certificate"
-msgstr "Sertifikaat"
-
-msgid "Extension"
-msgstr "Laiend"
-
-msgid "Identifier"
-msgstr "Identifitseerja"
-
-msgid "Value"
-msgstr "Väärtus"
-
-msgid "Critical"
-msgstr "Kriitiline"
-
-msgid "Yes"
-msgstr "Jah"
-
-msgid "No"
-msgstr "Ei"
-
-msgid "Couldn't export the certificate."
-msgstr "Sertifikaati pole võimalik eksportida."
-
-msgid "Identity"
-msgstr "Identiteet"
-
-msgid "Verified by"
-msgstr "Verifitseerija"
-
-msgid "Expires"
-msgstr "Aegub"
-
-#. The subject
-msgid "Subject Name"
-msgstr "Subjekti nimi"
-
-#. The Issuer
-msgid "Issuer Name"
-msgstr "Väljaandja nimi"
-
-#. The Issued Parameters
-msgid "Issued Certificate"
-msgstr "Väljastatud sertifikaat"
-
-msgid "Version"
-msgstr "Versioon"
-
-msgid "Not Valid Before"
-msgstr "Pole kehtiv enne"
-
-msgid "Not Valid After"
-msgstr "Pole kehtiv pärast"
-
-msgid "Signature Algorithm"
-msgstr "Allkirja algoritm"
-
-msgid "Signature Parameters"
-msgstr "Allkirja parameetrid"
-
-msgid "Signature"
-msgstr "Allkiri"
-
-#. Public Key Info
-msgid "Public Key Info"
-msgstr "Avaliku võtme andmed"
-
-msgid "Key Algorithm"
-msgstr "Võtme algoritm"
-
-msgid "Key Parameters"
-msgstr "Võtme parameetrid"
-
-msgid "Key Size"
-msgstr "Võtme suurus"
-
-msgid "Public Key"
-msgstr "Avalik võti"
-
-#. Fingerprints
-msgid "Fingerprints"
-msgstr "Sõrmejäljed"
-
-msgid "Import Certificates and Keys"
-msgstr "Sertifikaatide ja võtmete importimine"
-
-msgid "Import Into:"
-msgstr "Impordi kuhu:"
-
-msgid "Password:"
-msgstr "Parool:"
-
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "See võtmerõngas võetakse minu sisselogimisel automaatselt lukust lahti"
-
-msgid "Lock this keyring after"
-msgstr "See võtmerõngas lukustatakse pärast"
-
-msgid "Lock this keyring if idle for"
-msgstr "See võtmerõngas lukustatakse pärast jõudeolekut"
-
-msgid "Lock this keyring when I log out"
-msgstr "See võtmerõngas pannakse minu väljalogimisel lukku"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-msgid "minutes"
-msgstr "minutit"
-
-msgid "Enter password to unlock the private key"
-msgstr "Sisesta salajase võtme luku avamise parool"
-
-msgid "Enter password to unlock the certificate"
-msgstr "Sisesta sertifikaadi luku avamise parool"
-
-msgid "Enter password to unlock"
-msgstr "Sisesta luku avamise parool"
-
-#. TRANSLATORS: The key is locked.
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Salajase võtme importimiseks ei tohi see olla lukus"
-
-#. TRANSLATORS: The certificate is locked.
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Sertifikaadi importimiseks ei tohi see olla lukus"
-
-#. TRANSLATORS: The data is locked.
-msgid "In order to import the data, it must be unlocked"
-msgstr "Andmete importimiseks peavad need olema lukust lahti"
-
-#. TRANSLATORS: The key is locked.
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Salajase võtme '%s' importimiseks ei tohi see olla lukus"
-
-#. TRANSLATORS: The certificate is locked.
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Sertifikaadi '%s' importimiseks ei tohi see olla lukus"
-
-#. TRANSLATORS: The object '%s' is locked.
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "'%s' importimiseks ei tohi see olla lukus"
-
-msgid "The operation was cancelled"
-msgstr "Toiming katkestati"
-
-#, c-format
-msgid "No location available to import to"
-msgstr "Asukohta, kuhu importida, pole saadaval"
-
-msgid "Import Certificates/Keys"
-msgstr "Sertifikaatide/võtmete importimine"
-
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Vali asukoht imporditud sertifikaatide/võtmete säilitamiseks."
-msgid "Key"
-msgstr "Võti"
-
-msgid "Private RSA Key"
-msgstr "Salajane RSA-võti"
-
-msgid "Private DSA Key"
-msgstr "Salajane DSA-võti"
-
-msgid "Private Key"
-msgstr "Salajane võti"
-
-msgid "Public DSA Key"
-msgstr "Avalik DSA-võti"
-
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bitt"
-msgstr[1] "%d bitti"
-
-msgid "Strength"
-msgstr "Tugevus"
-
-msgid "Algorithm"
-msgstr "Algoritm"
-
-msgid "Size"
-msgstr "Suurus"
-
-#. TODO: We need to have consistent key fingerprints.
-msgid "Fingerprint"
-msgstr "Sõrmejälg"
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
+msgstr ""
-msgid "Unrecognized or unsupported data."
-msgstr "Arusaamatud või toetamata andmed."
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
-msgid "Could not parse invalid or corrupted data."
-msgstr "Vigaseid või rikutud andmeid pole võimalik töödelda."
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
-msgid "The data is locked"
-msgstr "Andmed on lukustatud"
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Määratud sertifikaadi säilitamiseks pole võimalik kohta leida"
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr ""
+"Ootamatu viga alamprotsessilt andmete lugemisel funktsiooniga select() (%s)"
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid "The URI has invalid syntax. The '%s' field encoding is invalid."
-msgstr "Vigane URI süntaks. Välja '%s' kooditabel on vigane."
-
-msgid "The URI has does not have the 'pkcs11' scheme."
-msgstr "URI-l puudub skeem 'pkcs11'."
-
-msgid "Insufficient memory available"
-msgstr "Vaba mälu pole piisavalt"
-
-msgid "The specified slot ID is not valid"
-msgstr "Määratud siini ID pole sobiv"
-
-msgid "Internal error"
-msgstr "Sisemine viga"
-
-msgid "The operation failed"
-msgstr "Toiming nurjus"
-
-msgid "Invalid arguments"
-msgstr "Vigased argumendid"
-
-msgid "The module cannot create needed threads"
-msgstr "Moodulil pole võimalik vajalikke lõimi luua"
-
-msgid "The module cannot lock data properly"
-msgstr "Moodulil pole võimalik andmeid õigel viisil lukustada"
-
-msgid "The field is read-only"
-msgstr "Väli on kirjutuskaitsega"
-
-msgid "The field is sensitive and cannot be revealed"
-msgstr "See väli on tundlik ja seda pole võimalik nähtavale tuua"
-
-msgid "The field is invalid or does not exist"
-msgstr "Väli on vigane või pole seda olemas"
-
-msgid "Invalid value for field"
-msgstr "Vigane väärtus või väli"
-
-msgid "The data is not valid or unrecognized"
-msgstr "Andmed pole sobivad või ei tuntud neid ära"
-
-msgid "The data is too long"
-msgstr "Andmed on liiga pikad"
-
-msgid "An error occurred on the device"
-msgstr "Seadmes esines viga"
-
-msgid "Insufficient memory available on the device"
-msgstr "Sellel seadmel pole piisavalt mälu saadaval"
-
-msgid "The device was removed or unplugged"
-msgstr "Seade on eemaldatud või lahti ühendatud"
-
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "Krüpteeritud andmed pole sobivad või ei tuntud neid ära"
-
-msgid "The encrypted data is too long"
-msgstr "Krüptitud andmed on liiga pikad"
-
-msgid "This operation is not supported"
-msgstr "See toiming pole toetatud"
-
-msgid "The key is missing or invalid"
-msgstr "Võti puudub või on vigane"
-
-msgid "The key is the wrong size"
-msgstr "Võti on vale suurusega"
-
-msgid "The key is of the wrong type"
-msgstr "Võti on valet liiki"
-
-msgid "No key is needed"
-msgstr "Võtit pole vaja"
-
-msgid "The key is different than before"
-msgstr "Võti erineb varasemast võtmest"
-
-msgid "A key is needed"
-msgstr "Võti on vajalik"
-
-msgid "Cannot include the key in the digest"
-msgstr "Võtit pole võimalik sõnumilühendisse kaasata"
-
-msgid "This operation cannot be done with this key"
-msgstr "Selle võtmega pole seda toimingut võimalik lõpetada"
-
-msgid "The key cannot be wrapped"
-msgstr "Seda võtit pole võimalik mähkida"
-
-msgid "Cannot export this key"
-msgstr "Seda võtit pole võimalik eksportida"
-
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "Krüptomehhanism on tundmatu või vigane"
-
-msgid "The crypto mechanism has an invalid argument"
-msgstr "Krüpteerimismehhanismile edastati sobimatu argument"
-
-msgid "The object is missing or invalid"
-msgstr "Objekt puudub või on vigane"
-
-msgid "Another operation is already taking place"
-msgstr "Üks toiming on juba käimas"
-
-msgid "No operation is taking place"
-msgstr "Hetkel ei viida ühtegi toimingut läbi"
-
-msgid "The password or PIN is incorrect"
-msgstr "Parool või PIN ei ole korrektne"
-
-msgid "The password or PIN is invalid"
-msgstr "Parool või PIN on vigane"
-
-msgid "The password or PIN is of an invalid length"
-msgstr "Parool või PIN on vale pikkusega"
-
-msgid "The password or PIN has expired"
-msgstr "Parool või PIN on aegunud"
-
-msgid "The password or PIN is locked"
-msgstr "Parool või PIN on lukus"
-
-msgid "The session is closed"
-msgstr "Seanss on suletud"
-
-msgid "Too many sessions are active"
-msgstr "Liiga palju seansse on aktiivsed"
-
-msgid "The session is invalid"
-msgstr "Seanss on vigane"
-
-msgid "The session is read-only"
-msgstr "Seanss on kirjutuskaitsega"
-
-msgid "An open session exists"
-msgstr "Avatud seanss on juba olemas"
-
-msgid "A read-only session exists"
-msgstr "Kirjutuskaitsega seanss on olemas"
-
-msgid "An administrator session exists"
-msgstr "Halduri seanss on olemas"
-
-msgid "The signature is bad or corrupted"
-msgstr "Signatuur on vigane või rikutud"
-
-msgid "The signature is unrecognized or corrupted"
-msgstr "Allkirja pole võimalik ära tunda või on see rikutud"
-
-msgid "Certain required fields are missing"
-msgstr "Osad vajalikud väljad on puudu"
-
-msgid "Certain fields have invalid values"
-msgstr "Osad väljad sisaldavad vigaseid väärtuseid"
-
-msgid "The device is not present or unplugged"
-msgstr "Seadet pole või on seade ühendamata"
-
-msgid "The device is invalid or unrecognizable"
-msgstr "Seade on vigane või pole seda võimalik ära tunda"
-
-msgid "The device is write protected"
-msgstr "Seade on kirjutuskaitsega"
-
-msgid "Cannot import because the key is invalid"
-msgstr "Importimine pole võimalik, kuna võti on vigane"
-
-msgid "Cannot import because the key is of the wrong size"
-msgstr "Importimine pole võimalik, kuna võti on vale suurusega"
-
-msgid "Cannot import because the key is of the wrong type"
-msgstr "Importimine pole võimalik, kuna võti on valet liiki"
-
-msgid "You are already logged in"
-msgstr "Sa oled juba sisse logitud"
-
-msgid "No user has logged in"
-msgstr "Kasutaja on sisse logitud"
-
-msgid "The user's password or PIN is not set"
-msgstr "Kasutaja parool või PIN on määramata"
-
-msgid "The user is of an invalid type"
-msgstr "Kasutaja on vigast liiki"
-
-msgid "Another user is already logged in"
-msgstr "Teine kasutaja on juba sisse logitud"
-
-msgid "Too many users of different types are logged in"
-msgstr "Liiga palju eri liiki kasutajaid on sisse logitud"
-
-msgid "Cannot import an invalid key"
-msgstr "Vigast võtit pole võimalik importida"
-
-msgid "Cannot import a key of the wrong size"
-msgstr "Vale suurusega võtit pole võimalik importida"
-
-msgid "Cannot export because the key is invalid"
-msgstr "Eksportimine pole võimalik, kuna võti on vigane"
-
-msgid "Cannot export because the key is of the wrong size"
-msgstr "Eksportimine pole võimalik, kuna võti on vale suurusega"
-
-msgid "Cannot export because the key is of the wrong type"
-msgstr "Eksportimine pole võimalik, kuna võti on valet liiki"
-
-msgid "Unable to initialize the random number generator"
-msgstr "Juhunumbri genereerijat pole võimalik lähtestada"
-
-msgid "No random number generator available"
-msgstr "Juhuarvude generaator pole saadaval"
-
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "Krüpteerimismehhanismi parameeter pole sobiv"
-
-msgid "Not enough space to store the result"
-msgstr "Tulemuse salvestamiseks pole piisavalt vaba ruumi"
-
-msgid "The saved state is invalid"
-msgstr "Salvestatud olek on vigane"
-
-msgid "The information is sensitive and cannot be revealed"
-msgstr "Need andmed on tundlikud ja neid ei saa avaldada"
-
-msgid "The state cannot be saved"
-msgstr "Olekut pole võimalik salvestada"
-
-msgid "The module has not been initialized"
-msgstr "Moodul on lähtestamata"
-
-msgid "The module has already been initialized"
-msgstr "Moodul on juba lähtestatud"
-
-msgid "Cannot lock data"
-msgstr "Andmeid pole võimalik lukustada"
-
-msgid "The data cannot be locked"
-msgstr "Andmeid pole võimalik lukustada"
-
-msgid "The signature request was rejected by the user"
-msgstr "Kasutaja lükkas allkirjapäringu tagasi"
-
-msgid "Unknown error"
-msgstr "Tundmatu viga"
+msgid "Unexpected error in waitpid() (%s)"
+msgstr "Ootamatu viga waitpid() funktsioonis (%s)"
+#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Nimetu sertifikaat"
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
msgid "Couldn't parse public SSH key"
msgstr "Avalikku SSH võtit pole võimalik analüüsida"
#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Luku avamise parool võtmerõngale: %s"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
msgid "The unlock password was incorrect"
msgstr "Lukust lahtivõtmise parool ei ole korrektne"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
msgid "Unlock Login Keyring"
msgstr "Sisselogimise võtmerõnga lukust lahtivõtmine"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
msgid "Enter password to unlock your login keyring"
msgstr "Sisesta sisselogimise võtmerõnga luku avamise parool"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
msgid ""
"The password you use to log in to your computer no longer matches that of "
"your login keyring."
@@ -687,65 +320,93 @@ msgstr ""
"Sinu arvutisse sisselogimiseks kasutatud parool ei ühti enam sinu "
"sisselogimise võtmerõnga parooliga."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
msgid ""
"The login keyring did not get unlocked when you logged into your computer."
msgstr ""
"Sisselogimise võtmerõngast ei võetud automaatselt lukust lahti, kui sa "
"sellesse arvutisse sisse logisid."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
msgid "Unlock Keyring"
msgstr "Võtmerõnga avamine"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
#, c-format
msgid "Enter password for keyring '%s' to unlock"
msgstr "Sisesta parool võtmerõnga '%s' avamiseks"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
#, c-format
msgid "An application wants access to the keyring '%s', but it is locked"
msgstr "Rakendus tahab kasutada võtmerõngast '%s', kuid see on lukus"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
msgid "Unlock private key"
msgstr "Võta salajane võti lukust lahti"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
msgid "Unlock certificate"
msgstr "Võta sertifikaat lukust lahti"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
msgid "Unlock public key"
msgstr "Võta avalik võti lukust lahti"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
msgid "Unlock"
msgstr "Võta lukust lahti"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Sisesta salajase võtme luku avamise parool"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Sisesta sertifikaadi luku avamise parool"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Sisesta avaliku võtme luku avamise parool"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Sisesta luku avamise parool"
+
#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
msgid "An application wants access to the private key '%s', but it is locked"
msgstr "Rakendus tahab kasutada salajast võtit '%s', kuid see on lukus"
#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
#, c-format
msgid "An application wants access to the certificate '%s', but it is locked"
msgstr "Rakendus tahab kasutada sertifikaati '%s', kuid see on lukus"
#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
#, c-format
msgid "An application wants access to the public key '%s', but it is locked"
msgstr "Rakendus tahab kasutada avalikku võtit '%s', kuid see on lukus"
#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
#, c-format
msgid "An application wants access to '%s', but it is locked"
msgstr "Rakendus tahab kasutada '%s', kuid see on lukus"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
msgid "Unlock certificate/key storage"
msgstr "Võta sertifikaadi-/võtmehoidla lukust lahti"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
msgid "Enter password to unlock the certificate/key storage"
msgstr "Sisesta sertifikaadi-/võtmehoidla luku avamise parool"
#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
#, c-format
msgid ""
"An application wants access to the certificate/key storage '%s', but it is "
@@ -753,12 +414,15 @@ msgid ""
msgstr ""
"Rakendus tahab kasutada sertifikaadi-/võtmehoidlat '%s', kuid see on lukus"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
msgid "New Password Required"
msgstr "Vajalik uus parool"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
msgid "New password required for secure storage"
msgstr "Turvahoidla jaoks on vaja uut parooli"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
#, c-format
msgid ""
"In order to prepare '%s' for storage of certificates or keys, a password is "
@@ -766,31 +430,39 @@ msgid ""
msgstr ""
"'%s' sertide ja võtmete hoidmise jaoks ettevalmistamiseks on vaja parooli"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
msgid "Change Password"
msgstr "Parooli vahetamine"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
msgid "Change password for secure storage"
msgstr "Turvalise hoidla parooli vahetamine"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
msgid ""
"To change the password for '%s', the original and new passwords are required"
msgstr "'%s' parooli muutmiseks on vaja nii endist kui uut parooli"
+#: ../tool/gkr-tool.c:102
#, c-format
msgid "usage: gnome-keyring command [options]\n"
msgstr "kasutamine: gnome-keyring käsk [valikud]\n"
+#: ../tool/gkr-tool.c:104
msgid "commands: "
msgstr "käsud: "
#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
msgid " "
msgstr " "
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Kas salvestada paroolid krüptimata kujul?"
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -799,38 +471,50 @@ msgstr ""
"Tühja parooli valimise korral pole sul võimalik salvestatud paroole ohtult "
"kaitsta. Need jäävad avatuks igaühele, kel on sinu failidele ligipääs."
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Kasuta ebaturvalist hoidlat"
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Paroolid pole vastavuses."
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Parool ei tohi olla tühi"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
msgid "Keyring Access"
msgstr "Ligipääs võtmerõngale"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
msgid "Unlock access to passwords and other secrets"
msgstr "Paroolidele ja teistele saladustele ligipääsu võimaldamine"
+#: ../ui/gku-prompt.ui.h:1
msgid "New password strength"
msgstr "Uue parooli tugevus"
+#: ../ui/gku-prompt.ui.h:2
msgid "_Application:"
msgstr "_Rakendus:"
+#: ../ui/gku-prompt.ui.h:3
msgid "_Confirm:"
msgstr "_Kinnitus:"
+#: ../ui/gku-prompt.ui.h:4
msgid "_Details:"
msgstr "_Ãœksikasjad:"
+#: ../ui/gku-prompt.ui.h:5
msgid "_Name:"
msgstr "_Nimi:"
+#: ../ui/gku-prompt.ui.h:6
msgid "_Old Password:"
msgstr "_Vana parool:"
+#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Parool:"
diff --git a/po/eu.po b/po/eu.po
index f36b0b8e..927e9dac 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: eu_to_be_translate\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-24 10:49+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-24 10:48+0200\n"
"Last-Translator: \n"
"Language-Team: American English <kde-i18n-doc@kde.org>\n"
@@ -101,8 +101,7 @@ msgstr "GNOMEren gako-sorta: GPG agentea"
msgid "GPG Password Agent"
msgstr "GPG pasahitzaren agentea"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Ezezaguna"
@@ -129,7 +128,7 @@ msgid "Forget this password when I log out"
msgstr "Ahaztu pasahitz hau nik saioa amaitzean"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Saio-hasiera"
@@ -173,7 +172,7 @@ msgstr "Izen arrunta"
msgid "Surname"
msgstr "Abizena"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Serie-zenbakia"
@@ -229,7 +228,7 @@ msgstr "DN identifikatzailea"
msgid "Pseudonym"
msgstr "Goitizena"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -245,7 +244,7 @@ msgstr "MD5 RSA-rekin"
msgid "SHA1 with RSA"
msgstr "SHA1 RSA-rekin"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -285,587 +284,6 @@ msgstr ""
msgid "Unexpected error in waitpid() (%s)"
msgstr "Ustekabeko errorea waitpid() (%s) funtzioan"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Errorea PKCS#11 modulua kargatzean: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "PKCS#11 modulu baliogabea: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Ezin izan da PKCS#11 modulua konfiguratu: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "Ezin izan da PKCS#11 modulua hasieratu: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "Ezin izan dira erregistratutako PKCS#11 moduluak hasieratu: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Izena"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Jaulkitzailea"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "Iraungitze-data"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:262
-msgid "Certificate"
-msgstr "Ziurtagiria"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Badago lehendik izen hori duen fitxategi bat.</b>\n"
-"\n"
-"Fitxategi berriarekin ordeztu nahi duzu?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_Ordeztu"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "Eragiketa bertan behera utzi da."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Esportatu ziurtagiria"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Ziurtagiri-fitxategiak"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "PEM fitxategiak"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Bestelako izena"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "XMPP helb"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "Posta elektronikoa"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "X400 helbidea"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Direktorio-izena"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "EDI taldearen izena"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URIa"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "IP helbidea"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "Erregistratutako IDa"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Oinarrizko murriztapenak"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "Ziurtagiri-emailea"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Bai"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Ez"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Bide-izenaren gehienezko luzera"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Mugagabea"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Tekla gehigarriaren erabilera"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Onartutako xedeak"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Gai gakoaren identifikatzailea"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Gako identifikatzailea"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Sinadura digitala"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Gako-zifraketa"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Datu-zifraketa"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Gako-hitzarmena"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Ziurtagiriaren sinadura"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Errebokatze-zerrendaren sinadura"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Gakoaren erabilera"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Erabilerak"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Gaiaren bestelako izenak"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Luzapena"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Identifikatzailea"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Balioa"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Larria"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Ezin izan da ziurtagiria esportatu."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "Identitatea"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Honek egiaztatuta"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "Iraungitze-data"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Gaiaren izena"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Jaulkitzailearen izena"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Jaulkitako ziurtagiria"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Bertsioa"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Ez da baliozkoa honen aurretik"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Ez da baliozkoa honen ondoren"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Ziurtagiriaren hatz-markak"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Sinadura"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Sinaduraren algoritmoa"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Sinaduraren parametroak"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Gako publikoaren informazioa"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Gakoaren algoritmoa"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Gakoaren parametroak"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Gakoaren tamaina"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "Gakoaren SHA1 hatz-marka"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:265
-msgid "Public Key"
-msgstr "Gako publikoa"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_Xehetasunak"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "Ezin izan da '%s' bistaratu"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "Ezin izan da fitxategia bistaratu"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Arrazoia"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Ezin da mota honetako fitxategirik bistaratu."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Inportatu ziurtagiriak eta gakoak"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Inportatu hona:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Pasahitza:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "PGP gakoa"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "Gakoaren IDa"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Gnupg prozesua ondorengo kodearekin irten da: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Gnupg prozesua ondorengo seinalearekin amaitu da: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1921 ../gcr/gcr-parser.c:2179
-msgid "The operation was cancelled"
-msgstr "Eragiketa bertan behera utzi da"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Idatzi pasahitza gako pribatua desblokeatzeko"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Idatzi pasahitza ziurtagiria desblokeatzeko"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Idatzi pasahitza desblokeatzeko"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Gako pribatua inportatzeko desblokeatu egin behar da"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Ziurtagiria inportatzeko desblokeatu egin behar da"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Datuak inportatzeko desblokeatu egin behar dira"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "'%s' gako pribatua inportatzeko desblokeatu egin behar da"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "'%s' ziurtagiria inportatzeko desblokeatu egin behar da"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "'%s' inportatzeko desblokeatu egin behar da"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Ez dago kokaleku erabilgarririk horra inportatzeko"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Inportatu ziurtagiriak/gakoak"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Aukeratu kokalekua inportatutako ziurtagiriak/gakoak gordetzeko."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Gakoa"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "RSA gako pribatua"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "DSA gako pribatua"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:259
-msgid "Private Key"
-msgstr "Gako pribatua"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "DSA gako publikoa"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "bit %d"
-msgstr[1] "%d bit"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Indarra"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algoritmoa"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Tamaina"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Hatz-markak"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1924
-msgid "Unrecognized or unsupported data."
-msgstr "Datu ezezaguna edo onartu gabea."
-
-#: ../gcr/gcr-parser.c:1927
-msgid "Could not parse invalid or corrupted data."
-msgstr "Ezin izan dira hondatutako edo baliogabeak diren datuak analizatu."
-
-#: ../gcr/gcr-parser.c:1930
-msgid "The data is locked"
-msgstr "Datuak blokeatuta daude"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Ezin izan da salbuespen-ziurtagiria gordetzeko lekurik aurkitu"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Desblokeatu automatikoki gako-sorta hau saioa hastean"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Blokeatu gako-sorta:"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Blokeatu gako-sorta inaktibo badago:"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Blokeatu gako-sorta saioa amaitzean"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minututan"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "Desblokeatu: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Desblokeatu"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "Pasahitza okerra da"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Pasahitza"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr ""
-"Blokeatuta daude '%s'(r)en edukiak. Ikusi ahal izateko, sartu pasahitz "
-"zuzena."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr "Blokeatuta daude edukiak. Ikusi ahal izateko, sartu pasahitz zuzena."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "GCR ziurtagiria eta gakoen ikustailea"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Erakutsi aplikazioaren bertsioa"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[fitxategia...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- Ikusi ziurtagien eta gakoen fitxategiak"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "Ziurtagiri-ikustailea"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "URIak kodeketa baliogabea du."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "URIak ez dauka 'pkcs11' eskema."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "URIaren sintaxia okerra da."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "URIak bertsio-zenbaki okerra dauka."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Izenik gabeko ziurtagiria"
@@ -934,10 +352,26 @@ msgstr "Desblokeatu ziurtagiria"
msgid "Unlock public key"
msgstr "Desblokeatu gako publikoa"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Desblokeatu"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Idatzi pasahitza gako pribatua desblokeatzeko"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Idatzi pasahitza ziurtagiria desblokeatzeko"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Idatzi pasahitza gako publikoa desblokeatzeko"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Idatzi pasahitza desblokeatzeko"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1025,11 +459,11 @@ msgstr "komandoak: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:596
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Gorde pasahitzak enkriptatu gabe?"
-#: ../ui/gku-prompt-tool.c:597
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1039,15 +473,15 @@ msgstr ""
"segurtasunez enkriptatuko. Zure fitxategiak atzitu ditzakeen edonork "
"pasahitz hauek atzi ditzake."
-#: ../ui/gku-prompt-tool.c:604
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Erabili segurtasun gabeko biltegia"
-#: ../ui/gku-prompt-tool.c:644
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Pasahitzak ez datoz bat."
-#: ../ui/gku-prompt-tool.c:654
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Pasahitza ezin da hutsa izan"
@@ -1086,334 +520,3 @@ msgstr "Pasahitz _zaharra:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Pasahitza:"
-
-#~ msgid "Fingerprint"
-#~ msgstr "Hatz-marka"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "Ez dago nahikoa memoria erabilgarri"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "Zehaztutako IDa ez da baliozkoa"
-
-#~ msgid "Internal error"
-#~ msgstr "Barneko errorea"
-
-#~ msgid "The operation failed"
-#~ msgstr "Eragiketak huts egin du"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "Argumentu baliogabeak"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "Moduluak ezin du beharrezko hariak sortu"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "Moduluak ezin du datuak ongi blokeatu"
-
-#~ msgid "The field is read-only"
-#~ msgstr "Eremua irakurtzeko soilik da"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "Eremua pribatua da, eta ezin da azaldu"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "Eremua baliogabea da edo ez da existitzen"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "Eremuaren balio baliogabea"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "Datua ez da baliozkoa edo ez da ezagutzen"
-
-#~ msgid "The data is too long"
-#~ msgstr "Datua luzeegia da"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "Errorea gertatu da gailuan"
-
-#~ msgid "Insufficient memory available on the device"
-#~ msgstr "Ez dago nahikoa memoria erabilgarri gailuan"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "Gailua kendu edo deskonektatu egin da"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "Enkriptatutako datua ez da baliozkoa edo ez da ezagutzen"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "Enkriptatutako datua luzeegia da"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "Eragiketa hau ez dago onartuta"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "Gakoa falta da edo baliogabea da"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "Gakoak okerreko tamaina du"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "Gakoa okerreko motakoa da"
-
-#~ msgid "No key is needed"
-#~ msgstr "Ez da gakorik behar"
-
-#~ msgid "The key is different than before"
-#~ msgstr "Gakoa aurrekotik desberdina da"
-
-#~ msgid "A key is needed"
-#~ msgstr "Gakoa behar da"
-
-#~ msgid "Cannot include the key in the digest"
-#~ msgstr "Ezin da gakoa laburpenean txertatu"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "Eragiketa hau ezin da gako honekin egin"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "Gakoa ez da itzulbiratu"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "Ezin da gako hau esportatu"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "Zifratzeko motorra baliogabea da, edo ezezaguna"
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "Zifratzeko motorrak argumentu baliogabe bat du"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "Objektua falta da edo baliogabea da"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "Jadanik beste eragiketa bat ari da lantzen"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "Ez da eragiketarik lantzen ari"
-
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "Pasahitza edo PINa ez da zuzena"
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "Pasahitza edo PINa baliogabea da"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "Pasahitza edo PINaren luzera baliogabekoa da"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "Pasahitza edo PINa iraungitu egin da"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "Pasahitza edo PINa blokeatuta dago"
-
-#~ msgid "The session is closed"
-#~ msgstr "Saioa itxi da"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "Saio gehiegi daude aktibo"
-
-#~ msgid "The session is invalid"
-#~ msgstr "Saio baliogabea"
-
-#~ msgid "The session is read-only"
-#~ msgstr "Saioa irakurtzeko soilik da"
-
-#~ msgid "An open session exists"
-#~ msgstr "Irekitako saioa badago lehendik ere"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "Irakurtzeko soilik den saioa badago lehendik ere"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "Administratzailearen saioa badago lehendik ere"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "Sinadura okerrekoa da edo hondatuta dago"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "Sinadura ez da ezaguna edo hondatuta dago"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "Beharrezkoak diren zenbait eremu falta dira"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "Eremu batzuk balio baliogabeak dituzte"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "Gailua ez dago edo deskonektatuta dago"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "Gailua baliogabea da edo ezezaguna"
-
-#~ msgid "The device is write protected"
-#~ msgstr "Gailuak idazketaren aurkako babesa du"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "Ezin da inportatu gakoa baliogabea delako"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "Ezin da inportatu gakoak okerreko tamaina duelako"
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "Ezin da inportatu gakoa okerreko motakoa delako"
-
-#~ msgid "You are already logged in"
-#~ msgstr "Jadanik saioa hasita zaude"
-
-#~ msgid "No user has logged in"
-#~ msgstr "Ez dago erabiltzailerik saioa hasi duenik"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "Erabiltzailearen pasahitza edo PINa ez dago ezarrita"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "Erabiltzailea mota baliogabekoa da"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "Beste erabiltzaile bat dago saioa hasita"
-
-#~ msgid "Too many users of different types are logged in"
-#~ msgstr "Mota desberdinetako erabiltzaile gehiegik hasi dute saioa"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "Ezin da gako baliogabea inportatu"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "Ezin da okerreko tamaina duen gakoa inportatu"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "Ezin da esportatu gakoa baliogabea delako"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "Ezin da esportatu gakoak okerreko tamaina duelako"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "Ezin da esportatu gakoa okerreko motakoa delako"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "Ezin da ausazko zenbakien sortzailea hasieratu"
-
-#~ msgid "No random number generator available"
-#~ msgstr "Ez dago ausazko zenbaki sortzailea erabilgarri"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "Zifratzeko motorrak parametro baliogabea du"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "Ez dago nahikoa lekurik emaitza gordetzeko"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "Gordetako egoera baliogabea da"
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "Informazioa pribatua da, eta ezin da azaldu"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "Egoera ezin da gorde"
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "Modulua ez da hasieratu"
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "Modulua jadanik hasieratuta dago"
-
-#~ msgid "Cannot lock data"
-#~ msgstr "Ezin dira datuak blokeatu"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "Datuak ezin dira blokeatu"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "Erabiltzaileak ukatu egin du sinaduraren eskaera"
-
-#~ msgid "Unknown error"
-#~ msgstr "Errore ezezaguna"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>Ez da ziurtagiriaren zatia</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>ezezaguna</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<Ez da ziurtagiriaren zatia>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>Hatz-markak</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Jaulkitzailea</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Honentzat jaulkia</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>Ziurtagiri hau ondorengo erabileretarako egiaztatu da:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>Baliozkotasuna</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "Izen arrunta (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "Posta elektronikoko hartzailearen ziurtagiria"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "Posta elektronikoko sinatzailearen ziurtagiria"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "MD5 hatz-marka"
-
-#~ msgid "Organization (O)"
-#~ msgstr "Erakundea (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "Erakundeko Saila (OU)"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr ""
-#~ "<span size='large' weight='bold'>Inportatu ziurtagiriak eta gakoak</span>"
-
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Aukera honek PKCS#11 osagaia gaitzen du gnome-keyring daemon-ean. gnome-"
-#~ "session-ekin abiaraztean soilik hartzen da eragina (adib. erabiltzaileak "
-#~ "saioa hastean). Ezarpen hau gainidatzi egingo da komando-lerroko "
-#~ "argumentu batzuk daemon-ari ematean."
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "Aukera honek SSH agentea gaitzen du gnome-keyring daemon-ean. gnome-"
-#~ "keyring-daemon abiaraztean soilik hartzen da eragina (adib. "
-#~ "erabiltzaileak saioa hastean). Ezarpen hau gainidatzi egingo da komando-"
-#~ "lerroko argumentu batzuk daemon-ari ematean."
-
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Aukera honek PKCS#11 osagaia gaitzen du gnome-keyring daemon-ean. gnome-"
-#~ "session-ekin abiaraztean soilik hartzen da eragina (adib. erabiltzaileak "
-#~ "saioa hastean). Ezarpen hau gainidatzi egingo da komando-lerroko "
-#~ "argumentu batzuk daemon-ari ematean."
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "'Gnome-keyring'-en PKCS#11 osagaia gaitu behar den ala ez."
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "'Gnome-keyring'-en SSH agentea gaitu behar den ala ez."
-
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr "'Gnome-keyring'-en ezkutuko zerbitzua gaitu behar den ala ez."
diff --git a/po/fa.po b/po/fa.po
index befba20c..4c212da6 100644
--- a/po/fa.po
+++ b/po/fa.po
@@ -6,11 +6,12 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-09-01 10:15+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: \n"
"Last-Translator: Arash Mousavi <mousavi.arash@gmail.com>\n"
"Language-Team: Persian <translate@ifsug.org>\n"
+"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -20,10 +21,9 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANSLATORS: This is the label for an keyring created without a label
-#: ../daemon/dbus/gkd-secret-change.c:78
-#: ../daemon/dbus/gkd-secret-create.c:79
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "بدون نام"
@@ -39,8 +39,12 @@ msgstr "انتخاب یک گذرواژه دیگر برای دسته‌کلید Â
#: ../daemon/dbus/gkd-secret-change.c:92
#, c-format
-msgid "An application wants to change the password for the '%s' keyring. Choose the new password you want to use for it."
-msgstr "یک برنامه می‌خواهد گذرواژه را برای دسته‌کلید «%s» تغییر بدهد. گذرواژه جدید برای استÙاده از آن را انتخاب کنید."
+msgid ""
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
+msgstr ""
+"یک برنامه می‌خواهد گذرواژه را برای دسته‌کلید «%s» تغییر بدهد. گذرواژه جدید "
+"برای استÙاده از آن را انتخاب کنید."
#: ../daemon/dbus/gkd-secret-change.c:111
msgid "The original password was incorrect"
@@ -56,8 +60,12 @@ msgstr "یک گذرواژه برای دسته‌کلید جدید انتخاب Ú
#: ../daemon/dbus/gkd-secret-create.c:86
#, c-format
-msgid "An application wants to create a new keyring called '%s'. Choose the password you want to use for it."
-msgstr "برنامه‌ای می‌خواهد یک دسته‌کلید جدید به نام «%s» ایجاد کند. یک گذرواژه برای استÙاده از آن انتخاب کنید."
+msgid ""
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
+msgstr ""
+"برنامه‌ای می‌خواهد یک دسته‌کلید جدید به نام «%s» ایجاد کند. یک گذرواژه برای "
+"استÙاده از آن انتخاب کنید."
#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
msgid "Certificate and Key Storage"
@@ -91,36 +99,34 @@ msgstr "دسته‌کلید گنوم: مامور GPG"
msgid "GPG Password Agent"
msgstr "مامور گذرواژه GPG"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104
-#: ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "ناشناس"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "کلید PGP: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "عبارت رمز (Passphrase) را وارد کنید"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Ùراموش کردن گذرواژه اگر بیکار بود برای"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Ùراموش کردن این گذرواژه پس از"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Ùراموش کردن این گذرواژه اگر از سیستم خارج شدم"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "ورود به سیستم"
@@ -165,7 +171,6 @@ msgid "Surname"
msgstr "نام خانوادگی"
#: ../egg/egg-oid.c:69
-#: ../gcr/gcr-certificate-renderer.c:652
msgid "Serial Number"
msgstr "شماره سریال"
@@ -222,7 +227,6 @@ msgid "Pseudonym"
msgstr "اسم مستعار"
#: ../egg/egg-oid.c:98
-#: ../gcr/gcr-key-renderer.c:310
msgid "RSA"
msgstr "RSA"
@@ -239,7 +243,6 @@ msgid "SHA1 with RSA"
msgstr "SHA1 همراه با RSA"
#: ../egg/egg-oid.c:103
-#: ../gcr/gcr-key-renderer.c:312
msgid "DSA"
msgstr "DSA"
@@ -278,605 +281,6 @@ msgstr "خطای غیر منتظره در select() خواندن اطلاعات Ø
msgid "Unexpected error in waitpid() (%s)"
msgstr "خطای غیر منتظره در waitpid() «%s»"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "خطا در هنگام بار کردن ماژول PKCS#11، خطا: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "ماژول PKCS#11 نامعتبر: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "نمی‌توان ماژول PKCS#11 را نصب کرد: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "نمی‌توان ماژول PKCS#11 را مقدار دهی اولیه کرد: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "نمی‌توان ماژول PKCS#11 ثبت شده را مقدار دهی اولیه کرد: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388
-#: ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "نام"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "صادر شده توسط"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "انقضا"
-
-#: ../gcr/gcr-certificate.c:1060
-#: ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101
-#: ../gcr/gcr-parser.c:263
-msgid "Certificate"
-msgstr "گواهینامه"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>یک پرونده با این نام از قبل وجود دارد.</b>\n"
-"\n"
-"آیا می‌خواهید آن را با پرونده جدید جای‌گزین کنید؟"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_جای‌گزین کردن"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "عملیات لغو شد."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "صدور گواهینامه"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "پرونده‌های گواهینامه"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "پرونده‌های PEM"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "نام دیگر"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-#| msgid "IP Address"
-msgid "XMPP Addr"
-msgstr "آدرس XMPP"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-#| msgid "DNS"
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "پست‌الکترونیکی"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "دی‌ان‌اس"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "آدرس X400"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "نام شاخه"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "نام دسته EDI"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "آدرس اینترنتی"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "آدرس آی‌پی"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "شناسه ثبت شده"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "محدودیت‌های پایه"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "گواهینامه مجاز"
-
-#: ../gcr/gcr-certificate-renderer.c:119
-#: ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "بله"
-
-#: ../gcr/gcr-certificate-renderer.c:119
-#: ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "خیر"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "بیشینه اندازه مسیر"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "نامحدود"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "نحوه استÙاده از کلید تعمیم یاÙته"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "اهدا٠مجاز"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "شناساگر کلید موضوع"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "شناساگر کلید"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "امضا دیجیتالی"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "کلید encipherment"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "اطلاعات encipherment"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "مواÙقتنامه کلید"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "امضا گواهینامه"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Ùهرست ابطال امضا"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "نحوه استÙاده کلید"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "نحوه استÙاده"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "نام‌های جایگزین موضوع"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "اÙزونه"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "شناساگر"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "مقدار"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "حیاتی"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "نمی‌توان گواهینامه صادر کرد."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "هویت"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "تایید شده توسط"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "انقضا"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "نام موضوع"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "نام صادر کننده"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "گواهینامه صادر شده"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "نسخه"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "معتبر نیست قبل از"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "معتبر نیست بعد از"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "اثرهای انگشت گواهینامه"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675
-#: ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "امضا"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "الگوریتم امضا"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "پارامترهای امضا"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "اطلاعات کلید عمومی"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "الگوریتم کلید"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "پارامترهای کلید"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "اندازه کلید"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "کلید اثرانگشت SHA1"
-
-#: ../gcr/gcr-certificate-renderer.c:719
-#: ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:266
-msgid "Public Key"
-msgstr "کلید عمومی"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_جزئیات"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "نمی‌توان «%s» را نمایش داد"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "نمی‌توان پرونده را نمایش داد"
-
-#: ../gcr/gcr-failure-renderer.c:170
-#| msgid "Version"
-msgid "Reason"
-msgstr "دلیل"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "نمی‌توان پرونده‌ای با این نوع را نمایش داد."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "وارد کردن گواهینامه‌ها و کلیدها"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "وارد کردن به:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "گذرواژه:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "کلید PGP"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "شناسه کلید"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Ùراروند Gnupg با کد مقابل خارج شد: %Id"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Ùراروند Gnupg با کد پایان یاÙت: %Id"
-
-#: ../gcr/gcr-gnupg-process.c:695
-#: ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1747
-#: ../gcr/gcr-parser.c:2005
-msgid "The operation was cancelled"
-msgstr "عملیات لغو شد"
-
-#: ../gcr/gcr-importer.c:172
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "برای باز کردن Ù‚ÙÙ„ کلید خصوصی گذرواژه را وارد کنید"
-
-#: ../gcr/gcr-importer.c:174
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "برای باز کردن Ù‚ÙÙ„ گواهینامه گذرواژه را وارد کنید"
-
-#: ../gcr/gcr-importer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "برای باز کردن Ù‚ÙÙ„ گذرواژه را وارد کنید"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "برای وارد کردن کلید خصوصی، باید Ù‚ÙÙ„ آن باز شود"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "برای وارد کردن گواهینامه، باید Ù‚ÙÙ„ آن باز شود"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "برای وارد کردن اطلاعات، باید Ù‚ÙÙ„ آن باز شود"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "برای وارد کردن کلید خصوصی «%s»، باید Ù‚ÙÙ„ آن باز شود"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "برای وارد کردن گواهینامه «%s»، باید Ù‚ÙÙ„ آن باز شود"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "برای وارد کردن «%s»، باید Ù‚ÙÙ„ آن باز شود"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "هیچ محلی برای وارد کردن به آن موجود نیست"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "وارد کردن گواهینامه‌ها/کلیدها"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "یک مکان را برای ذخیره کردن گواهینامه‌ها/کلیدها وارد شده انتخاب کنید."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "کلید"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "کلید RSA خصوصی"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "کلید DSA خصوصی"
-
-#: ../gcr/gcr-key-renderer.c:287
-#: ../gcr/gcr-parser.c:260
-msgid "Private Key"
-msgstr "کلید خصوصی"
-
-#: ../gcr/gcr-key-renderer.c:290
-#: ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "کلید DSA عمومی"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%Id بیت"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "استحکام"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "الگوریتم"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "اندازه"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "اثرهای انگشت"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1750
-msgid "Unrecognized or unsupported data."
-msgstr "اطلاعات پشتیبانی یا تشخیص داده نشده."
-
-#: ../gcr/gcr-parser.c:1753
-msgid "Could not parse invalid or corrupted data."
-msgstr "نمی‌توان اطلاعات نادرست یا خراب را تجزیه کرد."
-
-#: ../gcr/gcr-parser.c:1756
-msgid "The data is locked"
-msgstr "اطلاعات Ù‚ÙÙ„ است"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "نمی‌توان یک محل برای دخیره گواهینامه پین شده پیدا کرد"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "به طور خودکار هنگامی Ú©Ù‡ وارد سیستم شدم Ù‚ÙÙ„ این دسته‌کلید را باز Ú©Ù†"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Ù‚ÙÙ„ کردن این دسته‌کلید بعد از"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Ù‚ÙÙ„ کردن این دسته‌کلید اگر بیکار بود، برای"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Ù‚ÙÙ„ کردن این دسته‌کلید هنگامی Ú©Ù‡ از سیستم خارج شدم"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "دقیقه"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-#| msgid "Unlock"
-msgid "Unlock: %s"
-msgstr "بازکردن Ù‚ÙÙ„: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65
-#: ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "بازکردن Ù‚ÙÙ„"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-#| msgid "The unlock password was incorrect"
-msgid "The password was incorrect"
-msgstr "گذرواژه‌ نادرست بود"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-#| msgid "Password:"
-msgid "Password"
-msgstr "گذرواژه"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid "The contents of '%s' are locked. In order to view the contents, enter a the correct password."
-msgstr "محتویات «%s» Ù‚ÙÙ„ شده است. جهت نمایش محتویات، گذرواژه صحیح را وارد کنید."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid "The contents are locked. In order to view the contents, enter a the correct password."
-msgstr "محتویات Ù‚ÙÙ„ شده‌اند. جهت نمایش محتویات، گذرواژه صحیح را وارد کنید."
-
-#: ../gcr/gcr-viewer-tool.c:41
-#| msgid "Certificate and Key Storage"
-msgid "GCR Certificate and Key Viewer"
-msgstr "نمایشگر گواهی‌نامه و کلید GCR"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "نمایش نسخه برنامه"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[file...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-#| msgid "Certificate files"
-msgid "- View certificate and key files"
-msgstr "- نمایش پرونده‌های گواهینامه و کلید"
-
-#: ../gcr/gcr-viewer-tool.c:118
-#| msgid "Certificate files"
-msgid "Certificate Viewer"
-msgstr "نمایشگر گواهینامه"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "کدگذاری آدرس نادرست است."
-
-#: ../gck/gck-uri.c:177
-#| msgid "The URI has does not have the 'pkcs11' scheme."
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "آدرس Ø´Ùمای «pkcs11» را ندارد."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "آدرس ترکیب بدی دارد."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "عدد نسخه آدرس مناسب نیست."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "گواهینامه بی‌نام"
@@ -886,7 +290,7 @@ msgid "Couldn't parse public SSH key"
msgstr "نمی‌توان کلید SSH عمومی را تجزیه کرد"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "گذرواژه‌ی باز کردن Ù‚ÙÙ„ برای: %s"
@@ -905,11 +309,16 @@ msgid "Enter password to unlock your login keyring"
msgstr "برای باز کردن Ù‚ÙÙ„ دسته‌کلید ورود به سیستم، گذرواژه خود را وارد کنید"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
-msgid "The password you use to log in to your computer no longer matches that of your login keyring."
-msgstr "گذرواژه‌ای Ú©Ù‡ شما برای ورود به سیستم از آن استÙاده می‌کنید دیگر با مورد دسته‌کلید٠ورود به سیستم شما منطبق نیست."
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
+msgstr ""
+"گذرواژه‌ای Ú©Ù‡ شما برای ورود به سیستم از آن استÙاده می‌کنید دیگر با مورد "
+"دسته‌کلید٠ورود به سیستم شما منطبق نیست."
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
-msgid "The login keyring did not get unlocked when you logged into your computer."
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
msgstr "Ù‚ÙÙ„ دسته‌کلید ورود به سیستم هنگام ورود شما به رایانه باز نشد."
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
@@ -938,10 +347,26 @@ msgstr "باز کردن Ù‚ÙÙ„ گواهینامه"
msgid "Unlock public key"
msgstr "باز کردن Ù‚ÙÙ„ کلید"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "بازکردن Ù‚ÙÙ„"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "برای باز کردن Ù‚ÙÙ„ کلید خصوصی گذرواژه را وارد کنید"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "برای باز کردن Ù‚ÙÙ„ گواهینامه گذرواژه را وارد کنید"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "برای باز کردن Ù‚ÙÙ„ کلید عمومی گذرواژه را وارد کنید"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "برای باز کردن Ù‚ÙÙ„ گذرواژه را وارد کنید"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -977,8 +402,11 @@ msgstr "گذرواژه را برای باز کردن Ù‚ÙÙ„ مخزن گواهیÙ
#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
#, c-format
-msgid "An application wants access to the certificate/key storage '%s', but it is locked"
-msgstr "یک برنامه می‌خواهد به مخزن گواهینامه/کلید «%s» دسترسی داشته باشد، اما Ù‚ÙÙ„ است"
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr ""
+"یک برنامه می‌خواهد به مخزن گواهینامه/کلید «%s» دسترسی داشته باشد، اما Ù‚ÙÙ„ است"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
msgid "New Password Required"
@@ -990,8 +418,11 @@ msgstr "یک گذرواژه جدید برای مخزن امن لازم است"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
#, c-format
-msgid "In order to prepare '%s' for storage of certificates or keys, a password is required"
-msgstr "جهت آماده کردن «%s» برای مخزن گواهینامه‌ها و کلیدها، یک گذرواژه لازم است"
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
+"جهت آماده کردن «%s» برای مخزن گواهینامه‌ها و کلیدها، یک گذرواژه لازم است"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
msgid "Change Password"
@@ -1003,8 +434,10 @@ msgstr "تغییر گذرواژه برای مخزن امن"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
-msgid "To change the password for '%s', the original and new passwords are required"
-msgstr "جهت تغییر گذرواژه برای «%s»، گذرواژه‌ی اصلی و گذرواژه جدید مورد نیاز است"
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
+msgstr ""
+"جهت تغییر گذرواژه برای «%s»، گذرواژه‌ی اصلی و گذرواژه جدید مورد نیاز است"
#: ../tool/gkr-tool.c:102
#, c-format
@@ -1020,23 +453,28 @@ msgstr "Ùرمان‌ها: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "ذخیره گذرواژه به صورت رمزنگاری نشده؟"
-#: ../ui/gku-prompt-tool.c:595
-msgid "By choosing to use a blank password, your stored passwords will not be safely encrypted. They will be accessible by anyone with access to your files."
-msgstr "با انتخاب گذرواژه خالی، گذرواژه‌های ذخیره شده شما به درستی رمزنگاری نخواهند شد. آنها به وسیله هرکسی Ú©Ù‡ دسترسی به پرونده‌های شما دارد دست‌یاÙتنی است."
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
+"با انتخاب گذرواژه خالی، گذرواژه‌های ذخیره شده شما به درستی رمزنگاری نخواهند "
+"شد. آنها به وسیله هرکسی Ú©Ù‡ دسترسی به پرونده‌های شما دارد دست‌یاÙتنی است."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "استÙاده از مخزن ناامن"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "گذرواژه‌ها منطبق نیستند."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "گذرواژه نمی‌تواند خالی ندارد"
@@ -1075,4 +513,3 @@ msgstr "_گذرواژه قبلی:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_گذرواژه"
-
diff --git a/po/fi.po b/po/fi.po
index 1e200bd3..abaeea39 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-08 13:38+0300\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-08 13:38+0300\n"
"Last-Translator: Tommi Vainikainen <Unknown>\n"
"Language-Team: Finnish <gnome-fi-laatu@lists.sourceforge.net>\n"
@@ -26,7 +26,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Nimetön"
@@ -102,35 +102,34 @@ msgstr "Gnomen avainnippu: GPG-agentti"
msgid "GPG Password Agent"
msgstr "GPG-salasanojen agentti"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Tuntematon"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP-avain: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Syötä salasana"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr ""
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr ""
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Unohda tämä salasana, kun kirjaudun ulos"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Sisäänkirjautuminen"
@@ -174,7 +173,7 @@ msgstr "Yleinen nimi"
msgid "Surname"
msgstr "Sukunimi"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Sarjanumero"
@@ -230,7 +229,7 @@ msgstr "DN-määre"
msgid "Pseudonym"
msgstr "Pseudonyymi"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -246,7 +245,7 @@ msgstr "MD5 ja RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 ja RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -286,582 +285,6 @@ msgstr ""
msgid "Unexpected error in waitpid() (%s)"
msgstr "Odottamaton virhe waitpid()-kutsussa (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr ""
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr ""
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr ""
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr ""
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr ""
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr ""
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr ""
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr ""
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "Varmenne"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr ""
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr ""
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr ""
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr ""
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr ""
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr ""
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr ""
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr ""
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "Sähköpostiosoite"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr ""
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr ""
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr ""
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr ""
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr ""
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr ""
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Kyllä"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Ei"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Pääte"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Tunniste"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Arvo"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Kriittinen"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "Vanhenee"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Kohteen nimi"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Myöntäjän nimi"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Myöntäjän varmenne"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Versio"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Ei voimassa ennen"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Ei voimassa jälkeen"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr ""
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Allekirjoitus"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Allekirjoituksen algoritmi"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Allekirjoituksen parametrit"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Tietoja julkisesta avaimesta"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Avaimen algoritmi"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Avaimen parametrit"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Avaimen koko"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "Julkinen avain"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr ""
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr ""
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr ""
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr ""
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr ""
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr ""
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Tuo kohteeseen:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Salasana:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr ""
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr ""
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr ""
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr ""
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1786 ../gcr/gcr-parser.c:2044
-msgid "The operation was cancelled"
-msgstr "Toiminto peruttiin"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Avaa salaisen avaimen lukitus syöttämällä salasana"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Avaa varmenteen lukitus syöttämällä salasana"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Avaa syöttämällä salasana"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Jotta voit tuoda salaisen avaimen, sen lukitus täytyy avata"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Jotta voit tuoda varmenteen, sen lukitus täytyy avata"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Jotta voit tuoda tietoja, sen lukitus täytyy avata"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Tuodaksesi julkisen avaimen â€%s†sen lukitus täytyy olla avattu."
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Tuodaksesi varmenteen â€%s†sen lukitus täytyy olla avattu."
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Tuodaksesi kohteen â€%s†sen lukitus täytyy olla avattu."
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Kohteen tuontia varten ei ole sijaintia saatavilla"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Tuo varmenteita tai avaimia"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Valitse sijainti, johon tuodut varmenteet tai avaimet tallennetaan."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr ""
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Yksityinen RSA-avain"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Yksityinen DSA-avain"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "Salainen avain"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Julkinen DSA-avain"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bitti"
-msgstr[1] "%d bittiä"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Vahvuus"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algoritmi"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Koko"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Sormenjäljet"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr ""
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr ""
-
-#: ../gcr/gcr-parser.c:1789
-msgid "Unrecognized or unsupported data."
-msgstr "Tuntematon tai ei tuettu tieto."
-
-#: ../gcr/gcr-parser.c:1792
-msgid "Could not parse invalid or corrupted data."
-msgstr "Virheellistä tai viallista tietoa ei voitu tulkita."
-
-#: ../gcr/gcr-parser.c:1795
-msgid "The data is locked"
-msgstr "tiedot on lukittu"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr ""
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Avaa tämä avainnippu automaattisesti sisäänkirjauduttaessa"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Lukitse tämä avainnippu"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Lukitse tämä avainnippu jouten oltaessa"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Lukitse tämä avainnippu uloskirjauduttaessa"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minuutin kuluttua"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr ""
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Avaa lukitus"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr ""
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr ""
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter a the "
-"correct password."
-msgstr ""
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter a the correct "
-"password."
-msgstr ""
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr ""
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr ""
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr ""
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr ""
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr ""
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr ""
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr ""
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr ""
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr ""
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Nimeämätön varmenne"
@@ -871,7 +294,7 @@ msgid "Couldn't parse public SSH key"
msgstr "SSH-avaimen julkista osaa ei voitu tulkita."
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Avaava salasana kohteelle: %s"
@@ -931,10 +354,26 @@ msgstr "Avaa varmenne"
msgid "Unlock public key"
msgstr "Avaa julkinen avain"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Avaa lukitus"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Avaa salaisen avaimen lukitus syöttämällä salasana"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Avaa varmenteen lukitus syöttämällä salasana"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Avaa julkisen avaimen lukitus syöttämällä salasana"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Avaa syöttämällä salasana"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1024,11 +463,11 @@ msgstr "komennot: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Tallennetaanko salasanat salaamattomassa muodossa?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1038,15 +477,15 @@ msgstr ""
"turvallisesti. Kuka tahansa, joka pääsee käsiksi tiedostoihisi, pääsee "
"käsiksi myös salasanoihin."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Käytä turvatonta tallennusta"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Salasanat eivät täsmää."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Salasana ei voi olla tyhjä"
@@ -1085,304 +524,3 @@ msgstr "_Vanha salasana:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Salasana:"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "Satunnaislukugeneraattoria ei voitu alustaa"
-
-#~ msgid "Unknown error"
-#~ msgstr "Tuntematon virhe"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "Käyttäjä ei hyväksynyt allekirjoituspyyntöä"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "Tietoja ei voi lukita"
-
-#~ msgid "Cannot lock data"
-#~ msgstr "Tietoja ei voi lukita"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "Tilaa ei voi tallentaa"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "Tallennettu tila on virheellinen"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "Tila ei riitä tuloksen tallentamiseen"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "Salausmenetelmän parametri on virheellinen"
-
-#~ msgid "No random number generator available"
-#~ msgstr "Satunnaislukugeneraattoria ei ole saatavilla"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "Vienti ei onnistu, koska avain on väärän kokoinen"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "Vienti ei onnistu, koska avain on väärän kokoinen"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "Vienti ei onnistu, koska avain on virheellinen"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "Väärän kokoista avainta ei voi tuoda"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "Virheellistä avainta ei voi tuoda"
-
-#~ msgid "Too many users of different types logged in"
-#~ msgstr "Liian monta erityyppistä käyttäjää on kirjautunut sisään"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "Toinen käyttäjä on jo kirjautunut sisään"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "Käyttäjä on väärän tyyppinen"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "Käyttäjän salasanaa tai PIN-koodia ei ole asetettu"
-
-#~ msgid "No user has logged in"
-#~ msgstr "Yhtäkään käyttäjää ei ole kirjautunut sisään"
-
-#~ msgid "You are already logged in"
-#~ msgstr "Olet jo kirjautunut sisään"
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "Tuonti epäonnistui, koska avain oli väärän tyyppinen"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "Tuonti epäonnistui, koska avain oli väärän kokoinen"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "Tuonti epäonnistui, koska avain oli virheellinen"
-
-#~ msgid "The device is write protected"
-#~ msgstr "Laite on kirjoitussuojattu"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "Laite on virheellinen tai sitä ei voi tunnistaa"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "Joissain kentissä on virheellinen arvo"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "Jotkut vaadituista kentistä puuttuvat"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "Allekirjoitusta ei voitu tunnistaa tai se on vioittunut"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "Allekirjoitus on virheellinen tai vioittunut"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "Ylläpitäjän istunto on olemassa"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "Vain luettavissa oleva istunto on olemassa"
-
-#~ msgid "An open session exists"
-#~ msgstr "Avoin istunto on olemassa"
-
-#~ msgid "The session is read-only"
-#~ msgstr "Istunto on vain luettavissa"
-
-#~ msgid "The session is invalid"
-#~ msgstr "Istunto on virheellinen"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "Liian monta avointa istuntoa"
-
-#~ msgid "The session is closed"
-#~ msgstr "Istunto on suljettu"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "Salasana tai PIN-koodin on lukittu"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "Salasana tai PIN-koodi on vanhentunut"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "Salasanan tai PIN-koodin pituus ei ole kelvollinen"
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "Salasana tai PIN-koodi on virheellinen"
-
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "Salasana tai PIN-koodi on väärä"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "Yhtään toimintoa ei ole käynnissä"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "Toinen toiminto on jo käynnissä"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "Kohde puuttuu tai on virheellinen"
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "Salausmenetelmän argumentti on virheellinen"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "Salausmenetelmä on virheellinen tai sitä ei voitu tunnistaa"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "Tätä avainta ei voi viedä"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "Avainta ei voi rivittää"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "Tätä toimintoa ei voi suorittaa tällä avaimella"
-
-#~ msgid "Cannot include the key in digest"
-#~ msgstr "Avainta ei voi liittää tiivisteeseen"
-
-#~ msgid "A key is needed"
-#~ msgstr "Avain tarvitaan"
-
-#~ msgid "The key is different than before"
-#~ msgstr "Avain on eri kuin aikaisemmin"
-
-#~ msgid "No key is needed"
-#~ msgstr "Avainta ei tarvita"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "Avain on väärän tyyppinen"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "Avain on väärän kokoinen"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "Avain puuttuu tai on viallinen"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "Tämä toiminto ei ole tuettu"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "Salattu tieto on liian pitkä"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "Salattu tieto ei ole kelvollista tai sitä ei voitu tunnistaa"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "Laite poistettiin tai irrotettiin"
-
-#~ msgid "Insufficient memory available on device"
-#~ msgstr "Laitteen muisti ei riitä"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "Tapahtui virhe laitteella"
-
-#~ msgid "The data is too long"
-#~ msgstr "Tieto on liian pitkä"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "Tieto ei ollut kelvollinen tai sitä ei tunnistettu"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "Virheellinen kentän arvo"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "Kenttä on virheellinen tai sitä ei ole olemassa"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "Kenttä on luottamuksellinen eikä sitä voi paljastaa"
-
-#~ msgid "The field is read-only"
-#~ msgstr "Kenttä on vain luettavissa"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "Virheelliset argumentit"
-
-#~ msgid "The operation failed"
-#~ msgstr "Toiminto epäonnistui"
-
-#~ msgid "Internal error"
-#~ msgstr "Sisäinen virhe"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "Annettu lohkotunniste ei ole kelvollinen"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "Muisti ei riitä"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr "<span size='large' weight='bold'>Tuo varmenteita ja avaimia</span>"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>Ei osa varmennetta</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>tuntematon</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<Ei varmenteen osa>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>Sormenjäljet</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Myöntänyt</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Myönnetty taholle</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr ""
-#~ "<b>Tämä varmenne on vahvistettu seuraavia käyttökohteita varten:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>Kelpoisuus</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "Yleinen nimi (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "Sähköpostin vastaanottajan varmenne"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "Sähköpostin allekirjoittajan varmenne"
-
-#~ msgid "Expires On"
-#~ msgstr "Vanhenee"
-
-#~ msgid "Issued On"
-#~ msgstr "Myönnetty"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "MD5-sormenjälki"
-
-#~ msgid "Organization (O)"
-#~ msgstr "Organisaatio (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "Organisaatioyksikkö (OU)"
-
-#~ msgid "SHA1 Fingerprint"
-#~ msgstr "SHA1-varmenne"
-
-#~ msgid "SSL Client Certificate"
-#~ msgstr "SSL-asiakasvarmenne"
-
-#~ msgid "SSL Server Certificate"
-#~ msgstr "SSL-palvelinvarmenne"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "Moduuli ei voi luoda vaadittuja säikeitä"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "Moduuli ei voi lukita tietoja kunnolla"
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "Moduulia ei ole alustettu"
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "Moduuli on jo alustettu"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "Laite ei ole saatavilla tai on irrotettu"
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "Tieto on luottamuksellista eikä sitä voi näyttää"
diff --git a/po/fr.po b/po/fr.po
index 5caad8fb..b42edf25 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -17,12 +17,12 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring HEAD\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-09-12 10:43+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-09 13:20+0200\n"
"Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
"Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -31,7 +31,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Sans nom"
@@ -107,35 +107,34 @@ msgstr "Trousseau de clés GNOME : agent GPG"
msgid "GPG Password Agent"
msgstr "Agent de mot de passe GPG"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Inconnu"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "Clé PGP : %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Saisissez la phrase de passe"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Oublier ce mot de passe s'il est inactif pendant"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Oublier ce mot de passe après"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Oublier ce mot de passe quand je me déconnecte"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Connexion"
@@ -179,7 +178,7 @@ msgstr "Nom courant"
msgid "Surname"
msgstr "Nom de famille"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Numéro de série"
@@ -235,7 +234,7 @@ msgstr "Qualificatif DN"
msgid "Pseudonym"
msgstr "Pseudonyme"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -251,7 +250,7 @@ msgstr "MD5 avec RSA"
msgid "SHA1 with RSA"
msgstr "SHA+ avec RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -292,591 +291,6 @@ msgstr ""
msgid "Unexpected error in waitpid() (%s)"
msgstr "Erreur inattendue dans waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Erreur de chargement du module PKCS#11 : %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Module PKCS#11 non valide : %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Impossible de configurer le module PKCS#11 : %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "Impossible d'initialiser le module PKCS#11 : %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "Impossible d'initialiser les modules PKCS#11 enregistrés : %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Nom"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Émis par"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "Expire"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "Certificat"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Un fichier portant ce nom existe déjà.</b>\n"
-"\n"
-"Voulez-vous le remplacer par un nouveau fichier ?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_Remplacer"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "L'opération a été annulée."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Exporter le certificat"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Fichiers de certificat"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "Fichiers PEM"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Autre nom"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "Adresse XMPP"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "Courriel"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "Adresse X400"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Nom d'annuaire"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "Nom de partenaire EDI"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "Adresse IP"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "ID enregistré"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Contraintes de base"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "Autorité de certification"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Oui"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Non"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Longueur de chemin maximale"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Illimité"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Utilisation de clé étendue"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Usages autorisés"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Identificateur de clé du sujet"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Identificateur de clé"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Signature numérique"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Chiffrement de clé"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Chiffrement de données"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Accord de clé"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Signature de certificat"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Signature de liste de révocation"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Utilisation de clé"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Utilisations"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Noms alternatifs du sujet"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Extension"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Identificateur"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Valeur"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Critique"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Impossible d'exporter le certificat."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "Identité"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Vérifié par"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "Expire"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Nom du sujet"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Nom d'émetteur"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Certificat émis"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Version"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Non valide avant"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Non valide après"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Empreintes de certificat"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Signature"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Algorithme de signature"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Paramètres de signature"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Information sur la clé publique"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Algorithme de la clé"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Paramètres de la clé"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Taille de la clé"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "Empreinte SHA1 de clé"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "Clé publique"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_Détails"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "Impossible d'afficher « %s »"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "Impossible d'afficher le fichier"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Motif"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Impossible d'afficher un fichier de ce type."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Importer certificats et clés"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Importer vers :"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Mot de passe :"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "Clé PGP"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "ID de la clé"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Le processus gnupg s'est terminé avec le code : %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Le processus gnupg a été fermé par le signal : %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919 ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "L'opération a été annulée"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Saisissez le mot de passe pour déverrouiller la clé privée"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Saisissez le mot de passe pour déverrouiller le certificat"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Saisissez le mot de passe pour déverrouiller"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Pour importer la clé privée, elle doit être déverrouillée"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Pour importer le certificat, il doit être déverrouillé"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Pour importer les données, elles doivent être déverrouillées"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Pour importer la clé privée « %s », elle doit être déverrouillée"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Pour importer le certificat « %s », il doit être déverrouillé"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Pour importer « %s », il doit être déverrouillé"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Aucun emplacement disponible comme destination d'importation"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Importer les certificats/clés"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Choisissez un emplacement pour stocker les certificats/clés importés."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Clé"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Clé RSA privée"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Clé DSA privée"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "Clé privée"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Clé DSA publique"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-msgstr[1] "%d bits"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Robustesse"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algorithme"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Taille"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Empreintes digitales"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "Données non valides ou non gérées."
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "Impossible d'analyser les données non valides ou corrompues."
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "Les données sont verrouillées"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr ""
-"Impossible de trouver un emplacement pour enregistrer le certificat accepté."
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr ""
-"Déverrouiller automatiquement ce trousseau de clés quand je suis connecté"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Verrouiller ce trousseau de clés après"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Verrouiller ce trousseau de clés s'il est inactif pendant"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Verrouiller ce trousseau de clés quand je me déconnecte"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minutes"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "Déverrouiller : %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Déverrouiller"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "Le mot de passe n'est pas correct"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Mot de passe"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr ""
-"Le contenu de « %s » est verrouillé. Pour voir ce contenu, saisissez le mot "
-"de passe correct."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr ""
-"Le contenu est verrouillé. Pour voir ce contenu, saisissez le mot de passe "
-"correct."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "Afficheur de certificats et de clés GCR"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Affiche la version de l'application"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[fichier...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- Afficher des fichiers de certificats et de clés"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "Afficheur de certificats"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "Le codage de l'URI n'est pas valide."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "L'URI ne respecte pas le modèle « pkcs11 »."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "La syntaxe de l'URI n'est pas correcte."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "Le numéro de version de l'URI n'est pas correct."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Certificat sans nom"
@@ -886,7 +300,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Impossible d'analyser la clé publique SSH"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Mot de passe de déverrouillage pour : %s"
@@ -949,16 +363,33 @@ msgstr "Déverrouiller un certificat"
msgid "Unlock public key"
msgstr "Déverrouiller une clé publique"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Déverrouiller"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Saisissez le mot de passe pour déverrouiller la clé privée"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Saisissez le mot de passe pour déverrouiller le certificat"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Saisissez le mot de passe pour déverrouiller la clé publique"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Saisissez le mot de passe pour déverrouiller"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
msgid "An application wants access to the private key '%s', but it is locked"
msgstr ""
-"Une application veut accéder à la clé privée « %s », mais elle est verrouillée"
+"Une application veut accéder à la clé privée « %s », mais elle est "
+"verrouillée"
#. TRANSLATORS: The certificate is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
@@ -1049,11 +480,11 @@ msgstr "commandes : "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Stocker les mots de passe de manière non chiffrée ?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1063,15 +494,15 @@ msgstr ""
"seront pas chiffrés de manière sûre. Ils seront accessibles par n'importe "
"qui ayant un accès à vos fichiers."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Utiliser un stockage non sûr"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Les mots de passe ne sont pas identiques."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Le mot de passe ne peut pas être vide"
diff --git a/po/ga.po b/po/ga.po
index d7da7f39..5ef14e64 100644
--- a/po/ga.po
+++ b/po/ga.po
@@ -7,592 +7,127 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-09 13:39-0600\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2009-08-15 00:13-0600\n"
"Last-Translator: Seán de Búrca <leftmostcat@gmail.com>\n"
"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
+"Language: ga\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=5; plural=n==1 ? 0 : (n%10==1 || n%10==2) ? 1 : (n%"
-"10>=3 && n%10<= 6) ? 2 : ((n%10>=7 && n%10<=9) || n==10) ? 3 : 4;\n"
+"Plural-Forms: nplurals=5; plural=n==1 ? 0 : (n%10==1 || n%10==2) ? 1 : (n"
+"%10>=3 && n%10<= 6) ? 2 : ((n%10>=7 && n%10<=9) || n==10) ? 3 : 4;\n"
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:228
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in the default keyring."
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
msgstr ""
-"Ba mhaith leis an bhfeidhmchlár '%s' (%s) an focal faire do '<object "
-"prop='name'/>' a rochtain san fháinne eochracha réamhshocraithe."
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:232
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in %s."
-msgstr ""
-"Ba mhaith leis an bhfeidhmchlár '%s' (%s) an focal faire do '<object "
-"prop='name'/>' a rochtain i %s."
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:238 ../daemon/gkr-daemon-ops.c:248
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in the default keyring."
-msgstr ""
-"Ba mhaith leis an bhfeidhmchlár '%s' an focal faire do '<object prop='name'/"
-">' a rochtain san fháinne eochracha réamhshocraithe."
+#: ../daemon/dbus/gkd-secret-change.c:86
+msgid "Change Keyring Password"
+msgstr "Athraigh Focal Faire an Fháinne Eochracha"
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:242 ../daemon/gkr-daemon-ops.c:252
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in %s."
-msgstr ""
-"Ba mhaith leis an bhfeidhmchlár '%s' an focal faire do '<object prop='name'/"
-">' a rochtain i %s."
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "Roghnaigh focal faire nua don fháinne eochracha '%s'."
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:258
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in the default keyring."
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
msgstr ""
"Ba mhaith le feidhmchlár anaithnid an focal faire do '<object prop='name'/>' "
"a rochtain san fháinne eochracha réamhshocraithe."
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:261
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in %s."
-msgstr ""
-"Ba mhaith le feidhmchlár anaithnid an focal faire do '<object prop='name'/>' "
-"a rochtain i %s."
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:267
-msgid "Allow access"
-msgstr "Ceadaigh rochtain"
-
-#: ../daemon/gkr-daemon-ops.c:267
-msgid "Allow application access to keyring?"
-msgstr "Ceadaigh d'fheidhmchlár an fáinne eochracha a rochtain?"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:309
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
-msgstr ""
-"Ba mhaith leis an bhfeidhmchlár '%s' (%s) an fáinne eochracha "
-"réamhshocraithe a rochtain, ach tá sé faoi ghlas"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:314
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the keyring '%s', but it is locked"
-msgstr ""
-"Ba mhaith leis an bhfeidhmchlár '%s' (%s) an fáinne eochracha '%s' a "
-"rochtain, ach tá sé faoi ghlas"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:321 ../daemon/gkr-daemon-ops.c:333
-#, c-format
-msgid ""
-"The application '%s' wants access to the default keyring, but it is locked"
-msgstr ""
-"Ba mhaith leis an bhfeidhmchlár '%s' an fáinne eochracha réamhshocraithe a "
-"rochtain, ach tá sé faoi ghlas"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:326 ../daemon/gkr-daemon-ops.c:339
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
-msgstr ""
-"Ba mhaith leis an bhfeidhmchlár '%s' an fáinne eochracha '%s' a rochtain, "
-"ach tá sé faoi ghlas"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:346
-#, c-format
-msgid ""
-"An unknown application wants access to the default keyring, but it is locked"
-msgstr ""
-"Ba mhaith le feidhmchlár anaithnid an fáinne eochracha réamhshocraithe a "
-"rochtain, ach tá sé faoi ghlas"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:351
-#, c-format
-msgid ""
-"An unknown application wants access to the keyring '%s', but it is locked"
-msgstr ""
-"Ba mhaith le feidhmchlár anaithnid an fáinne eochracha '%s' a rochtain, ach "
-"tá sé faoi ghlas"
-
-#: ../daemon/gkr-daemon-ops.c:358
-msgid "Enter password for default keyring to unlock"
-msgstr ""
-"Iontráil focal faire don fháinne eochracha réamhshocraithe chun díghlasála"
-
-#: ../daemon/gkr-daemon-ops.c:360
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "Iontráil focal faire don fháinne '%s' réamhshocraithe chun díghlasála"
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:364
-msgid "Unlock Keyring"
-msgstr "Díghlasáil Fáinne Eochracha"
-
-#: ../daemon/gkr-daemon-ops.c:376
-msgid "Automatically unlock this keyring when I log in."
-msgstr ""
-"Díghlasáil an fáinne eochracha seo go huathoibríoch nuair a logálaim isteach."
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:413
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
-msgstr ""
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:418
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../daemon/dbus/gkd-secret-change.c:111
+msgid "The original password was incorrect"
msgstr ""
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:425 ../daemon/gkr-daemon-ops.c:437
-#, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
-msgstr ""
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:430 ../daemon/gkr-daemon-ops.c:442
-#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr ""
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:449
-#, c-format
-msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
-msgstr ""
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:454
-#, c-format
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr ""
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:460
+#: ../daemon/dbus/gkd-secret-create.c:83
msgid "New Keyring Password"
msgstr "Focal Faire Fáinne Eochracha Nua"
-#: ../daemon/gkr-daemon-ops.c:461
+#: ../daemon/dbus/gkd-secret-create.c:84
msgid "Choose password for new keyring"
msgstr "Roghnaigh focal faire don fháinne eochracha nua"
-#: ../daemon/gkr-daemon-ops.c:508
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-
-#: ../daemon/gkr-daemon-ops.c:512
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
-msgstr ""
-
-#: ../daemon/gkr-daemon-ops.c:518 ../daemon/gkr-daemon-ops.c:528
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
-msgstr ""
-
-#: ../daemon/gkr-daemon-ops.c:522 ../daemon/gkr-daemon-ops.c:532
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-
-#: ../daemon/gkr-daemon-ops.c:538
+#: ../daemon/dbus/gkd-secret-create.c:86
#, c-format
msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-
-#: ../daemon/gkr-daemon-ops.c:542
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-
-#: ../daemon/gkr-daemon-ops.c:552
-#, c-format
-msgid "Choose a new password for the '%s' keyring."
-msgstr "Roghnaigh focal faire nua don fháinne eochracha '%s'."
-
-#: ../daemon/gkr-daemon-ops.c:554
-#, c-format
-msgid "Choose a new password for the default keyring."
-msgstr "Roghnaigh focal faire nua don fháinne eochracha réamhshocraithe."
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:558
-msgid "Change Keyring Password"
-msgstr "Athraigh Focal Faire an Fháinne Eochracha"
-
-#: ../daemon/gkr-daemon-ops.c:631
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-msgstr ""
-
-#: ../daemon/gkr-daemon-ops.c:635 ../daemon/gkr-daemon-ops.c:639
-#, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-msgstr ""
-
-#: ../daemon/gkr-daemon-ops.c:643
-#, c-format
-msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-msgstr ""
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:648
-msgid "Create Default Keyring"
-msgstr "Cruthaigh Fáinne Eochracha Réamhshocraithe"
-
-#: ../daemon/gkr-daemon-ops.c:648
-msgid "Choose password for default keyring"
-msgstr ""
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:1
-msgid ""
-"This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-"only takes effect as gnome-keyring-daemon starts, (ie: when the user logs "
-"in). This setting may be overridden when certain command line arguments are "
-"passed to the daemon."
-msgstr ""
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:2
-msgid ""
-"This option enables the SSH agent in the gnome-keyring daemon. It only takes "
-"effect as gnome-keyring-daemon starts, (ie: when the user logs in). This "
-"setting may be overridden when certain command line arguments are passed to "
-"the daemon."
-msgstr ""
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:3
-msgid "Whether the gnome-keyring PKCS#11 component is enabled."
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
-#: ../daemon/data/gnome-keyring.schemas.in.h:4
-msgid "Whether the gnome-keyring SSH agent is enabled."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+msgid "Certificate and Key Storage"
msgstr ""
-#: ../daemon/gnome-keyring-daemon.desktop.in.in.h:1
-msgid "GNOME Keyring Daemon"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+#, fuzzy
+msgid "GNOME Keyring: PKCS#11 Component"
msgstr "Deamhan Fáinní Eochracha GNOME"
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:99
-msgid "Unlock Login Keyring"
-msgstr ""
-
-#: ../daemon/keyrings/gkr-keyring-login.c:99
-msgid "Enter login password to unlock keyring"
-msgstr ""
-
-#: ../daemon/keyrings/gkr-keyring-login.c:101
-msgid ""
-"Your login keyring was not automatically unlocked when you logged into this "
-"computer."
-msgstr ""
-
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:125
-msgid "Create Login Keyring"
-msgstr ""
-
-#: ../daemon/keyrings/gkr-keyring-login.c:125
-msgid "Enter your login password"
-msgstr ""
-
-#: ../daemon/keyrings/gkr-keyring-login.c:127
-msgid ""
-"Your login keyring was not automatically created when you logged into this "
-"computer. It will now be created."
-msgstr ""
-
-#: ../daemon/keyrings/gkr-keyring.c:587
-#, c-format
-msgid "Unlock password for %s keyring"
-msgstr ""
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:98
-msgid "Unlock private key"
-msgstr "Díghlasáil eochair phríobháideach"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:100
-msgid "Unlock certificate"
-msgstr "Díghlasáil teastas"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:102
-msgid "Unlock public key"
-msgstr "Díghlasáil eochair phoiblí"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:104
-msgid "Unlock"
-msgstr "Díghlasáil"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:113 ../gcr/gcr-importer.c:436
-msgid "Enter password to unlock the private key"
-msgstr "Iontráil focal faire chun an eochair phríobháideach a dhíghlasáil"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:115 ../gcr/gcr-importer.c:438
-msgid "Enter password to unlock the certificate"
-msgstr "Iontráil focal faire chun an teastas a dhíghlasáil"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:117
-msgid "Enter password to unlock the public key"
-msgstr "Iontráil focal faire chun an eochair phoiblí a dhíghlasáil"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:119 ../gcr/gcr-importer.c:440
-msgid "Enter password to unlock"
-msgstr "Iontráil focal faire chun díghlasáil"
-
-#. TRANSLATORS: The private key is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:129
-#, c-format
-msgid "An application wants access to the private key '%s', but it is locked"
-msgstr ""
-"Ba mhaith le feidhmchlár an eochair phríobháideach '%s' a rochtain, ach tá "
-"sé faoi ghlas"
-
-#. TRANSLATORS: The certificate is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:132
-#, c-format
-msgid "An application wants access to the certificate '%s', but it is locked"
-msgstr ""
-"Ba mhaith le feidhmchlár an teastas '%s' a rochtain, ach tá sé faoi ghlas"
-
-#. TRANSLATORS: The public key is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:135
-#, c-format
-msgid "An application wants access to the public key '%s', but it is locked"
-msgstr ""
-"Ba mhaith le feidhmchlár an eochair phoiblí '%s' a rochtain, ach tá sé faoi "
-"ghlas"
-
-#. TRANSLATORS: The object '%s' is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:138
-#, c-format
-msgid "An application wants access to '%s', but it is locked"
-msgstr "Ba mhaith le feidhmchlár '%s' a rochtain, ach tá sé faoi ghlas"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:147
-msgid "Automatically unlock this private key when I log in."
-msgstr ""
-"Díghlasáil an eochair phríobháideach go huathoibríoch nuair a logálaim "
-"isteach."
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:149
-msgid "Automatically unlock this certificate when I log in."
-msgstr "Díghlasáil an teastas go huathoibríoch nuair a logálaim isteach."
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:151
-msgid "Automatically unlock this public key when I log in."
-msgstr ""
-"Díghlasáil an eochair phoiblí go huathoibríoch nuair a logálaim isteach."
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:153
-msgid "Automatically unlock this when I log in"
-msgstr "Díghlasáil é seo go huathoibríoch nuair a logálaim isteach"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: Secret Service"
+msgstr "Deamhan Fáinní Eochracha GNOME"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:394
-msgid "Unlock certificate/key storage"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
msgstr ""
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:395
-msgid "Enter password to unlock the certificate/key storage"
-msgstr ""
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: SSH Agent"
+msgstr "Deamhan Fáinní Eochracha GNOME"
-#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:398
-#, c-format
-msgid ""
-"An application wants access to the certificate/key storage '%s', but it is "
-"locked"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
msgstr ""
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:403
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:554
-msgid "Automatically unlock secure storage when I log in."
-msgstr ""
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: GPG Agent"
+msgstr "Deamhan Fáinní Eochracha GNOME"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:546
-msgid "New Password Required"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+msgid "GPG Password Agent"
msgstr ""
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:547
-msgid "New password required for secure storage"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+msgid "Unknown"
msgstr ""
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:549
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid ""
-"In order to prepare '%s' for storage of certificates or keys, a password is "
-"required"
-msgstr ""
-
-#: ../daemon/ui/gkr-ask-tool.c:230
-msgid ""
-"<b><big>Could not grab your mouse.</big></b>\n"
-"\n"
-"A malicious client may be eavesdropping on your session or you may have just "
-"clicked a menu or some application just decided to get focus.\n"
-"\n"
-"Try again."
-msgstr ""
-
-#: ../daemon/ui/gkr-ask-tool.c:239
-msgid ""
-"<b><big>Could not grab your keyboard.</big></b>\n"
-"\n"
-"A malicious client may be eavesdropping on your session or you may have just "
-"clicked a menu or some application just decided to get focus.\n"
-"\n"
-"Try again."
-msgstr ""
-
-#: ../daemon/ui/gkr-ask-tool.c:276
-msgid "Store passwords unencrypted?"
-msgstr ""
-
-#: ../daemon/ui/gkr-ask-tool.c:277
-msgid ""
-"By choosing to use a blank password, your stored passwords will not be "
-"safely encrypted. They will be accessible by anyone with access to your "
-"files."
-msgstr ""
-
-#: ../daemon/ui/gkr-ask-tool.c:284
-msgid "Use Unsafe Storage"
-msgstr ""
-
-#: ../daemon/ui/gkr-ask-tool.c:512
-msgid "_Location:"
-msgstr ""
-
-#: ../daemon/ui/gkr-ask-tool.c:525
-msgid "_Old password:"
-msgstr "_Seanfhocal faire:"
-
-#: ../daemon/ui/gkr-ask-tool.c:545
-msgid "_Password:"
-msgstr "_Focal faire:"
-
-#: ../daemon/ui/gkr-ask-tool.c:567
-msgid "_Confirm password:"
-msgstr "_Dearbhaigh focal faire:"
-
-#: ../daemon/ui/gkr-ask-tool.c:587
-msgid "New password strength"
-msgstr ""
-
-#: ../daemon/ui/gkr-ask-tool.c:645
-msgid "Passwords do not match."
-msgstr ""
-
-#: ../daemon/ui/gkr-ask-tool.c:661
-msgid "Password cannot be blank"
-msgstr ""
-
-#: ../daemon/ui/gkr-ask-tool.c:712
-msgid "_Deny"
-msgstr "_Diúltaigh"
-
-#: ../daemon/ui/gkr-ask-tool.c:724
-msgid "C_reate"
+msgid "PGP Key: %s"
msgstr ""
-#: ../daemon/ui/gkr-ask-tool.c:728
-msgid "C_hange"
-msgstr "_Athraigh"
-
-#: ../daemon/ui/gkr-ask-tool.c:732
-msgid "Allow _Once"
-msgstr "Ceadaigh _Uair Amháin"
-
-#: ../daemon/ui/gkr-ask-tool.c:736
-msgid "_Always Allow"
-msgstr "Ceadaigh i g_Cónaí"
-
-#: ../daemon/util/gkr-location.c:234
-#, c-format
-msgid "Removable Disk: %s"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-#: ../daemon/util/gkr-location.c:236
-msgid "Removable Disk"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
msgstr ""
-#: ../daemon/util/gkr-location.c:327 ../daemon/util/gkr-location.c:339
-msgid "Home"
-msgstr "Baile"
-
-#: ../daemon/util/gkr-location.c:882 ../daemon/util/gkr-location.c:906
-msgid "The disk or drive this file is located on is not present"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-#: ../daemon/util/gkr-location.c:914
-#, c-format
-msgid "Couldn't create directory: %s"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
msgstr ""
-#: ../daemon/util/gkr-location.c:948
-#, c-format
-msgid "Couldn't delete the file: %s"
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
msgstr ""
#: ../egg/egg-oid.c:41
@@ -604,7 +139,7 @@ msgid "User ID"
msgstr ""
#: ../egg/egg-oid.c:46
-msgid "Email"
+msgid "Email Address"
msgstr ""
#: ../egg/egg-oid.c:54
@@ -635,7 +170,7 @@ msgstr ""
msgid "Surname"
msgstr ""
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-details-widget.c:322
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr ""
@@ -695,551 +230,291 @@ msgstr ""
msgid "RSA"
msgstr "RSA"
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "MD2 le RSA"
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "MD5 le RSA"
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "SHA1 le RSA"
-#: ../egg/egg-oid.c:107
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "SHA1 le DSA"
-#: ../gcr/gcr-certificate-basics-widget.c:59
-msgid "<i>Not Part of Certificate</i>"
-msgstr ""
-
-#: ../gcr/gcr-certificate-basics-widget.c:80
-msgid "<i>unknown</i>"
-msgstr "<i>anaithnid</i>"
-
-#: ../gcr/gcr-certificate-details-widget.c:207
-msgid "Extension"
-msgstr ""
-
-#: ../gcr/gcr-certificate-details-widget.c:212
-msgid "Identifier"
-msgstr ""
-
-#: ../gcr/gcr-certificate-details-widget.c:222
-msgid "Value"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "Critical"
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "Yes"
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "No"
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
msgstr ""
-#. The subject
-#: ../gcr/gcr-certificate-details-widget.c:303
-msgid "Subject Name"
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
msgstr ""
-#. The Issuer
-#: ../gcr/gcr-certificate-details-widget.c:307
-msgid "Issuer Name"
+#: ../egg/egg-spawn.c:273
+#, c-format
+msgid "Unexpected error in select() reading data from a child process (%s)"
msgstr ""
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-details-widget.c:311
-msgid "Issued Certificate"
+#: ../egg/egg-spawn.c:320
+#, c-format
+msgid "Unexpected error in waitpid() (%s)"
msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:316
-msgid "Version"
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:329
-msgid "Not Valid Before"
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:334
-msgid "Not Valid After"
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, c-format
+msgid "Unlock password for: %s"
msgstr ""
-#. Signature
-#: ../gcr/gcr-certificate-details-widget.c:339
-#: ../gcr/gcr-certificate-details-widget.c:355
-msgid "Signature"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+msgid "The unlock password was incorrect"
msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:343
-msgid "Signature Algorithm"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+msgid "Unlock Login Keyring"
msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:348
-msgid "Signature Parameters"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
+msgstr "Iontráil focal faire chun an eochair phoiblí a dhíghlasáil"
-#. Public Key Info
-#: ../gcr/gcr-certificate-details-widget.c:359
-msgid "Public Key Info"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:363
-msgid "Key Algorithm"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:368
-msgid "Key Parameters"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "Díghlasáil Fáinne Eochracha"
-#: ../gcr/gcr-certificate-details-widget.c:375
-msgid "Key Size"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
+#, c-format
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "Iontráil focal faire don fháinne '%s' réamhshocraithe chun díghlasála"
-#: ../gcr/gcr-certificate-details-widget.c:382 ../gcr/gcr-parser.c:202
-msgid "Public Key"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, fuzzy, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
msgstr ""
+"Ba mhaith le feidhmchlár anaithnid an fáinne eochracha '%s' a rochtain, ach "
+"tá sé faoi ghlas"
-#. Fingerprints
-#: ../gcr/gcr-certificate-details-widget.c:386
-msgid "Fingerprints"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
+msgstr "Díghlasáil eochair phríobháideach"
-#: ../gcr/gcr-importer.c:163 ../gcr/gcr-parser.c:1573 ../gp11/gp11-misc.c:98
-msgid "The operation was cancelled"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+msgid "Unlock certificate"
+msgstr "Díghlasáil teastas"
-#: ../gcr/gcr-importer.c:255
-#, c-format
-msgid "No location available to import to"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
+msgstr "Díghlasáil eochair phoiblí"
-#: ../gcr/gcr-importer.c:404
-msgid "Import Certificates/Keys"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Díghlasáil"
-#: ../gcr/gcr-importer.c:411
-msgid "Choose a location to store the imported certificates/keys."
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Iontráil focal faire chun an eochair phríobháideach a dhíghlasáil"
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:449
-msgid "In order to import the private key, it must be unlocked"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Iontráil focal faire chun an teastas a dhíghlasáil"
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:452
-msgid "In order to import the certificate, it must be unlocked"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+msgid "Enter password to unlock the public key"
+msgstr "Iontráil focal faire chun an eochair phoiblí a dhíghlasáil"
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:455
-msgid "In order to import the data, it must be unlocked"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Iontráil focal faire chun díghlasáil"
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:460
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
+msgid "An application wants access to the private key '%s', but it is locked"
msgstr ""
+"Ba mhaith le feidhmchlár an eochair phríobháideach '%s' a rochtain, ach tá "
+"sé faoi ghlas"
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:463
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
+msgid "An application wants access to the certificate '%s', but it is locked"
msgstr ""
+"Ba mhaith le feidhmchlár an teastas '%s' a rochtain, ach tá sé faoi ghlas"
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:466
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr ""
-
-#: ../gcr/gcr-parser.c:196
-msgid "Private Key"
-msgstr ""
-
-#: ../gcr/gcr-parser.c:199
-msgid "Certificate"
-msgstr ""
-
-#: ../gcr/gcr-parser.c:1576
-msgid "Unrecognized or unsupported data."
-msgstr ""
-
-#: ../gcr/gcr-parser.c:1579
-msgid "Could not parse invalid or corrupted data."
-msgstr ""
-
-#: ../gcr/gcr-parser.c:1582
-msgid "The data is locked"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:101
-msgid "Insufficient memory available"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:103
-msgid "The specified slot ID is not valid"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:105
-msgid "Internal error"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:107
-msgid "The operation failed"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:109
-msgid "Invalid arguments"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:111
-msgid "The module cannot create needed threads"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:113
-msgid "The module cannot lock data properly"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:115
-msgid "The field is read-only"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:117
-msgid "The field is sensitive and cannot be revealed"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:119
-msgid "The field is invalid or does not exist"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:121
-msgid "Invalid value for field"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:123
-msgid "The data is not valid or unrecognized"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:125
-msgid "The data is too long"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:127
-msgid "An error occurred on the device"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:129
-msgid "Insufficient memory available on device"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:131
-msgid "The device was removed or unplugged"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:133
-msgid "The encrypted data is not valid or unrecognized"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:135
-msgid "The encrypted data is too long"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:137
-msgid "This operation is not supported"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:139
-msgid "The key is missing or invalid"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:141
-msgid "The key is the wrong size"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:143
-msgid "The key is of the wrong type"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:145
-msgid "No key is needed"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:147
-msgid "The key is different than before"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:149
-msgid "A key is needed"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:151
-msgid "Cannot include the key in digest"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:153
-msgid "This operation cannot be done with this key"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:155
-msgid "The key cannot be wrapped"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:157
-msgid "Cannot export this key"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:159
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:161
-msgid "The crypto mechanism has an invalid argument"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:163
-msgid "The object is missing or invalid"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:165
-msgid "Another operation is already taking place"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:167
-msgid "No operation is taking place"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:169
-msgid "The password or PIN is incorrect"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:171
-msgid "The password or PIN is invalid"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:173
-msgid "The password or PIN is of an invalid length"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:175
-msgid "The password or PIN has expired"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:177
-msgid "The password or PIN is locked"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:179
-msgid "The session is closed"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:181
-msgid "Too many sessions are active"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:183
-msgid "The session is invalid"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:185
-msgid "The session is read-only"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:187
-msgid "An open session exists"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:189
-msgid "A read-only session exists"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:191
-msgid "An administrator session exists"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:193
-msgid "The signature is bad or corrupted"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:195
-msgid "The signature is unrecognized or corrupted"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:197
-msgid "Certain required fields are missing"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:199
-msgid "Certain fields have invalid values"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:201
-msgid "The device is not present or unplugged"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:203
-msgid "The device is invalid or unrecognizable"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:205
-msgid "The device is write protected"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:207
-msgid "Cannot import because the key is invalid"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:209
-msgid "Cannot import because the key is of the wrong size"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:211
-msgid "Cannot import because the key is of the wrong type"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:213
-msgid "You are already logged in"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:215
-msgid "No user has logged in"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:217
-msgid "The user's password or PIN is not set"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:219
-msgid "The user is of an invalid type"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:221
-msgid "Another user is already logged in"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:223
-msgid "Too many users of different types logged in"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:225
-msgid "Cannot import an invalid key"
+msgid "An application wants access to the public key '%s', but it is locked"
msgstr ""
+"Ba mhaith le feidhmchlár an eochair phoiblí '%s' a rochtain, ach tá sé faoi "
+"ghlas"
-#: ../gp11/gp11-misc.c:227
-msgid "Cannot import a key of the wrong size"
-msgstr ""
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
+#, c-format
+msgid "An application wants access to '%s', but it is locked"
+msgstr "Ba mhaith le feidhmchlár '%s' a rochtain, ach tá sé faoi ghlas"
-#: ../gp11/gp11-misc.c:229
-msgid "Cannot export because the key is invalid"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
msgstr ""
-#: ../gp11/gp11-misc.c:231
-msgid "Cannot export because the key is of the wrong size"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
msgstr ""
-#: ../gp11/gp11-misc.c:233
-msgid "Cannot export because the key is of the wrong type"
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, c-format
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
msgstr ""
-#: ../gp11/gp11-misc.c:235
-msgid "Unable to initialize the random number generator"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
msgstr ""
-#: ../gp11/gp11-misc.c:237
-msgid "No random number generator available"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
msgstr ""
-#: ../gp11/gp11-misc.c:239
-msgid "The crypto mechanism has an invalid parameter"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
+#, c-format
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
msgstr ""
-#: ../gp11/gp11-misc.c:241
-msgid "Not enough space to store the result"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "Athraigh Focal Faire an Fháinne Eochracha"
-#: ../gp11/gp11-misc.c:243
-msgid "The saved state is invalid"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "Roghnaigh focal faire don fháinne eochracha nua"
-#: ../gp11/gp11-misc.c:245
-msgid "The information is sensitive and cannot be revealed"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
+#, c-format
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
msgstr ""
-#: ../gp11/gp11-misc.c:247
-msgid "The state cannot be saved"
+#: ../tool/gkr-tool.c:102
+#, c-format
+msgid "usage: gnome-keyring command [options]\n"
msgstr ""
-#: ../gp11/gp11-misc.c:249
-msgid "The module has not been initialized"
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
msgstr ""
-#: ../gp11/gp11-misc.c:251
-msgid "The module has already been initialized"
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
msgstr ""
-#: ../gp11/gp11-misc.c:253
-msgid "Cannot lock data"
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
msgstr ""
-#: ../gp11/gp11-misc.c:255
-msgid "The data cannot be locked"
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
msgstr ""
-#: ../gp11/gp11-misc.c:257
-msgid "The signature request was rejected by the user"
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
msgstr ""
-#: ../gp11/gp11-misc.c:261
-msgid "Unknown error"
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
msgstr ""
-#: ../library/gnome-keyring-utils.c:168
-msgid "Access Denied"
+#: ../ui/gku-prompt-tool.c:649
+msgid "Password cannot be blank"
msgstr ""
-#: ../library/gnome-keyring-utils.c:170
-msgid "The gnome-keyring-daemon application is not running."
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
msgstr ""
-#: ../library/gnome-keyring-utils.c:172
-msgid "Error communicating with gnome-keyring-daemon"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
msgstr ""
-#: ../library/gnome-keyring-utils.c:174
-msgid "A keyring with that name already exists"
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
msgstr ""
-#: ../library/gnome-keyring-utils.c:176
-msgid "Programmer error: The application sent invalid data."
+#: ../ui/gku-prompt.ui.h:2
+msgid "_Application:"
msgstr ""
-#: ../library/gnome-keyring-utils.c:178
-msgid "No matching results"
-msgstr ""
+#: ../ui/gku-prompt.ui.h:3
+#, fuzzy
+msgid "_Confirm:"
+msgstr "_Dearbhaigh focal faire:"
-#: ../library/gnome-keyring-utils.c:180
-msgid "A keyring with that name does not exist."
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
msgstr ""
-#: ../library/gnome-keyring-utils.c:187
-msgid "The keyring has already been unlocked."
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
msgstr ""
-#: ../pkcs11/gck/gck-certificate.c:716
-msgid "Unnamed Certificate"
-msgstr ""
+#: ../ui/gku-prompt.ui.h:6
+#, fuzzy
+msgid "_Old Password:"
+msgstr "_Seanfhocal faire:"
-#: ../pkcs11/ssh-store/gck-ssh-private-key.c:328
-msgid "Couldn't parse public SSH key"
-msgstr ""
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "_Focal faire:"
diff --git a/po/gl.po b/po/gl.po
index 1f43652b..bc870613 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-12 21:32+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-12 21:33+0200\n"
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
"Language-Team: Galician <gnome-l10n-gl@gnome.org>\n"
@@ -27,7 +27,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Sen nome"
@@ -103,35 +103,34 @@ msgstr "Anel de chaves de GNOME: axente GPG"
msgid "GPG Password Agent"
msgstr "Axente de contrasinais GPG"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Descoñecido"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "Chave GPG: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Introducir o contrasinal"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Esquecer este contrasinal se está inactivo durante"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Esquecer este contrasinal despois de"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Esquecer este contrasinal ao saír da sesión"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Inicio de sesión"
@@ -175,7 +174,7 @@ msgstr "Nome común"
msgid "Surname"
msgstr "Apelidos"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Número de serie"
@@ -231,7 +230,7 @@ msgstr "Cualificador de nome de dominio (DN)"
msgid "Pseudonym"
msgstr "Pseudónimo"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -247,7 +246,7 @@ msgstr "MD5 con RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 con RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -288,589 +287,6 @@ msgstr ""
msgid "Unexpected error in waitpid() (%s)"
msgstr "Produciuse un erro non esperado en waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Produciuse un erro ao cargar o módulo PKCS#11: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Módulos PKCS#11 non válido: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Non foi posíbel configurar o módulo PKCS#11: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "No foi posíbel inicializar o módulo PKCS#11: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "Non foi posíbel inicializar os módulos PKCS#11 rexistrador: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Nome"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Emitido por"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "Caduca"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "Certificado"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Xa existe un ficheiro con este nome.</b>\n"
-"\n"
-"Desexa substituílo por un novo ficheiro?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_SubstituiÌr"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "Cancelouse a operación."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Exportar certificado"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Ficheiros de certificados"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "Ficheiros PEM"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Outro nome"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "Enderezo XMPP"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "SRV do DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "Correo electrónico"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "Enderezos X400"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Nome do directorio"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "Nome do grupo EDI"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "Enderezo IP"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "ID rexistrado"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Restricións básicas"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "Autoridade de certificación"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Si"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Non"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Lonxitude máxima da ruta"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Sen límite"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Uso estendido da chave"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Propósitos permitidos"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Identificador do asunto da chave"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Identificador da chave"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Sinatura dixital"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Cifrado da chave"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Cifrado dos datos"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Acordo da chave"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Sinatura do certificado"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Sinatura da lista de revogación"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Uso da chave"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Usos"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Nomes alternativos do asunto"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Extensión"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Identificador"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Valor"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Crítico"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Non foi posíbel exportar o certificado"
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "Identidade"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Verificado por"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "Caduca"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Nome do asunto"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Nome do emisor"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Certificado emitido"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Versión"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Non é válido antes de"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Non é válido despois de"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Pegadas dixitais dos certificados"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Sinatura"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Algoritmo de sinatura"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Parámetros de sinatura"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Información de chave pública"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Algoritmo de chave"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Parámetros de chave"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Tamaño de chave"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "Pegada dixital da chave SHA1"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "Chave pública"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_Detalles"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "Non foi posíbel mostrar «%s»"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "Non foi posíbel mostrar o ficheiro"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Razón"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Non foi posíbel mostrar un ficheiro deste tipo."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Importar certificados e chaves"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Importar en:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Contrasinal:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "Chave GPG"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "ID da chave"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "O proceso Gnupg pechouse có código: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "O proceso de Gnupg rematou co sinal: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919 ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "Cancelouse a operación"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Introduza o contrasinal para desbloquear a chave privada"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Introduza o contrasinal para desbloquear o certificado"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Introduza o contrasinal para desbloquear"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Para importar a chave privada debe estar desbloqueada"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Para importar o certificado debe estar desbloqueado"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Para importar os datos deben estar desbloqueados"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Para importar a chave privada «%s» debe estar desbloqueada"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Para importar o certificado «%s» debe estar desbloqueado"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Para importar «%s» debe estar desbloqueado"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Non hai unha localización dispoñíbel para importar"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Importar certificados ou chaves"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Seleccione unha localización para almacenar os certificados ou chaves."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Chave"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Chave privada RSA"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Chave privada DSA"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "Chave privada"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Chave pública DSA"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-msgstr[1] "%d bits"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Fortaleza"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algoritmo"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Tamaño"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Impresións dixitais"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "Datos non recoñecíbeis ou non soportados."
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "Non é posíbel analizar datos danados ou non válidos."
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "Os datos están bloqueados"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Non foi posíbel atopar un lugar para almacenar o certificado anclado"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Desbloquear automaticamente este anel de chaves cando inicie a sesión"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Bloquear este anel de chaves despois de"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Bloquear este anel de chaves se estou inactivo durante"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Bloquear este anel de chaves cando saia da sesión"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minutos"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "Desbloquear: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Desbloquear"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "O contrasinal era incorrecto"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Contrasinal"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr ""
-"Os contidos de '%s' están bloqueados. Para poder velos, introduza o "
-"contrasinal correcto."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr ""
-"Os contidos están bloqueados. Para poder velos, escriba o contrasinal "
-"correcto."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "Visor de chaves e certificados GCR"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Mostrar a versión do aplicativo"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[ficheiro...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- Vexa certificados e ficheiros de chave"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "Visor de certificados"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "O URI ten unha sintaxe incorrecta."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "O URI non ten un esquema «pkcs11»."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "O URI ten unha sintaxe incorrecta."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "O URI ten un número de versión incorrecto."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Certificado sen nome"
@@ -880,7 +296,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Non foi posíbel analizar a chave pública SSH"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Desbloquear o contrasinal para: %s"
@@ -940,10 +356,26 @@ msgstr "Desbloquear o certificado"
msgid "Unlock public key"
msgstr "Desbloquear a chave pública"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Desbloquear"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Introduza o contrasinal para desbloquear a chave privada"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Introduza o contrasinal para desbloquear o certificado"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Introduza o contrasinal para desbloquear a chave pública"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Introduza o contrasinal para desbloquear"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1035,11 +467,11 @@ msgstr "ordes: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Quere gardar os contrasinais sen codificar?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1049,15 +481,15 @@ msgstr ""
"non serán cifrados de modo seguro. Polo que serán accesíbeis por calquera "
"que acceda aos seus ficheiros."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Usar o almacenamento non seguro"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Os contrasinais non coinciden."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "O contrasinal non pode estar en branco"
@@ -1097,346 +529,3 @@ msgstr "_Contrasinal antigo:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Contrasinal:"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "Non hai suficiente memoria dispoñíbel"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "O ID de espazo especificado non é válido"
-
-#~ msgid "Internal error"
-#~ msgstr "Erro interno"
-
-#~ msgid "The operation failed"
-#~ msgstr "A operación fallou"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "Os argumentos non son válidos"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "O módulo non pode crear os fíos necesarios"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "O módulo non pode bloquear os datos apropiadamente"
-
-#~ msgid "The field is read-only"
-#~ msgstr "O campo é só de lectura"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "O campo é sensível e non pode ser revelado"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "O campo non é válido ou non existe"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "Valor non válido para o campo"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "Os datos non son válidos ou non se recoñecen"
-
-#~ msgid "The data is too long"
-#~ msgstr "Os datos son demasiado grandes"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "Produciuse un erro no dispositivo"
-
-#~ msgid "Insufficient memory available on the device"
-#~ msgstr "Non hai suficiente memoria dispoñíbel no dispositivo"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "O dispositivo foi eliminado ou desconectado"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "Os datos codificados non son válidos ou non se recoñecen"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "Os datos codificados son demasiado grandes"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "Esta operación non está soportada"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "Falta a chave ou non é válida"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "A chave ten un tamaño incorrecto"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "Esta chave é dun tipo incorrecto"
-
-#~ msgid "No key is needed"
-#~ msgstr "Non é necesaria unha chave"
-
-#~ msgid "The key is different than before"
-#~ msgstr "A chave é distinta que anteriormente"
-
-#~ msgid "A key is needed"
-#~ msgstr "É necesario unha chave"
-
-#~ msgid "Cannot include the key in the digest"
-#~ msgstr "Non é posíbel incluír a chave no resumo"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "Non é posíbel facer esta operación con esta chave"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "Non é posíbel axustar a chave"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "Non é posíbel exportar esta chave"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "O mecanismo de codificación non é válido ou non se recoñece"
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "O mecanismo de codificación ten un argumento non válido"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "O obxecto falta ou non é válido"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "Xa se está efectuando outra operación"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "Non se está efectuando ningunha operación"
-
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "O contrasinal ou o PIN é incorrecto"
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "O contrasinal ou o PIN non é válido"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "O contrasinal ou o PIN é dunha lonxitude non válida"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "O contrasinal ou o PIN caducou"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "O contrasinal ou o PIN está bloqueado"
-
-#~ msgid "The session is closed"
-#~ msgstr "A sesión está bloqueada"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "Hai demasiadas sesións activas"
-
-#~ msgid "The session is invalid"
-#~ msgstr "Esta sesión non é válida"
-
-#~ msgid "The session is read-only"
-#~ msgstr "A sesión é só de lectura"
-
-#~ msgid "An open session exists"
-#~ msgstr "Xa existe unha sesión aberta"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "Xa existe unha sesión só de lectura"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "Xa existe unha sesión de administrador"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "A sinatura está danada ou non é correcta"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "A sinatura está danada ou non se recoñece"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "Faltan certos campos requiridos"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "Certos campos teñen valores non válidos"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "O dispositivo non está presente ou está desconectado"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "O dispositivo non é válido ou non é recoñecíbel"
-
-#~ msgid "The device is write protected"
-#~ msgstr "O dispositivo está protexido contra a escrita"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "Non é posíbel importar porque a chave non é válida"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "Non é posíbel importar porque a chave ten un tamaño incorrecto"
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "Non é posíbel importar porque a chave é dun tipo incorrecto"
-
-#~ msgid "You are already logged in"
-#~ msgstr "Xa ten unha sesión iniciada"
-
-#~ msgid "No user has logged in"
-#~ msgstr "Non hai ningún usuario con sesión iniciada"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "O contrasinal de usuario ou o PIN non está definido"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "O usuario é dun tipo non válido"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "Xa hai outro usuario con sesión iniciada"
-
-#~ msgid "Too many users of different types are logged in"
-#~ msgstr "Hai demasiados usuarios de diferentes tipos coa sesión iniciada"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "Non é posíbel importar unha chave non válida"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "Non é posíbel importar unha chave do tamaño incorrecto"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "Non é posíbel exportar porque a chave non é válida"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "Non é posíbel exportar porque a chave non ten o tamaño correcto"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "Non é posíbel exportar porque a chave é dun tipo incorrecto"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "Non é posíbel inicializar o xerador de números aleatorios"
-
-#~ msgid "No random number generator available"
-#~ msgstr "Non hai un xerador de números aleatorios dispoñíbel"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "O mecanismo de codificación ten un parámetro non válido"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "Non hai o suficiente espazo para almacenar o resultado"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "O estado gardado non é válido"
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "A información é sensíbel e non pode ser revelada"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "Non é posíbel gardar o estado"
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "O módulo non foi inicializado"
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "O módulo xa foi inicializado"
-
-#~ msgid "Cannot lock data"
-#~ msgstr "Non é posíbel bloquear os datos"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "O datos non poden ser bloqueados"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "A solicitude de sinatura foi rexeitada polo usuario"
-
-#~ msgid "Unknown error"
-#~ msgstr "Erro descoñecido"
-
-#~ msgid "Fingerprint"
-#~ msgstr "Pegada"
-
-#~ msgid "Insufficient memory available on device"
-#~ msgstr "Non hai suficiente memoria dispoñíbel no dispositivo"
-
-#~ msgid "The key is different from before"
-#~ msgstr "A chave é diferente da anterior"
-
-#~ msgid "Cannot include the key in digest"
-#~ msgstr "Non é posíbel incluír a chave no resumo"
-
-#~ msgid "Too many users of different types logged in"
-#~ msgstr "Hai demasiados usuarios de diferentes tipos con sesión iniciada"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>Non é parte do certificado</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>descoñecido</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<Non é parte do certificado>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>Impresións dixitais</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Emitido por</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Emitido para</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>Este certificato foi verificado polos seguintes usuarios:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>Validez</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "Nome común (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "Certificado do destinatario do correo electónico"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "Certificado do asinador do correo electrónico"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "Impresión dixital MD5"
-
-#~ msgid "Organization (O)"
-#~ msgstr "Organización (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "Unidade de organización (OU)"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr ""
-#~ "<span size='large' weight='bold'>Importar certificados e chaves</span>"
-
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Esta opción activa o compoñente PKCS#11 no deamon gnome-keyring. Só será "
-#~ "efectivo durante o inicio deste daemon, (p.ex. cando un usuario inicia a "
-#~ "sesión). Esta configuración pode ser sobrescrita cando se pasan "
-#~ "determinados argumentos da liña de ordes ao daemon."
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "Esta opción activa o axente SSH no daemon gnome-keyring. Só será efectivo "
-#~ "cando este daemon se inicie, por exemplo cando un usuario inicia a "
-#~ "sesión. Esta configuración pode ser ignorada cando se pasan determinados "
-#~ "argumentos da liña de ordes ao daemon."
-
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Esta opción activa o compoñente do servizo segredo no daemon de gnome-"
-#~ "keyring. Só será efectivo durante o inicio do daemon, por exemplo cando "
-#~ "un usuario inicie a sesión. Esta configuración pode ser sobrescrita cando "
-#~ "se pasan determinados argumentos da liña de ordes ao daemon."
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "Indica se o compoñente PKCS#11 do gnome-keyring está activado."
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "Indica se o axente SSH do gnome-keyring está activado."
-
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr "Indica se o servizo segredo de gnome-keyring está activado."
diff --git a/po/gu.po b/po/gu.po
index 3175f0b0..20ee306b 100644
--- a/po/gu.po
+++ b/po/gu.po
@@ -8,11 +8,12 @@
msgid ""
msgstr ""
"Project-Id-Version: gu\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-keyring&component=general\n"
-"POT-Creation-Date: 2011-03-10 08:08+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-04-01 17:02+0530\n"
"Last-Translator: Sweta Kothari <swkothar@redhat.com>\n"
"Language-Team: Gujarati\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -29,7 +30,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "નામ થયેલ નથી"
@@ -40,15 +41,11 @@ msgstr "કીરીંગ પાસવરà«àª¡ બદલો"
#: ../daemon/dbus/gkd-secret-change.c:88
#, c-format
-#| msgid "Choose a new password for the '%s' keyring."
msgid "Choose a new password for the '%s' keyring"
msgstr "'%s' કીરીંગ માટે નવાં પાસવરà«àª¡àª¨à«‡ પસંદ કરો"
#: ../daemon/dbus/gkd-secret-change.c:92
#, fuzzy, c-format
-#| msgid ""
-#| "An unknown application wants to change the password for the '%s' keyring. "
-#| "You have to choose the password you want to use for it."
msgid ""
"An application wants to change the password for the '%s' keyring. Choose the "
"new password you want to use for it."
@@ -57,7 +54,6 @@ msgstr ""
"પાસવરà«àª¡ પસંદ કરવો પડશે."
#: ../daemon/dbus/gkd-secret-change.c:111
-#| msgid "The password or PIN is incorrect"
msgid "The original password was incorrect"
msgstr "મૂળભૂત પાસવરà«àª¡ અયોગà«àª¯ છે"
@@ -71,9 +67,6 @@ msgstr "નવી કીરીંગ માટે પાસવરà«àª¡ પસàª
#: ../daemon/dbus/gkd-secret-create.c:86
#, fuzzy, c-format
-#| msgid ""
-#| "An unknown application wants to create a new keyring called '%s'. You "
-#| "have to choose the password you want to use for it."
msgid ""
"An application wants to create a new keyring called '%s'. Choose the "
"password you want to use for it."
@@ -82,17 +75,14 @@ msgstr ""
"પાસવરà«àª¡ દાખલ કરવો પડશે."
#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
-#| msgid "Unlock certificate/key storage"
msgid "Certificate and Key Storage"
msgstr "પà«àª°àª®àª¾àª£àªªàª¤à«àª° અને કી સંગà«àª°àª¹"
#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
-#| msgid "GNOME Keyring Daemon"
msgid "GNOME Keyring: PKCS#11 Component"
msgstr "GNOME કીરીંગ: PKCS#11 ઘટક"
#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
-#| msgid "GNOME Keyring Daemon"
msgid "GNOME Keyring: Secret Service"
msgstr "GNOME કીરીંગ: ખાનગી સેવા"
@@ -101,7 +91,6 @@ msgid "Secret Storage Service"
msgstr "ખાનગી સંગà«àª°àª¹ સેવા"
#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
-#| msgid "GNOME Keyring Daemon"
msgid "GNOME Keyring: SSH Agent"
msgstr "GNOME કીરીંગ: SSH àªàªœàª¨à«àªŸ"
@@ -110,45 +99,41 @@ msgid "SSH Key Agent"
msgstr "SSH કી àªàªœàª¨à«àªŸ"
#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
-#| msgid "GNOME Keyring Daemon"
msgid "GNOME Keyring: GPG Agent"
msgstr "GNOME કીરીંગ: GPG àªàªœàª¨à«àªŸ"
#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
-#| msgid "New password strength"
msgid "GPG Password Agent"
msgstr "GPG પાસવરà«àªœ àªàªœàª¨à«àªŸ"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:291
-#: ../gcr/gcr-key-renderer.c:296
-#| msgid "Unknown error"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "અજà«àªžàª¾àª¤"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:199
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP કી: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:348
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:349
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "પાસફà«àª°à«‡àªœàª¨à«‡ દાખલ કરો"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:383
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "જો તેની માટે નિષà«àª•à«àª°àª¿àª¯ હોય તો આ પાસવરà«àª¡àª¨à«‡ ભૂલી જાઓ"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:384
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "પછીથી પાસવરà«àª¡àª¨à«‡ ભૂલી જાઓ"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:385
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "જà«àª¯àª¾àª°à«‡ હà«àª‚ બહાર નીકળૠતà«àª¯àª¾àª°à«‡ આ પાસવરà«àª¡àª¨à«‡ ભૂલી જાઓ"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "પà«àª°àªµà«‡àª¶"
@@ -192,7 +177,7 @@ msgstr "સામાનà«àª¯ નામ"
msgid "Surname"
msgstr "અટક"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:379
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "કà«àª°àª®àª¾àª‚ક નંબર"
@@ -248,654 +233,60 @@ msgstr "DN Qualifier"
msgid "Pseudonym"
msgstr "Pseudonym"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:287
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "RSA સાથે MD2"
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "RSA સાથે MD5"
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "RSA સાથે SHA1 "
-#: ../egg/egg-oid.c:107 ../gcr/gcr-key-renderer.c:289
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "DSA સાથે SHA1"
-#: ../egg/egg-spawn.c:273
-#, c-format
-msgid "Unexpected error in select() reading data from a child process (%s)"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
msgstr ""
-#: ../egg/egg-spawn.c:320
-#, c-format
-msgid "Unexpected error in waitpid() (%s)"
-msgstr "waitpid() માં અનિચà«àª›àª¿àª¤ ભૂલ (%s)"
-
-#: ../gcr/gcr-certificate-renderer.c:82 ../gcr/gcr-parser.c:201
-msgid "Certificate"
-msgstr "પà«àª°àª®àª¾àª£àªªàª¤à«àª°"
-
-#: ../gcr/gcr-certificate-renderer.c:107
-msgid "Extension"
-msgstr "àªàª•à«àª¸àªŸà«‡àª¨à«àª¶àª¨"
-
-#: ../gcr/gcr-certificate-renderer.c:112
-msgid "Identifier"
-msgstr "ઓળખનાર"
-
-#: ../gcr/gcr-certificate-renderer.c:120
-msgid "Value"
-msgstr "કિંમત"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "Critical"
-msgstr "સંકટમય"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "Yes"
-msgstr "હા"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "No"
-msgstr "ના"
-
-#: ../gcr/gcr-certificate-renderer.c:339
-#| msgid "Identifier"
-msgid "Identity"
-msgstr "ઓળખણ"
-
-#: ../gcr/gcr-certificate-renderer.c:343
-msgid "Verified by"
-msgstr "દà«àª¦àª¾àª°àª¾ ચકાસેલ છે"
-
-#: ../gcr/gcr-certificate-renderer.c:350
-#| msgid "Expires On"
-msgid "Expires"
-msgstr "નિવૃતà«àª¤"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:360
-msgid "Subject Name"
-msgstr "વિષય નામ"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:364
-msgid "Issuer Name"
-msgstr "પà«àª°àª•àª¾àª¶àª¿àª¤ કરનારનà«àª‚ નામ"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:368
-msgid "Issued Certificate"
-msgstr "મોકલેલ પà«àª°àª®àª¾àª£àªªàª¤à«àª°"
-
-#: ../gcr/gcr-certificate-renderer.c:373
-msgid "Version"
-msgstr "આવૃતà«àª¤àª¿"
-
-#: ../gcr/gcr-certificate-renderer.c:387
-msgid "Not Valid Before"
-msgstr "પહેલા યોગà«àª¯ નથી"
-
-#: ../gcr/gcr-certificate-renderer.c:392
-msgid "Not Valid After"
-msgstr "પછી યોગà«àª¯ નથી"
-
-#: ../gcr/gcr-certificate-renderer.c:401
-msgid "Signature Algorithm"
-msgstr "હસà«àª¤àª¾àª•à«àª·àª°àª¨àª¾àª‚ àªàª²à«àª—રિધમ"
-
-#: ../gcr/gcr-certificate-renderer.c:406
-msgid "Signature Parameters"
-msgstr "હસà«àª¤àª¾àª•à«àª·àª°àª¨àª¾àª‚ પરિમાણો"
-
-#: ../gcr/gcr-certificate-renderer.c:413
-msgid "Signature"
-msgstr "હસà«àª¤àª¾àª•à«àª·àª°"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:418
-msgid "Public Key Info"
-msgstr "સારà«àªµàªœàª¨àª¿àª• કી જાણકારી"
-
-#: ../gcr/gcr-certificate-renderer.c:423
-msgid "Key Algorithm"
-msgstr "કી àªàª²à«àª—રિધમ"
-
-#: ../gcr/gcr-certificate-renderer.c:429
-msgid "Key Parameters"
-msgstr "કી પરિમાણો"
-
-#: ../gcr/gcr-certificate-renderer.c:436
-msgid "Key Size"
-msgstr "કી માપ"
-
-#: ../gcr/gcr-certificate-renderer.c:444 ../gcr/gcr-key-renderer.c:271
-#: ../gcr/gcr-parser.c:204
-msgid "Public Key"
-msgstr "સારà«àªµàªœàª¨àª¿àª• કી"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:449
-msgid "Fingerprints"
-msgstr "ફિંગરપà«àª°àª¿àª‚ટો"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-#| msgid "Import Certificates/Keys"
-msgid "Import Certificates and Keys"
-msgstr "પà«àª°àª®àª¾àª£àªªàª¤à«àª°à«‹ અને કીઓ ને આયાત કરો"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "માં આયાત કરો:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "પાસવરà«àª¡:"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-#, fuzzy
-#| msgid "Automatically unlock this keyring when I log in."
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "જà«àª¯àª¾àª°à«‡ હà«àª‚ પà«àª°àªµà«‡àª¶ કરà«àª‚ તà«àª¯àª¾àª°à«‡ આ કીરીંગ આપોઆપ ખોલો."
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "પછીથી આ કીરીંગને તાળૠમારો"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "જો તેની માટે નિષà«àª•à«àª°àª¿àª¯ હોય તો આ કીરીંગને તાળૠમારો"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-#| msgid "Automatically unlock this keyring when I log in."
-msgid "Lock this keyring when I log out"
-msgstr "જà«àª¯àª¾àª°à«‡ હà«àª‚ બહાર નીકળૠતà«àª¯àª¾àª°à«‡ આ કીરીંગનà«àª‚ તાળૠમારો"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "મિનિટ"
-
-#: ../gcr/gcr-importer.c:133 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "ખાનગી કીનà«àª‚ તાળૠખોલવા માટે પાસવરà«àª¡ દાખલ કરો"
-
-#: ../gcr/gcr-importer.c:135 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "પà«àª°àª®àª¾àª£àªªàª¤à«àª°àª¨à«àª‚ તાળૠખોલવા માટે પાસવરà«àª¡ દાખલ કરો"
-
-#: ../gcr/gcr-importer.c:137 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "તાળૠખોલવા માટે પાસવરà«àª¡ દાખલ કરો"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:146
-msgid "In order to import the private key, it must be unlocked"
-msgstr "ખાનગી કી ને આયાત કરવા માટે કà«àª°àª®àª®àª¾àª‚, તેનà«àª‚ તાળૠખોલેલ હોવૠજ જોઇàª"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:149
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "પà«àª°àª®àª¾àª£àªªàª¤à«àª° ને આયાત કરવાનà«àª‚ કà«àª°àª®àª®àª¾àª‚, તેનà«àª‚ તાળૠખોલેલ હોવૠજ જોઇàª"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:152
-msgid "In order to import the data, it must be unlocked"
-msgstr "માહિતી ને આયાત કરવા માટે કà«àª°àª®àª®àª¾àª‚, તેને તાળૠખોલેલ જ હોવૠજોઇàª"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:157
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "ખાનગી કી '%s' ને આયાત કરવા માટે કà«àª°àª®àª®àª¾àª‚, તેનà«àª‚ તાળૠખોલેલ હોવૠજ જોઇàª"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:160
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "પà«àª°àª®àª¾àª£àªªàª¤à«àª° '%s' ને આયાત કરવાનà«àª‚ કà«àª°àª®àª®àª¾àª‚, તેનà«àª‚ તાળૠખોલેલ હોવૠજ જોઇàª"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:163
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "'%s' આયાત કરવા માટે કà«àª°àª®àª®àª¾àª‚. તેનà«àª‚ તાળૠખોલેલ હોવૠજ જોઇàª"
-
-#: ../gcr/gcr-importer.c:254 ../gcr/gcr-parser.c:1566 ../gcr/gcr-parser.c:1757
-#: ../gck/gck-misc.c:98
-msgid "The operation was cancelled"
-msgstr "પà«àª°àª•à«àª°àª¿àª¯àª¾ રદ કરી દીધી હતી"
-
-#: ../gcr/gcr-importer.c:346
-#, c-format
-msgid "No location available to import to"
-msgstr "આયાત કરવા માટે ઉપલà«àª¬àª§ સà«àª¥àª¾àª¨ નથી"
-
-#: ../gcr/gcr-importer.c:495
-msgid "Import Certificates/Keys"
-msgstr "પà«àª°àª®àª¾àª£àªªàª¤à«àª°à«‹/કીઓ ને આયાત કરો"
-
-#: ../gcr/gcr-importer.c:502
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "આયાત કરેલ પà«àª°àª®àª¾àª£àªªàª¤à«àª°à«‹/કીઓ ને સંગà«àª°àª¹ કરવા માટે સà«àª¥àª¾àª¨ ને પસંદ કરો."
-
-#: ../gcr/gcr-key-renderer.c:69
-msgid "Key"
-msgstr "કી"
-
-#: ../gcr/gcr-key-renderer.c:260
-#| msgid "Private Key"
-msgid "Private RSA Key"
-msgstr "ખાનગી RSA કી"
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
+msgstr ""
-#: ../gcr/gcr-key-renderer.c:262
-#| msgid "Private Key"
-msgid "Private DSA Key"
-msgstr "ખાનગી DSA કી"
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
-#: ../gcr/gcr-key-renderer.c:264 ../gcr/gcr-parser.c:198
-msgid "Private Key"
-msgstr "ખાનગી કી"
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
-#: ../gcr/gcr-key-renderer.c:267 ../gcr/gcr-key-renderer.c:269
-#| msgid "Public Key"
-msgid "Public DSA Key"
-msgstr "સારà«àªµàªœàª¨àª¿àª• DSA કી"
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
-#: ../gcr/gcr-key-renderer.c:278
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d બીટ"
-msgstr[1] "%d બીટ"
-
-#: ../gcr/gcr-key-renderer.c:279
-#| msgid "Street"
-msgid "Strength"
-msgstr "તાકાત"
-
-#: ../gcr/gcr-key-renderer.c:292
-#| msgid "Key Algorithm"
-msgid "Algorithm"
-msgstr "àªàª²à«àª—રિધમ"
-
-#: ../gcr/gcr-key-renderer.c:299
-#| msgid "Key Size"
-msgid "Size"
-msgstr "માપ"
-
-#. TODO: We need to have consistent key fingerprints.
-#: ../gcr/gcr-key-renderer.c:303
-#| msgid "Fingerprints"
-msgid "Fingerprint"
-msgstr "આંગળીની છાપ"
-
-#: ../gcr/gcr-parser.c:1569
-msgid "Unrecognized or unsupported data."
-msgstr "ઓળખાતી નથી અથવા આધારિત માહિતી નથી."
-
-#: ../gcr/gcr-parser.c:1572
-msgid "Could not parse invalid or corrupted data."
-msgstr "અયોગà«àª¯ અથવા બગડેલ માહિતી ને પદચà«àª›à«‡àª¦àª¨ કરી શકાયૠનહિં."
-
-#: ../gcr/gcr-parser.c:1575
-msgid "The data is locked"
-msgstr "માહિતી ને તાળૠમારેલ છે"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:420
-#, fuzzy, c-format
-#| msgid "Choose a location to store the imported certificates/keys."
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "આયાત કરેલ પà«àª°àª®àª¾àª£àªªàª¤à«àª°à«‹/કીઓ ને સંગà«àª°àª¹ કરવા માટે સà«àª¥àª¾àª¨ ને પસંદ કરો."
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr ""
-#: ../gck/gck-uri.c:124 ../gck/gck-uri.c:181 ../gck/gck-uri.c:216
-#: ../gck/gck-uri.c:248
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid "The URI has invalid syntax. The '%s' field encoding is invalid."
-msgstr "URI પાસે અયોગà«àª¯ સિનà«àªŸà«‡àª•à«àª· છે. '%s' કà«àª·à«‡àª¤à«àª° સંગà«àª°àª¹àªªàª¦à«àª¦àª¤àª¿ અયોગà«àª¯ છે."
-
-#: ../gck/gck-uri.c:287
-msgid "The URI has does not have the 'pkcs11' scheme."
-msgstr "URI પાસે 'pkcs11' યોજના નથી."
-
-#: ../gck/gck-misc.c:101
-msgid "Insufficient memory available"
-msgstr "અપરà«àª¯àª¾àªªà«àª¤ મેમરી ઉપલà«àª¬àª§ છે"
-
-#: ../gck/gck-misc.c:103
-msgid "The specified slot ID is not valid"
-msgstr "સà«àªªàª·à«àªŸ થયેલ સà«àª²à«‰àªŸ ID ઠયોગà«àª¯ નથી"
-
-#: ../gck/gck-misc.c:105
-msgid "Internal error"
-msgstr "આંતરિક ભૂલ"
-
-#: ../gck/gck-misc.c:107
-msgid "The operation failed"
-msgstr "કારà«àª¯ નિષà«àª«àª³ થયેલ છે"
-
-#: ../gck/gck-misc.c:109
-msgid "Invalid arguments"
-msgstr "અયોગà«àª¯ દલીલો"
-
-#: ../gck/gck-misc.c:111
-msgid "The module cannot create needed threads"
-msgstr "મોડà«àª¯à«àª² ઠજરૂરિયાત થà«àª°à«‡àª¡à«‹ ને બનાવી શકતા નથી"
-
-#: ../gck/gck-misc.c:113
-msgid "The module cannot lock data properly"
-msgstr "મોડà«àª¯à«àª² ઠબરાબર રીતે માહિતી ને તાળૠમારી શકતા નથી"
-
-#: ../gck/gck-misc.c:115
-msgid "The field is read-only"
-msgstr "કà«àª·à«‡àª¤à«àª° ઠફકà«àª¤ વંચાય છે"
-
-#: ../gck/gck-misc.c:117
-msgid "The field is sensitive and cannot be revealed"
-msgstr "કà«àª·à«‡àª¤à«àª° ઠસંવેદનશીલ છે અને બતાવી શકાતૠનથી"
-
-#: ../gck/gck-misc.c:119
-msgid "The field is invalid or does not exist"
-msgstr "કà«àª·à«‡àª¤à«àª° ઠઅયોગà«àª¯ છે અથવા અસà«àª¤àª¿àª¤à«àªµ ધરાવતૠનથી"
-
-#: ../gck/gck-misc.c:121
-msgid "Invalid value for field"
-msgstr "કà«àª·à«‡àª¤à«àª° માટે અયોગà«àª¯ કિંમત"
-
-#: ../gck/gck-misc.c:123
-msgid "The data is not valid or unrecognized"
-msgstr "માહિતી ઠયોગà«àª¯ અથવા ઓળખી ન શકાય તેવૠછે"
-
-#: ../gck/gck-misc.c:125
-msgid "The data is too long"
-msgstr "માહિતી ઘણી લાંબી છે"
-
-#: ../gck/gck-misc.c:127
-msgid "An error occurred on the device"
-msgstr "ભૂલ ઠઉપકરણ પર ઉતà«àªªàª¨à«àª¨ થયેલ છે"
-
-#: ../gck/gck-misc.c:129
-#| msgid "Insufficient memory available on device"
-msgid "Insufficient memory available on the device"
-msgstr "ઉપકરણ પર અપરà«àª¯àª¾àªªà«àª¤ મેમરી ઉપલà«àª¬àª§ છે"
-
-#: ../gck/gck-misc.c:131
-msgid "The device was removed or unplugged"
-msgstr "ઉપકરણ ઠદૂર કરેલ અને પલà«àª— થયેલ ન હતà«"
-
-#: ../gck/gck-misc.c:133
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "àªàª¨àª•à«àª°àª¿àªªà«àªŸ થયેલ માહિતી ઠયોગà«àª¯ અથવા ઓળખી શકાય તેમ નથી"
-
-#: ../gck/gck-misc.c:135
-msgid "The encrypted data is too long"
-msgstr "àªàª¨à«àª•à«àª°àª¿àªªà«àªŸ થયેલ માહિતી ઘણી લાંબી છે"
-
-#: ../gck/gck-misc.c:137
-msgid "This operation is not supported"
-msgstr "આ પà«àª°àª•à«àª°àª¿àª¯àª¾ આધારભૂત નથી"
-
-#: ../gck/gck-misc.c:139
-msgid "The key is missing or invalid"
-msgstr "કી ઠગà«àª® થયેલ અથવા અયોગà«àª¯ છે"
-
-#: ../gck/gck-misc.c:141
-msgid "The key is the wrong size"
-msgstr "કી ઠખોટી માપની છે"
-
-#: ../gck/gck-misc.c:143
-msgid "The key is of the wrong type"
-msgstr "કી ઠખોટા પà«àª°àª•àª¾àª°àª¨à«€ છે"
-
-#: ../gck/gck-misc.c:145
-msgid "No key is needed"
-msgstr "કી ની જરૂરિયાત નથી"
-
-#: ../gck/gck-misc.c:147
-msgid "The key is different than before"
-msgstr "કી ઠપહેલા કરતા જà«àª¦à«€ છે"
-
-#: ../gck/gck-misc.c:149
-msgid "A key is needed"
-msgstr "કી ની જરૂરિયાત છે"
-
-#: ../gck/gck-misc.c:151
-#, fuzzy
-#| msgid "Cannot include the key in digest"
-msgid "Cannot include the key in the digest"
-msgstr "સંકà«àª·à«‡àªª માં કી ને સમાવી શકાતૠનથી"
-
-#: ../gck/gck-misc.c:153
-msgid "This operation cannot be done with this key"
-msgstr "આ કà«àª°àª¿àª¯àª¾ ને આ કી સાથઠપૂરૠકરી શકાતૠનથી"
-
-#: ../gck/gck-misc.c:155
-msgid "The key cannot be wrapped"
-msgstr "કી ને વીંટાળી શકાતી નથી"
-
-#: ../gck/gck-misc.c:157
-msgid "Cannot export this key"
-msgstr "આ કી ને નિકાસ કરી શકાતી નથી"
-
-#: ../gck/gck-misc.c:159
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "કà«àª°àª¿àªªà«àªŸà«‹ કારà«àª¯àªªàª¦à«àª¦àª¤àª¿ ઠઅયોગà«àª¯ અથવા ઓળખી ન શકાય તેવૠછે"
-
-#: ../gck/gck-misc.c:161
-msgid "The crypto mechanism has an invalid argument"
-msgstr "કà«àª°àª¿àªªà«àªŸà«‹ કારà«àª¯àªªàª¦à«àª¦àª¤àª¿ પાસે અયોગà«àª¯ દલીલ છે"
-
-#: ../gck/gck-misc.c:163
-msgid "The object is missing or invalid"
-msgstr "ઓબà«àªœà«‡àª•à«àªŸ ઠગà«àª® થયેલ અથવા અયોગà«àª¯ છે"
-
-#: ../gck/gck-misc.c:165
-msgid "Another operation is already taking place"
-msgstr "બીજૠકારà«àª¯ ઠપહેલેથી જ જગà«àª¯àª¾ પર છે"
-
-#: ../gck/gck-misc.c:167
-msgid "No operation is taking place"
-msgstr "કારà«àª¯ ને સà«àª¥àª¾àª¨ પર લવાતૠનથી"
-
-#: ../gck/gck-misc.c:169
-msgid "The password or PIN is incorrect"
-msgstr "પાસવરà«àª¡ અથવા PIN ઠઅચોકà«àª•àª¸ છે"
-
-#: ../gck/gck-misc.c:171
-msgid "The password or PIN is invalid"
-msgstr "પાસવરà«àª¡ અથવા PIN ઠઅયોગà«àª¯ છે"
-
-#: ../gck/gck-misc.c:173
-msgid "The password or PIN is of an invalid length"
-msgstr "પાસવરà«àª¡ અથવા PIN ઠઅયોગà«àª¯ લંબાઇની છે"
-
-#: ../gck/gck-misc.c:175
-msgid "The password or PIN has expired"
-msgstr "પાસવરà«àª¡ અથવા PIN ઠનિવૃતà«àª¤ થયેલ છે"
-
-#: ../gck/gck-misc.c:177
-msgid "The password or PIN is locked"
-msgstr "પાસવરà«àª¡ અથવા PIN ને તાળૠમારેલ છે"
-
-#: ../gck/gck-misc.c:179
-msgid "The session is closed"
-msgstr "સતà«àª° બંધ થયેલ છે"
-
-#: ../gck/gck-misc.c:181
-msgid "Too many sessions are active"
-msgstr "ઘણાબધા સતà«àª°à«‹ સકà«àª°àª¿àª¯ છે"
-
-#: ../gck/gck-misc.c:183
-msgid "The session is invalid"
-msgstr "સતà«àª° ઠઅયોગà«àª¯ છે"
-
-#: ../gck/gck-misc.c:185
-msgid "The session is read-only"
-msgstr "સતà«àª° ને ફકà«àª¤ વંચાય છે"
-
-#: ../gck/gck-misc.c:187
-msgid "An open session exists"
-msgstr "ખà«àª²à«àª²à« સતà«àª° ઠઅસà«àª¤àª¿àª¤à«àªµ ધરાવે છે"
-
-#: ../gck/gck-misc.c:189
-msgid "A read-only session exists"
-msgstr "ફકà«àª¤ વાંચી શકાય તેવૠસતà«àª° અસà«àª¤àª¿àª¤à«àªµ ધરાવે છે"
-
-#: ../gck/gck-misc.c:191
-msgid "An administrator session exists"
-msgstr "વહીવટકરà«àª¤àª¾ સતà«àª° અસà«àª¤àª¿àª¤à«àªµ ધરાવે છે"
-
-#: ../gck/gck-misc.c:193
-msgid "The signature is bad or corrupted"
-msgstr "હસà«àª¤àª¾àª•à«àª·àª° ઠખરાબ છે અથવા બગડેલ છે"
-
-#: ../gck/gck-misc.c:195
-msgid "The signature is unrecognized or corrupted"
-msgstr "હસà«àª¤àª¾àª•à«àª·àª° ઠઓળખી ન શકાય અથવા બગડેલ છે"
-
-#: ../gck/gck-misc.c:197
-msgid "Certain required fields are missing"
-msgstr "અમà«àª• જરૂરી કà«àª·à«‡àª¤à«àª°à«‹ ઠગà«àª® થયેલ છે"
-
-#: ../gck/gck-misc.c:199
-msgid "Certain fields have invalid values"
-msgstr "અમà«àª• કà«àª·à«‡àª¤à«àª°à«‹ ની પાસે અયોગà«àª¯ કિંમતો છે"
-
-#: ../gck/gck-misc.c:201
-msgid "The device is not present or unplugged"
-msgstr "ઉપકરણ ઠહાલમાં અથવા પà«àª²àª— થયેલ નથી"
-
-#: ../gck/gck-misc.c:203
-msgid "The device is invalid or unrecognizable"
-msgstr "ઉપકરણ ઠઅયોગà«àª¯ છે અથવા ઓળખી શકાય તેવૠનથી"
-
-#: ../gck/gck-misc.c:205
-msgid "The device is write protected"
-msgstr "ઉપકરણ ઠલખાણ થી સà«àª°àª•à«àª·àª¿àª¤ થયેલ છે"
-
-#: ../gck/gck-misc.c:207
-msgid "Cannot import because the key is invalid"
-msgstr "આયાત કરી શકાતૠનથી કારણ કે કી અયોગà«àª¯ છે"
-
-#: ../gck/gck-misc.c:209
-msgid "Cannot import because the key is of the wrong size"
-msgstr "આયાત કરી શકાતૠનથી કારણ કે કી ઠખોટી માપની છે"
-
-#: ../gck/gck-misc.c:211
-msgid "Cannot import because the key is of the wrong type"
-msgstr "આયાત કરી શકાતૠનથી કારણ કે કી ઠખોટા પà«àª°àª•àª¾àª°àª¨à«€ છે"
-
-#: ../gck/gck-misc.c:213
-msgid "You are already logged in"
-msgstr "તમે પહેલેથી દાખલ થયેલ છે"
-
-#: ../gck/gck-misc.c:215
-msgid "No user has logged in"
-msgstr "વપરાશકરà«àª¤àª¾ પà«àª°àªµà«‡àª¶à«‡àª² નથી"
-
-#: ../gck/gck-misc.c:217
-msgid "The user's password or PIN is not set"
-msgstr "વપરાશકરà«àª¤àª¾ નો પાસવરà«àª¡ અથવા PIN સà«àª¯à«‹àªœàª¿àª¤ નથી"
-
-#: ../gck/gck-misc.c:219
-msgid "The user is of an invalid type"
-msgstr "વપરાશકરà«àª¤àª¾ અયોગà«àª¯ પà«àª°àª•àª¾àª°àª¨à«‹ છે"
-
-#: ../gck/gck-misc.c:221
-msgid "Another user is already logged in"
-msgstr "બીજો વપરાશકરà«àª¤àª¾ ઠપહેલેથી જ દાખલ થયેલ છે"
-
-#: ../gck/gck-misc.c:223
-#, fuzzy
-#| msgid "Too many users of different types logged in"
-msgid "Too many users of different types are logged in"
-msgstr "વિવિધ પà«àª°àª•àª¾àª°àª¨àª¾àª‚ ઘણાબધા વપરાશકરà«àª¤àª¾àª“ દાખલ થયેલ છે"
-
-#: ../gck/gck-misc.c:225
-msgid "Cannot import an invalid key"
-msgstr "અયોગà«àª¯ કી આયાત કરી શકાતી નથી"
-
-#: ../gck/gck-misc.c:227
-msgid "Cannot import a key of the wrong size"
-msgstr "ખોટા માપની કી આયાત કરી શકાતી નથી"
-
-#: ../gck/gck-misc.c:229
-msgid "Cannot export because the key is invalid"
-msgstr "નિકાસ કરી શકાતી નથી કારણ કે કી અયોગà«àª¯ છે"
-
-#: ../gck/gck-misc.c:231
-msgid "Cannot export because the key is of the wrong size"
-msgstr "નિકાસ કરી શકાતૠનથી કારણ કે કી ખોટા માપની છે"
-
-#: ../gck/gck-misc.c:233
-msgid "Cannot export because the key is of the wrong type"
-msgstr "નિકાસ કરી શકાતી નથી કારણ કે કી ખોટા પà«àª°àª•àª¾àª°àª¨à«€ છે"
-
-#: ../gck/gck-misc.c:235
-msgid "Unable to initialize the random number generator"
-msgstr "રેનà«àª¡àª® નંબર બનાવનારનો આરંભ કરવામાં અસમરà«àª¥"
-
-#: ../gck/gck-misc.c:237
-msgid "No random number generator available"
-msgstr "કોઈ રેનà«àª¡àª® નંબર બનાવનાર ઉપલબà«àª§ નથી"
-
-#: ../gck/gck-misc.c:239
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "કà«àª°àª¿àªªà«àªŸà«‹ કારà«àª¯àªªàª¦à«àª¦àª¤àª¿ ની પાસે અયોગà«àª¯ પરિમાણ છે"
-
-#: ../gck/gck-misc.c:241
-msgid "Not enough space to store the result"
-msgstr "પરિણામને સંગà«àª°àª¹ કરવા માટે પૂરતી જગà«àª¯àª¾ નથી"
-
-#: ../gck/gck-misc.c:243
-msgid "The saved state is invalid"
-msgstr "સંગà«àª°àª¹ થયેલ સà«àª¥àª¿àª¤àª¿ ઠઅયોગà«àª¯ છે"
-
-#: ../gck/gck-misc.c:245
-msgid "The information is sensitive and cannot be revealed"
-msgstr "જાણકારી સંવેદનશીલ છે અને ખોલી શકાતી નથી"
-
-#: ../gck/gck-misc.c:247
-msgid "The state cannot be saved"
-msgstr "સà«àª¥àª¿àª¤àª¿ નો સંગà«àª°àª¹ કરી શકાતો નથી"
-
-#: ../gck/gck-misc.c:249
-msgid "The module has not been initialized"
-msgstr "મોડà«àª¯à«àª²àª¨à«€ શરૂઆત કરી દેવામાં આવી નથી"
-
-#: ../gck/gck-misc.c:251
-msgid "The module has already been initialized"
-msgstr "મોડà«àª¯à«àª² પહેલાથી જ શરૂ કરી દેવામાં આવેલ છે"
-
-#: ../gck/gck-misc.c:253
-msgid "Cannot lock data"
-msgstr "માહિતીને તાળૠમારી શકાતૠનથી"
-
-#: ../gck/gck-misc.c:255
-msgid "The data cannot be locked"
-msgstr "માહિતીને તાળૠમારી શકાતૠનથી"
-
-#: ../gck/gck-misc.c:257
-msgid "The signature request was rejected by the user"
-msgstr "સહી અરજી વપરાશકરà«àª¤àª¾ દà«àªµàª¾àª°àª¾ રદ કરવામાં આવી હતી"
-
-#: ../gck/gck-misc.c:261
-msgid "Unknown error"
-msgstr "અજાણી ભૂલ"
+msgid "Unexpected error in waitpid() (%s)"
+msgstr "waitpid() માં અનિચà«àª›àª¿àª¤ ભૂલ (%s)"
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
@@ -906,16 +297,14 @@ msgid "Couldn't parse public SSH key"
msgstr "સારà«àªµàªœàª¨àª¿àª• SSH કી નà«àª‚ પદચà«àª›à«‡àª¦àª¨ કરી શકાયૠનહિં"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
-#| msgid "Unlock password for %s keyring"
msgid "Unlock password for: %s"
msgstr "તેની માટે પાસવરà«àª¡àª¨à«àª‚ તાળૠખોલો: %s"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
#, fuzzy
-#| msgid "The password or PIN is incorrect"
msgid "The unlock password was incorrect"
msgstr "પાસવરà«àª¡ અથવા PIN ઠઅચોકà«àª•àª¸ છે"
@@ -925,7 +314,6 @@ msgstr "કીરીંગનો પà«àª°àªµà«‡àª¶ માટે તાળૠàª
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
#, fuzzy
-#| msgid "Enter login password to unlock keyring"
msgid "Enter password to unlock your login keyring"
msgstr "કીરીંગનà«àª‚ તાળૠખોલવા માટે પà«àª°àªµà«‡àª¶ માટે પાસવરà«àª¡àª¨à«‡ દાખલ કરો"
@@ -937,10 +325,8 @@ msgstr ""
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
#, fuzzy
-#| msgid ""
-#| "Your login keyring was not automatically unlocked when you logged into "
-#| "this computer."
-msgid "The login keyring did not get unlocked when you logged into your computer."
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
msgstr "તમારા પà«àª°àªµà«‡àª¶ કીરીંગને આપોઆપ તાળà«àª‚ મરાયેલ નથી જà«àª¯àª¾àª°à«‡ તમે આ કમà«àªªà«àª¯à«‚ટરમાં પà«àª°àªµà«‡àª¶à«àª¯àª¾."
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
@@ -954,8 +340,6 @@ msgstr "કીરીંગ '%s' નà«àª‚ તાળૠખોલવા માટ
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
#, fuzzy, c-format
-#| msgid ""
-#| "An unknown application wants access to the keyring '%s', but it is locked"
msgid "An application wants access to the keyring '%s', but it is locked"
msgstr "àªàª• અજà«àªžàª¾àª¤ કારà«àª¯àª•à«àª°àª® કીરીંગ '%s' ને ચલાવવા માંગે છે, પરંતૠતે તાળૠમરાયેલ છે"
@@ -975,10 +359,22 @@ msgstr "સારà«àªµàªœàª¨àª¿àª• કીનà«àª‚ તાળૠખોલો"
msgid "Unlock"
msgstr "તાળૠખોલો"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "ખાનગી કીનà«àª‚ તાળૠખોલવા માટે પાસવરà«àª¡ દાખલ કરો"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "પà«àª°àª®àª¾àª£àªªàª¤à«àª°àª¨à«àª‚ તાળૠખોલવા માટે પાસવરà«àª¡ દાખલ કરો"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "સારà«àªµàªœàª¨àª¿àª• કી ને તાળૠખોલવા માટે પાસવરà«àª¡ દાખલ કરો"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "તાળૠખોલવા માટે પાસવરà«àª¡ દાખલ કરો"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1035,18 +431,17 @@ msgid ""
msgstr "પà«àª°àª®àª¾àª£àªªàª¤à«àª°à«‹ કે કીઓના સંગà«àª°àª¹ માટે '%s' તેયાર કરવા માટે, પાસવરà«àª¡ જરૂરી છે"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
-#| msgid "Change Keyring Password"
msgid "Change Password"
msgstr "પાસવરà«àª¡ બદલો"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
-#| msgid "New password required for secure storage"
msgid "Change password for secure storage"
msgstr "સà«àª°àª•à«àª·àª¿àª¤ સંગà«àª°àª¹ માટે પાસવરà«àª¡ બદલો"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
-msgid "To change the password for '%s', the original and new passwords are required"
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
msgstr "'%s' માટે પાસવરà«àª¡àª¨à«‡ બદલવા માટે, જૂનાં અને નવાં પાસવરà«àª¡à«‹ જરૂરી છે"
#: ../tool/gkr-tool.c:102
@@ -1063,11 +458,11 @@ msgstr "આદેશો: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:597
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "àªàª¨àª•à«àª°àª¿àªªà«àªŸ ન થયેલા પાસવરà«àª¡à«‹ ને સંગà«àª°àª¹à«‹?"
-#: ../ui/gku-prompt-tool.c:598
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1076,15 +471,15 @@ msgstr ""
"ખાલી પાસવરà«àª¡ વાપરવાનà«àª‚ પસંદ કરીને, તમારા સંગà«àª°àª¹àª¾àª¯à«‡àª² પાસવરà«àª¡à«‹ સà«àª°àª•à«àª·àª¿àª¤ રીતે àªàª¨àª•à«àª°àª¿àªªà«àªŸ થશે "
"નહિં. તેઓ તમારી ફાઈલોના વપરાશ સાથે કોઈપણના દà«àªµàª¾àª°àª¾ સà«àª²àª­ થશે."
-#: ../ui/gku-prompt-tool.c:605
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "અસà«àª°àª•à«àª·àª¿àª¤ સંગà«àª°àª¹ વાપરો"
-#: ../ui/gku-prompt-tool.c:643
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "પાસવરà«àª¡à«‹ બંધબેસતા નથી."
-#: ../ui/gku-prompt-tool.c:653
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "પાસવરà«àª¡ ખાલી હોઈ શકે નહિં"
@@ -1101,12 +496,10 @@ msgid "New password strength"
msgstr "નવા પાસવરà«àª¡àª¨à«€ મજબૂતાઈ"
#: ../ui/gku-prompt.ui.h:2
-#| msgid "_Location:"
msgid "_Application:"
msgstr "કારà«àª¯àª•à«àª°àª® (_A):"
#: ../ui/gku-prompt.ui.h:3
-#| msgid "_Confirm password:"
msgid "_Confirm:"
msgstr "ખાતરી કરો (_C):"
@@ -1119,11 +512,9 @@ msgid "_Name:"
msgstr "નામ (_N):"
#: ../ui/gku-prompt.ui.h:6
-#| msgid "_Old password:"
msgid "_Old Password:"
msgstr "જૂનો પાસવરà«àª¡ (_O):"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "પાસવરà«àª¡ (_P):"
-
diff --git a/po/he.po b/po/he.po
index 91f6a2cc..cbc366df 100644
--- a/po/he.po
+++ b/po/he.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-30 14:01+0300\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-30 14:08+0200\n"
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
"Language-Team: Hebrew <sh.yaron@gmail.com>\n"
@@ -100,9 +100,7 @@ msgstr "קבוצת מפתחות GNOME: סוכן GPG"
msgid "GPG Password Agent"
msgstr "סוכן ססמ×ות ×”Ö¾PGP"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106 ../gcr/gcr-gnupg-renderer.c:256
-#: ../gcr/gcr-gnupg-renderer.c:415 ../gcr/gcr-key-renderer.c:312
-#: ../gcr/gcr-key-renderer.c:317
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "×œ× ×™×“×•×¢"
@@ -129,7 +127,7 @@ msgid "Forget this password when I log out"
msgstr "מחיקת ססמה זו בעת היצי××”"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "כניסה"
@@ -137,8 +135,7 @@ msgstr "כניסה"
msgid "Domain Component"
msgstr "רכיב מתח×"
-#: ../egg/egg-oid.c:43 ../gcr/gcr-gnupg-renderer.c:411
-#: ../gcr/gcr-gnupg-renderer.c:580
+#: ../egg/egg-oid.c:43
msgid "User ID"
msgstr "מזהה משתמש"
@@ -174,7 +171,7 @@ msgstr "×©× × ×¤×•×¥"
msgid "Surname"
msgstr "×©× ×ž×©×¤×—×”"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:651
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "מספר סידורי"
@@ -230,8 +227,7 @@ msgstr "בעל ×©× ×”×ž×ª×—×"
msgid "Pseudonym"
msgstr "כינוי"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-gnupg-renderer.c:202
-#: ../gcr/gcr-key-renderer.c:308
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -247,8 +243,7 @@ msgstr "MD5 ×¢× RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 ×¢× RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-gnupg-renderer.c:206
-#: ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -287,808 +282,6 @@ msgstr "שגי××” בלתי צפויה בעת ש־select()‎ ×§×¨× × ×ª×•× ×™×
msgid "Unexpected error in waitpid() (%s)"
msgstr "שגי××” בלתי צפויה ב־waitpid()‎†(%s)"
-#: ../gck/gck-module.c:427
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "שגי××” בטעינת PKCS#11:†%s"
-
-#: ../gck/gck-module.c:434
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "מודול PKCS#11 שגוי:†%s"
-
-#: ../gck/gck-module.c:443
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "×œ× × ×™×ª×Ÿ להגדיר ×ת מודול ×”Ö¾PKCS#11:†%s"
-
-#: ../gck/gck-module.c:459
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "×œ× × ×™×ª×Ÿ להפעיל ×ת מודול ×”Ö¾PKCS#11:†%s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "×œ× × ×™×ª×Ÿ להפעיל ×ת מודולי ×”Ö¾PKCS#11 הרשומי×: %s"
-
-#: ../gcr/gcr-callback-output-stream.c:64
-#: ../gcr/gcr-callback-output-stream.c:81
-#, c-format
-msgid "The stream was closed"
-msgstr "×”×ª×–×¨×™× × ×¡×’×¨"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:378 ../gcr/gcr-gnupg-key.c:521
-msgctxt "column"
-msgid "Name"
-msgstr "ש×"
-
-#: ../gcr/gcr-certificate.c:380
-msgctxt "column"
-msgid "Issued By"
-msgstr "הונפקה על ידי"
-
-#. later
-#: ../gcr/gcr-certificate.c:382
-msgctxt "column"
-msgid "Expires"
-msgstr "תפוגה"
-
-#: ../gcr/gcr-certificate.c:1065 ../gcr/gcr-certificate-exporter.c:463
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:301
-msgid "Certificate"
-msgstr "תעודה"
-
-#: ../gcr/gcr-certificate-exporter.c:225
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>כבר ×§×™×™× ×§×•×‘×¥ ×‘×©× ×–×”.</b>\n"
-"\n"
-"×”×× ×‘×¨×¦×•× ×š להחליף ×ותו בקובץ חדש?"
-
-#: ../gcr/gcr-certificate-exporter.c:228
-msgid "_Replace"
-msgstr "ה_חלפה"
-
-#: ../gcr/gcr-certificate-exporter.c:258
-#, c-format
-msgid "The operation was cancelled."
-msgstr "הפעולה בוטלה."
-
-#: ../gcr/gcr-certificate-exporter.c:302
-msgid "Export certificate"
-msgstr "×™×¦×•× ×ישור"
-
-#: ../gcr/gcr-certificate-exporter.c:314
-msgid "Certificate files"
-msgstr "קובצי ×ישורי×"
-
-#: ../gcr/gcr-certificate-exporter.c:325
-msgid "PEM files"
-msgstr "קובצי PEM"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "×©× ×חר"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "כתובת ה־XMPP"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "שרת DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:166 ../gcr/gcr-gnupg-renderer.c:424
-#: ../gcr/gcr-gnupg-renderer.c:706
-msgid "Email"
-msgstr "דו×״ל"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "כתובת X400"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "×©× ×”×¡×¤×¨×™×™×”"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "×©× ×¦×“ ×”Ö¾EDI"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "כתובת ייחודית"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "כתובת ה־IP"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "מזהה רשו×"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "הגבלות בסיסיות"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "רשות תעודות"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "כן"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "ל×"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "×ורך הנתיב המרבי"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "מוגבל"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "שימוש מורחב במפתח"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "מטרות מורשות"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "מזהה מפתח של מקבל התעודה"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "מזהה מפתח"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "חתימה דיגיטלית"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "הצפנת מפתח"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "הצפנת נתוני×"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "×”×¡×›× ×ž×¤×ª×—"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "חתימת התעודה"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "חתימת רשימת השלילה"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "שימוש במפתח"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "שימושי×"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "שמות ×—×œ×•×¤×™×™× ×œ×ž×§×‘×œ התעודה"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "הרחבה"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "מזהה"
-
-#: ../gcr/gcr-certificate-renderer.c:266 ../gcr/gcr-gnupg-renderer.c:415
-#: ../gcr/gcr-gnupg-renderer.c:432
-msgid "Value"
-msgstr "ערך"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "קריטי"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "×œ× × ×™×ª×Ÿ ×œ×™×™×¦× ×ת ×”×ישור."
-
-#: ../gcr/gcr-certificate-renderer.c:612
-msgid "Identity"
-msgstr "זהות"
-
-#: ../gcr/gcr-certificate-renderer.c:616
-msgid "Verified by"
-msgstr "×ומת על ידי"
-
-#: ../gcr/gcr-certificate-renderer.c:623 ../gcr/gcr-gnupg-renderer.c:720
-msgid "Expires"
-msgstr "תפוגה"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:633
-msgid "Subject Name"
-msgstr "×©× ×ž×§×‘×œ התעודה"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:637
-msgid "Issuer Name"
-msgstr "×©× ×”×—×•×ª×"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:641
-msgid "Issued Certificate"
-msgstr "תעודה שהונפקה"
-
-#: ../gcr/gcr-certificate-renderer.c:646
-msgid "Version"
-msgstr "גרסה"
-
-#: ../gcr/gcr-certificate-renderer.c:658
-msgid "Not Valid Before"
-msgstr "×œ× ×ª×§×£ לפני"
-
-#: ../gcr/gcr-certificate-renderer.c:663
-msgid "Not Valid After"
-msgstr "×œ× ×ª×§×£ ל×חר"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:668
-msgid "Certificate Fingerprints"
-msgstr "טביעות ×צבע של תעודה"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:674 ../gcr/gcr-certificate-renderer.c:686
-#: ../gcr/gcr-gnupg-renderer.c:561
-msgid "Signature"
-msgstr "חתימה"
-
-#: ../gcr/gcr-certificate-renderer.c:678
-msgid "Signature Algorithm"
-msgstr "××œ×’×•×¨×™×ª× ×”×—×ª×™×ž×”"
-
-#: ../gcr/gcr-certificate-renderer.c:682
-msgid "Signature Parameters"
-msgstr "×”×¤×¨×ž×˜×¨×™× ×©×œ החתימה"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:690
-msgid "Public Key Info"
-msgstr "נתוני מפתח ציבו××™"
-
-#: ../gcr/gcr-certificate-renderer.c:695
-msgid "Key Algorithm"
-msgstr "××œ×’×•×¨×™×ª× ×”×ž×¤×ª×—"
-
-#: ../gcr/gcr-certificate-renderer.c:700
-msgid "Key Parameters"
-msgstr "×”×¤×¨×ž×˜×¨×™× ×©×œ המפתח"
-
-#: ../gcr/gcr-certificate-renderer.c:705 ../gcr/gcr-gnupg-renderer.c:354
-msgid "Key Size"
-msgstr "גודל המפתח"
-
-#: ../gcr/gcr-certificate-renderer.c:712
-msgid "Key SHA1 Fingerprint"
-msgstr "טביעת ×צבע של מפתח SHA1"
-
-#: ../gcr/gcr-certificate-renderer.c:718 ../gcr/gcr-gnupg-renderer.c:739
-#: ../gcr/gcr-key-renderer.c:292 ../gcr/gcr-parser.c:304
-msgid "Public Key"
-msgstr "מפתח ציבורי"
-
-#: ../gcr/gcr-display-view.c:319
-msgid "_Details"
-msgstr "_פרטי×"
-
-#: ../gcr/gcr-failure-renderer.c:161
-#, c-format
-msgid "Could not display '%s'"
-msgstr "×œ× × ×™×ª×Ÿ להציג ×ת '%s'"
-
-#: ../gcr/gcr-failure-renderer.c:163
-msgid "Could not display file"
-msgstr "×œ× × ×™×ª×Ÿ להציג ×ת הקובץ"
-
-#: ../gcr/gcr-failure-renderer.c:168
-msgid "Reason"
-msgstr "סיבה"
-
-#: ../gcr/gcr-failure-renderer.c:218
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "×œ× × ×™×ª×Ÿ להציג ×§×‘×¦×™× ×ž×¡×•×’ ×–×”"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "×™×‘×•× ××™×©×•×¨×™× ×•×ž×¤×ª×—×•×ª"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "×™×™×‘×•× ×œ×ª×•×š:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "ססמה:"
-
-#: ../gcr/gcr-gnupg-importer.c:90
-msgid "GnuPG Keyring"
-msgstr "קבוצת מפתחות GnuPG"
-
-#: ../gcr/gcr-gnupg-importer.c:92
-#, c-format
-msgid "GnuPG Keyring: %s"
-msgstr "קבוצת מפתחות GnuPGâ€: %s"
-
-#: ../gcr/gcr-gnupg-key.c:234 ../gcr/gcr-gnupg-renderer.c:88
-#: ../gcr/gcr-parser.c:307
-msgid "PGP Key"
-msgstr "מפתח PGP"
-
-#: ../gcr/gcr-gnupg-key.c:523
-msgctxt "column"
-msgid "Key ID"
-msgstr "מזהה המפתח"
-
-#: ../gcr/gcr-gnupg-process.c:860
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "התהליך Gnupg ×™×¦× ×¢× ×”×§×•×“: %d"
-
-#: ../gcr/gcr-gnupg-process.c:867
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "התהליך Gnupg חוסל ×¢× ×”×ות: %d"
-
-#: ../gcr/gcr-gnupg-process.c:921 ../gcr/gcr-parser.c:2155
-#: ../gcr/gcr-parser.c:2659
-msgid "The operation was cancelled"
-msgstr "הפעולה בוטלה"
-
-#: ../gcr/gcr-gnupg-renderer.c:204
-msgid "Elgamal"
-msgstr "×ל־â€×’מ×ל"
-
-#: ../gcr/gcr-gnupg-renderer.c:217
-msgid "Encrypt"
-msgstr "הצפנה"
-
-#: ../gcr/gcr-gnupg-renderer.c:219
-msgid "Sign"
-msgstr "חתימה"
-
-#: ../gcr/gcr-gnupg-renderer.c:221
-msgid "Certify"
-msgstr "×ישור"
-
-#: ../gcr/gcr-gnupg-renderer.c:223
-msgid "Authenticate"
-msgstr "×ימות"
-
-#: ../gcr/gcr-gnupg-renderer.c:225 ../gcr/gcr-gnupg-renderer.c:260
-msgid "Disabled"
-msgstr "מנוטרל"
-
-#: ../gcr/gcr-gnupg-renderer.c:258
-msgid "Invalid"
-msgstr "שגוי"
-
-#: ../gcr/gcr-gnupg-renderer.c:262
-msgid "Revoked"
-msgstr "נשלל"
-
-#: ../gcr/gcr-gnupg-renderer.c:264
-msgid "Expired"
-msgstr "פג"
-
-#: ../gcr/gcr-gnupg-renderer.c:266
-msgid "Undefined trust"
-msgstr "מהימנות בלי מוגדרת"
-
-#: ../gcr/gcr-gnupg-renderer.c:268
-msgid "Distrusted"
-msgstr "×œ× ×ž×”×™×ž×Ÿ"
-
-#: ../gcr/gcr-gnupg-renderer.c:270
-msgid "Marginally trusted"
-msgstr "מהימן ב×ופן גבולי"
-
-#: ../gcr/gcr-gnupg-renderer.c:272
-msgid "Fully trusted"
-msgstr "מהימן לגמרי"
-
-#: ../gcr/gcr-gnupg-renderer.c:274
-msgid "Ultimately trusted"
-msgstr "מהימן לחלוטין"
-
-#: ../gcr/gcr-gnupg-renderer.c:288
-msgid "The information in this key has not yet been verified"
-msgstr "המידע במפתח ×–×” ×œ× ×ומת"
-
-#: ../gcr/gcr-gnupg-renderer.c:291
-msgid "This key is invalid"
-msgstr "מפתח זה שגוי"
-
-#: ../gcr/gcr-gnupg-renderer.c:294
-msgid "This key has been disabled"
-msgstr "מפתח זה נוטרל"
-
-#: ../gcr/gcr-gnupg-renderer.c:297
-msgid "This key has been revoked"
-msgstr "מפתח זה נשלל"
-
-#: ../gcr/gcr-gnupg-renderer.c:300
-msgid "This key has expired"
-msgstr "מפתח זה פג"
-
-#: ../gcr/gcr-gnupg-renderer.c:305
-msgid "This key is distrusted"
-msgstr "המפתח ×ינו מהימן"
-
-#: ../gcr/gcr-gnupg-renderer.c:308
-msgid "This key is marginally trusted"
-msgstr "מפתח ×–×” מהימן ב×ופן גבולי"
-
-#: ../gcr/gcr-gnupg-renderer.c:311
-msgid "This key is fully trusted"
-msgstr "מפתח זה מהימן לחלוטין"
-
-#: ../gcr/gcr-gnupg-renderer.c:314
-msgid "This key is ultimately trusted"
-msgstr "מפתח זה מהימן לחלוטין"
-
-#: ../gcr/gcr-gnupg-renderer.c:339 ../gcr/gcr-gnupg-renderer.c:565
-msgid "Key ID"
-msgstr "מזהה המפתח"
-
-#: ../gcr/gcr-gnupg-renderer.c:347 ../gcr/gcr-gnupg-renderer.c:573
-#: ../gcr/gcr-gnupg-renderer.c:620 ../gcr/gcr-key-renderer.c:313
-msgid "Algorithm"
-msgstr "×לגורית×"
-
-#: ../gcr/gcr-gnupg-renderer.c:362 ../gcr/gcr-gnupg-renderer.c:439
-#: ../gcr/gcr-gnupg-renderer.c:482
-msgid "Created"
-msgstr "נוצר"
-
-#: ../gcr/gcr-gnupg-renderer.c:371 ../gcr/gcr-gnupg-renderer.c:448
-#: ../gcr/gcr-gnupg-renderer.c:491
-msgid "Expiry"
-msgstr "תפוגה"
-
-#: ../gcr/gcr-gnupg-renderer.c:380
-msgid "Capabilities"
-msgstr "יכולות"
-
-#: ../gcr/gcr-gnupg-renderer.c:393
-msgid "Owner trust"
-msgstr "מהימנות הבעלי×"
-
-#: ../gcr/gcr-gnupg-renderer.c:421
-msgid "Name"
-msgstr "ש×"
-
-#: ../gcr/gcr-gnupg-renderer.c:427 ../gcr/gcr-gnupg-renderer.c:709
-msgid "Comment"
-msgstr "הערה"
-
-#: ../gcr/gcr-gnupg-renderer.c:467
-msgid "User Attribute"
-msgstr "תכונת המשתמש"
-
-#: ../gcr/gcr-gnupg-renderer.c:474 ../gcr/gcr-key-renderer.c:320
-msgid "Size"
-msgstr "גודל"
-
-#: ../gcr/gcr-gnupg-renderer.c:509
-msgid "Signature of a binary document"
-msgstr "חתימה של מסמך בינרי"
-
-#: ../gcr/gcr-gnupg-renderer.c:511
-msgid "Signature of a canonical text document"
-msgstr "חתימת מסמך טקסט קנוני"
-
-#: ../gcr/gcr-gnupg-renderer.c:513
-msgid "Standalone signature"
-msgstr "חתימה עצמ×ית"
-
-#: ../gcr/gcr-gnupg-renderer.c:515
-msgid "Generic certification of key"
-msgstr "חתימה כללית של מפתח"
-
-#: ../gcr/gcr-gnupg-renderer.c:517
-msgid "Persona certification of key"
-msgstr "חתימה ×ישית של מפתח"
-
-#: ../gcr/gcr-gnupg-renderer.c:519
-msgid "Casual certification of key"
-msgstr "חתימה רגילה של מפתח"
-
-#: ../gcr/gcr-gnupg-renderer.c:521
-msgid "Positive certification of key"
-msgstr "חתימה חיובית של מפתח"
-
-#: ../gcr/gcr-gnupg-renderer.c:523
-msgid "Subkey binding signature"
-msgstr "חתימת ×יגוד תת־מפתח"
-
-#: ../gcr/gcr-gnupg-renderer.c:525
-msgid "Primary key binding signature"
-msgstr "חתימת ×יגוד מפתח עיקרי"
-
-#: ../gcr/gcr-gnupg-renderer.c:527
-msgid "Signature directly on key"
-msgstr "חתימה ישירות על מפתח"
-
-#: ../gcr/gcr-gnupg-renderer.c:529
-msgid "Key revocation signature"
-msgstr "חתימת שלילת מפתח"
-
-#: ../gcr/gcr-gnupg-renderer.c:531
-msgid "Subkey revocation signature"
-msgstr "חתימת שלילת תת־מפתח"
-
-#: ../gcr/gcr-gnupg-renderer.c:533
-msgid "Certification revocation signature"
-msgstr "חתימת שלילת ×”×ישור"
-
-#: ../gcr/gcr-gnupg-renderer.c:535
-msgid "Timestamp signature"
-msgstr "חתימת טביעת זמן"
-
-#: ../gcr/gcr-gnupg-renderer.c:537
-msgid "Third-party confirmation signature"
-msgstr "חתימת ×ישור צד־שלישי"
-
-#: ../gcr/gcr-gnupg-renderer.c:590 ../gcr/gcr-gnupg-renderer.c:598
-msgid "Class"
-msgstr "מחלקה"
-
-#: ../gcr/gcr-gnupg-renderer.c:592 ../gcr/gcr-gnupg-renderer.c:594
-msgid "Type"
-msgstr "סוג"
-
-#: ../gcr/gcr-gnupg-renderer.c:592
-msgid "Local only"
-msgstr "מקומי בלבד"
-
-#: ../gcr/gcr-gnupg-renderer.c:594
-msgid "Exportable"
-msgstr "ניתן לייצו×"
-
-#: ../gcr/gcr-gnupg-renderer.c:612
-msgid "Revocation Key"
-msgstr "מפתח שלילה"
-
-#: ../gcr/gcr-gnupg-renderer.c:626 ../gcr/gcr-gnupg-renderer.c:650
-#: ../gcr/gcr-gnupg-renderer.c:652
-msgid "Fingerprint"
-msgstr "טביעת ×צבע"
-
-#: ../gcr/gcr-gnupg-renderer.c:741
-msgid "Public Subkey"
-msgstr "תת־מפתח ציבורי"
-
-#: ../gcr/gcr-gnupg-renderer.c:743
-msgid "Secret Key"
-msgstr "מפתח סודי"
-
-#: ../gcr/gcr-gnupg-renderer.c:745
-msgid "Secret Subkey"
-msgstr "תת־מפתח סודי"
-
-#: ../gcr/gcr-import-button.c:106
-msgid "Initializing..."
-msgstr "בהליכי הפעלה..."
-
-#: ../gcr/gcr-import-button.c:113
-msgid "Import is in progress..."
-msgstr "מתבצע ייבו×..."
-
-#: ../gcr/gcr-import-button.c:119
-#, c-format
-msgid "Imported to: %s"
-msgstr "×™×™×•×‘× ×œ×ª×•×š: %s"
-
-#: ../gcr/gcr-import-button.c:138
-#, c-format
-msgid "Import to: %s"
-msgstr "×™×™×‘×•× ×ל: %s"
-
-#: ../gcr/gcr-import-button.c:150
-msgid "Cannot import because there are no compatible importers"
-msgstr "×œ× × ×™×ª×Ÿ ×œ×™×™×‘× ×›×™×•×•×Ÿ ש×ין מייב××™× × ×ª×ž×›×™×"
-
-#: ../gcr/gcr-import-button.c:158
-msgid "No data to import"
-msgstr "×ין × ×ª×•× ×™× ×œ×™×™×‘×•×"
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "מפתח"
-
-#: ../gcr/gcr-key-renderer.c:281
-msgid "Private RSA Key"
-msgstr "מפתח RSA פרטי"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private DSA Key"
-msgstr "מפתח DSA פרטי"
-
-#: ../gcr/gcr-key-renderer.c:285 ../gcr/gcr-parser.c:298
-msgid "Private Key"
-msgstr "מפתח פרטי"
-
-#: ../gcr/gcr-key-renderer.c:288 ../gcr/gcr-key-renderer.c:290
-msgid "Public DSA Key"
-msgstr "מפתח DSA ציבורי"
-
-#: ../gcr/gcr-key-renderer.c:299
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "סיבית ×חת"
-msgstr[1] "%d סיביות"
-
-#: ../gcr/gcr-key-renderer.c:300
-msgid "Strength"
-msgstr "חוזק"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:324
-msgid "Fingerprints"
-msgstr "טביעות ×צבע"
-
-#: ../gcr/gcr-key-renderer.c:329
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:335
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:2158
-msgid "Unrecognized or unsupported data."
-msgstr "×”× ×ª×•× ×™× ××™× × ×ž×•×›×¨×™× ×ו ש××™× × × ×ª×ž×›×™×."
-
-#: ../gcr/gcr-parser.c:2161
-msgid "Could not parse invalid or corrupted data."
-msgstr "×œ× × ×™×ª×Ÿ לנתח × ×ª×•× ×™× ×©×’×•×™×™× ×ו פגומי×."
-
-#: ../gcr/gcr-parser.c:2164
-msgid "The data is locked"
-msgstr "×”× ×ª×•× ×™× × ×¢×•×œ×™×"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "×œ× × ×™×ª×Ÿ ×œ×ž×¦×•× ×ת ×”×ž×™×§×•× ×œ×חסון ×”×ישור המוצמד"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "יש לפתוח קבוצת ססמ×ות זו ב×ופן ×וטומטי בעת הכניסה למערכת"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "נעילת קבוצת ססמ×ות זו ל×חר"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "קבוצת ססמ×ות זו תנעל ×× ××™× ×” בשימוש למשך"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "יש לנעול קבוצת מפתחות זו בעת הניתוק"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "דקות"
-
-#: ../gcr/gcr-unlock-renderer.c:70
-#, c-format
-msgid "Unlock: %s"
-msgstr "שחרור: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:72 ../gcr/gcr-unlock-renderer.c:129
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "פתח"
-
-#: ../gcr/gcr-unlock-renderer.c:126
-msgid "Password"
-msgstr "ססמה"
-
-#: ../gcr/gcr-unlock-renderer.c:279
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr "×”×ª×›× ×™× ×©×œ '%s' נעולי×. כדי לצפות בתוכן, יש להזין ×ת הססמה הנכונה."
-
-#: ../gcr/gcr-unlock-renderer.c:282
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr "×”×ª×›× ×™× × ×¢×•×œ×™×. כדי לצפות בתכני×, × × ×œ×”×–×™×Ÿ ×ת הססמה הנכונה."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "CRG – מציג מפתחות ו×ישורי×"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "הצגת גרסת היישו×"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[file...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- צפייה ב×ישור ובקובצי המפתח"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "מציג ×ישורי×"
-
-#: ../gcr/gcr-viewer-widget.c:191
-msgid "The password was incorrect"
-msgstr "הססמה ×œ× ×”×™×™×ª×” נכונה"
-
-#: ../gcr/gcr-viewer-window.c:68
-msgid "Imported"
-msgstr "ייוב×"
-
-#: ../gcr/gcr-viewer-window.c:72
-msgid "Import failed"
-msgstr "×”×™×™×‘×•× × ×›×©×œ"
-
-#: ../gcr/gcr-viewer-window.c:103
-msgid "Import"
-msgstr "ייבו×:"
-
-#: ../gck/gck-uri.c:223
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "הכתובת הנה בקידוד שגוי."
-
-#: ../gck/gck-uri.c:227
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "לכתובת ×ין ×ת הסכמה 'pkcs11'"
-
-#: ../gck/gck-uri.c:231
-msgid "The URI has bad syntax."
-msgstr "לכתובת יש תחביר שגוי."
-
-#: ../gck/gck-uri.c:235
-msgid "The URI has a bad version number."
-msgstr "לכתובת יש מספר גרסה שגוי."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "תעודה ×œ×œ× ×©×"
@@ -1154,6 +347,10 @@ msgstr "פתח תעודה"
msgid "Unlock public key"
msgstr "פתח מפתח ציבורי"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "פתח"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
msgid "Enter password to unlock the private key"
msgstr "יש להזין ססמה לשחרור המפתח הפרטי"
@@ -1253,11 +450,11 @@ msgstr "commands: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:596
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "×”×× ×œ×©×ž×•×¨ ססמ×ות בצורה בלתי מוצפנת?"
-#: ../ui/gku-prompt-tool.c:597
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1266,15 +463,15 @@ msgstr ""
"על ידי בחירה בססמה ריקה הססמ×ות ש×וחסנו ×œ× ×™×•×¦×¤× ×• בבטחה. הן יהיו נגישות לכל "
"בעל גישה ×œ×§×‘×¦×™× ×©×œ×š."
-#: ../ui/gku-prompt-tool.c:604
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "שימוש ב×חסון בלתי מ×ובטח"
-#: ../ui/gku-prompt-tool.c:644
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "הססמ×ות ×ינן תו×מות."
-#: ../ui/gku-prompt-tool.c:654
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "הססמה ××™× ×” יכולה להיות ריקה"
@@ -1313,618 +510,3 @@ msgstr "הססמה ה_קודמת:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_ססמה:"
-
-#~ msgid "In order to import the private key, it must be unlocked"
-#~ msgstr "כדי ×œ×™×™×‘× ×ת המפתח הפרטי יש לשחררו"
-
-# c-format
-#~ msgid "In order to import the certificate, it must be unlocked"
-#~ msgstr "כדי ×œ×™×™×‘× ×ת התעודה יש לשחררה"
-
-#~ msgid "In order to import the data, it must be unlocked"
-#~ msgstr "על מנת ×œ×™×™×‘× ×ת ×”× ×ª×•× ×™× ×™×© לשחרר ×ות×"
-
-#~ msgid "In order to import the private key '%s', it must be unlocked"
-#~ msgstr "כדי ×œ×™×™×‘× ×ת המפתח הפרטי '%s', יש לשחררו"
-
-# c-format
-#~ msgid "In order to import the certificate '%s', it must be unlocked"
-#~ msgstr "כדי ×œ×™×™×‘× ×ת התעודה '%s', יש לשחררה"
-
-#~ msgid "In order to import '%s', it must be unlocked"
-#~ msgstr "כדי ×œ×™×™×‘× ×ת '%s', יש לבצע שחרור"
-
-#~ msgid "Import Certificates/Keys"
-#~ msgstr "×™×™×‘×•× ×ª×¢×•×“×•×ª/מפתחות"
-
-#~ msgid "Choose a location to store the imported certificates/keys."
-#~ msgstr "יש לבחור ×ž×™×§×•× ×œ×חסון המפתחות/תעודות המיוב××™×."
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "×ין מספיק זיכרון פנוי"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "מזהה החריץ שצוין ×ינו תקני"
-
-#~ msgid "Internal error"
-#~ msgstr "שגי××” פנימית"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "××¨×’×•×ž× ×˜×™× ×©×’×•×™×™×"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "המודול ×œ× ×™×›×•×œ ליצור ×ת ×”×שכולות הנדרשי×"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "המודול ×œ× ×™×›×• לנעול ×ת ×”× ×ª×•× ×™× ×›×¨×וי"
-
-#~ msgid "The field is read-only"
-#~ msgstr "השדה ×”×•× ×œ×§×¨×™××” בלבד"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "השדה רגיש ×•×œ× × ×™×ª×Ÿ לחשוף ×ותו"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "השדה ×¤×’×•× ×ו ש×ינו קיי×"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "ערך שגוי לשדה"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "×”× ×ª×•× ×™× ××™× × ×ª×§×™× ×™× ×ו ש××™× × ×ž×–×•×”×™×"
-
-#~ msgid "The data is too long"
-#~ msgstr "×”× ×ª×•× ×™× ××¨×•×›×™× ×ž×“×™"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "×רעה שגי××” בהתקן"
-
-#~ msgid "Insufficient memory available on the device"
-#~ msgstr "×ין די זיכרון פנוי בהתקן"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "ההתקן הוסר ×ו נותק"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "×”× ×ª×•× ×™× ×”×ž×•×¦×¤× ×™× ××™× × ×ª×§×™× ×™× ×ו ש××™× × ×ž×–×•×”×™×"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "המידע המוצפן ×רוך מדי"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "פעולה ×–×ת ××™× ×” נתמכת"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "המפתח חסר ×ו שגוי"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "המפתח ×ינו בגודל הנכון"
-
-#~ msgid "No key is needed"
-#~ msgstr "×ין צורך במפתח"
-
-#~ msgid "The key is different than before"
-#~ msgstr "המפתח שונה מבעבר"
-
-#~ msgid "A key is needed"
-#~ msgstr "יש צורך במפתח"
-
-#~ msgid "Cannot include the key in the digest"
-#~ msgstr "×œ× × ×™×ª×Ÿ לכלול ×ת המפתח בלקט"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "×œ× × ×™×ª×Ÿ לבצע פעולה זו ×¢× ×ž×¤×ª×— ×–×”"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "×œ× × ×™×ª×Ÿ לעטוף ×ת המפתח"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "×œ× × ×™×ª×Ÿ ×œ×™×¦× ×ת מפתח ×–×”"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "מנגנון ההצפנה שגוי ×ו ש×ינו מזוהה"
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "למנגנון ההצפנה יש ×רגומנט בלתי תקין"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "הרכיב חסר ×ו פגו×"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "כבר מתבצעת פעולה ×חרת"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "×œ× ×ž×ª×‘×¦×¢×ª פעולה"
-
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "הססמה ×ו הקוד ××™× × × ×›×•× ×™×"
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "הססמה ×ו הקוד שגויי×"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "הססמה ×ו הקוד ב×ורך שגוי"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "הססמה ×ו הקוד נעולי×"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "יותר מדי הפעלות פעילות"
-
-#~ msgid "The session is read-only"
-#~ msgstr "ההפעלה ×”×™× ×œ×§×¨×™××” בלבד"
-
-#~ msgid "An open session exists"
-#~ msgstr "קיימת הפעלה פתוחה"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "קיימת הפעלה לקרי××” בלבד"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "קיימת הפעלת מנהל"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "החתימה שגויה ×ו פגומה"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "החתימה בלתי מזוהה ×ו פגומה"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "מספר שדות × ×“×¨×©×™× ×—×¡×¨×™×"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "לשדות ×ž×¡×•×™×ž×™× ×™×© ×¢×¨×›×™× ×©×’×•×™×"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "ההתקן ×ינו ×§×™×™× ×ו ש×ינו מחובר"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "ההתקן ×ינו תקני ×ו בלתי מזוהה"
-
-#~ msgid "The device is write protected"
-#~ msgstr "ההתקן ×ינו ניתן לכתיבה"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "×œ× × ×™×ª×Ÿ ×œ×™×™×‘× ×ž×›×™×•×Ÿ שהמפתח שגוי"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "×œ× × ×™×ª×Ÿ ×œ×™×™×‘× ×›×™×•×•×Ÿ שהמפתח ×”×•× ×‘×’×•×“×œ שגוי"
-
-#~ msgid "You are already logged in"
-#~ msgstr "×תה כבר מחובר"
-
-#~ msgid "No user has logged in"
-#~ msgstr "×ין ××£ משתמש מחובר"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "הססמה ×ו קוד המשתמש ××™× × ×ž×•×’×“×¨×™×"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "המשתמש ×”×•× ×ž×¡×•×’ בלתי תקני"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "כבר יש משתמש מחובר"
-
-#~ msgid "Too many users of different types are logged in"
-#~ msgstr "יותר מדי ×ž×©×ª×ž×©×™× ×ž×¡×•×’×™× ×©×•× ×™× ×ž×—×•×‘×¨×™×"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "×œ× × ×™×ª×Ÿ ×œ×™×‘× ×ž×¤×ª×— שגוי"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "×œ× × ×™×ª×Ÿ ×œ×™×‘× ×ž×¤×ª×— ב×ורך שגוי"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "×œ× × ×™×ª×Ÿ ×œ×™×¦× ×ž×›×™×•×Ÿ שהמפתח שגוי"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "×œ× × ×™×ª×Ÿ ×œ×™×¦× ×ž×›×™×•×Ÿ ש×ורך המפתח שגוי"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "×œ× × ×™×ª×Ÿ ×œ×™×¦× ×ž×›×™×•×Ÿ שסוג המפתח שגוי"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "×œ× × ×™×ª×Ÿ להפעיל ×ת מחולל ×”×ž×¡×¤×¨×™× ×”×קר××™×™×"
-
-#~ msgid "No random number generator available"
-#~ msgstr "×ין מחולל ×ž×¡×¤×¨×™× ×קר××™×™× ×–×ž×™×Ÿ"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "למנגנון ההצפנה יש פרמטר שגוי"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "×ין די ×ž×§×•× ×›×“×™ ל×חסן ×ת התוצ××”"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "המצב שנשמר שגוי"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "×œ× × ×™×ª×Ÿ לשמור ×ת המצב"
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "המודול כבר הופעל"
-
-#~ msgid "Cannot lock data"
-#~ msgstr "×œ× × ×™×ª×Ÿ לנעול ×ת המידע"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "×œ× × ×™×ª×Ÿ לנעול ×ת המידע"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "בקשת החתימה נדחתה על ידי המשתמש"
-
-#~ msgid "Unknown error"
-#~ msgstr "שגי××” ×œ× ×™×“×•×¢×”"
-
-#~ msgid "Insufficient memory available on device"
-#~ msgstr "×ין די זיכרון זמין בהתקן"
-
-#~ msgid "The key is different from before"
-#~ msgstr "המפתח שונה מבעבר"
-
-#~ msgid "Cannot include the key in digest"
-#~ msgstr "×œ× × ×™×ª×Ÿ לכלול ×ת המפתח בלקט"
-
-#~ msgid "Too many users of different types logged in"
-#~ msgstr "יותר מדי ×ž×©×ª×ž×©×™× ×ž×¡×•×’×™× ×©×•× ×™× ×ž×—×•×‘×¨×™×"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>×œ× ×—×œ×§ מהתעודה</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>בלתי ידוע</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<×œ× ×—×œ×§ מהתעודה>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>טביעות ×צבע</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>ניתנה על ידי</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>ניתנה עבור</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>תעודה זו ×ושרה ×œ×¦×¨×›×™× ×”×‘××™×:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>תוקף</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "×©× × ×¤×•×¥ (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "תעודת נמען דו×\"ל"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "תעודת ×—×•×ª× ×“×•×\"ל"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "טביעת ×צבע MD5"
-
-#~ msgid "Organization (O)"
-#~ msgstr "×רגון (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "יחידה ×רגונית (OU)"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr "<span size='large' weight='bold'>×™×™×‘×•× ×ª×¢×•×“×•×ª ומפתחות</span>"
-
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "Whether the gnome-keyring PKCS#11 component is enabled."
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "Whether the gnome-keyring SSH agent is enabled."
-
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr "Whether the gnome-keyring secret service is enabled."
-
-#~ msgid "Removable Disk: %s"
-#~ msgstr "דיסק נייד: %s"
-
-#~ msgid "Removable Disk"
-#~ msgstr "דיסק נייד"
-
-#~ msgid "Home"
-#~ msgstr "בית"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "×”×™×™×©×•× '%s' (%s) מנסה לגשת לסיסמה עבור '<object prop='name'/>' בקבוצת "
-#~ "הסיסמ×ות הפעילה."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "×”×™×™×©×•× '%s' (%s) מנסה לגשת לסיסמה עבור '<object prop='name'/>' ב- %s."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "×”×™×™×©×•× '%s' מנסה לגשת לסיסמה עבור '<object prop='name'/>' בקבוצת הסיסמ×ות "
-#~ "הפעילה."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr "×”×™×™×©×•× '%s' מנסה לגשת לסיסמה עבור '<object prop='name'/>' ב- %s."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "×™×™×©×•× ×‘×œ×ª×™ מזוהה מנסה לגשת לסיסמה עבור '<object prop='name'/>' בקבוצת "
-#~ "הסיסמ×ות הפעילה."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "×™×™×©×•× ×‘×œ×ª×™ מזוהה מנסה לגשת לסיסמה עבור '<object prop='name'/>' ב- %s."
-
-#~ msgid "Allow access"
-#~ msgstr "×פשר גישה"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "×”×™×™×©×•× '%s' (%s) מנסה לגשת לקבוצת הסיסמ×ות הפעילה ×ך קבוצה זו ×”×™× ×” נעולה"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "×”×™×™×©×•× '%s' (%s) מנסה לגשת לקבוצת הסיסמ×ות '%s', ×ך קבוצה זו ×”×™× ×” נעולה"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-#~ msgstr "×”×™×™×©×•× '%s' מנסה לגשת לקבוצת הסיסמ×ות הפעילה ×ך קבוצה זו ×”×™× ×” נעולה"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-#~ msgstr "×”×™×™×©×•× '%s' מנסה לגשת לקבוצת הסיסמ×ות '%s', ×ך קבוצה זו ×”×™× ×” נעולה"
-
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "×™×™×©×•× ×‘×œ×ª×™ מזוהה מנסה לגשת לקבוצת הסיסמ×ות הפעילה ×ך קבוצה זו ×”×™× ×” נעולה"
-
-#~ msgid "Enter password for default keyring to unlock"
-#~ msgstr "הכנס סיסמה לפתיחת קבוצת הסיסמ×ות הפעילה"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "×”×™×™×©×•× '%s' (%s) מנסה ליצור קבוצת סיסמ×ות חדשה ×‘×©× '%s'. עליך לקבוע סיסמה "
-#~ "עבור קבוצה זו."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "×”×™×™×©×•× '%s' (%s) מנסה ליצור קבוצת סיסמ×ות חדשה שתהיה הקבוצה הפעילה. עליך "
-#~ "לקבוע סיסמה עבור קבוצה זו."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "×”×™×™×©×•× '%s' מנסה ליצור קבוצת סיסמ×ות חדשה ×‘×©× '%s'. עליך לקבוע סיסמה עבור "
-#~ "קבוצה זו."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "×”×™×™×©×•× '%s' מנסה ליצור קבוצת סיסמ×ות חדשה שתהיה הקבוצה הפעילה. עליך לקבוע "
-#~ "סיסמה עבור קבוצה זו."
-
-#~ msgid ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "×™×™×©×•× ×‘×œ×ª×™ מזוהה מנסה ליצור קבוצת סיסמ×ות חדשה שתהיה הקבוצה הפעילה. עליך "
-#~ "לקבוע סיסמה עבור קבוצה זו."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "×”×™×™×©×•× '%s' (%s) מנסה לשנות ×ת הסיסמה עבור קבוצת הסיסמ×ות '%s'. עליך "
-#~ "להכניס ×ת הסיסמה עבורה."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "×”×™×™×©×•× '%s' (%s) מנסה לשנות ×ת הסיסמה עבור קבוצת הסיסמ×ות הפעילה. עליך "
-#~ "להכניס ×ת הסיסמה עבורה."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "×”×™×™×©×•× '%s' מנסה לשנות ×ת הסיסמה עבור קבוצת הסיסמ×ות '%s'. עליך להכניס ×ת "
-#~ "הסיסמה עבורה."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "×”×™×™×©×•× '%s' מנסה לשנות ×ת הסיסמה עבור קבוצת הסיסמ×ות הפעילה. עליך להכניס "
-#~ "×ת הסיסמה עבורה."
-
-#~ msgid ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "×™×™×©×•× ×‘×œ×ª×™ מזוהה מנסה לשנות ×ת הסיסמה עבור קבוצת הסיסמ×ות הפעילה. עליך "
-#~ "להכניס ×ת הסיסמה עבורה."
-
-#~ msgid "Choose a new password for the default keyring. "
-#~ msgstr "הכנס סיסמה חדשה עבור קבוצת הסיסמ×ות הפעילה. "
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-#~ msgstr ""
-#~ "×”×™×™×©×•× '%s' (%s) מנסה לשמור סיסמה ×ך ×œ× ×ž×•×’×“×¨×ª קבוצת סיסמ×ות פעילה. כדי "
-#~ "ליצור קבוצת סיסמ×ות פעילה עליך לקבוע סיסמת גישה לקבוצה."
-
-#~ msgid ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "×”×™×™×©×•× '%s' מנסה לשמור סיסמה ×ך ×œ× ×ž×•×’×“×¨×ª קבוצת סיסמ×ות פעילה. כדי ליצור "
-#~ "קבוצת סיסמ×ות פעילה עליך לקבוע סיסמת גישה לקבוצה."
-
-#~ msgid ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "×™×™×©×•× ×‘×œ×ª×™ מזוהה מנסה לשמור סיסמה ×ך ×œ× ×ž×•×’×“×¨×ª קבוצת סיסמ×ות פעילה. כדי "
-#~ "ליצור קבוצת סיסמ×ות פעילה עליך לקבוע סיסמת גישה לקבוצה."
-
-#~ msgid "Create Default Keyring"
-#~ msgstr "צור קבוצת סיסמ×ות פעילה"
-
-#~ msgid "Choose password for default keyring"
-#~ msgstr "בחר סיסמה עבור מקבוצת הסיסמ×ות הפעילה"
-
-#~ msgid ""
-#~ "A list of paths to PKCS#11 modules to load. No modules are currently "
-#~ "listed by default, as this is still an experimental feature. This is used "
-#~ "by seahorse and other PKCS#11 aware applications."
-#~ msgstr ""
-#~ "A list of paths to PKCS#11 modules to load. No modules are currently "
-#~ "listed by default, as this is still an experimental feature. This is used "
-#~ "by seahorse and other PKCS#11 aware applications."
-
-#~ msgid "Create Login Keyring"
-#~ msgstr "צור קבוצת סיסמ×ות התחברות"
-
-#~ msgid "Enter your login password"
-#~ msgstr "הכנס ×ת סיסמת ההתחברות שלך"
-
-#~ msgid "Import private key"
-#~ msgstr "×™×‘× ×ž×¤×ª×— פרטי"
-
-#~ msgid "Import public key"
-#~ msgstr "×™×‘× ×ž×¤×ª×— ציבורי"
-
-#~ msgid "Automatically unlock this private key when I log in."
-#~ msgstr "פתח ×ת מפתח פרטי ×–×” ×וטומטית בהתחברות למערכת."
-
-#~ msgid "Automatically unlock this certificate when I log in."
-#~ msgstr "פתח ×ת תעודה ×–×ת ×וטומטית בהתחברות למערכת."
-
-#~ msgid "Automatically unlock this public key when I log in."
-#~ msgstr "פתח ×ת מפתח ציבורי ×–×” ×וטומטית בהתחברות למערכת."
-
-#~ msgid "Automatically unlock this when I log in"
-#~ msgstr "פתח ×ת ×–×” ×וטומטית בהתחברות למערכת."
-
-#~ msgid "The system wants to import the public key '%s', but it is locked"
-#~ msgstr "המערכת רוצה ×œ×™×‘× ×ת המפתח הציבורי '%s', ×בל ×”×™× × ×¢×•×œ×”"
-
-#, fuzzy
-#~ msgid "Enter password to unlock storage"
-#~ msgstr "הכנס סיסמה לפתיחת קבוצת הסיסמ×ות '%s'"
-
-#~ msgid "Lock private key"
-#~ msgstr "נעל מפתח פרטי"
-
-#~ msgid "Lock"
-#~ msgstr "נעל"
-
-#~ msgid "Enter password to protect the private key"
-#~ msgstr "הכנס סיסמה להגנה על המפתח הפרטי"
-
-#, fuzzy
-#~ msgid ""
-#~ "The system wants to store the private key '%s' on your disk. Please enter "
-#~ "a password to lock it with."
-#~ msgstr "המערכת רוצה ×œ×™×‘× ×ת המפתח הפרטי '%s', ×בל ×”×™× × ×¢×•×œ×”"
-
-#, fuzzy
-#~ msgid "Couldn't read secure shell private key: %s"
-#~ msgstr "×œ× × ×™×ª×Ÿ לקודד ×ת מפתח ×”-SSH."
-
-#~ msgid "Deny"
-#~ msgstr "דחה"
-
-#~ msgid "Allow _Once"
-#~ msgstr "×שר _×‘×¤×¢× ×–×• בלבד"
-
-#~ msgid "_Always Allow"
-#~ msgstr "_×פשר תמיד"
-
-#~ msgid "Access Denied"
-#~ msgstr "הגישה נחסמה"
-
-#~ msgid "The gnome-keyring-daemon application is not running."
-#~ msgstr "×”×™×™×©×•× gnome-keyring-daemon ×ינו פעיל."
-
-#~ msgid "Error communicating with gnome-keyring-daemon"
-#~ msgstr "שגי××” בתקשורת ×¢× gnome-keyring-daemon"
-
-#~ msgid "A keyring with that name already exists"
-#~ msgstr "כבר קיימת קבוצת סיסמ×ות ×חרת בעלת ×©× ×–×”×”"
-
-#~ msgid "Programmer error: The application sent invalid data."
-#~ msgstr "Programmer error: The application sent invalid data."
-
-#~ msgid "No matching results"
-#~ msgstr "No matching results"
-
-#~ msgid "A keyring with that name does not exist."
-#~ msgstr "קבוצת סיסמ×ות ×‘×©× ×–×” ××™× ×” קיימת."
-
-#~ msgid "Old password cannot be blank."
-#~ msgstr "שדה הסיסמה הקודמת ×ינו יכול לקבל ערך ריק"
diff --git a/po/hi.po b/po/hi.po
index b8831e24..9d0b174a 100644
--- a/po/hi.po
+++ b/po/hi.po
@@ -7,16 +7,18 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.master\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-keyring&component=general\n"
-"POT-Creation-Date: 2009-08-26 19:44+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2009-09-16 13:48+0530\n"
"Last-Translator: Rajesh Ranjan <rajesh672@gmail.com>\n"
"Language-Team: Hindi <hindi.sf.net>\n"
+"Language: hi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"\n"
"\n"
"\n"
"\n"
@@ -24,603 +26,123 @@ msgstr ""
"\n"
"\n"
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:228
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in the default keyring."
-msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) '<object prop='name'/>' के लिये तयशà¥à¤¦à¤¾ कीरिंग में कूटशबà¥à¤¦ की पहà¥à¤‚च "
-"चाहता है."
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:232
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in %s."
-msgstr "यह अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) '<object prop='name'/>' के लिठकूटशबà¥à¤¦ की पहà¥à¤à¤š चाहता है %s में."
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:238 ../daemon/gkr-daemon-ops.c:248
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in the default keyring."
-msgstr ""
-"यह अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' <object prop='name'/>' के लिठकूटशबà¥à¤¦ की पहà¥à¤à¤š चाहता है तयशà¥à¤¦à¤¾ "
-"कीरिंग में."
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:242 ../daemon/gkr-daemon-ops.c:252
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in %s."
-msgstr "यह अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' <object prop='name'/>' के लिठकूटशबà¥à¤¦ की पहà¥à¤à¤š चाहता है %s में."
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:258
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in the default keyring."
-msgstr ""
-"अनजान अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '<object prop='name'/>' के लिये तयशà¥à¤¦à¤¾ कीरिंग में कूटशबà¥à¤¦ का पहà¥à¤‚च चाहता "
-"है."
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:261
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in %s."
-msgstr "अनजान अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '<object prop='name'/>' के लिये %s में कूटशबà¥à¤¦ का पहà¥à¤‚च चाहता है."
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:267
-msgid "Allow access"
-msgstr "अभिगम सà¥à¤µà¥€à¤•à¤¾à¤°à¥‡à¤‚"
-
-#: ../daemon/gkr-daemon-ops.c:267
-msgid "Allow application access to keyring?"
-msgstr "कीरिंग में अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— पहà¥à¤‚त सà¥à¤µà¥€à¤•à¤¾à¤°à¥‡à¤‚?"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:309
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) तयशà¥à¤¦à¤¾ कà¥à¤‚जी में अभिगम चाहता है, लेकिन यह बंद है"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:314
-#, c-format
-msgid "The application '%s' (%s) wants access to the keyring '%s', but it is locked"
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) तयशà¥à¤¦à¤¾ कà¥à¤‚जीरिंग '%s' में अभिगम चाहता है, लेकिन यह बंद है"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:321 ../daemon/gkr-daemon-ops.c:333
-#, c-format
-msgid "The application '%s' wants access to the default keyring, but it is locked"
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' तयशà¥à¤¦à¤¾ कà¥à¤‚जीरिंग में अभिगम चाहता है, लेकिन यह बंद है"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:326 ../daemon/gkr-daemon-ops.c:339
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' कà¥à¤‚जीरिंग '%s' में अभिगम चाहता है, लेकिन यह बंद है"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:346
-#, c-format
-msgid "An unknown application wants access to the default keyring, but it is locked"
-msgstr "अनजान अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— तयशà¥à¤¦à¤¾ कà¥à¤‚जीरिंग में अभिगम चाहता है, लेकिन यह बंद है"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:351
-#, c-format
-msgid "An unknown application wants access to the keyring '%s', but it is locked"
-msgstr "अनजान अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— तयशà¥à¤¦à¤¾ कà¥à¤‚जीरिंग '%s' में अभिगम चाहता है, लेकिन यह बंद है"
-
-#: ../daemon/gkr-daemon-ops.c:358
-msgid "Enter password for default keyring to unlock"
-msgstr "तयशà¥à¤¦à¤¾ कीरिंग को खोलने के लिये कूटशबà¥à¤¦ डालें"
-
-#: ../daemon/gkr-daemon-ops.c:360
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "कीरिंग '%s' को खोलने के लिये कूटशबà¥à¤¦ डालें"
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:364
-msgid "Unlock Keyring"
-msgstr "कीरिंग खोलें"
-
-#: ../daemon/gkr-daemon-ops.c:376
-msgid "Automatically unlock this keyring when I log in."
-msgstr "सà¥à¤µà¤¤à¤ƒ अनलॉक करं इस कीरिंग को जब मैं लॉगिन होता हूà¤."
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:413
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
-msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) '%s' नामक नये कीरिंग बनाना चाहता है. आपको कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾ है जिसे आप "
-"इसके लिये पà¥à¤°à¤¯à¥‹à¤— करना चाहते हैं."
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:418
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) नये तयशà¥à¤¦à¤¾ कीरिंग बनाना चाहता है. आपको कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾ है जिसे आप इसके "
-"लिये पà¥à¤°à¤¯à¥‹à¤— करना चाहते हैं."
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:425 ../daemon/gkr-daemon-ops.c:437
-#, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
-msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' '%s' नामक नये कीरिंग बनाना चाहता है. आपको कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾ है जिसे आप इसके "
-"लिये पà¥à¤°à¤¯à¥‹à¤— करना चाहते हैं."
+#: ../daemon/dbus/gkd-secret-change.c:86
+msgid "Change Keyring Password"
+msgstr "कीरिंग कूटशबà¥à¤¦ बदलें"
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:430 ../daemon/gkr-daemon-ops.c:442
-#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' नये तयशà¥à¤¦à¤¾ कीरिंग बनाना चाहता है. आपको कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾ है जिसे आप इसके लिये "
-"पà¥à¤°à¤¯à¥‹à¤— करना चाहते हैं."
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "कीरिंग '%s' के लिये नया कूटशबà¥à¤¦ चà¥à¤¨à¥‡à¤‚"
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:449
-#, c-format
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
msgstr ""
-"à¤à¤• अनजान अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' नामक नये कीरिंग बनाना चाहता है. आपको कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾ है जिसे आप "
-"इसके लिये पà¥à¤°à¤¯à¥‹à¤— करना चाहते हैं."
+"à¤à¤• अनजान अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' कीरिंग के लिठकूटशबà¥à¤¦ बदलना चाहता है. आपको कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾ है जिसे "
+"आप इसके लिये पà¥à¤°à¤¯à¥‹à¤— करना चाहते हैं."
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:454
-#, c-format
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr ""
-"अनजान अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— नये तयशà¥à¤¦à¤¾ कीरिंग बनाना चाहता है. आपको कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾ है जिसे आप इसके लिये "
-"पà¥à¤°à¤¯à¥‹à¤— करना चाहते हैं."
+#: ../daemon/dbus/gkd-secret-change.c:111
+#, fuzzy
+msgid "The original password was incorrect"
+msgstr "यह कूटशबà¥à¤¦ या PIN गलत है"
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:460
+#: ../daemon/dbus/gkd-secret-create.c:83
msgid "New Keyring Password"
msgstr "नया कीरिंग कूटशबà¥à¤¦"
-#: ../daemon/gkr-daemon-ops.c:461
+#: ../daemon/dbus/gkd-secret-create.c:84
msgid "Choose password for new keyring"
msgstr "नये कीरिंग के लिये कूटशबà¥à¤¦ चà¥à¤¨à¥‡à¤‚"
-#: ../daemon/gkr-daemon-ops.c:508
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) कीरिंग '%s' के लिठकूटशबà¥à¤¦ बदलना चाहता है. आपको कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾ है "
-"जिसे आप इसके लिये पà¥à¤°à¤¯à¥‹à¤— करना चाहते हैं."
-
-#: ../daemon/gkr-daemon-ops.c:512
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
-msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) तयशà¥à¤¦à¤¾ कीरिंग के लिठकूटशबà¥à¤¦ बदलना चाहता है. आपको कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾ है "
-"जिसे आप इसके लिये पà¥à¤°à¤¯à¥‹à¤— करना चाहते हैं."
-
-#: ../daemon/gkr-daemon-ops.c:518 ../daemon/gkr-daemon-ops.c:528
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
-msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' '%s' कीरिंग के लिठकूटशबà¥à¤¦ बदलना चाहता है. आपको कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾ है जिसे आप "
-"इसके लिये पà¥à¤°à¤¯à¥‹à¤— करना चाहते हैं."
-
-#: ../daemon/gkr-daemon-ops.c:522 ../daemon/gkr-daemon-ops.c:532
-#, c-format
+#: ../daemon/dbus/gkd-secret-create.c:86
+#, fuzzy, c-format
msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' तयशà¥à¤¦à¤¾ कीरिंग के लिठकूटशबà¥à¤¦ बदलना चाहता है. आपको कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾ है जिसे आप "
+"à¤à¤• अनजान अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' नामक नये कीरिंग बनाना चाहता है. आपको कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾ है जिसे आप "
"इसके लिये पà¥à¤°à¤¯à¥‹à¤— करना चाहते हैं."
-#: ../daemon/gkr-daemon-ops.c:538
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-"à¤à¤• अनजान अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' कीरिंग के लिठकूटशबà¥à¤¦ बदलना चाहता है. आपको कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾ है जिसे "
-"आप इसके लिये पà¥à¤°à¤¯à¥‹à¤— करना चाहते हैं."
-
-#: ../daemon/gkr-daemon-ops.c:542
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-"à¤à¤• अनजान अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— तयशà¥à¤¦à¤¾ कीरिंग के लिठकूटशबà¥à¤¦ बदलना चाहता है. आपको कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾ है "
-"जिसे आप इसके लिये पà¥à¤°à¤¯à¥‹à¤— करना चाहते हैं."
-
-#: ../daemon/gkr-daemon-ops.c:552
-#, c-format
-msgid "Choose a new password for the '%s' keyring."
-msgstr "कीरिंग '%s' के लिये नया कूटशबà¥à¤¦ चà¥à¤¨à¥‡à¤‚"
-
-#: ../daemon/gkr-daemon-ops.c:554
-#, c-format
-msgid "Choose a new password for the default keyring."
-msgstr "तयशà¥à¤¦à¤¾ कीरिंग के लिये नया कूटशबà¥à¤¦ चà¥à¤¨à¥‡à¤‚."
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:558
-msgid "Change Keyring Password"
-msgstr "कीरिंग कूटशबà¥à¤¦ बदलें"
-
-#: ../daemon/gkr-daemon-ops.c:631
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) à¤à¤• कूटशबà¥à¤¦ भंडारित करना चाहता है, लेकिन कोई तयशà¥à¤¦à¤¾ कीरिंग नहीं है. "
-"à¤à¤¸à¤¾ à¤à¤• बनाने के लिये, आपको कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾ होगा जिसे आप इसके लिये पà¥à¤°à¤¯à¥‹à¤— करना चाहते हैं."
-
-#: ../daemon/gkr-daemon-ops.c:635 ../daemon/gkr-daemon-ops.c:639
-#, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' à¤à¤• कूटशबà¥à¤¦ भंडारित करना चाहता है, लेकिन कोई तयशà¥à¤¦à¤¾ कीरिंग नहीं है. à¤à¤¸à¤¾ "
-"à¤à¤• बनाने के लिये, आपको कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾ होगा जिसे आप इसके लिये पà¥à¤°à¤¯à¥‹à¤— करना चाहते हैं."
-
-#: ../daemon/gkr-daemon-ops.c:643
-#, c-format
-msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-msgstr ""
-"à¤à¤• अनजान अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤à¤• कूटशबà¥à¤¦ भंडारित करना चाहता है, लेकिन कोई तयशà¥à¤¦à¤¾ कीरिंग नहीं है. "
-"à¤à¤¸à¤¾ à¤à¤• बनाने के लिये, आपको कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾ होगा जिसे आप इसके लिये पà¥à¤°à¤¯à¥‹à¤— करना चाहते हैं."
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:648
-msgid "Create Default Keyring"
-msgstr "बनाà¤à¤ डिफ़ॉलà¥à¤Ÿ कीरिंग"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+#, fuzzy
+msgid "Certificate and Key Storage"
+msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°/कà¥à¤‚जी भंडार अनलॉक करें"
-#: ../daemon/gkr-daemon-ops.c:648
-msgid "Choose password for default keyring"
-msgstr "डिफ़ॉलà¥à¤Ÿ कीरिंग के लिये कूटशबà¥à¤¦ बदलें"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+#, fuzzy
+msgid "GNOME Keyring: PKCS#11 Component"
+msgstr "गनोम कीरिंग डेमान"
-#: ../daemon/data/gnome-keyring.schemas.in.h:1
-msgid ""
-"This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-"only takes effect as gnome-keyring-daemon starts, (ie: when the user logs "
-"in). This setting may be overridden when certain command line arguments are "
-"passed to the daemon."
-msgstr ""
-"यह कमांड PKCS#11 घटक को गनोम कीरिंग डेमॉन में सकà¥à¤°à¤¿à¤¯ करता है. यह तभी पà¥à¤°à¤­à¤¾à¤µà¥€ होता है "
-"जब gnome-keyring-daemon आरंभ होता है, (यानी: जब उपयोकà¥à¤¤à¤¾ लॉगिन होता है). इस सेटिंग "
-"को अधिरोहित किया जा सकता है जब खास कमांड लाइन तरà¥à¤• को डेमॉन में भेजा जाता है."
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: Secret Service"
+msgstr "गनोम कीरिंग डेमान"
-#: ../daemon/data/gnome-keyring.schemas.in.h:2
-msgid ""
-"This option enables the SSH agent in the gnome-keyring daemon. It only takes "
-"effect as gnome-keyring-daemon starts, (ie: when the user logs in). This "
-"setting may be overridden when certain command line arguments are passed to "
-"the daemon."
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
msgstr ""
-"यह कमांड SSH à¤à¤œà¥‡à¤‚ट को गनोम कीरिंग डेमॉन में सकà¥à¤°à¤¿à¤¯ करता है. यह तभी पà¥à¤°à¤­à¤¾à¤µà¥€ होता है जब "
-"gnome-keyring-daemon आरंभ होता है, (यानी: जब उपयोकà¥à¤¤à¤¾ लॉगिन होता है). इस सेटिंग को "
-"अधिरोहित किया जा सकता है जब खास कमांड लाइन तरà¥à¤• को डेमॉन में भेजा जाता है."
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:3
-msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-msgstr "कà¥à¤¯à¤¾ gnome-keyring PKCS#11 घटक सकà¥à¤°à¤¿à¤¯ है."
-#: ../daemon/data/gnome-keyring.schemas.in.h:4
-msgid "Whether the gnome-keyring SSH agent is enabled."
-msgstr "कà¥à¤¯à¤¾ gnome-keyring SSH à¤à¤œà¥‡à¤‚ट सकà¥à¤°à¤¿à¤¯ है."
-
-#: ../daemon/gnome-keyring-daemon.desktop.in.in.h:1
-msgid "GNOME Keyring Daemon"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: SSH Agent"
msgstr "गनोम कीरिंग डेमान"
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:99
-msgid "Unlock Login Keyring"
-msgstr "लॉगिन कीरिंग खोलें"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:99
-msgid "Enter login password to unlock keyring"
-msgstr "कीरिंग को खोलने के लिये लॉगिन कूटशबà¥à¤¦ डालें"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:101
-msgid ""
-"Your login keyring was not automatically unlocked when you logged into this "
-"computer."
-msgstr "आपका लॉगिन कीरिंग सà¥à¤µà¤¤à¤ƒ अनलॉक नहीं किया गया था जब आप इस कंपà¥à¤¯à¥‚टर में लॉग इन होते हैं."
-
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:125
-msgid "Create Login Keyring"
-msgstr "लॉगिन कीरिंग बनाà¤à¤"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:125
-msgid "Enter your login password"
-msgstr "अपना लॉगिन कूटशबà¥à¤¦ दाखिल करें"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:127
-msgid ""
-"Your login keyring was not automatically created when you logged into this "
-"computer. It will now be created."
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
msgstr ""
-"आपका लॉगिन कीरिंग सà¥à¤µà¤¤à¤ƒ अनलॉक नहीं बनाया गया था जब आप इस कंपà¥à¤¯à¥‚टर में लॉग इन होते हैं. "
-"यह बनाया जाà¤à¤—ा."
-
-#: ../daemon/keyrings/gkr-keyring.c:587
-#, c-format
-msgid "Unlock password for %s keyring"
-msgstr "%s कीरिंग के लिठकूटशबà¥à¤¦ अनलॉक करें"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:98
-msgid "Unlock private key"
-msgstr "निजी कà¥à¤‚जी खोलें"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:100
-msgid "Unlock certificate"
-msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° खोलें"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:102
-msgid "Unlock public key"
-msgstr "सारà¥à¤µà¤œà¤¨à¤¿à¤• कà¥à¤‚जी खोलें"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:104
-msgid "Unlock"
-msgstr "खोलें"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:113 ../gcr/gcr-importer.c:436
-msgid "Enter password to unlock the private key"
-msgstr "निजी कीरिंग को खोलने के लिये कूटशबà¥à¤¦ डालें"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:115 ../gcr/gcr-importer.c:438
-msgid "Enter password to unlock the certificate"
-msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° खोलने के लिये कूटशबà¥à¤¦ डालें"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:117
-msgid "Enter password to unlock the public key"
-msgstr "सारà¥à¤µà¤œà¤¨à¤¿à¤• कीरिंग को खोलने के लिये कूटशबà¥à¤¦ डालें"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:119 ../gcr/gcr-importer.c:440
-msgid "Enter password to unlock"
-msgstr "खोलने के लिये कूटशबà¥à¤¦ डालें"
-
-#. TRANSLATORS: The private key is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:129
-#, c-format
-msgid "An application wants access to the private key '%s', but it is locked"
-msgstr "अनजान अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— निजी कà¥à¤‚जी '%s' में अभिगम चाहता है, लेकिन यह बंद है"
-
-#. TRANSLATORS: The certificate is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:132
-#, c-format
-msgid "An application wants access to the certificate '%s', but it is locked"
-msgstr "कोई अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° '%s' में पहà¥à¤à¤š चाहता है, लेकिन यह बंद है"
-
-#. TRANSLATORS: The public key is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:135
-#, c-format
-msgid "An application wants access to the public key '%s', but it is locked"
-msgstr "कोई अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— सारà¥à¤µà¤œà¤¨à¤¿à¤• कà¥à¤‚जी '%s' में पहà¥à¤à¤š चाहता है, लेकिन यह बंद है"
-
-#. TRANSLATORS: The object '%s' is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:138
-#, c-format
-msgid "An application wants access to '%s', but it is locked"
-msgstr "कोई अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' में पहà¥à¤à¤š चाहता है, लेकिन यह बंद है"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:147
-msgid "Automatically unlock this private key when I log in."
-msgstr "जब मैं लॉगिन होऊठसà¥à¤µà¤¤à¤ƒ यह निजी कà¥à¤‚जी खोलें"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:149
-msgid "Automatically unlock this certificate when I log in."
-msgstr "जब मैं लॉगिन होऊठसà¥à¤µà¤¤à¤ƒ यह पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° खोलें"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:151
-msgid "Automatically unlock this public key when I log in."
-msgstr "जब मैं लॉगिन होऊठसà¥à¤µà¤¤à¤ƒ यह सारà¥à¤µà¤œà¤¨à¤¿à¤• कà¥à¤‚जी खोलें"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:153
-msgid "Automatically unlock this when I log in"
-msgstr "जब मैं लॉगिन होऊठसà¥à¤µà¤¤à¤ƒ यह खोलें"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:394
-msgid "Unlock certificate/key storage"
-msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°/कà¥à¤‚जी भंडार अनलॉक करें"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:395
-msgid "Enter password to unlock the certificate/key storage"
-msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°/कà¥à¤‚जी भंडारन खोलने के लिठकूटशबà¥à¤¦ दाखिल करें"
-
-#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:398
-#, c-format
-msgid ""
-"An application wants access to the certificate/key storage '%s', but it is "
-"locked"
-msgstr "कोई अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°/कà¥à¤‚जी भंडारण '%s' की पहà¥à¤‚च लेना चाहता है, लेकिन यह लॉक है"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:403
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:554
-msgid "Automatically unlock secure storage when I log in."
-msgstr "सà¥à¤µà¤¤à¤ƒ सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ भंडार को अनलॉक करें जब मैं लॉगिन होता हूà¤."
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: GPG Agent"
+msgstr "गनोम कीरिंग डेमान"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:546
-msgid "New Password Required"
-msgstr "नया कूटशबà¥à¤¦ जरूरी"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+#, fuzzy
+msgid "GPG Password Agent"
+msgstr "नठकूटशबà¥à¤¦ की मजबूती"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:547
-msgid "New password required for secure storage"
-msgstr "सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ भंडार के लिठनया कूटशबà¥à¤¦ जरूरी"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+#, fuzzy
+msgid "Unknown"
+msgstr "अजà¥à¤žà¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¤¿"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:549
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid ""
-"In order to prepare '%s' for storage of certificates or keys, a password is "
-"required"
-msgstr "'%s' को तैयार करने के कà¥à¤°à¤® में पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° या कà¥à¤‚जी के भंडारण के लिà¤, कूटशबà¥à¤¦ जरूरी है"
-
-#: ../daemon/ui/gkr-ask-tool.c:230
-msgid ""
-"<b><big>Could not grab your mouse.</big></b>\n"
-"\n"
-"A malicious client may be eavesdropping on your session or you may have just "
-"clicked a menu or some application just decided to get focus.\n"
-"\n"
-"Try again."
+msgid "PGP Key: %s"
msgstr ""
-"<b><big>आपके माउस को पकड़ नहीं सका.</big></b>\n"
-"\n"
-"कोई दà¥à¤°à¥à¤­à¤µà¤¨à¤¾ पूरà¥à¤£ कà¥à¤²à¤¾à¤‡à¤‚ट आपके सतà¥à¤° पर निगाह रख सकता है या आप कोई मेनà¥à¤¯à¥‚ या अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— "
-"कà¥à¤²à¤¿à¤• कर सकते हैं फोकस पाने के लिà¤.\n"
-"\n"
-"फिर कोशिश करें."
-#: ../daemon/ui/gkr-ask-tool.c:239
-msgid ""
-"<b><big>Could not grab your keyboard.</big></b>\n"
-"\n"
-"A malicious client may be eavesdropping on your session or you may have just "
-"clicked a menu or some application just decided to get focus.\n"
-"\n"
-"Try again."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-"<b><big>आपके कà¥à¤‚जीपट को पकड़ नहीं सका.</big></b>\n"
-"\n"
-"कोई दà¥à¤°à¥à¤­à¤µà¤¨à¤¾ पूरà¥à¤£ कà¥à¤²à¤¾à¤‡à¤‚ट आपके सतà¥à¤° पर निगाह रख सकता है या आप कोई मेनà¥à¤¯à¥‚ या अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— "
-"कà¥à¤²à¤¿à¤• कर सकते हैं फोकस पाने के लिà¤.\n"
-"\n"
-"फिर कोशिश करें."
-#: ../daemon/ui/gkr-ask-tool.c:276
-msgid "Store passwords unencrypted?"
-msgstr "कूटशबà¥à¤¦ विगोपित जमा करें?"
-
-#: ../daemon/ui/gkr-ask-tool.c:277
-msgid ""
-"By choosing to use a blank password, your stored passwords will not be "
-"safely encrypted. They will be accessible by anyone with access to your "
-"files."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
msgstr ""
-"रिकà¥à¤¤ कूटशबà¥à¤¦ चà¥à¤¨à¤¾à¤µ के पà¥à¤°à¤¯à¥‹à¤— से, आपका जमा किया कूटशबà¥à¤¦ को सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ रूप से गोपित नहीं किया "
-"जाà¤à¤—ा. उनà¥à¤¹à¥‡à¤‚ किसी के दà¥à¤µà¤¾à¤°à¤¾ पहà¥à¤à¤š दिया जाà¤à¤—ा आपके फ़ाइल में पहà¥à¤à¤š के साथ के."
-
-#: ../daemon/ui/gkr-ask-tool.c:284
-msgid "Use Unsafe Storage"
-msgstr "असà¥à¤°à¤•à¥à¤·à¤¿à¤¤ भंडार का पà¥à¤°à¤¯à¥‹à¤— करें"
-
-#: ../daemon/ui/gkr-ask-tool.c:512
-msgid "_Location:"
-msgstr "सà¥à¤¥à¤¾à¤¨ (_L):"
-#: ../daemon/ui/gkr-ask-tool.c:525
-msgid "_Old password:"
-msgstr "पà¥à¤°à¤¾à¤¨à¤¾ कूटशबà¥à¤¦ (_O):"
-
-#: ../daemon/ui/gkr-ask-tool.c:545
-msgid "_Password:"
-msgstr "पासवरà¥à¤¡: (_P)"
-
-#: ../daemon/ui/gkr-ask-tool.c:567
-msgid "_Confirm password:"
-msgstr "कूटशबà¥à¤¦ की पà¥à¤·à¥à¤Ÿà¤¿ करें (_C):"
-
-#: ../daemon/ui/gkr-ask-tool.c:587
-msgid "New password strength"
-msgstr "नठकूटशबà¥à¤¦ की मजबूती"
-
-#: ../daemon/ui/gkr-ask-tool.c:645
-msgid "Passwords do not match."
-msgstr "कूटशबà¥à¤¦ मेल नहीं खाता है."
-
-#: ../daemon/ui/gkr-ask-tool.c:661
-msgid "Password cannot be blank"
-msgstr "कूटशबà¥à¤¦ खाली नहीं हो सकता है"
-
-#: ../daemon/ui/gkr-ask-tool.c:712
-msgid "_Deny"
-msgstr "मना करें (_D)"
-
-#: ../daemon/ui/gkr-ask-tool.c:724
-msgid "C_reate"
-msgstr "बनाà¤à¤‚ (_r)"
-
-#: ../daemon/ui/gkr-ask-tool.c:728
-msgid "C_hange"
-msgstr "बदलें (_h)"
-
-#: ../daemon/ui/gkr-ask-tool.c:732
-msgid "Allow _Once"
-msgstr "सà¥à¤µà¥€à¤•à¤¾à¤°à¥‡à¤‚ à¤à¤• बार"
-
-#: ../daemon/ui/gkr-ask-tool.c:736
-msgid "_Always Allow"
-msgstr "हमेशा सà¥à¤µà¥€à¤•à¤¾à¤°à¥‡à¤‚"
-
-#: ../daemon/util/gkr-location.c:234
-#, c-format
-msgid "Removable Disk: %s"
-msgstr "विसà¥à¤¥à¤¾à¤ªà¤¨à¥€à¤¯ डिसà¥à¤•: %s"
-
-#: ../daemon/util/gkr-location.c:236
-msgid "Removable Disk"
-msgstr "विसà¥à¤¥à¤¾à¤ªà¤¨à¥€à¤¯ डिसà¥à¤•"
-
-#: ../daemon/util/gkr-location.c:327 ../daemon/util/gkr-location.c:339
-msgid "Home"
-msgstr "घर"
-
-#: ../daemon/util/gkr-location.c:882 ../daemon/util/gkr-location.c:906
-msgid "The disk or drive this file is located on is not present"
-msgstr "डिसà¥à¤• या डà¥à¤°à¤¾à¤‡à¤µ जिस पर यह फ़ाइल अवसà¥à¤¥à¤¿à¤¤ है मौजूद नहीं है"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
+msgstr ""
-#: ../daemon/util/gkr-location.c:914
-#, c-format
-msgid "Couldn't create directory: %s"
-msgstr "निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ नहीं बना सका: %s"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
+msgstr ""
-#: ../daemon/util/gkr-location.c:948
-#, c-format
-msgid "Couldn't delete the file: %s"
-msgstr "फ़ाइल मिटा नहीं सका: %s"
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
+msgstr ""
#: ../egg/egg-oid.c:41
msgid "Domain Component"
@@ -631,8 +153,8 @@ msgid "User ID"
msgstr "उपयोकà¥à¤¤à¤¾ पहचान"
#: ../egg/egg-oid.c:46
-msgid "Email"
-msgstr "ईमेल"
+msgid "Email Address"
+msgstr ""
#: ../egg/egg-oid.c:54
msgid "Date of Birth"
@@ -662,8 +184,7 @@ msgstr "सामानà¥à¤¯ नाम"
msgid "Surname"
msgstr "कà¥à¤²à¤¨à¤¾à¤®"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-basics-widget.ui.h:18
-#: ../gcr/gcr-certificate-details-widget.c:322
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "कà¥à¤°à¤® संखà¥à¤¯à¤¾"
@@ -723,633 +244,292 @@ msgstr "छदà¥à¤®à¤¨à¤¾à¤®"
msgid "RSA"
msgstr "RSA"
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "RSA के साथ MD2"
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "RSA के साथ MD5"
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "RSA के साथ SHA1"
-#: ../egg/egg-oid.c:107
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "DSA के साथ SHA1"
-#: ../gcr/gcr-certificate-basics-widget.c:59
-msgid "<i>Not Part of Certificate</i>"
-msgstr "<i>पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° का हिसà¥à¤¸à¤¾ नहीं</i>"
-
-#: ../gcr/gcr-certificate-basics-widget.c:80
-msgid "<i>unknown</i>"
-msgstr "<i>अजà¥à¤žà¤¾à¤¤</i>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:1
-msgid "<Not Part of Certificate>"
-msgstr "<पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° का हिसà¥à¤¸à¤¾ नहीं>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:2
-#| msgid "Fingerprints"
-msgid "<b>Fingerprints</b>"
-msgstr "<b>फिंगरपà¥à¤°à¤¿à¤‚ट</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:3
-msgid "<b>Issued By</b>"
-msgstr "<b>के दà¥à¤µà¤¾à¤°à¤¾ निरà¥à¤—त</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:4
-msgid "<b>Issued To</b>"
-msgstr "<b>को निरà¥à¤—त</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:5
-msgid "<b>This certificate has been verified for the following uses:</b>"
-msgstr "<b>इस पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° को निमà¥à¤¨à¤²à¤¿à¤–ित पà¥à¤°à¤¯à¥‹à¤— से जाà¤à¤šà¤¾ गया है:</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:6
-msgid "<b>Validity</b>"
-msgstr "<b>वैधता</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:7
-msgid "Common Name (CN)"
-msgstr "सामानà¥à¤¯ नाम (CN)"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:8
-msgid "Email Recipient Certificate"
-msgstr "ई-मेल पà¥à¤°à¤¾à¤ªà¥à¤¤à¤•à¤°à¥à¤¤à¤¾ पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:9
-msgid "Email Signer Certificate"
-msgstr "ई-मेल हसà¥à¤¤à¤¾à¤•à¥à¤·à¤°à¤•à¤°à¥à¤¤à¤¾ पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:10
-msgid "Expires On"
-msgstr "यहाठसमय समापà¥à¤¤"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:11
-msgid "Issued On"
-msgstr "इस तिथि को निरà¥à¤—त"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:12
-msgid "MD5 Fingerprint"
-msgstr "MD5 फिंगरपà¥à¤°à¤¿à¤‚ट"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:13
-msgid "Organization (O)"
-msgstr "संगठन (O)"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:14
-msgid "Organizational Unit (OU)"
-msgstr "सांगठनिक इकाई (OU)"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:15
-msgid "SHA1 Fingerprint"
-msgstr "SHA1 फिंगरपà¥à¤°à¤¿à¤‚ट"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+#, fuzzy
+msgid "Server Authentication"
+msgstr "SSL सरà¥à¤µà¤° पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:16
-msgid "SSL Client Certificate"
+#: ../egg/egg-oid.c:108
+#, fuzzy
+msgid "Client Authentication"
msgstr "SSL कà¥à¤²à¤¾à¤‡à¤‚ट पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:17
-msgid "SSL Server Certificate"
-msgstr "SSL सरà¥à¤µà¤° पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°"
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:207
-msgid "Extension"
-msgstr "विसà¥à¤¤à¤¾à¤°"
-
-#: ../gcr/gcr-certificate-details-widget.c:212
-msgid "Identifier"
-msgstr "पहचानकरà¥à¤¤à¤¾"
-
-#: ../gcr/gcr-certificate-details-widget.c:222
-msgid "Value"
-msgstr "मान"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "Critical"
-msgstr "नाजà¥à¤•"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "Yes"
-msgstr "हाà¤"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "No"
-msgstr "नहीं"
-
-#. The subject
-#: ../gcr/gcr-certificate-details-widget.c:303
-msgid "Subject Name"
-msgstr "विषय नाम"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-details-widget.c:307
-msgid "Issuer Name"
-msgstr "निरà¥à¤—तकरà¥à¤¤à¤¾ नाम"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-details-widget.c:311
-msgid "Issued Certificate"
-msgstr "निरà¥à¤—त पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°"
-
-#: ../gcr/gcr-certificate-details-widget.c:316
-msgid "Version"
-msgstr "संसà¥à¤•à¤°à¤£"
-
-#: ../gcr/gcr-certificate-details-widget.c:329
-msgid "Not Valid Before"
-msgstr "इससे पहले वैध नहीं"
-
-#: ../gcr/gcr-certificate-details-widget.c:334
-msgid "Not Valid After"
-msgstr "इससे बाद वैध नहीं"
-
-#. Signature
-#: ../gcr/gcr-certificate-details-widget.c:339
-#: ../gcr/gcr-certificate-details-widget.c:355
-msgid "Signature"
-msgstr "हसà¥à¤¤à¤¾à¤•à¥à¤·à¤°"
-
-#: ../gcr/gcr-certificate-details-widget.c:343
-msgid "Signature Algorithm"
-msgstr "हसà¥à¤¤à¤¾à¤•à¥à¤·à¤° अलगोरिथम"
-
-#: ../gcr/gcr-certificate-details-widget.c:348
-msgid "Signature Parameters"
-msgstr "हसà¥à¤¤à¤¾à¤•à¥à¤·à¤° पैरामीटर"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-details-widget.c:359
-msgid "Public Key Info"
-msgstr "सारà¥à¤µà¤œà¤¨à¤¿à¤• कà¥à¤‚जी सूचना"
-
-#: ../gcr/gcr-certificate-details-widget.c:363
-msgid "Key Algorithm"
-msgstr "कà¥à¤‚जी अलगोरिथम"
-
-#: ../gcr/gcr-certificate-details-widget.c:368
-msgid "Key Parameters"
-msgstr "कà¥à¤‚जी पैरामीटर"
-
-#: ../gcr/gcr-certificate-details-widget.c:375
-msgid "Key Size"
-msgstr "कà¥à¤‚जी आकार"
-
-#: ../gcr/gcr-certificate-details-widget.c:382 ../gcr/gcr-parser.c:202
-msgid "Public Key"
-msgstr "सारà¥à¤µà¤œà¤¨à¤¿à¤• कà¥à¤‚जी"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-details-widget.c:386
-msgid "Fingerprints"
-msgstr "फिंगरपà¥à¤°à¤¿à¤‚ट"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-msgstr "<span size='large' weight='bold'>पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° व कà¥à¤‚जी आयात करें</span>"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "यहाठआयात करें:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "कूटशबà¥à¤¦: "
-
-#: ../gcr/gcr-importer.c:163 ../gcr/gcr-parser.c:1573 ../gp11/gp11-misc.c:98
-msgid "The operation was cancelled"
-msgstr "यह ऑपरेशन रदà¥à¤¦ कर दी गई थी"
-
-#: ../gcr/gcr-importer.c:255
-#, c-format
-msgid "No location available to import to"
-msgstr "यहाठआयात करने के लिठकोई अवसà¥à¤¥à¤¿à¤¤à¤¿ उपलबà¥à¤§ नहीं"
-
-#: ../gcr/gcr-importer.c:404
-msgid "Import Certificates/Keys"
-msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°/कà¥à¤‚जी आयात करें"
-
-#: ../gcr/gcr-importer.c:411
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "आयातित पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°/कà¥à¤‚जी जमा करने के लिठकोई सà¥à¤¥à¤¾à¤¨ चà¥à¤¨à¥‡à¤‚."
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:449
-msgid "In order to import the private key, it must be unlocked"
-msgstr "निजी कà¥à¤‚जी आयात करने के लिà¤, इसे निशà¥à¤šà¤¿à¤¤ रूप से खà¥à¤²à¤¾ होना चाहिà¤"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:452
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° आयात करने के लिà¤, इसे निशà¥à¤šà¤¿à¤¤ रूप से खà¥à¤²à¤¾ होना चाहिà¤"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:455
-msgid "In order to import the data, it must be unlocked"
-msgstr "आà¤à¤•à¤¡à¤¼à¤¾ आयात करने के लिà¤, इसे निशà¥à¤šà¤¿à¤¤ रूप से खà¥à¤²à¤¾ होना चाहिà¤"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:460
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "सारà¥à¤µà¤œà¤¨à¤¿à¤• कà¥à¤‚जी '%s' आयात करने के लिà¤, इसे निशà¥à¤šà¤¿à¤¤ रूप से खà¥à¤²à¤¾ होना चाहिà¤"
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:463
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° '%s' आयात करने के लिà¤, इसे निशà¥à¤šà¤¿à¤¤ रूप से खà¥à¤²à¤¾ होना चाहिà¤"
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:466
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "'%s' आयात करने के लिà¤, इसे निशà¥à¤šà¤¿à¤¤ रूप से खà¥à¤²à¤¾ होना चाहिà¤"
-
-#: ../gcr/gcr-parser.c:196
-msgid "Private Key"
-msgstr "निजी कà¥à¤‚जी"
-
-#: ../gcr/gcr-parser.c:199
-msgid "Certificate"
-msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°"
-
-#: ../gcr/gcr-parser.c:1576
-msgid "Unrecognized or unsupported data."
-msgstr "अपरिचित या असमरà¥à¤¥à¤¿à¤¤ आà¤à¤•à¤¡à¤¼à¤¾."
-
-#: ../gcr/gcr-parser.c:1579
-msgid "Could not parse invalid or corrupted data."
-msgstr "अवैध या खराब आà¤à¤•à¤¡à¤¼à¤¾ विशà¥à¤²à¥‡à¤·à¤¿à¤¤ नहीं कर सका."
-
-#: ../gcr/gcr-parser.c:1582
-msgid "The data is locked"
-msgstr "यह आà¤à¤•à¤¡à¤¼à¤¾ तालाकित है."
-
-#: ../gp11/gp11-misc.c:101
-msgid "Insufficient memory available"
-msgstr "अपरà¥à¤¯à¤¾à¤ªà¥à¤¤ सà¥à¤®à¥ƒà¤¤à¤¿ उपलबà¥à¤§"
-
-#: ../gp11/gp11-misc.c:103
-msgid "The specified slot ID is not valid"
-msgstr "निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सà¥à¤²à¥‰à¤Ÿ ID वैध नहीं है"
-
-#: ../gp11/gp11-misc.c:105
-msgid "Internal error"
-msgstr "आंतरिक तà¥à¤°à¥à¤Ÿà¤¿"
-
-#: ../gp11/gp11-misc.c:107
-msgid "The operation failed"
-msgstr "ऑपरेशन विफल"
-
-#: ../gp11/gp11-misc.c:109
-msgid "Invalid arguments"
-msgstr "अवैध तरà¥à¤•"
-
-#: ../gp11/gp11-misc.c:111
-msgid "The module cannot create needed threads"
-msgstr "यह मॉडà¥à¤¯à¥‚ल जरूरी थà¥à¤°à¥‡à¤¡ नहीं बना सकता है"
-
-#: ../gp11/gp11-misc.c:113
-msgid "The module cannot lock data properly"
-msgstr "यह मॉडà¥à¤¯à¥‚ल आà¤à¤•à¤¡à¤¼à¤¾ ठीक से बंद नहीं कर सकता है"
-
-#: ../gp11/gp11-misc.c:115
-msgid "The field is read-only"
-msgstr "यह कà¥à¤·à¥‡à¤¤à¥à¤° केवल पठनीय है"
-
-#: ../gp11/gp11-misc.c:117
-msgid "The field is sensitive and cannot be revealed"
-msgstr "यह कà¥à¤·à¥‡à¤¤à¥à¤° संवेदनशील है और नहीं खोला जा सकता है"
-
-#: ../gp11/gp11-misc.c:119
-msgid "The field is invalid or does not exist"
-msgstr "यह कà¥à¤·à¥‡à¤¤à¥à¤° अवैध है या मौजूद नहीं है"
-
-#: ../gp11/gp11-misc.c:121
-msgid "Invalid value for field"
-msgstr "कà¥à¤·à¥‡à¤¤à¥à¤° के अवैध मान"
-
-#: ../gp11/gp11-misc.c:123
-msgid "The data is not valid or unrecognized"
-msgstr "यह आà¤à¤•à¤¡à¤¼à¤¾ वैध या अपरिचित नहीं है"
-
-#: ../gp11/gp11-misc.c:125
-msgid "The data is too long"
-msgstr "यह आà¤à¤•à¤¡à¤¼à¤¾ काफी लंबा है"
-
-#: ../gp11/gp11-misc.c:127
-msgid "An error occurred on the device"
-msgstr "इस यà¥à¤•à¥à¤¤à¤¿ पर तà¥à¤°à¥à¤Ÿà¤¿ आई"
-
-#: ../gp11/gp11-misc.c:129
-msgid "Insufficient memory available on device"
-msgstr "यà¥à¤•à¥à¤¤à¤¿ पर अपरà¥à¤¯à¤¾à¤ªà¥à¤¤ सà¥à¤®à¥ƒà¤¤à¤¿ उपलबà¥à¤§"
-
-#: ../gp11/gp11-misc.c:131
-msgid "The device was removed or unplugged"
-msgstr "यह यà¥à¤•à¥à¤¤à¤¿ हटा दी गई या खोल दी गई"
-
-#: ../gp11/gp11-misc.c:133
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "यह गोपित आà¤à¤•à¤¡à¤¼à¤¾ वैध या अपरिचित नहीं है"
-
-#: ../gp11/gp11-misc.c:135
-msgid "The encrypted data is too long"
-msgstr "यह गोपित आà¤à¤•à¤¡à¤¼à¤¾ काफी लंबा है"
-
-#: ../gp11/gp11-misc.c:137
-msgid "This operation is not supported"
-msgstr "यह ऑपरेशन समरà¥à¤¥à¤¿à¤¤ नहीं है"
-
-#: ../gp11/gp11-misc.c:139
-msgid "The key is missing or invalid"
-msgstr "यह कà¥à¤‚जी गà¥à¤® या अवैध है"
-
-#: ../gp11/gp11-misc.c:141
-msgid "The key is the wrong size"
-msgstr "यह कà¥à¤‚जी गलत आकार का है"
-
-#: ../gp11/gp11-misc.c:143
-msgid "The key is of the wrong type"
-msgstr "यह कà¥à¤‚जी गलत पà¥à¤°à¤•à¤¾à¤° का है"
-
-#: ../gp11/gp11-misc.c:145
-msgid "No key is needed"
-msgstr "कोई कà¥à¤‚जी जरूरी नहीं"
-
-#: ../gp11/gp11-misc.c:147
-msgid "The key is different than before"
-msgstr "यह कà¥à¤‚जी पहले से भिनà¥à¤¨ है"
-
-#: ../gp11/gp11-misc.c:149
-msgid "A key is needed"
-msgstr "à¤à¤• कà¥à¤‚जी चाहिà¤"
-
-#: ../gp11/gp11-misc.c:151
-msgid "Cannot include the key in digest"
-msgstr "डाइजेसà¥à¤Ÿ में इस कà¥à¤‚जी को शामिल मत करें"
-
-#: ../gp11/gp11-misc.c:153
-msgid "This operation cannot be done with this key"
-msgstr "इस कà¥à¤°à¤¿à¤¯à¤¾ को इस कà¥à¤‚जी से नहीं किया जा सकता है"
-
-#: ../gp11/gp11-misc.c:155
-msgid "The key cannot be wrapped"
-msgstr "यह कà¥à¤‚जी लपेटा नहीं जा सकता है"
-
-#: ../gp11/gp11-misc.c:157
-msgid "Cannot export this key"
-msgstr "इस कà¥à¤‚जी को निरà¥à¤¯à¤¾à¤¤ नहीं कर सकता है"
-
-#: ../gp11/gp11-misc.c:159
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "यह गोपन यांतà¥à¤°à¤¿à¤•à¥€ अवैध या अपरिचित है"
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr ""
-#: ../gp11/gp11-misc.c:161
-msgid "The crypto mechanism has an invalid argument"
-msgstr "यह गोपन यांतà¥à¤°à¤¿à¤•à¥€ के पास अवैध तरà¥à¤• है"
+#: ../egg/egg-spawn.c:320
+#, c-format
+msgid "Unexpected error in waitpid() (%s)"
+msgstr ""
-#: ../gp11/gp11-misc.c:163
-msgid "The object is missing or invalid"
-msgstr "यह वसà¥à¤¤à¥ अनà¥à¤ªà¤¸à¥à¤¥à¤¿à¤¤ या अवैध है"
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr "बेनाम पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°"
-#: ../gp11/gp11-misc.c:165
-msgid "Another operation is already taking place"
-msgstr "दूसरी कà¥à¤°à¤¿à¤¯à¤¾ पहले से सà¥à¤¥à¤¾à¤¨ ले रही है"
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
+msgstr "सारà¥à¤µà¤œà¤¨à¤¿à¤• SSH कà¥à¤‚जी विशà¥à¤²à¥‡à¤·à¤¿à¤¤ नहीं कर सका"
-#: ../gp11/gp11-misc.c:167
-msgid "No operation is taking place"
-msgstr "कोई कà¥à¤°à¤¿à¤¯à¤¾ नहीं आ रही है"
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, fuzzy, c-format
+msgid "Unlock password for: %s"
+msgstr "%s कीरिंग के लिठकूटशबà¥à¤¦ अनलॉक करें"
-#: ../gp11/gp11-misc.c:169
-msgid "The password or PIN is incorrect"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+#, fuzzy
+msgid "The unlock password was incorrect"
msgstr "यह कूटशबà¥à¤¦ या PIN गलत है"
-#: ../gp11/gp11-misc.c:171
-msgid "The password or PIN is invalid"
-msgstr "यह कूटशबà¥à¤¦ या PIN अवैध है"
-
-#: ../gp11/gp11-misc.c:173
-msgid "The password or PIN is of an invalid length"
-msgstr "यह कूटशबà¥à¤¦ या PIN परà¥à¤¯à¤¾à¤ªà¥à¤¤ लंबाई की नहीं है"
-
-#: ../gp11/gp11-misc.c:175
-msgid "The password or PIN has expired"
-msgstr "यह कूटशबà¥à¤¦ या PIN का समय समापà¥à¤¤ हो गया है"
-
-#: ../gp11/gp11-misc.c:177
-msgid "The password or PIN is locked"
-msgstr "यह कूटशबà¥à¤¦ या PIN बंद है"
-
-#: ../gp11/gp11-misc.c:179
-msgid "The session is closed"
-msgstr "यह सतà¥à¤° बंद है"
-
-#: ../gp11/gp11-misc.c:181
-msgid "Too many sessions are active"
-msgstr "कई सतà¥à¤° सकà¥à¤°à¤¿à¤¯ हैं"
-
-#: ../gp11/gp11-misc.c:183
-msgid "The session is invalid"
-msgstr "यह सतà¥à¤° अवैध है"
-
-#: ../gp11/gp11-misc.c:185
-msgid "The session is read-only"
-msgstr "यह सतà¥à¤° केवल पठनीय है"
-
-#: ../gp11/gp11-misc.c:187
-msgid "An open session exists"
-msgstr "कोई खà¥à¤²à¤¾ सतà¥à¤° मौजद है"
-
-#: ../gp11/gp11-misc.c:189
-msgid "A read-only session exists"
-msgstr "à¤à¤• केवल पठनीय सतà¥à¤° मौजूद"
-
-#: ../gp11/gp11-misc.c:191
-msgid "An administrator session exists"
-msgstr "à¤à¤• पà¥à¤°à¤¶à¤¾à¤¸à¤• सतà¥à¤° मौजूद"
-
-#: ../gp11/gp11-misc.c:193
-msgid "The signature is bad or corrupted"
-msgstr "यह हसà¥à¤¤à¤¾à¤•à¥à¤·à¤° खराब या भà¥à¤°à¤·à¥à¤Ÿ है"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+msgid "Unlock Login Keyring"
+msgstr "लॉगिन कीरिंग खोलें"
-#: ../gp11/gp11-misc.c:195
-msgid "The signature is unrecognized or corrupted"
-msgstr "यह हसà¥à¤¤à¤¾à¤•à¥à¤·à¤° अपरिचित या भà¥à¤°à¤·à¥à¤Ÿ है"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
+msgstr "कीरिंग को खोलने के लिये लॉगिन कूटशबà¥à¤¦ डालें"
-#: ../gp11/gp11-misc.c:197
-msgid "Certain required fields are missing"
-msgstr "कà¥à¤› जरूरी कà¥à¤·à¥‡à¤¤à¥à¤° अनà¥à¤ªà¤¸à¥à¤¥à¤¿à¤¤ हैं"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
+msgstr ""
-#: ../gp11/gp11-misc.c:199
-msgid "Certain fields have invalid values"
-msgstr "कà¥à¤› कà¥à¤·à¥‡à¤¤à¥à¤° के पास अवैध मान हैं"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
+#, fuzzy
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr ""
+"आपका लॉगिन कीरिंग सà¥à¤µà¤¤à¤ƒ अनलॉक नहीं किया गया था जब आप इस कंपà¥à¤¯à¥‚टर में लॉग इन होते हैं."
-#: ../gp11/gp11-misc.c:201
-msgid "The device is not present or unplugged"
-msgstr "यह यà¥à¤•à¥à¤¤à¤¿ मौजूद नहीं है या अनपà¥à¤²à¤— हैं"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "कीरिंग खोलें"
-#: ../gp11/gp11-misc.c:203
-msgid "The device is invalid or unrecognizable"
-msgstr "यह यà¥à¤•à¥à¤¤à¤¿ अवैध है या अपरिचित है"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
+#, c-format
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "कीरिंग '%s' को खोलने के लिये कूटशबà¥à¤¦ डालें"
-#: ../gp11/gp11-misc.c:205
-msgid "The device is write protected"
-msgstr "यह यà¥à¤•à¥à¤¤à¤¿ लेखन संरकà¥à¤·à¤¿à¤¤ है"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, fuzzy, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr "अनजान अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— तयशà¥à¤¦à¤¾ कà¥à¤‚जीरिंग '%s' में अभिगम चाहता है, लेकिन यह बंद है"
-#: ../gp11/gp11-misc.c:207
-msgid "Cannot import because the key is invalid"
-msgstr "आयात नहीं कर सकता है कà¥à¤¯à¥‹à¤‚कि कà¥à¤‚जी अवैध है"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
+msgstr "निजी कà¥à¤‚जी खोलें"
-#: ../gp11/gp11-misc.c:209
-msgid "Cannot import because the key is of the wrong size"
-msgstr "आयात नहीं कर सकता है कà¥à¤¯à¥‹à¤‚कि कà¥à¤‚जी गलत आकार की है"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+msgid "Unlock certificate"
+msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° खोलें"
-#: ../gp11/gp11-misc.c:211
-msgid "Cannot import because the key is of the wrong type"
-msgstr "आयात नहीं कर सकता है कà¥à¤¯à¥‹à¤‚कि कà¥à¤‚जी गलत पà¥à¤°à¤•à¤¾à¤° की है"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
+msgstr "सारà¥à¤µà¤œà¤¨à¤¿à¤• कà¥à¤‚जी खोलें"
-#: ../gp11/gp11-misc.c:213
-msgid "You are already logged in"
-msgstr "आप पहले से लॉगिन हैं"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "खोलें"
-#: ../gp11/gp11-misc.c:215
-msgid "No user has logged in"
-msgstr "कोई उपयोकà¥à¤¤à¤¾ लॉगिन नहीं है"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "निजी कीरिंग को खोलने के लिये कूटशबà¥à¤¦ डालें"
-#: ../gp11/gp11-misc.c:217
-msgid "The user's password or PIN is not set"
-msgstr "उपयोकà¥à¤¤à¤¾ के कूटशबà¥à¤¦ या PIN सेट नहीं है"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° खोलने के लिये कूटशबà¥à¤¦ डालें"
-#: ../gp11/gp11-misc.c:219
-msgid "The user is of an invalid type"
-msgstr "यह उपयोकà¥à¤¤à¤¾ अवैध पà¥à¤°à¤•à¤¾à¤° का है"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+msgid "Enter password to unlock the public key"
+msgstr "सारà¥à¤µà¤œà¤¨à¤¿à¤• कीरिंग को खोलने के लिये कूटशबà¥à¤¦ डालें"
-#: ../gp11/gp11-misc.c:221
-msgid "Another user is already logged in"
-msgstr "दूसरा उपयोकà¥à¤¤à¤¾ पहले से लॉगिन है"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "खोलने के लिये कूटशबà¥à¤¦ डालें"
-#: ../gp11/gp11-misc.c:223
-msgid "Too many users of different types logged in"
-msgstr "विभिनà¥à¤¨ पà¥à¤°à¤•à¤¾à¤° के कई उपयोकà¥à¤¤à¤¾ लॉगिन हैं"
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
+#, c-format
+msgid "An application wants access to the private key '%s', but it is locked"
+msgstr "अनजान अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— निजी कà¥à¤‚जी '%s' में अभिगम चाहता है, लेकिन यह बंद है"
-#: ../gp11/gp11-misc.c:225
-msgid "Cannot import an invalid key"
-msgstr "कोई अवैध कà¥à¤‚जी आयात नहीं कर सकता है"
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
+#, c-format
+msgid "An application wants access to the certificate '%s', but it is locked"
+msgstr "कोई अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° '%s' में पहà¥à¤à¤š चाहता है, लेकिन यह बंद है"
-#: ../gp11/gp11-misc.c:227
-msgid "Cannot import a key of the wrong size"
-msgstr "गलत आकार के कà¥à¤‚जी आयात नहीं कर सकता है"
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
+#, c-format
+msgid "An application wants access to the public key '%s', but it is locked"
+msgstr "कोई अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— सारà¥à¤µà¤œà¤¨à¤¿à¤• कà¥à¤‚जी '%s' में पहà¥à¤à¤š चाहता है, लेकिन यह बंद है"
-#: ../gp11/gp11-misc.c:229
-msgid "Cannot export because the key is invalid"
-msgstr "निरà¥à¤¯à¤¾à¤¤ नहीं कर सकता है कà¥à¤¯à¥‹à¤‚कि कà¥à¤‚जी अवैध है"
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
+#, c-format
+msgid "An application wants access to '%s', but it is locked"
+msgstr "कोई अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' में पहà¥à¤à¤š चाहता है, लेकिन यह बंद है"
-#: ../gp11/gp11-misc.c:231
-msgid "Cannot export because the key is of the wrong size"
-msgstr "निरà¥à¤¯à¤¾à¤¤ नहीं कर सकता है कà¥à¤¯à¥‹à¤‚कि कà¥à¤‚जी गलत आकार की है"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
+msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°/कà¥à¤‚जी भंडार अनलॉक करें"
-#: ../gp11/gp11-misc.c:233
-msgid "Cannot export because the key is of the wrong type"
-msgstr "निरà¥à¤¯à¤¾à¤¤ नहीं कर सकता है कà¥à¤¯à¥‹à¤‚कि कà¥à¤‚जी गलत पà¥à¤°à¤•à¤¾à¤° की है"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
+msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°/कà¥à¤‚जी भंडारन खोलने के लिठकूटशबà¥à¤¦ दाखिल करें"
-#: ../gp11/gp11-misc.c:235
-msgid "Unable to initialize the random number generator"
-msgstr "रेंडम संखà¥à¤¯à¤¾ जनक आरंभ करने में असमरà¥à¤¥"
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, c-format
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr "कोई अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°/कà¥à¤‚जी भंडारण '%s' की पहà¥à¤‚च लेना चाहता है, लेकिन यह लॉक है"
-#: ../gp11/gp11-misc.c:237
-msgid "No random number generator available"
-msgstr "कोई रेंडम संखà¥à¤¯à¤¾ जनक नहीं है"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
+msgstr "नया कूटशबà¥à¤¦ जरूरी"
-#: ../gp11/gp11-misc.c:239
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "यह गोपन यांतà¥à¤°à¤¿à¤•à¥€ के पास अवैध पैरामीटर है"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
+msgstr "सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ भंडार के लिठनया कूटशबà¥à¤¦ जरूरी"
-#: ../gp11/gp11-misc.c:241
-msgid "Not enough space to store the result"
-msgstr "परिणाम सà¥à¤Ÿà¥‹à¤° करने के लिठपरà¥à¤¯à¤¾à¤ªà¥à¤¤ सà¥à¤¥à¤¾à¤¨ नहीं"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
+#, c-format
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr "'%s' को तैयार करने के कà¥à¤°à¤® में पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° या कà¥à¤‚जी के भंडारण के लिà¤, कूटशबà¥à¤¦ जरूरी है"
-#: ../gp11/gp11-misc.c:243
-msgid "The saved state is invalid"
-msgstr "यह सहेजी सà¥à¤¥à¤¿à¤¤à¤¿ अवैध है"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "कीरिंग कूटशबà¥à¤¦ बदलें"
-#: ../gp11/gp11-misc.c:245
-msgid "The information is sensitive and cannot be revealed"
-msgstr "यह सूचना संवेदनशील है और खोली नहीं जा सकती है"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ भंडार के लिठनया कूटशबà¥à¤¦ जरूरी"
-#: ../gp11/gp11-misc.c:247
-msgid "The state cannot be saved"
-msgstr "यह सà¥à¤¥à¤¿à¤¤à¤¿ सहेजी नहीं जा सकती है"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
+#, c-format
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
+msgstr ""
-#: ../gp11/gp11-misc.c:249
-msgid "The module has not been initialized"
-msgstr "यह मॉडà¥à¤¯à¥‚ल आरंभीकृत नहीं किया गया है"
+#: ../tool/gkr-tool.c:102
+#, c-format
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
-#: ../gp11/gp11-misc.c:251
-msgid "The module has already been initialized"
-msgstr "यह मॉडà¥à¤¯à¥‚ल पहले से आरंभीकृत किया गया है"
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
-#: ../gp11/gp11-misc.c:253
-msgid "Cannot lock data"
-msgstr "आà¤à¤•à¤¡à¤¼à¤¾ बंद नहीं कर सकता है"
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
-#: ../gp11/gp11-misc.c:255
-msgid "The data cannot be locked"
-msgstr "यह आà¤à¤•à¤¡à¤¼à¤¾ बंद नहीं किया जा सकता है"
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
+msgstr "कूटशबà¥à¤¦ विगोपित जमा करें?"
-#: ../gp11/gp11-misc.c:257
-msgid "The signature request was rejected by the user"
-msgstr "यह हसà¥à¤¤à¤¾à¤•à¥à¤·à¤° आगà¥à¤°à¤¹ को उपयोकà¥à¤¤à¤¾ के दà¥à¤µà¤¾à¤°à¤¾ असà¥à¤µà¥€à¤•à¥ƒà¤¤ किया गया था"
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
+"रिकà¥à¤¤ कूटशबà¥à¤¦ चà¥à¤¨à¤¾à¤µ के पà¥à¤°à¤¯à¥‹à¤— से, आपका जमा किया कूटशबà¥à¤¦ को सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ रूप से गोपित नहीं किया "
+"जाà¤à¤—ा. उनà¥à¤¹à¥‡à¤‚ किसी के दà¥à¤µà¤¾à¤°à¤¾ पहà¥à¤à¤š दिया जाà¤à¤—ा आपके फ़ाइल में पहà¥à¤à¤š के साथ के."
-#: ../gp11/gp11-misc.c:261
-msgid "Unknown error"
-msgstr "अजà¥à¤žà¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¤¿"
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
+msgstr "असà¥à¤°à¤•à¥à¤·à¤¿à¤¤ भंडार का पà¥à¤°à¤¯à¥‹à¤— करें"
-#: ../library/gnome-keyring-utils.c:168
-msgid "Access Denied"
-msgstr "पंहà¥à¤š असà¥à¤µà¥€à¤•à¥ƒà¤¤"
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr "कूटशबà¥à¤¦ मेल नहीं खाता है."
-#: ../library/gnome-keyring-utils.c:170
-msgid "The gnome-keyring-daemon application is not running."
-msgstr "gnome-keyring-daemon अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— चल नहीं रहा है."
+#: ../ui/gku-prompt-tool.c:649
+msgid "Password cannot be blank"
+msgstr "कूटशबà¥à¤¦ खाली नहीं हो सकता है"
-#: ../library/gnome-keyring-utils.c:172
-msgid "Error communicating with gnome-keyring-daemon"
-msgstr "gnome-keyring-daemon के साथ संचार तà¥à¤°à¥à¤Ÿà¤¿"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:174
-msgid "A keyring with that name already exists"
-msgstr "उस नाम के साथ कीरिंग पहले से मौजूद है"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:176
-msgid "Programmer error: The application sent invalid data."
-msgstr "पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤®à¤° तà¥à¤°à¥à¤Ÿà¤¿: इस अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— ने अवैध आंकड़ा भेजा."
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
+msgstr "नठकूटशबà¥à¤¦ की मजबूती"
-#: ../library/gnome-keyring-utils.c:178
-msgid "No matching results"
-msgstr "कोई मिलान परिणाम नहीं"
+#: ../ui/gku-prompt.ui.h:2
+#, fuzzy
+msgid "_Application:"
+msgstr "सà¥à¤¥à¤¾à¤¨ (_L):"
-#: ../library/gnome-keyring-utils.c:180
-msgid "A keyring with that name does not exist."
-msgstr "उस नाम के साथ कीरिंग मौजूद नहीं है"
+#: ../ui/gku-prompt.ui.h:3
+#, fuzzy
+msgid "_Confirm:"
+msgstr "कूटशबà¥à¤¦ की पà¥à¤·à¥à¤Ÿà¤¿ करें (_C):"
-#: ../library/gnome-keyring-utils.c:187
-msgid "The keyring has already been unlocked."
-msgstr "यह कà¥à¤‚जीरिंग पहले से खà¥à¤²à¤¾ है."
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
-#: ../pkcs11/gck/gck-certificate.c:716
-msgid "Unnamed Certificate"
-msgstr "बेनाम पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°"
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr ""
-#: ../pkcs11/ssh-store/gck-ssh-private-key.c:328
-msgid "Couldn't parse public SSH key"
-msgstr "सारà¥à¤µà¤œà¤¨à¤¿à¤• SSH कà¥à¤‚जी विशà¥à¤²à¥‡à¤·à¤¿à¤¤ नहीं कर सका"
+#: ../ui/gku-prompt.ui.h:6
+#, fuzzy
+msgid "_Old Password:"
+msgstr "पà¥à¤°à¤¾à¤¨à¤¾ कूटशबà¥à¤¦ (_O):"
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "पासवरà¥à¤¡: (_P)"
diff --git a/po/hr.po b/po/hr.po
index 845fabad..482e8838 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -5,1042 +5,516 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring 0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-09-08 11:58+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2008-05-27 19:27+0000\n"
"Last-Translator: Launchpad Translations Administrators <rosetta@launchpad."
"net>\n"
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
+"Language: hr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Launchpad-Export-Date: 2008-05-27 22:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
-#: ../common/gkr-location.c:320
-#, c-format
-msgid "Removable Disk: %s"
-msgstr "Uklonjivi disk: %s"
-
-#: ../common/gkr-location.c:322
-msgid "Removable Disk"
-msgstr "Uklonjivi disk"
-
-#: ../common/gkr-location.c:543 ../common/gkr-location.c:555
-msgid "Home"
-msgstr "PoÄetak"
-
-#: ../common/gkr-location.c:1104 ../common/gkr-location.c:1128
-#: ../daemon/pkix/gkr-pkix-parser.c:524 ../daemon/pkix/gkr-pkix-serialize.c:58
-msgid "The disk or drive this file is located on is not present"
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
msgstr ""
-#: ../common/gkr-location.c:1136
-#, c-format
-msgid "Couldn't create directory: %s"
-msgstr ""
+#: ../daemon/dbus/gkd-secret-change.c:86
+msgid "Change Keyring Password"
+msgstr "Promjena lozinka za skup kljuÄeva"
-#: ../common/gkr-location.c:1170
-#, c-format
-msgid "Couldn't delete the file: %s"
-msgstr ""
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "Odaberite novu lozinku za '%s' skup kljuÄeva. "
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:227
-#, c-format
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in the default keyring."
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
msgstr ""
-"Program '%s' (%s) želi pristupiti lozinci za '<object prop='name'/>' u skupu "
-"kljuÄeva."
+"Nepoznati program želi promjeniti lozinku za '%s' skup kljuÄeva. Morate "
+"odabrati lozinku koju ćete koristiti."
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:231
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in %s."
+#: ../daemon/dbus/gkd-secret-change.c:111
+msgid "The original password was incorrect"
msgstr ""
-"Program '%s' (%s) želi pristupiti lozinci za '<object prop='name'/>' u %s."
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:237 ../daemon/gkr-daemon-ops.c:247
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in the default keyring."
-msgstr ""
-"Program '%s' želi pristupiti lozinci za '<object prop='name'/>' u skupu "
-"kljuÄeva."
+#: ../daemon/dbus/gkd-secret-create.c:83
+msgid "New Keyring Password"
+msgstr "Nova lozinka za privjesak"
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:241 ../daemon/gkr-daemon-ops.c:251
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in %s."
-msgstr "Program '%s' želi pristupiti lozinci za '<object prop='name'/>' u %s."
+#: ../daemon/dbus/gkd-secret-create.c:84
+msgid "Choose password for new keyring"
+msgstr "Odaberite lozniku za novi privjesak."
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:257
+#: ../daemon/dbus/gkd-secret-create.c:86
+#, fuzzy, c-format
msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in the default keyring."
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
-"Nepoznati program želi pristupiti lozinci za '<object prop='name'/>' u skupu "
-"kljuÄeva."
+"Nepoznata aplikacija želi kreirati novi privjesak koji se zove '%s'. "
+"Odaberite lozinku za njega."
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:260
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in %s."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+msgid "Certificate and Key Storage"
msgstr ""
-"Nepoznati program želi pristupiti lozinci za '<object prop='name'/>' u %s."
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:266
-msgid "Allow access"
-msgstr "Dopusti pristup"
-
-#: ../daemon/gkr-daemon-ops.c:266
-msgid "Allow application access to keyring?"
-msgstr "Dopusti pristup aplikaciji privjesku za kljuÄeve?"
-
-#: ../daemon/gkr-daemon-ops.c:307
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+msgid "GNOME Keyring: PKCS#11 Component"
msgstr ""
-"Program '%s' (%s) želi pristupiti predefiniranom privjesku, ali je zakljuÄan"
-#: ../daemon/gkr-daemon-ops.c:311
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the keyring '%s', but it is locked"
-msgstr "Program '%s' (%s) želi pristupiti privjesku '%s', ali je zakljuÄan"
-
-#: ../daemon/gkr-daemon-ops.c:317 ../daemon/gkr-daemon-ops.c:327
-#, c-format
-msgid ""
-"The application '%s' wants access to the default keyring, but it is locked"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+msgid "GNOME Keyring: Secret Service"
msgstr ""
-"Program '%s' želi pristupiti predefiniranom privjesku, ali je zakljuÄan."
-#: ../daemon/gkr-daemon-ops.c:321 ../daemon/gkr-daemon-ops.c:332
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
-msgstr "Program '%s' želi pristupiti privjesku '%s', ali je zakljuÄan."
-
-#: ../daemon/gkr-daemon-ops.c:338
-msgid ""
-"An unknown application wants access to the default keyring, but it is locked"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
msgstr ""
-"Nepoznata aplikacija želi pristup predodreÄ‘enom privjesku, ali je zakljuÄan"
-#: ../daemon/gkr-daemon-ops.c:342
-#, c-format
-msgid ""
-"An unknown application wants access to the keyring '%s', but it is locked"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+msgid "GNOME Keyring: SSH Agent"
msgstr ""
-"Nepoznata aplikacija želi pristupiti privjesku '%s', ali taj je zakljuÄan"
-#: ../daemon/gkr-daemon-ops.c:349
-msgid "Enter password for default keyring to unlock"
-msgstr "Unesite lozinku za predodreÄ‘eni privjesak da bi ga otkljuÄali."
-
-#: ../daemon/gkr-daemon-ops.c:351
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "Unesite lozinku za privjesak '%s' da bi ga otkljuÄali."
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
+msgstr ""
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:355
-msgid "Unlock Keyring"
-msgstr "OtkljuÄaj privjesak"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+msgid "GNOME Keyring: GPG Agent"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:367 ../daemon/pk/gkr-pk-index.c:135
-msgid "Automatically unlock this keyring when I log in."
-msgstr "Automatski otkljuÄaj ovaj skup kljuÄeva kada se prijavim."
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+#, fuzzy
+msgid "GPG Password Agent"
+msgstr "Snaga nove lozinke"
-#: ../daemon/gkr-daemon-ops.c:403
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+msgid "Unknown"
msgstr ""
-"Program '%s' (%s) želi kreirati novi predefinirani privjesak koji se zove '%"
-"s'. Odaberite lozinku koju želite koristiti za njega."
-#: ../daemon/gkr-daemon-ops.c:407
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+msgid "PGP Key: %s"
msgstr ""
-"Program '%s' (%s) želi kreirati novi predefinirani privjesak. Odaberite "
-"lozinku koju za njega."
-#: ../daemon/gkr-daemon-ops.c:413 ../daemon/gkr-daemon-ops.c:423
-#, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-"Program '%s' želi kreirati novi privjesak koji se zove '%s'. Odaberite "
-"lozinku za njega."
-#: ../daemon/gkr-daemon-ops.c:417 ../daemon/gkr-daemon-ops.c:427
-#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
msgstr ""
-"Program '%s' želi kreirati novi predefinirani privjesak. Odabrite lozinku za "
-"njega."
-#: ../daemon/gkr-daemon-ops.c:433
-#, c-format
-msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-"Nepoznata aplikacija želi kreirati novi privjesak koji se zove '%s'. "
-"Odaberite lozinku za njega."
-#: ../daemon/gkr-daemon-ops.c:437
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
msgstr ""
-"Nepoznata aplikacija želi kreirati novi predodređeni privjesak. Odaberite "
-"lozinku za njega."
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:443
-msgid "New Keyring Password"
-msgstr "Nova lozinka za privjesak"
-
-#: ../daemon/gkr-daemon-ops.c:444
-msgid "Choose password for new keyring"
-msgstr "Odaberite lozniku za novi privjesak."
-
-#: ../daemon/gkr-daemon-ops.c:491
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
msgstr ""
-"Program '%s' (%s) želi promjeniti lozinku za '%s' skup kljuÄeva. Morate "
-"odabrati lozinku koju ćete koristiti."
-#: ../daemon/gkr-daemon-ops.c:495
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:41
+msgid "Domain Component"
msgstr ""
-"Program '%s' (%s) želi promijeniti lozinku za skup kljuÄeva privjesak. "
-"Morate odabrati lozinku koju ćete koristiti."
-#: ../daemon/gkr-daemon-ops.c:501 ../daemon/gkr-daemon-ops.c:511
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:43
+msgid "User ID"
msgstr ""
-"Program '%s' želi promjeniti lozinku za '%s' skup kljuÄeva. Morate odabrati "
-"lozinku koju ćete koristiti."
-#: ../daemon/gkr-daemon-ops.c:505 ../daemon/gkr-daemon-ops.c:515
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:46
+msgid "Email Address"
msgstr ""
-"Program '%s' želi promijeniti lozinku za skup kljuÄeva privjesak. Morate "
-"odabrati lozinku koju ćete koristiti."
-#: ../daemon/gkr-daemon-ops.c:521
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:54
+msgid "Date of Birth"
msgstr ""
-"Nepoznati program želi promjeniti lozinku za '%s' skup kljuÄeva. Morate "
-"odabrati lozinku koju ćete koristiti."
-#: ../daemon/gkr-daemon-ops.c:525
-msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:56
+msgid "Place of Birth"
msgstr ""
-"Nepoznati program želi promijeniti lozinku za skup kljuÄeva privjesak. "
-"Morate odabrati lozinku koju ćete koristiti."
-#: ../daemon/gkr-daemon-ops.c:535
-#, c-format
-msgid "Choose a new password for the '%s' keyring. "
-msgstr "Odaberite novu lozinku za '%s' skup kljuÄeva. "
+#: ../egg/egg-oid.c:58
+msgid "Gender"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:537
-msgid "Choose a new password for the default keyring. "
-msgstr "Odaberite novu lozinku za predodreÄ‘eni skup kljuÄeva. "
+#: ../egg/egg-oid.c:60
+msgid "Country of Citizenship"
+msgstr ""
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:541
-msgid "Change Keyring Password"
-msgstr "Promjena lozinka za skup kljuÄeva"
+#: ../egg/egg-oid.c:62
+msgid "Country of Residence"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:614
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../egg/egg-oid.c:65
+msgid "Common Name"
msgstr ""
-"Program '%s' (%s) želi spremiti lozinku, ali nema predefiniranog privjeska. "
-"Da bi ga kreirali odaberite lozinku za njega."
-#: ../daemon/gkr-daemon-ops.c:618 ../daemon/gkr-daemon-ops.c:622
-#, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../egg/egg-oid.c:67
+msgid "Surname"
msgstr ""
-"Program '%s' želi spremiti lozinku, ali nema predefiniranog privjeska. Da bi "
-"ga kreirali, odaberite lozinku za njega."
-#: ../daemon/gkr-daemon-ops.c:626
-msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../egg/egg-oid.c:69
+msgid "Serial Number"
msgstr ""
-"Nepoznata aplikacija želi spremiti lozinku, ali nema predodređenog "
-"privjeska. Za kreiranje privjeska potrebno je odabrati lozinku koju želite "
-"upotrijebiti za to."
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:631
-msgid "Create Default Keyring"
-msgstr "Kreiraj predodređeni privjesak."
+#: ../egg/egg-oid.c:71
+msgid "Country"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:631
-msgid "Choose password for default keyring"
-msgstr "Odaberite lozinku za predodređeni privjesak.¸"
+#: ../egg/egg-oid.c:73
+msgid "Locality"
+msgstr ""
-#: ../daemon/data/gnome-keyring.schemas.in.h:1
-msgid ""
-"A list of paths to PKCS#11 modules to load. No modules are currently listed "
-"by default, as this is still an experimental feature. This is used by "
-"seahorse and other PKCS#11 aware applications."
+#: ../egg/egg-oid.c:75
+msgid "State"
msgstr ""
-#: ../daemon/data/gnome-keyring.schemas.in.h:2
-msgid "PKCS#11 Modules"
+#: ../egg/egg-oid.c:77
+msgid "Street"
msgstr ""
-#: ../daemon/data/gnome-keyring.schemas.in.h:3
-msgid ""
-"This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-"only takes effect as gnome-keyring-daemon starts, (ie: when the user logs "
-"in). This setting may be overridden when certain command line arguments are "
-"passed to the daemon."
+#: ../egg/egg-oid.c:79
+msgid "Organization"
msgstr ""
-#: ../daemon/data/gnome-keyring.schemas.in.h:4
-msgid ""
-"This option enables the SSH agent in the gnome-keyring daemon. It only takes "
-"effect as gnome-keyring-daemon starts, (ie: when the user logs in). This "
-"setting may be overridden when certain command line arguments are passed to "
-"the daemon."
+#: ../egg/egg-oid.c:81
+msgid "Organizational Unit"
msgstr ""
-#: ../daemon/data/gnome-keyring.schemas.in.h:5
-msgid "Whether the gnome-keyring PKCS#11 component is enabled."
+#: ../egg/egg-oid.c:83
+msgid "Title"
msgstr ""
-#: ../daemon/data/gnome-keyring.schemas.in.h:6
-msgid "Whether the gnome-keyring SSH agent is enabled."
+#: ../egg/egg-oid.c:85
+msgid "Telephone Number"
msgstr ""
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:98
-msgid "Unlock Login Keyring"
+#: ../egg/egg-oid.c:87
+msgid "Given Name"
msgstr ""
-#: ../daemon/keyrings/gkr-keyring-login.c:98
-msgid "Enter login password to unlock keyring"
+#: ../egg/egg-oid.c:89
+msgid "Initials"
msgstr ""
-#: ../daemon/keyrings/gkr-keyring-login.c:100
-msgid ""
-"Your login keyring was not automatically unlocked when you logged into this "
-"computer."
+#: ../egg/egg-oid.c:91
+msgid "Generation Qualifier"
msgstr ""
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:124
-msgid "Create Login Keyring"
+#: ../egg/egg-oid.c:93
+msgid "DN Qualifier"
msgstr ""
-#: ../daemon/keyrings/gkr-keyring-login.c:124
-msgid "Enter your login password"
+#: ../egg/egg-oid.c:95
+msgid "Pseudonym"
msgstr ""
-#: ../daemon/keyrings/gkr-keyring-login.c:126
-msgid ""
-"Your login keyring was not automatically created when you logged into this "
-"computer. It will now be created."
+#: ../egg/egg-oid.c:98
+msgid "RSA"
msgstr ""
-#: ../daemon/keyrings/gkr-keyring.c:584
-#, c-format
-msgid "Unlock password for %s keyring"
-msgstr "OtkljuÄavanje lozinke za %s skup kljuÄeva"
+#: ../egg/egg-oid.c:99
+msgid "MD2 with RSA"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:88
-msgid "Import private key"
+#: ../egg/egg-oid.c:100
+msgid "MD5 with RSA"
msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:90
-msgid "Import certificate"
+#: ../egg/egg-oid.c:101
+msgid "SHA1 with RSA"
msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:92
-msgid "Import public key"
+#: ../egg/egg-oid.c:103
+msgid "DSA"
msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:94
-msgid "Import"
+#: ../egg/egg-oid.c:104
+msgid "SHA1 with DSA"
msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:101 ../daemon/pk/gkr-pk-storage.c:166
-msgid "Enter password to unlock the private key"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:103 ../daemon/pk/gkr-pk-storage.c:168
-msgid "Enter password to unlock the certificate"
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:105 ../daemon/pk/gkr-pk-storage.c:170
-msgid "Enter password to unlock the public key"
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:107 ../daemon/pk/gkr-pk-storage.c:172
-msgid "Enter password to unlock"
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:114
-#, c-format
-msgid "The system wants to import the private key '%s', but it is locked"
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:116
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid "The system wants to import the certificate '%s', but it is locked"
+msgid "Unexpected error in select() reading data from a child process (%s)"
msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:118
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid "The system wants to import the public key '%s', but it is locked"
+msgid "Unexpected error in waitpid() (%s)"
msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:120
-#, c-format
-msgid "The system wants to import '%s', but it is locked"
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
msgstr ""
-#. And put together the ask request
-#: ../daemon/pk/gkr-pk-index.c:93
-msgid "Create Storage for Key Information"
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
msgstr ""
-#: ../daemon/pk/gkr-pk-index.c:94
-#, fuzzy
-msgid "Choose password to protect storage"
-msgstr "Odaberite lozniku za novi privjesak."
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, fuzzy, c-format
+msgid "Unlock password for: %s"
+msgstr "OtkljuÄavanje lozinke za %s skup kljuÄeva"
-#: ../daemon/pk/gkr-pk-index.c:97
-msgid ""
-"The system wants to store information about your keys and certificates. In "
-"order to protect this information, choose a password with which it will be "
-"locked."
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+#, fuzzy
+msgid "The unlock password was incorrect"
+msgstr "OtkljuÄavanje lozinke za %s skup kljuÄeva"
-#. And put together the ask request
-#: ../daemon/pk/gkr-pk-index.c:124
-msgid "Unlock Storage for Key Information"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+msgid "Unlock Login Keyring"
msgstr ""
-#: ../daemon/pk/gkr-pk-index.c:125
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
#, fuzzy
-msgid "Enter password to unlock storage"
+msgid "Enter password to unlock your login keyring"
msgstr "Unesite lozinku za privjesak '%s' da bi ga otkljuÄali."
-#: ../daemon/pk/gkr-pk-index.c:128
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
msgid ""
-"The system wants to access information about your keys and certificates, but "
-"it is locked."
-msgstr ""
-
-#: ../daemon/pk/gkr-pk-object.c:889
-msgid "Certificate"
-msgstr ""
-
-#: ../daemon/pk/gkr-pk-object.c:891
-msgid "Private Key"
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
msgstr ""
-#: ../daemon/pk/gkr-pk-object.c:893
-msgid "Public Key"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
msgstr ""
-#: ../daemon/pk/gkr-pk-object.c:895
-msgid "Trust Association"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "OtkljuÄaj privjesak"
-#: ../daemon/pk/gkr-pk-object-storage.c:436
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
#, c-format
-msgid "Cannot delete '%s' because it is tied to other objects."
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "Unesite lozinku za privjesak '%s' da bi ga otkljuÄali."
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, fuzzy, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
msgstr ""
+"Nepoznata aplikacija želi pristupiti privjesku '%s', ali taj je zakljuÄan"
-#: ../daemon/pk/gkr-pk-storage.c:136
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
msgid "Unlock private key"
msgstr ""
-#: ../daemon/pk/gkr-pk-storage.c:138
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
msgid "Unlock certificate"
msgstr ""
-#: ../daemon/pk/gkr-pk-storage.c:140
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
msgid "Unlock public key"
msgstr ""
-#: ../daemon/pk/gkr-pk-storage.c:142
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
msgid "Unlock"
msgstr ""
-#: ../daemon/pk/gkr-pk-storage.c:153
-msgid "Lock private key"
-msgstr ""
-
-#: ../daemon/pk/gkr-pk-storage.c:155
-msgid "Lock"
-msgstr ""
-
-#: ../daemon/pk/gkr-pk-storage.c:183
-#, fuzzy
-msgid "Enter password to protect the private key"
-msgstr "Unesite lozinku za predodreÄ‘eni privjesak da bi ga otkljuÄali."
-
-#: ../daemon/pk/gkr-pk-storage.c:185
-msgid "Enter password to protect storage"
-msgstr ""
-
-#: ../daemon/pk/gkr-pk-storage.c:196
-msgid "Automatically unlock this private key when I log in."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
msgstr ""
-#: ../daemon/pk/gkr-pk-storage.c:198
-msgid "Automatically unlock this certificate when I log in."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
msgstr ""
-#: ../daemon/pk/gkr-pk-storage.c:200
-msgid "Automatically unlock this public key when I log in."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+msgid "Enter password to unlock the public key"
msgstr ""
-#: ../daemon/pk/gkr-pk-storage.c:202
-msgid "Automatically unlock this when I log in"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
msgstr ""
-#: ../daemon/pk/gkr-pk-storage.c:209
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
msgid "An application wants access to the private key '%s', but it is locked"
msgstr ""
-#: ../daemon/pk/gkr-pk-storage.c:211
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
#, c-format
msgid "An application wants access to the certificate '%s', but it is locked"
msgstr ""
-#: ../daemon/pk/gkr-pk-storage.c:213
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
#, c-format
msgid "An application wants access to the public key '%s', but it is locked"
msgstr ""
-#: ../daemon/pk/gkr-pk-storage.c:215
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
#, c-format
msgid "An application wants access to '%s', but it is locked"
msgstr ""
-#: ../daemon/pk/gkr-pk-storage.c:228
-#, c-format
-msgid ""
-"The system wants to store the private key '%s' on your disk. Please enter a "
-"password to lock it with."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
msgstr ""
-#: ../daemon/pk/gkr-pk-storage.c:230
-#, c-format
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+#, fuzzy
+msgid "Enter password to unlock the certificate/key storage"
+msgstr "Unesite lozinku za privjesak '%s' da bi ga otkljuÄali."
+
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, fuzzy, c-format
msgid ""
-"The system wants to store '%s' on your disk. Please enter a password to lock "
-"it with."
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
msgstr ""
+"Nepoznata aplikacija želi pristupiti privjesku '%s', ali taj je zakljuÄan"
-#: ../daemon/pkix/gkr-pkix-parser.c:451 ../gp11/gp11-misc.c:87
-msgid "The operation was cancelled"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+#, fuzzy
+msgid "New Password Required"
+msgstr "Snaga nove lozinke"
-#: ../daemon/pkix/gkr-pkix-parser.c:455
-msgid "Unrecognized or unsupported file."
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+#, fuzzy
+msgid "New password required for secure storage"
+msgstr "Odaberite lozniku za novi privjesak."
-#: ../daemon/pkix/gkr-pkix-parser.c:459
-msgid "Could not parse invalid or corrupted file."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
+#, c-format
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
msgstr ""
-#: ../daemon/ssh/gkr-ssh-storage.c:166
-msgid "Couldn't encode secure shell public key."
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "Promjena lozinka za skup kljuÄeva"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "Odaberite lozniku za novi privjesak."
-#: ../daemon/ssh/gkr-ssh-storage.c:412
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
-msgid "Couldn't read secure shell private key: %s"
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
msgstr ""
-#: ../daemon/ssh/gkr-ssh-storage.c:416
+#: ../tool/gkr-tool.c:102
#, c-format
-msgid "Invalid secure shell private key at: %s"
+msgid "usage: gnome-keyring command [options]\n"
msgstr ""
-#: ../daemon/ssh/gkr-ssh-storage.c:465
-msgid "Couldn't encrypt the SSH key to store it."
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
msgstr ""
-#: ../daemon/ssh/gkr-ssh-storage.c:481
-msgid "Couldn't encode the SSH key to store it."
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
msgstr ""
-#: ../daemon/ui/gkr-ask-tool.c:182
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr ""
-#: ../daemon/ui/gkr-ask-tool.c:183
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
"files."
msgstr ""
-#: ../daemon/ui/gkr-ask-tool.c:190
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr ""
-#: ../daemon/ui/gkr-ask-tool.c:413
-msgid "_Location:"
-msgstr "_Mjesto:"
-
-#: ../daemon/ui/gkr-ask-tool.c:426
-msgid "_Old password:"
-msgstr "_Stara lozinka:"
-
-#: ../daemon/ui/gkr-ask-tool.c:446
-msgid "_Password:"
-msgstr "_Lozinka"
-
-#: ../daemon/ui/gkr-ask-tool.c:468
-msgid "_Confirm password:"
-msgstr "_Potvrda lozinke:"
-
-#: ../daemon/ui/gkr-ask-tool.c:488
-msgid "New password strength"
-msgstr "Snaga nove lozinke"
-
-#: ../daemon/ui/gkr-ask-tool.c:546
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Lozinke se ne podudaraju."
-#: ../daemon/ui/gkr-ask-tool.c:562
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr ""
-#: ../daemon/ui/gkr-ask-tool.c:613
-msgid "Deny"
-msgstr "Zabrani"
-
-#: ../daemon/ui/gkr-ask-tool.c:625
-msgid "C_reate"
-msgstr ""
-
-#: ../daemon/ui/gkr-ask-tool.c:629
-msgid "C_hange"
-msgstr ""
-
-#: ../daemon/ui/gkr-ask-tool.c:633
-msgid "Allow _Once"
-msgstr "Dopusti_jednom"
-
-#: ../daemon/ui/gkr-ask-tool.c:637
-msgid "_Always Allow"
-msgstr "_Uvijek dopusti"
-
-#: ../gp11/gp11-misc.c:90
-msgid "Insufficient memory available"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:92
-msgid "The specified slot ID is not valid"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:94
-msgid "Internal error"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:96
-msgid "The operation failed"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:98
-msgid "Invalid arguments"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:100
-msgid "The module cannot create needed threads"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:102
-msgid "The module cannot lock data properly"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:104
-msgid "The field is read-only"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:106
-msgid "The field is sensitive and cannot be revealed"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:108
-msgid "The field is invalid or does not exist"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:110
-msgid "Invalid value for field"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:112
-msgid "The data is not valid or unrecognized"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:114
-msgid "The data is too long"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:116
-msgid "An error occurred on the device"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:118
-msgid "Insufficient memory available on device"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:120
-msgid "The device was removed or unplugged"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:122
-msgid "The encrypted data is not valid or unrecognized"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
msgstr ""
-#: ../gp11/gp11-misc.c:124
-msgid "The encrypted data is too long"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
msgstr ""
-#: ../gp11/gp11-misc.c:126
-msgid "This operation is not supported"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:128
-msgid "The key is missing or invalid"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:130
-msgid "The key is the wrong size"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:132
-msgid "The key is of the wrong type"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:134
-msgid "No key is needed"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:136
-msgid "The key is different than before"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:138
-msgid "A key is needed"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:140
-msgid "Cannot include the key in digest"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:142
-msgid "This operation cannot be done with this key"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:144
-msgid "The key cannot be wrapped"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:146
-msgid "Cannot export this key"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:148
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:150
-msgid "The crypto mechanism has an invalid argument"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:152
-msgid "The object is missing or invalid"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:154
-msgid "Another operation is already taking place"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:156
-msgid "No operation is taking place"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:158
-msgid "The password or PIN is incorrect"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:160
-msgid "The password or PIN is invalid"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:162
-msgid "The password or PIN is of an invalid length"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:164
-msgid "The password or PIN has expired"
-msgstr ""
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
+msgstr "Snaga nove lozinke"
-#: ../gp11/gp11-misc.c:166
+#: ../ui/gku-prompt.ui.h:2
#, fuzzy
-msgid "The password or PIN is locked"
-msgstr "Odaberite lozniku za novi privjesak."
-
-#: ../gp11/gp11-misc.c:168
-msgid "The session is closed"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:170
-msgid "Too many sessions are active"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:172
-msgid "The session is invalid"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:174
-msgid "The session is read-only"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:176
-msgid "An open session exists"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:178
-msgid "A read-only session exists"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:180
-msgid "An administrator session exists"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:182
-msgid "The signature is bad or corrupted"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:184
-msgid "The signature is unrecognized or corrupted"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:186
-msgid "Certain required fields are missing"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:188
-msgid "Certain fields have invalid values"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:190
-msgid "The device is not present or unplugged"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:192
-msgid "The device is invalid or unrecognizable"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:194
-msgid "The device is write protected"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:196
-msgid "Cannot import because the key is invalid"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:198
-msgid "Cannot import because the key is of the wrong size"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:200
-msgid "Cannot import because the key is of the wrong type"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:202
-msgid "You are already logged in"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:204
-msgid "No user has logged in"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:206
-msgid "The user's password or PIN is not set"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:208
-msgid "The user is of an invalid type"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:210
-msgid "Another user is already logged in"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:212
-msgid "Too many users of different types logged in"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:214
-msgid "Cannot import an invalid key"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:216
-msgid "Cannot import a key of the wrong size"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:218
-msgid "Cannot export because the key is invalid"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:220
-msgid "Cannot export because the key is of the wrong size"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:222
-msgid "Cannot export because the key is of the wrong type"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:224
-msgid "Unable to initialize the random number generator"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:226
-msgid "No random number generator available"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:228
-msgid "The crypto mechanism has an invalid parameter"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:230
-msgid "Not enough space to store the result"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:232
-msgid "The saved state is invalid"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:234
-msgid "The information is sensitive and cannot be revealed"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:236
-msgid "The state cannot be saved"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:238
-msgid "The module has not been initialized"
-msgstr ""
+msgid "_Application:"
+msgstr "_Mjesto:"
-#: ../gp11/gp11-misc.c:240
+#: ../ui/gku-prompt.ui.h:3
#, fuzzy
-msgid "The module has already been initialized"
-msgstr "Skup kljuÄeva je već otkljuÄan."
-
-#: ../gp11/gp11-misc.c:242
-msgid "Cannot lock data"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:244
-msgid "The data cannot be locked"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:246
-msgid "The signature request was rejected by the user"
-msgstr ""
+msgid "_Confirm:"
+msgstr "_Potvrda lozinke:"
-#: ../gp11/gp11-misc.c:250
-msgid "Unknown error"
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
msgstr ""
-#: ../library/gnome-keyring-utils.c:91
-msgid "Access Denied"
-msgstr "Pristup odbijen"
-
-#: ../library/gnome-keyring-utils.c:93
-msgid "The gnome-keyring-daemon application is not running."
-msgstr "gnome-keyring-daemon program nije pokrenut."
-
-#: ../library/gnome-keyring-utils.c:95
-msgid "Error communicating with gnome-keyring-daemon"
-msgstr "Greška pri komunikaciji s gnome-keyring-daemonom"
-
-#: ../library/gnome-keyring-utils.c:97
-msgid "A keyring with that name already exists"
-msgstr "Skup kljuÄeva s tim imenom već postoji"
-
-#: ../library/gnome-keyring-utils.c:99
-msgid "Programmer error: The application sent invalid data."
-msgstr "Programerska greška: Program je poslao neispravne podatke."
-
-#: ../library/gnome-keyring-utils.c:101
-msgid "No matching results"
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
msgstr ""
-#: ../library/gnome-keyring-utils.c:103
-msgid "A keyring with that name does not exist."
-msgstr ""
+#: ../ui/gku-prompt.ui.h:6
+#, fuzzy
+msgid "_Old Password:"
+msgstr "_Stara lozinka:"
-#: ../library/gnome-keyring-utils.c:110
-msgid "The keyring has already been unlocked."
-msgstr "Skup kljuÄeva je već otkljuÄan."
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "_Lozinka"
diff --git a/po/hu.po b/po/hu.po
index a94d35ca..f0e48219 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-20 01:34+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-20 01:13+0200\n"
"Last-Translator: Gabor Kelemen <kelemeng at gnome dot hu>\n"
"Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n"
@@ -24,7 +24,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Névtelen"
@@ -100,35 +100,34 @@ msgstr "GNOME kulcstartó: GPG-ügynök"
msgid "GPG Password Agent"
msgstr "GPG jelszóügynök"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Ismeretlen"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP kulcs: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Adja meg a jelmondatot"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Jelszó elfelejtése üresjáratban töltött:"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Jelszó elfelejtése:"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Jelszó elfelejtése kijelentkezéskor"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Bejelentkezési"
@@ -172,7 +171,7 @@ msgstr "Közönséges név"
msgid "Surname"
msgstr "Vezetéknév"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Sorozatszám"
@@ -228,7 +227,7 @@ msgstr "DN minősítő"
msgid "Pseudonym"
msgstr "Ãlnév"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -244,7 +243,7 @@ msgstr "MD5 RSA-val"
msgid "SHA1 with RSA"
msgstr "SHA1 RSA-val"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -284,589 +283,6 @@ msgstr ""
msgid "Unexpected error in waitpid() (%s)"
msgstr "Váratlan hiba a waitpid() hívásban (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Hiba a PKCS#11 modul betöltésekor: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Érvénytelen PKCS#11 modul: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Nem állítható be a PKCS#11 modul: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "Nem készíthető elő a PKCS#11 modul: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "Nem készíthetők elő a regisztrált PKCS#11 modulok: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Név"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Kibocsátó"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "Lejárat"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "Tanúsítvány"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Már létezik egy ugyanilyen nevű fájl.</b>\n"
-"\n"
-"Le akarja cserélni az új fájllal?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_Csere"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "A művelet megszakítva."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Tanúsítvány exportálása"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Tanúsítványfájlok"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "PEM-fájlok"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Egyéb név"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "XMPP cím"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "E-mail"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "X400 cím"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Címtár neve"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "EDI fél neve"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "IP-cím"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "Regisztrált azonosító"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Alap megszorítások"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "Hitelesítésszolgáltató"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Igen"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Nem"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Legnagyobb útvonalhossz"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Korlátlan"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Kibővített kulcshasználat"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Engedélyezett célok"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Alany kulcsazonosítója"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Kulcsazonosító"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Digitális aláírás"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Kulcstitkosítás"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Adattitkosítás"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Kulcsmegállapodás"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Tanúsítvány-aláírás"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Visszavonási lista aláírása"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Kulcshasználat"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Használat"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Alany alternatív nevei"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Kiterjesztés"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Azonosító"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Érték"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Kritikus"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Nem exportálható a tanúsítvány."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "Személyazonosság"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Ellenőrizte"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "Lejárat"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Alany neve"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Kibocsátó neve"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Kibocsátott tanúsítvány"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Verzió"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Nem érvényes eddig"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Nem érvényes ezután"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Tanúsítvány ujjlenyomatai"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Aláírás"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Aláírási algoritmus"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Aláírás paraméterei"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Nyilvános kulcs információi"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Kulcsalgoritmus"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Kulcs paraméterei"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Kulcsméret"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "Kulcs SHA1 ujjlenyomata"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "Nyilvános kulcs"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "Rés_zletek"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "„%s†nem jeleníthető meg"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "A fájl nem jeleníthető meg"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Ok"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Az ilyen típusú fájl nem jeleníthető meg."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Tanúsítványok és kulcsok importálása"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Importálás ebbe:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Jelszó:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "PGP kulcs"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "Kulcsazonosító"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "A Gnupg a következő kóddal lépett ki: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "A Gnupg folyamat befejeztetve a következő szignállal: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919 ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "A művelet megszakítva"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Adja meg a jelszót a magánkulcs feloldásához"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Adja meg a jelszót a tanúsítvány feloldásához"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Adja meg a jelszót a feloldáshoz"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "A magánkulcs importálásához fel kell azt oldani"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "A tanúsítvány importálásához fel kell azt oldani"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Az adatok importálásához fel kell azokat oldani"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "A(z) „%s†magánkulcs importálásához fel kell azt oldani"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "A(z) „%s†tanúsítvány importálásához fel kell azt oldani"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "A(z) „%s†elem importálásához fel kell azt oldani"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Nem érhető el hely az importáláshoz"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Tanúsítványok/kulcsok importálása"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Válassza ki az importált tanúsítványok/kulcsok tárolási helyét."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Kulcs"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Magán RSA kulcs"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Magán DSA kulcs"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "Magánkulcs"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Nyilvános DSA kulcs"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-msgstr[1] "%d bit"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Erősség"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algoritmus"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Méret"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Ujjlenyomatok"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "Ismeretlen vagy nem támogatott adatok."
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "Nem sikerült feldolgozni az érvénytelen vagy hibás adatokat."
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "Az adatok zárolva vannak"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Nem található tárolási hely a rögzített tanúsítványhoz"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Ezen kulcstartó automatikus feloldása, ha bejelentkeztem"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Kulcstartó zárolása:"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Kulcstartó zárolása üresjáratban töltött:"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Ezen kulcstartó zárolása kijelentkezéskor"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "perc után"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "Feloldás: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Feloldás"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "A jelszó helytelen volt"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Jelszó"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr ""
-"A(z) „%s†tartalma zárolva van. A tartalom megjelenítéséhez adja meg a "
-"helyes jelszót."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr ""
-"A tartalom zárolva van. A tartalom megjelenítéséhez adja meg a helyes "
-"jelszót."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "GCR tanúsítvány- és kulcsmegjelenítő"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Az alkalmazás verziószámának megjelenítése"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[FÃJL…]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "… Tanúsítvány- és kulcsfájlok megjelenítése"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "Tanúsítványmegjelenítő"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "Az URI kódolása érvénytelen."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "Az URI nem rendelkezik a „pkcs11†sémával."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "Az URI szintaxisa hibás."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "Az URI verziószáma hibás."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Névtelen tanúsítvány"
@@ -876,7 +292,7 @@ msgid "Couldn't parse public SSH key"
msgstr "A nyilvános SSH kulcs nem dolgozható fel"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "%s kulcstartó jelszavának feloldása"
@@ -936,10 +352,26 @@ msgstr "Tanúsítvány feloldása"
msgid "Unlock public key"
msgstr "Nyilvános kulcs feloldása"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Feloldás"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Adja meg a jelszót a magánkulcs feloldásához"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Adja meg a jelszót a tanúsítvány feloldásához"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Adja meg a jelszót a nyilvános kulcs feloldásához"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Adja meg a jelszót a feloldáshoz"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1031,11 +463,11 @@ msgstr "parancsok: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "A jelszavak tárolása titkosítás nélkül?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1044,15 +476,15 @@ msgstr ""
"Ha üres jelszót választ, az eltárolt jelszavai nem lesznek biztonságosan "
"titkosítva. Bárki számára elérhetőek lesznek, aki hozzáfér a fájljaihoz."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Nem biztonságos tárolás használata"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Nem egyeznek a megadott jelszavak."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "A jelszó nem lehet üres"
diff --git a/po/id.po b/po/id.po
index b2091b55..6d05e61e 100644
--- a/po/id.po
+++ b/po/id.po
@@ -7,11 +7,12 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring master\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-09-19 08:45+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-25 14:50+0700\n"
"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
"Language-Team: GNOME Indonesian Translation Team <gnome@i15n.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -21,10 +22,9 @@ msgstr ""
"X-Poedit-Country: Indonesia\n"
#. TRANSLATORS: This is the label for an keyring created without a label
-#: ../daemon/dbus/gkd-secret-change.c:78
-#: ../daemon/dbus/gkd-secret-create.c:79
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "TanpaNama"
@@ -40,8 +40,12 @@ msgstr "Pilih sandi baru bagi ring kunci '%s'"
#: ../daemon/dbus/gkd-secret-change.c:92
#, c-format
-msgid "An application wants to change the password for the '%s' keyring. Choose the new password you want to use for it."
-msgstr "Sebuah aplikasi ingin mengubah sandi bagi ring kunci '%s'. Pilih sandi baru yang ingin Anda pakai untuknya."
+msgid ""
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
+msgstr ""
+"Sebuah aplikasi ingin mengubah sandi bagi ring kunci '%s'. Pilih sandi baru "
+"yang ingin Anda pakai untuknya."
#: ../daemon/dbus/gkd-secret-change.c:111
msgid "The original password was incorrect"
@@ -57,8 +61,12 @@ msgstr "Pilih password untuk ring kunci baru"
#: ../daemon/dbus/gkd-secret-create.c:86
#, c-format
-msgid "An application wants to create a new keyring called '%s'. Choose the password you want to use for it."
-msgstr "Sebuah aplikasi ingin membuat sebuah ring kunci baru bernama '%s'. Pilih sandi yang ingin Anda pakai baginya."
+msgid ""
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
+msgstr ""
+"Sebuah aplikasi ingin membuat sebuah ring kunci baru bernama '%s'. Pilih "
+"sandi yang ingin Anda pakai baginya."
#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
msgid "Certificate and Key Storage"
@@ -92,36 +100,34 @@ msgstr "Ring Kunci GNOME: Agen GPG"
msgid "GPG Password Agent"
msgstr "Agen Sandi GPG"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104
-#: ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Tak dikenal"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "Kunci PGP: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Masukkan Frasa Sandi"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Lupakan sandi ini bila menganggur selama"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Lupakan sandi ini setelah"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Lupakan sandi ini ketika saya log keluar"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Log masuk"
@@ -166,7 +172,6 @@ msgid "Surname"
msgstr "Nama Keluarga"
#: ../egg/egg-oid.c:69
-#: ../gcr/gcr-certificate-renderer.c:652
msgid "Serial Number"
msgstr "Nomor Seri"
@@ -223,7 +228,6 @@ msgid "Pseudonym"
msgstr "Pseudonim"
#: ../egg/egg-oid.c:98
-#: ../gcr/gcr-key-renderer.c:310
msgid "RSA"
msgstr "RSA"
@@ -240,7 +244,6 @@ msgid "SHA1 with RSA"
msgstr "SHA1 dengan RSA"
#: ../egg/egg-oid.c:103
-#: ../gcr/gcr-key-renderer.c:312
msgid "DSA"
msgstr "DSA"
@@ -272,608 +275,14 @@ msgstr "Penandaan Waktu"
#: ../egg/egg-spawn.c:273
#, c-format
msgid "Unexpected error in select() reading data from a child process (%s)"
-msgstr "Galat yang tak diharapkan di select() saat membaca data dari proses anak (%s)"
+msgstr ""
+"Galat yang tak diharapkan di select() saat membaca data dari proses anak (%s)"
#: ../egg/egg-spawn.c:320
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Galat yang tak diharapkan di waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Galat saat memuat modul PKCS#11: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Modul PKCS#11 tak valid: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Tak bisa menyiapkan modul PKCS#11: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "Tak bisa menginisiasi modul PKCS#11: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "Tak bisa menginisiasi modul PKCS#11 yang terdaftar: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388
-#: ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Nama"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Diterbitkan Oleh"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "Kadaluarsa"
-
-#: ../gcr/gcr-certificate.c:1060
-#: ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101
-#: ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "Sertifikat"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Telah ada berkas dengan nama ini.</b>\n"
-"\n"
-"Anda ingin menimpanya dengan suatu berkas baru?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_Timpa"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "Operasi dibatalkan."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Ekspor sertifikat"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Berkas sertifikat"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "Berkas PEM"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Nama Lain"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "Alamat XMPP"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "Surel"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "Alamat X400"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Nama Direktori"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "Nama Partai EDI"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "Alamat IP"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "ID Terdaftar"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Kendala Dasar"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "Otoritas Pengelola Sertifikat"
-
-#: ../gcr/gcr-certificate-renderer.c:119
-#: ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Ya"
-
-#: ../gcr/gcr-certificate-renderer.c:119
-#: ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Tidak"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Panjang Path Maks"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Tanpa batas"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Penggunaan Kunci yang Diperluas"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Penggunaan yang Dibolehkan"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Pengenal Kunci Subjek"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Pengenal Kunci"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Tanda tangan digital"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Enkripsi kunci"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Enkripsi data"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Perjanjian kunci"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Tanda tangan sertifikat"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Tanda tangan daftar pencabutan"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Penggunaan Kunci"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Penggunaan"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Nama Alternatif Subjek"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Ekstensi"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Identifair"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Nilai"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Kritis"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Tak bisa mengekspor sertifikat."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "Identitas"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Diverfikasi oleh"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "Kadaluwarsa"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Nama Subjek"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Nama Penerbit"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Sertifikat Yang Diterbitkan"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Versi"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Tak Valid Sebelum"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Tak Valid Setelah"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Sidik Jari Sertifikat"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675
-#: ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Tanda Tangan"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Algoritma Tanda Tangan"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Parameter Tanda Tangan"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Info Kunci Publik"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Algoritma Kunci"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Parameter Kunci"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Ukuran Kunci"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "Sidik Jari SHA1 Kunci"
-
-#: ../gcr/gcr-certificate-renderer.c:719
-#: ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "Kunci Publik"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_Detail"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "Tak bisa menampilkan '%s'"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "Tak bisa menampilkan berkas"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Alasan"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Tak bisa menampilkan berkas jenis ini."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Impor Sertifikat dan Kunci"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Impor Ke:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Sandi:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "Kunci PGP"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "ID Kunci"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Proses gnupg keluar dengan kode: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Proses gnupg diakhiri dengan sinyal: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695
-#: ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919
-#: ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "Operasi dibatalkan"
-
-#: ../gcr/gcr-importer.c:172
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Masukkan sandi untuk membuka kunci privat"
-
-#: ../gcr/gcr-importer.c:174
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Masukkan sandi untuk membuka sertifikat"
-
-#: ../gcr/gcr-importer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Masukkan sandi untuk membuka kunci"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Kunci privat mesti dibuka kuncinya agar dapat diimpor"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Sertifikat mesti dibuka kuncinya agar dapat diimpor"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Data mesti dibuka kuncinya agar dapat diimpor"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Kunci privat '%s' mesti dibuka kuncinya agar dapat diimpor"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Sertifikat '%s' mesti dibuka kuncinya agar dapat diimpor"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "'%s' mesti dibuka kuncinya agar dapat diimpor"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Tak ada lokasi yang tersedia untuk diimpor kesana"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Impor Sertifikat/Kunci"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Pilih lokasi untuk menyimpan sertifikat/kunci yang diimpor."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Kunci"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Kunci Privat RSA"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Kunci Privat DSA"
-
-#: ../gcr/gcr-key-renderer.c:287
-#: ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "Kunci Pribadi"
-
-#: ../gcr/gcr-key-renderer.c:290
-#: ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Kunci Publik DSA"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Kekuatan"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algoritma"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Ukuran"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Sidik Jari"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "Data tak dikenali atau tak didukung."
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "Tak bisa mengurai data tak valid atau rusak."
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "Data dikunci"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Tak bisa menemukan tempat untuk menyimpan sertifikat yang dipin"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Otomatis buka ring kunci ini ketika saya log masuk"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Mengunci ring kunci ini setelah"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Mengunci ring kunci ini bila menganggur selama"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Mengunci ring kunci ini ketika saya log keluar"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "menit"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "Buka kunci: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65
-#: ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Buka Kunci"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "Sandi salah"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Sandi"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-#| msgid ""
-#| "The contents of '%s' are locked. In order to view the contents, enter a "
-#| "the correct password."
-msgid "The contents of '%s' are locked. In order to view the contents, enter the correct password."
-msgstr "Isi '%s' terkunci. Untuk melihat isi, masukkan sandi yang benar."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-#| msgid ""
-#| "The contents are locked. In order to view the contents, enter a the "
-#| "correct password."
-msgid "The contents are locked. In order to view the contents, enter the correct password."
-msgstr "Isi terkunci. Untuk melihat isi, masukkan sandi yang benar."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "Sertifikat GCR dan Penilik Kunci"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Tampilkan versi aplikasi"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[berkas...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- Tilik berkas kunci dan sertifikat"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "Penilik Sertifikat"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "URI memiliki pengkodean yang tak valid."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "URI tak memiliki skema 'pkcs11'."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "URI memiliki sintaks salah."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "URI memiliki nomor versi yang salah."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Sertifikat Tanpa Nama"
@@ -883,7 +292,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Tak bisa mengurai kunci publik SSH"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Buka sandi bagi: %s"
@@ -902,12 +311,18 @@ msgid "Enter password to unlock your login keyring"
msgstr "Masukkan sandi untuk membuka ring kunci log masuk"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
-msgid "The password you use to log in to your computer no longer matches that of your login keyring."
-msgstr "Sandi yang Anda pakai untuk log masuk ke komputer Anda tak cocok lagi dengan yang ada di ring kunci log masuk Anda."
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
+msgstr ""
+"Sandi yang Anda pakai untuk log masuk ke komputer Anda tak cocok lagi dengan "
+"yang ada di ring kunci log masuk Anda."
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
-msgid "The login keyring did not get unlocked when you logged into your computer."
-msgstr "Ring kunci log masuk tak terbuka ketika Anda log masuk ke komputer Anda."
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr ""
+"Ring kunci log masuk tak terbuka ketika Anda log masuk ke komputer Anda."
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
msgid "Unlock Keyring"
@@ -935,10 +350,26 @@ msgstr "Buka kunci sertifikat"
msgid "Unlock public key"
msgstr "Buka kunci publik"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Buka Kunci"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Masukkan sandi untuk membuka kunci privat"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Masukkan sandi untuk membuka sertifikat"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Masukkan sandi untuk membuka kunci publik"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Masukkan sandi untuk membuka kunci"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -974,8 +405,12 @@ msgstr "Masukkan sandi untuk membuka penyimpanan sertifikat/kunci"
#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
#, c-format
-msgid "An application wants access to the certificate/key storage '%s', but it is locked"
-msgstr "Sebuah aplikasi ingin mengakses penyimpanan sertifikat/kunci '%s', tapi itu terkunci"
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr ""
+"Sebuah aplikasi ingin mengakses penyimpanan sertifikat/kunci '%s', tapi itu "
+"terkunci"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
msgid "New Password Required"
@@ -987,8 +422,11 @@ msgstr "Perlu sandi baru untuk penyimpanan yang aman"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
#, c-format
-msgid "In order to prepare '%s' for storage of certificates or keys, a password is required"
-msgstr "Perlu sandi untuk menyiapkan '%s' bagi penyimpanan sertifikat atau kunci"
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
+"Perlu sandi untuk menyiapkan '%s' bagi penyimpanan sertifikat atau kunci"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
msgid "Change Password"
@@ -1000,7 +438,8 @@ msgstr "Ubah sandi bagi penyimpanan aman"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
-msgid "To change the password for '%s', the original and new passwords are required"
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
msgstr "Untuk mengubah sandi bagi '%s', diperlukan sandi lama dan baru"
#: ../tool/gkr-tool.c:102
@@ -1017,23 +456,29 @@ msgstr "perintah:"
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Simpan sandi tak terenkripsi?"
-#: ../ui/gku-prompt-tool.c:595
-msgid "By choosing to use a blank password, your stored passwords will not be safely encrypted. They will be accessible by anyone with access to your files."
-msgstr "Dengan memilih suatu sandi kosong, sandi Anda yang tersimpan tak akan terenkripsi dengan aman. Mereka akan dapat diakses oleh siapapun yang bisa mengakses berkas Anda."
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
+"Dengan memilih suatu sandi kosong, sandi Anda yang tersimpan tak akan "
+"terenkripsi dengan aman. Mereka akan dapat diakses oleh siapapun yang bisa "
+"mengakses berkas Anda."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Pakai Penyimpanan Yang Tak Aman"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Sandi tak cocok."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Sandi tak boleh kosong"
@@ -1072,4 +517,3 @@ msgstr "Sandi _Lama:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Sandi:"
-
diff --git a/po/is.po b/po/is.po
index 3d07fd70..3704a714 100644
--- a/po/is.po
+++ b/po/is.po
@@ -7,334 +7,494 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-18 20:49+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2004-03-13 06:31-0000\n"
"Last-Translator: helgi <helgi@trance.is>\n"
"Language-Team: Icelandic <gnome@techattack.nu>\n"
+"Language: is\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../gnome-keyring-ask.c:241
-msgid "_Old password:"
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
msgstr ""
-#: ../gnome-keyring-ask.c:262
-msgid "_Password:"
+#: ../daemon/dbus/gkd-secret-change.c:86
+msgid "Change Keyring Password"
msgstr ""
-#: ../gnome-keyring-ask.c:284
-msgid "_Confirm new password:"
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, c-format
+msgid "Choose a new password for the '%s' keyring"
msgstr ""
-#. Strength bar:
-#: ../gnome-keyring-ask.c:303
-msgid "<span weight=\"bold\">Password strength meter:</span>"
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, c-format
+msgid ""
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
msgstr ""
-#: ../gnome-keyring-ask.c:329
-msgid "Old password cannot be blank."
+#: ../daemon/dbus/gkd-secret-change.c:111
+msgid "The original password was incorrect"
msgstr ""
-#: ../gnome-keyring-ask.c:340
-msgid "Password cannot be blank."
+#: ../daemon/dbus/gkd-secret-create.c:83
+msgid "New Keyring Password"
msgstr ""
-#: ../gnome-keyring-ask.c:348
-msgid "Passwords do not match."
+#: ../daemon/dbus/gkd-secret-create.c:84
+msgid "Choose password for new keyring"
msgstr ""
-#: ../gnome-keyring-ask.c:407
+#: ../daemon/dbus/gkd-secret-create.c:86
#, c-format
msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
-#: ../gnome-keyring-ask.c:411
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the keyring '%s', but it is locked"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+msgid "Certificate and Key Storage"
msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:416
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to an unknown keyring, but it is "
-"locked"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+msgid "GNOME Keyring: PKCS#11 Component"
msgstr ""
-#: ../gnome-keyring-ask.c:422 ../gnome-keyring-ask.c:436
-#, c-format
-msgid ""
-"The application '%s' wants access to the default keyring, but it is locked"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+msgid "GNOME Keyring: Secret Service"
msgstr ""
-#: ../gnome-keyring-ask.c:426 ../gnome-keyring-ask.c:441
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:430 ../gnome-keyring-ask.c:446
-#, c-format
-msgid ""
-"The application '%s' wants access to an unknown keyring, but it is locked"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+msgid "GNOME Keyring: SSH Agent"
msgstr ""
-#: ../gnome-keyring-ask.c:452
-msgid ""
-"An unknown application wants access to the default keyring, but it is locked"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
msgstr ""
-#: ../gnome-keyring-ask.c:456
-#, c-format
-msgid ""
-"An unknown application wants access to the keyring '%s', but it is locked"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+msgid "GNOME Keyring: GPG Agent"
msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:461
-msgid ""
-"An unknown application wants access to an unknown keyring, but it is locked"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+msgid "GPG Password Agent"
msgstr ""
-#: ../gnome-keyring-ask.c:468
-msgid "Enter password for default keyring to unlock"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+msgid "Unknown"
msgstr ""
-#: ../gnome-keyring-ask.c:470
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid "Enter password for keyring '%s' to unlock"
+msgid "PGP Key: %s"
msgstr ""
-#: ../gnome-keyring-ask.c:474
-msgid "Unlock Keyring"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-#: ../gnome-keyring-ask.c:479 ../gnome-keyring-ask.c:563
-#: ../gnome-keyring-ask.c:655 ../gnome-keyring-ask.c:711
-#: ../gnome-keyring-ask.c:798
-msgid "_Deny"
-msgstr "_Neita"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
+msgstr ""
-#: ../gnome-keyring-ask.c:517
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-#: ../gnome-keyring-ask.c:521
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
msgstr ""
-#: ../gnome-keyring-ask.c:527 ../gnome-keyring-ask.c:537
-#, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
msgstr ""
-#: ../gnome-keyring-ask.c:531 ../gnome-keyring-ask.c:541
-#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:41
+msgid "Domain Component"
msgstr ""
-#: ../gnome-keyring-ask.c:547
-#, c-format
-msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
+#: ../egg/egg-oid.c:43
+msgid "User ID"
msgstr ""
-#: ../gnome-keyring-ask.c:551
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:46
+msgid "Email Address"
msgstr ""
-#: ../gnome-keyring-ask.c:558
-msgid "New Keyring Password"
+#: ../egg/egg-oid.c:54
+msgid "Date of Birth"
msgstr ""
-#: ../gnome-keyring-ask.c:559
-msgid "Choose password for new keyring"
+#: ../egg/egg-oid.c:56
+msgid "Place of Birth"
msgstr ""
-#: ../gnome-keyring-ask.c:602
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:58
+msgid "Gender"
msgstr ""
-#: ../gnome-keyring-ask.c:606
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:60
+msgid "Country of Citizenship"
+msgstr ""
+
+#: ../egg/egg-oid.c:62
+msgid "Country of Residence"
+msgstr ""
+
+#: ../egg/egg-oid.c:65
+msgid "Common Name"
+msgstr ""
+
+#: ../egg/egg-oid.c:67
+msgid "Surname"
+msgstr ""
+
+#: ../egg/egg-oid.c:69
+msgid "Serial Number"
+msgstr ""
+
+#: ../egg/egg-oid.c:71
+msgid "Country"
+msgstr ""
+
+#: ../egg/egg-oid.c:73
+msgid "Locality"
+msgstr ""
+
+#: ../egg/egg-oid.c:75
+msgid "State"
+msgstr ""
+
+#: ../egg/egg-oid.c:77
+msgid "Street"
+msgstr ""
+
+#: ../egg/egg-oid.c:79
+msgid "Organization"
+msgstr ""
+
+#: ../egg/egg-oid.c:81
+msgid "Organizational Unit"
msgstr ""
-#: ../gnome-keyring-ask.c:612 ../gnome-keyring-ask.c:622
+#: ../egg/egg-oid.c:83
+msgid "Title"
+msgstr ""
+
+#: ../egg/egg-oid.c:85
+msgid "Telephone Number"
+msgstr ""
+
+#: ../egg/egg-oid.c:87
+msgid "Given Name"
+msgstr ""
+
+#: ../egg/egg-oid.c:89
+msgid "Initials"
+msgstr ""
+
+#: ../egg/egg-oid.c:91
+msgid "Generation Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:93
+msgid "DN Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:95
+msgid "Pseudonym"
+msgstr ""
+
+#: ../egg/egg-oid.c:98
+msgid "RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:99
+msgid "MD2 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:100
+msgid "MD5 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:101
+msgid "SHA1 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:103
+msgid "DSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:104
+msgid "SHA1 with DSA"
+msgstr ""
+
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
+
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
+
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
+
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
+msgid "Unexpected error in select() reading data from a child process (%s)"
msgstr ""
-#: ../gnome-keyring-ask.c:616 ../gnome-keyring-ask.c:626
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+msgid "Unexpected error in waitpid() (%s)"
+msgstr ""
+
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr ""
+
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
msgstr ""
-#: ../gnome-keyring-ask.c:632
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
+msgid "Unlock password for: %s"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+msgid "The unlock password was incorrect"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+msgid "Unlock Login Keyring"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+msgid "Enter password to unlock your login keyring"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
msgstr ""
-#: ../gnome-keyring-ask.c:636
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
msgstr ""
-#: ../gnome-keyring-ask.c:643
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
#, c-format
-msgid "Choose a new password for the '%s' keyring. "
+msgid "Enter password for keyring '%s' to unlock"
msgstr ""
-#: ../gnome-keyring-ask.c:645
-msgid "Choose a new password for the default keyring. "
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
msgstr ""
-#: ../gnome-keyring-ask.c:650
-msgid "Change Keyring Password"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
msgstr ""
-#: ../gnome-keyring-ask.c:689
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+msgid "Unlock certificate"
msgstr ""
-#: ../gnome-keyring-ask.c:693 ../gnome-keyring-ask.c:697
-#, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
msgstr ""
-#. app == APPLICATION_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:701
-msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
msgstr ""
-#: ../gnome-keyring-ask.c:706
-msgid "Create Default Keyring"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
msgstr ""
-#: ../gnome-keyring-ask.c:707
-msgid "Choose password for default keyring"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+msgid "Enter password to unlock the public key"
msgstr ""
-#: ../gnome-keyring-ask.c:747
-msgid "Allow application access to keyring?"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
msgstr ""
-#: ../gnome-keyring-ask.c:750
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
-msgid "The application '%s' (%s) wants to access the password for '%s' in %s."
+msgid "An application wants access to the private key '%s', but it is locked"
msgstr ""
-#: ../gnome-keyring-ask.c:753
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '%s' in the "
-"default keyring."
+msgid "An application wants access to the certificate '%s', but it is locked"
msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:756
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '%s' in an "
-"unknown keyring."
+msgid "An application wants access to the public key '%s', but it is locked"
msgstr ""
-#: ../gnome-keyring-ask.c:761 ../gnome-keyring-ask.c:772
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
#, c-format
-msgid "The application '%s' wants to access the password for '%s' in %s."
+msgid "An application wants access to '%s', but it is locked"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
msgstr ""
-#: ../gnome-keyring-ask.c:764 ../gnome-keyring-ask.c:775
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
#, c-format
msgid ""
-"The application '%s' wants to access the password for '%s' in the default "
-"keyring."
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:767 ../gnome-keyring-ask.c:778
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
#, c-format
msgid ""
-"The application '%s' wants to access the password for '%s' in an unknown "
-"keyring."
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
msgstr ""
-#: ../gnome-keyring-ask.c:783
-#, c-format
-msgid "An unknown application wants to access the password for '%s' in %s."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+msgid "Change Password"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+msgid "Change password for secure storage"
msgstr ""
-#: ../gnome-keyring-ask.c:786
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
msgid ""
-"An unknown application wants to access the password for '%s' in the default "
-"keyring."
+"To change the password for '%s', the original and new passwords are required"
msgstr ""
-# keyring == KEYRING_NAME_UNKNOWN
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:789
+#: ../tool/gkr-tool.c:102
#, c-format
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
+
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
+
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:592
msgid ""
-"An unknown application wants to access the password for '%s' in an unknown "
-"keyring."
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:649
+msgid "Password cannot be blank"
+msgstr ""
+
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
msgstr ""
-#: ../gnome-keyring-ask.c:794
-msgid "Allow access"
-msgstr "Leyfa aðgang"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:2
+msgid "_Application:"
+msgstr ""
-#: ../gnome-keyring-ask.c:799
-msgid "Allow _Once"
-msgstr "Leyfa _Einu Sinni"
+#: ../ui/gku-prompt.ui.h:3
+msgid "_Confirm:"
+msgstr ""
-#: ../gnome-keyring-ask.c:800
-msgid "_Always Allow"
-msgstr "_Ãvallt Leyfa"
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
-#: ../gnome-keyring-ask.c:840
-msgid "You must specify the type of request to run\n"
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
msgstr ""
-#: ../gnome-keyring-ask.c:857
-msgid "Unknown request type\n"
+#: ../ui/gku-prompt.ui.h:6
+msgid "_Old Password:"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
msgstr ""
diff --git a/po/it.po b/po/it.po
index f11512ef..19cb9aa1 100644
--- a/po/it.po
+++ b/po/it.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-18 12:54+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-18 12:53+0200\n"
"Last-Translator: Milo Casagrande <milo@ubuntu.com>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
@@ -23,7 +23,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Senza nome"
@@ -106,35 +106,34 @@ msgstr "Portachiavi di GNOME: agente GPG"
msgid "GPG Password Agent"
msgstr "Agente password GPG"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Sconosciuto"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "Chiave PGP: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Inserire passphrase"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Dimentica questa password se inattivo per"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Dimentica questa password dopo"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Dimentica questa password al termine della sessione"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Login"
@@ -178,7 +177,7 @@ msgstr "Nome comune"
msgid "Surname"
msgstr "Cognome"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Numero seriale"
@@ -234,7 +233,7 @@ msgstr "Qualificatore DN"
msgid "Pseudonym"
msgstr "Pseudonimo"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -250,7 +249,7 @@ msgstr "MD5 con RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 con RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -293,606 +292,6 @@ msgstr ""
msgid "Unexpected error in waitpid() (%s)"
msgstr "Errore inatteso in waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Errore nel caricare il modulo PKCS#11: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Modulo PKCS#11 non valido: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Impossibile impostare il modulo PKCS#11: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "Impossibile inizializzare il modulo PKCS#11: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "Impossibile inizializzare i moduli PKCS#11 registrati: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Nome"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Emesso da"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "Scadenza"
-
-# sarebbe titolo dialogo
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "Certificato"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Un file con lo stesso nome esiste già.</b>\n"
-"\n"
-"Sostituirlo col nuovo file?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_Sostituisci"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "L'operazione è stata annullata."
-
-# sarebbe titolo dialogo
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Esporta certificato"
-
-#
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "File certificati"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "File PEM"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Altro nome"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "Indirizzo XMPP"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "Server DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "Email"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "Indirizzo X400"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Nome directory"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "Nome gruppo EDI"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "Indirizzo IP"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "ID registrato"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Vincoli di base"
-
-# sarebbe titolo dialogo
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "Autorità di certificazione"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Sì"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "No"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Lunghezza massima percorso"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Illimitata"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Utilizzo esteso della chiave"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Obiettivi consentiti"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Identificatore chiave soggetto"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Identificatore chiave"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Firma digitale"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Cifratura chiave"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Cifratura dati"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Parametri chiave"
-
-# sarebbe titolo dialogo
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Firma certificato"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Firma elenco revoca"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Utilizzo chiave"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Utilizzi"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Nomi alternativi soggetto"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Estensione"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Identificatore"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Valore"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Critico"
-
-# FIXME: magari ha già una traduzione in Firefox o altro??
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Impossibile esportare il certificato."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "Identità"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Verificato da"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "Scadenza"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Nome soggetto"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Nome emanatore"
-
-# sarebbe titolo dialogo
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Certificato emesso"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Versione"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Non valido prima del"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Non valido dopo il"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Impronte digitali certificato"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Firma"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Algoritmo di firma"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Parametri della firma"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Informazioni chiave pubblica"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Algoritmo della chiave"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Parametri dell chiave"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Dimensione della chiave"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "Impronta digitale della chiave SHA1"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "Chiave pubblica"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_Dettagli"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "Impossibile visualizzare «%s»"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "Impossibile visualizzare il file"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Motivo"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Impossibile visualizzare un file di questo tipo."
-
-# sarebbe titolo dialogo
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Importa certificati e chiavi"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Importa in:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Password:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "Chiave PGP"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "ID chiave"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Processo Gnupg uscito con codice %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Processo Gnupg terminato col segnale %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919 ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "L'operazione è stata annullata"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Inserire la password per sbloccare la chiave privata"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Inserire la password per sbloccare il certificato"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Inserire la password per sbloccare"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Per poter importare la chiave privata, questa deve essere sbloccata"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Per poter importare il certificato, questo deve essere sbloccato"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Per poter importare i dati, questi devono essere sbloccati"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr ""
-"Per poter importare la chiave privata «%s», questa deve essere sbloccata"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Per poter importare il certificato «%s», questo deve essere sbloccato"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Per poter importare «%s», questo deve essere sbloccato"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Nessuna posizione disponibile su cui importare"
-
-# sarebbe titolo dialogo
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Importa certificati/chiavi"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr ""
-"Scegliere una posizione per archiviare i certificati/le chiavi importati"
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Chiave"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Chiave privata RSA"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Chiave privata DSA"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "Chiave privata"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Chiave pubblica DSA"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-msgstr[1] "%d bit"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Robustezza"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algoritmo"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Dimensione"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Impronte digitali"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "Dati non riconosciuti o non supportati."
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "Impossibile analizzare i dati non validi o danneggiati."
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "I dati sono bloccati"
-
-# FIXME: magari ha già una traduzione in Firefox o altro??
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Impossibile trovare una posizione per archiviare il certificato pinned"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Sblocca automaticamente questo portachiavi all'accesso"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Blocca questo portachiavi dopo"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Blocca questo portachiavi se inattivo per"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Blocca questo portachiavi al termine della sessione"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minuti"
-
-# sarebbe titolo dialogo
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "Sblocca: %s"
-
-# sarebbe titolo dialogo
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Sblocca"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "La password non è corretta"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Password"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr ""
-"Il contenuto di «%s» è bloccato. Per poterlo visualizzare, digitare la "
-"password corretta."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr ""
-"Il contenuto è bloccato. Per poterlo visualizzare, digitare la password "
-"corretta."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "Visualizzatore di certificati GCR e di chiavi"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Mostra la versione dell'applicazione"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[FILE...]"
-
-# sarebbe titolo dialogo
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- Visualizza certificati e file di chiavi"
-
-# sarebbe titolo dialogo
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "Visualizzatore di certificati"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "L'URI presenta una codifica non valida."
-
-# FIXME?
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "L'URI non presenta lo schema «pkcs11»."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "L'URI presenta una sintassi non valida."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "L'URI presenta un numero di versione errato."
-
# sarebbe titolo dialogo
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
@@ -903,7 +302,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Impossibile analizzare la chiave pubblica SSH"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Password di sblocco per: %s"
@@ -967,10 +366,27 @@ msgstr "Sblocca certificato"
msgid "Unlock public key"
msgstr "Sblocca chiave pubblica"
+# sarebbe titolo dialogo
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Sblocca"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Inserire la password per sbloccare la chiave privata"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Inserire la password per sbloccare il certificato"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Inserire la password per sbloccare la chiave pubblica"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Inserire la password per sbloccare"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1069,11 +485,11 @@ msgstr "Comandi: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Archiviare le password senza cifrarle?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1083,15 +499,15 @@ msgstr ""
"saranno cifrate in modo sicuro. In questo modo esse saranno accessibili da "
"chiunque abbia accesso ai propri file."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Usa archiviazione non sicura"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Le password non corrispondono."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "La password non può essere vuota"
diff --git a/po/ja.po b/po/ja.po
index 3efb409b..079ce8e5 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -9,9 +9,8 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring gnome-2-32\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-04-09 20:04+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2010-09-20 16:01+0900\n"
"Last-Translator: Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp>\n"
"Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n"
@@ -23,7 +22,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "åå‰ãªã—"
@@ -100,35 +99,34 @@ msgstr "GNOME キーリング: GPG エージェント"
msgid "GPG Password Agent"
msgstr "GPG パスワードエージェント"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:305
-#: ../gcr/gcr-key-renderer.c:310
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "ä¸æ˜Ž"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP éµ: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "パスフレーズを入力ã—ã¦ãã ã•ã„"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "ã“ã®ãƒ‘スワードを以下ã®æ™‚間アイドルã ã£ãŸã‚‰å¿˜ã‚Œã‚‹:"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "ã“ã®ãƒ‘スワードを以下ã®æ™‚間経éŽã—ãŸã‚‰å¿˜ã‚Œã‚‹:"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "ログアウトã—ãŸã‚‰ã“ã®ãƒ‘スワードを忘れる"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "ログイン"
@@ -174,7 +172,7 @@ msgstr "一般å"
msgid "Surname"
msgstr "ã‚ã å"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:398
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "シリアル番å·"
@@ -230,649 +228,62 @@ msgstr "DN 修飾å­"
msgid "Pseudonym"
msgstr "ä»®å"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:301
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "RSA 付ãã® MD2"
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "RSA 付ãã® MD5"
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "RSA 付ãã® SHA1"
-#: ../egg/egg-oid.c:107 ../gcr/gcr-key-renderer.c:303
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "DSA 付ãã® SHA1"
-#: ../egg/egg-spawn.c:273
-#, c-format
-msgid "Unexpected error in select() reading data from a child process (%s)"
-msgstr "select() ãŒå­ãƒ—ロセスã‹ã‚‰ãƒ‡ãƒ¼ã‚¿èª­ã¿è¾¼ã¿ä¸­ã«äºˆæœŸã—ãªã„エラー (%s)"
-
-#: ../egg/egg-spawn.c:320
-#, c-format
-msgid "Unexpected error in waitpid() (%s)"
-msgstr "waitpid() ã§ã®äºˆæœŸã—ãªã„エラー (%s)"
-
-#: ../gcr/gcr-certificate-renderer.c:96 ../gcr/gcr-parser.c:275
-msgid "Certificate"
-msgstr "証明書"
-
-#: ../gcr/gcr-certificate-renderer.c:121
-msgid "Extension"
-msgstr "æ‹¡å¼µ"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "Identifier"
-msgstr "識別å­"
-
-#: ../gcr/gcr-certificate-renderer.c:134
-msgid "Value"
-msgstr "値"
-
-#: ../gcr/gcr-certificate-renderer.c:140
-msgid "Critical"
-msgstr "é‡å¤§"
-
-#: ../gcr/gcr-certificate-renderer.c:140
-msgid "Yes"
-msgstr "ã¯ã„"
-
-#: ../gcr/gcr-certificate-renderer.c:140
-msgid "No"
-msgstr "ã„ã„ãˆ"
-
-#: ../gcr/gcr-certificate-renderer.c:358
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
#, fuzzy
-msgid "Identity"
-msgstr "識別å­"
-
-#: ../gcr/gcr-certificate-renderer.c:362
-msgid "Verified by"
-msgstr ""
+msgid "Server Authentication"
+msgstr "SSL サーãƒè¨¼æ˜Žæ›¸"
-#: ../gcr/gcr-certificate-renderer.c:369
+#: ../egg/egg-oid.c:108
#, fuzzy
-msgid "Expires"
-msgstr "有効期é™"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:379
-msgid "Subject Name"
-msgstr "サブジェクトå"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:383
-msgid "Issuer Name"
-msgstr "発行者ã®åå‰"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:387
-msgid "Issued Certificate"
-msgstr "発行済ã®è¨¼æ˜Žæ›¸"
-
-#: ../gcr/gcr-certificate-renderer.c:392
-msgid "Version"
-msgstr "版"
-
-#: ../gcr/gcr-certificate-renderer.c:406
-msgid "Not Valid Before"
-msgstr "次よりå¤ã„日付ã¯å¦¥å½“ã§ã¯ãªã„"
-
-#: ../gcr/gcr-certificate-renderer.c:411
-msgid "Not Valid After"
-msgstr "次より新ã—ã„日付ã¯å¦¥å½“ã§ã¯ãªã„"
-
-#: ../gcr/gcr-certificate-renderer.c:420
-msgid "Signature Algorithm"
-msgstr "ç½²åアルゴリズム"
-
-#: ../gcr/gcr-certificate-renderer.c:425
-msgid "Signature Parameters"
-msgstr "ç½²åã®ãƒ‘ラメータ"
-
-#: ../gcr/gcr-certificate-renderer.c:432
-msgid "Signature"
-msgstr "ç½²å"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:437
-msgid "Public Key Info"
-msgstr "公開éµã®æƒ…å ±"
-
-#: ../gcr/gcr-certificate-renderer.c:442
-msgid "Key Algorithm"
-msgstr "éµã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ "
-
-#: ../gcr/gcr-certificate-renderer.c:448
-msgid "Key Parameters"
-msgstr "éµã®ãƒ‘ラメータ"
-
-#: ../gcr/gcr-certificate-renderer.c:455
-msgid "Key Size"
-msgstr "éµã®ã‚µã‚¤ã‚º"
-
-#: ../gcr/gcr-certificate-renderer.c:463 ../gcr/gcr-key-renderer.c:285
-#: ../gcr/gcr-parser.c:278
-msgid "Public Key"
-msgstr "公開éµ"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:468
-msgid "Fingerprints"
-msgstr "指紋"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-#, fuzzy
-msgid "Import Certificates and Keys"
-msgstr "証明書/éµã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆ"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "インãƒãƒ¼ãƒˆå…ˆ:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "パスワード:"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "ログインã—ãŸã‚‰ã€ã“ã®ã‚­ãƒ¼ãƒªãƒ³ã‚°ã®ãƒ­ãƒƒã‚¯ã‚’自動的ã«è§£é™¤ã™ã‚‹"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "ã“ã®ã‚­ãƒ¼ãƒªãƒ³ã‚°ã‚’以下ã®æ™‚間経éŽã—ãŸã‚‰ãƒ­ãƒƒã‚¯:"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "ã“ã®ã‚­ãƒ¼ãƒªãƒ³ã‚°ã‚’以下ã®æ™‚間アイドルã ã£ãŸã‚‰ãƒ­ãƒƒã‚¯ã™ã‚‹:"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "ログアウトã—ãŸã‚‰ã€ã“ã®ã‚­ãƒ¼ãƒªãƒ³ã‚°ã®è‡ªå‹•çš„ã«ãƒ­ãƒƒã‚¯ã™ã‚‹"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "分"
-
-#: ../gcr/gcr-importer.c:170 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "パスワードを入力ã—ã¦ç§˜å¯†éµã‚’解除ã—ã¦ãã ã•ã„"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "パスワードを入力ã—ã¦è¨¼æ˜Žæ›¸ã«ã‚ˆã‚‹ãƒ­ãƒƒã‚¯ã‚’解除ã—ã¦ãã ã•ã„"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "パスワードを入力ã—ã¦ãƒ­ãƒƒã‚¯ã‚’解除ã—ã¦ãã ã•ã„"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:183
-msgid "In order to import the private key, it must be unlocked"
-msgstr "秘密éµã‚’インãƒãƒ¼ãƒˆã™ã‚‹å ´åˆã¯ãƒ­ãƒƒã‚¯ã‚’解除ã—ã¦ãã ã•ã„"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:186
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "証明書をインãƒãƒ¼ãƒˆã™ã‚‹å ´åˆã¯ãƒ­ãƒƒã‚¯ã‚’解除ã—ã¦ãã ã•ã„"
+msgid "Client Authentication"
+msgstr "SSL クライアント証明書"
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:189
-msgid "In order to import the data, it must be unlocked"
-msgstr "データをインãƒãƒ¼ãƒˆã™ã‚‹å ´åˆã¯ãƒ­ãƒƒã‚¯ã‚’解除ã—ã¦ãã ã•ã„"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:194
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "秘密éµã® '%s' をインãƒãƒ¼ãƒˆã™ã‚‹å ´åˆã¯ãƒ­ãƒƒã‚¯ã‚’解除ã—ã¦ãã ã•ã„"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:197
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "証明書㮠'%s' をインãƒãƒ¼ãƒˆã™ã‚‹å ´åˆã¯ãƒ­ãƒƒã‚¯ã‚’解除ã—ã¦ãã ã•ã„"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:200
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "'%s' をインãƒãƒ¼ãƒˆã™ã‚‹å ´åˆã¯ãƒ­ãƒƒã‚¯ã‚’解除ã—ã¦ãã ã•ã„"
-
-#: ../gcr/gcr-importer.c:291 ../gcr/gcr-parser.c:1708 ../gcr/gcr-parser.c:1947
-#: ../gck/gck-misc.c:104
-msgid "The operation was cancelled"
-msgstr "処ç†ã‚’キャンセルã—ã¾ã—ãŸ"
-
-#: ../gcr/gcr-importer.c:383
-#, c-format
-msgid "No location available to import to"
-msgstr "インãƒãƒ¼ãƒˆå…ˆã¨ã—ã¦å¦¥å½“ãªå ´æ‰€ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-
-#: ../gcr/gcr-importer.c:532
-msgid "Import Certificates/Keys"
-msgstr "証明書/éµã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆ"
-
-#: ../gcr/gcr-importer.c:539
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "インãƒãƒ¼ãƒˆã—ãŸè¨¼æ˜Žæ›¸/éµã‚’ä¿å­˜ã™ã‚‹å ´æ‰€ã‚’é¸æŠžã—ã¦ãã ã•ã„"
-
-#: ../gcr/gcr-key-renderer.c:83
-msgid "Key"
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
msgstr ""
-#: ../gcr/gcr-key-renderer.c:274
-#, fuzzy
-msgid "Private RSA Key"
-msgstr "秘密éµ"
-
-#: ../gcr/gcr-key-renderer.c:276
-#, fuzzy
-msgid "Private DSA Key"
-msgstr "秘密éµ"
-
-#: ../gcr/gcr-key-renderer.c:278 ../gcr/gcr-parser.c:272
-msgid "Private Key"
-msgstr "秘密éµ"
-
-#: ../gcr/gcr-key-renderer.c:281 ../gcr/gcr-key-renderer.c:283
-#, fuzzy
-msgid "Public DSA Key"
-msgstr "公開éµ"
-
-#: ../gcr/gcr-key-renderer.c:292
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../gcr/gcr-key-renderer.c:293
-#, fuzzy
-msgid "Strength"
-msgstr "通り"
-
-#: ../gcr/gcr-key-renderer.c:306
-#, fuzzy
-msgid "Algorithm"
-msgstr "éµã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ "
-
-#: ../gcr/gcr-key-renderer.c:313
-#, fuzzy
-msgid "Size"
-msgstr "éµã®ã‚µã‚¤ã‚º"
-
-#. TODO: We need to have consistent key fingerprints.
-#: ../gcr/gcr-key-renderer.c:317
-#, fuzzy
-msgid "Fingerprint"
-msgstr "指紋"
-
-#: ../gcr/gcr-parser.c:1711
-msgid "Unrecognized or unsupported data."
-msgstr "èªè­˜ã§ããªã„ã¾ãŸã¯ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ãªã„データã§ã™"
-
-#: ../gcr/gcr-parser.c:1714
-msgid "Could not parse invalid or corrupted data."
-msgstr "データãŒä¸æ­£ã¾ãŸã¯å£Šã‚Œã¦ã„ã‚‹ãŸã‚解æžã§ãã¾ã›ã‚“ã§ã—ãŸ"
-
-#: ../gcr/gcr-parser.c:1717
-msgid "The data is locked"
-msgstr "データã«ã¯ãƒ­ãƒƒã‚¯ãŒã‹ã‹ã£ã¦ã„ã¾ã™"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:420
-#, fuzzy, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "インãƒãƒ¼ãƒˆã—ãŸè¨¼æ˜Žæ›¸/éµã‚’ä¿å­˜ã™ã‚‹å ´æ‰€ã‚’é¸æŠžã—ã¦ãã ã•ã„"
-
-#: ../gck/gck-uri.c:129 ../gck/gck-uri.c:186 ../gck/gck-uri.c:221
-#: ../gck/gck-uri.c:253
-#, c-format
-msgid "The URI has invalid syntax. The '%s' field encoding is invalid."
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
msgstr ""
-#: ../gck/gck-uri.c:292
-msgid "The URI has does not have the 'pkcs11' scheme."
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
msgstr ""
-#: ../gck/gck-misc.c:107
-msgid "Insufficient memory available"
-msgstr "利用ã§ãるメモリãŒè¶³ã‚Šã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:109
-msgid "The specified slot ID is not valid"
-msgstr "指定ã—ãŸã‚¹ãƒ­ãƒƒãƒˆã® ID ã¯ç„¡åŠ¹ã§ã™"
-
-#: ../gck/gck-misc.c:111
-msgid "Internal error"
-msgstr "内部エラー"
-
-#: ../gck/gck-misc.c:113
-msgid "The operation failed"
-msgstr "処ç†ã‚’実行ã§ãã¾ã›ã‚“ã§ã—ãŸ"
-
-#: ../gck/gck-misc.c:115
-msgid "Invalid arguments"
-msgstr "引数ãŒç„¡åŠ¹ã§ã™"
-
-#: ../gck/gck-misc.c:117
-msgid "The module cannot create needed threads"
-msgstr "モジュールã§å¿…è¦ã¨ãªã‚‹ã‚¹ãƒ¬ãƒƒãƒ‰ã‚’生æˆã§ãã¾ã›ã‚“ã§ã—ãŸ"
-
-#: ../gck/gck-misc.c:119
-msgid "The module cannot lock data properly"
-msgstr "モジュールã§ãƒ‡ãƒ¼ã‚¿ã‚’æ­£ã—ãロックã§ãã¾ã›ã‚“ã§ã—ãŸ"
-
-#: ../gck/gck-misc.c:121
-msgid "The field is read-only"
-msgstr "ãã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã¯èª­ã¿è¾¼ã¿å°‚用ã§ã™"
-
-#: ../gck/gck-misc.c:123
-msgid "The field is sensitive and cannot be revealed"
-msgstr "ãã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã«ã¯å€‹äººæƒ…å ±ãŒå«ã¾ã‚Œã¦ã„ã‚‹ãŸã‚開示ã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:125
-msgid "The field is invalid or does not exist"
-msgstr "ãã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã®ãƒ‡ãƒ¼ã‚¿ãŒé–“é•ã£ã¦ã„ã‚‹ã‹å­˜åœ¨ã—ã¦ã„ã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:127
-msgid "Invalid value for field"
-msgstr "ãã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã®å€¤ãŒé–“é•ã£ã¦ã„ã¾ã™"
-
-#: ../gck/gck-misc.c:129
-msgid "The data is not valid or unrecognized"
-msgstr "データãŒé–“é•ã£ã¦ã„ã‚‹ã‹ã¾ãŸã¯è§£èª­ã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:131
-msgid "The data is too long"
-msgstr "データãŒé•·ã™ãŽã¾ã™"
-
-#: ../gck/gck-misc.c:133
-msgid "An error occurred on the device"
-msgstr "デãƒã‚¤ã‚¹ã§ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ"
-
-#: ../gck/gck-misc.c:135
-#, fuzzy
-msgid "Insufficient memory available on the device"
-msgstr "デãƒã‚¤ã‚¹ä¸Šã§åˆ©ç”¨ã§ãるメモリãŒè¶³ã‚Šã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:137
-msgid "The device was removed or unplugged"
-msgstr "デãƒã‚¤ã‚¹ãŒå‰Šé™¤ã•ã‚ŒãŸã‹æŠœãå–られã¾ã—ãŸ"
-
-#: ../gck/gck-misc.c:139
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "æš—å·åŒ–ã—ãŸãƒ‡ãƒ¼ã‚¿ãŒé–“é•ã£ã¦ã„ã‚‹ã‹ã¾ãŸã¯è§£èª­ã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:141
-msgid "The encrypted data is too long"
-msgstr "æš—å·åŒ–ã—ãŸãƒ‡ãƒ¼ã‚¿ãŒé•·ã™ãŽã¾ã™"
-
-#: ../gck/gck-misc.c:143
-msgid "This operation is not supported"
-msgstr "ã“ã®æ“作ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:145
-msgid "The key is missing or invalid"
-msgstr "éµãŒå­˜åœ¨ã—ãªã„ã‹ã¾ãŸã¯é–“é•ã£ã¦ã„ã¾ã™"
-
-#: ../gck/gck-misc.c:147
-msgid "The key is the wrong size"
-msgstr "éµã®ã‚µã‚¤ã‚ºãŒé–“é•ã£ã¦ã„ã¾ã™"
-
-#: ../gck/gck-misc.c:149
-msgid "The key is of the wrong type"
-msgstr "éµã®ç¨®é¡žãŒé–“é•ã£ã¦ã„ã¾ã™"
-
-#: ../gck/gck-misc.c:151
-msgid "No key is needed"
-msgstr "éµã¯å¿…è¦ã‚ã‚Šã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:153
-#, fuzzy
-msgid "The key is different than before"
-msgstr "以å‰ã®éµã¨åŒã˜ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:155
-msgid "A key is needed"
-msgstr "éµãŒå¿…è¦ã§ã™"
-
-#: ../gck/gck-misc.c:157
-#, fuzzy
-msgid "Cannot include the key in the digest"
-msgstr "ダイジェストã®ä¸­ã«éµã‚’å«ã‚ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:159
-msgid "This operation cannot be done with this key"
-msgstr "ã“ã®éµã§ãã®æ“作を実行ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:161
-msgid "The key cannot be wrapped"
-msgstr "éµã‚’ラップã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:163
-msgid "Cannot export this key"
-msgstr "ã“ã®éµã‚’エクスãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:165
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "Crypto ã®ãƒ¡ã‚«ãƒ‹ã‚ºãƒ ãŒé–“é•ã£ã¦ã„ã‚‹ã‹ã¾ãŸã¯è§£èª­ã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:167
-msgid "The crypto mechanism has an invalid argument"
-msgstr "Crypto ã®ãƒ¡ã‚«ãƒ‹ã‚ºãƒ ã«ç„¡åŠ¹ãªå¼•æ•°ãŒã‚ã‚Šã¾ã™"
-
-#: ../gck/gck-misc.c:169
-msgid "The object is missing or invalid"
-msgstr "オブジェクトãŒå­˜åœ¨ã—ãªã„ã‹ã¾ãŸã¯é–“é•ã£ã¦ã„ã¾ã™"
-
-#: ../gck/gck-misc.c:171
-msgid "Another operation is already taking place"
-msgstr "別ã®æ“作ãŒæ—¢ã«å®Ÿè¡Œä¸­ã§ã™"
-
-#: ../gck/gck-misc.c:173
-msgid "No operation is taking place"
-msgstr "何も実行ã—ã¦ã„ã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:175
-msgid "The password or PIN is incorrect"
-msgstr "パスワードã¾ãŸã¯ PIN ã®ä¸€éƒ¨ãŒé–“é•ã£ã¦ã„ã¾ã™"
-
-#: ../gck/gck-misc.c:177
-msgid "The password or PIN is invalid"
-msgstr "パスワードã¾ãŸã¯ PIN ãŒé–“é•ã£ã¦ã„ã¾ã™"
-
-#: ../gck/gck-misc.c:179
-msgid "The password or PIN is of an invalid length"
-msgstr "パスワードã¾ãŸã¯ PIN ã®é•·ã•ãŒå¦¥å½“ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:181
-msgid "The password or PIN has expired"
-msgstr "パスワードã¾ãŸã¯ PIN ã®æœ‰åŠ¹æœŸé™ãŒéŽãŽã¦ã„ã¾ã™"
-
-#: ../gck/gck-misc.c:183
-msgid "The password or PIN is locked"
-msgstr "パスワードã¾ãŸã¯ PIN ãŒãƒ­ãƒƒã‚¯ã•ã‚Œã¦ã„ã¾ã™"
-
-#: ../gck/gck-misc.c:185
-msgid "The session is closed"
-msgstr "セッションをクローズã—ã¾ã—ãŸ"
-
-#: ../gck/gck-misc.c:187
-msgid "Too many sessions are active"
-msgstr "éžå¸¸ã«ãŸãã•ã‚“ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã‚’実行ã—ã¦ã„ã¾ã™"
-
-#: ../gck/gck-misc.c:189
-msgid "The session is invalid"
-msgstr "無効ãªã‚»ãƒƒã‚·ãƒ§ãƒ³ã§ã™"
-
-#: ../gck/gck-misc.c:191
-msgid "The session is read-only"
-msgstr "ãã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã¯èª­ã¿è¾¼ã¿å°‚用ã§ã™"
-
-#: ../gck/gck-misc.c:193
-msgid "An open session exists"
-msgstr "オープンã—ã¦ã„るセッションãŒã‚ã‚Šã¾ã™"
-
-#: ../gck/gck-misc.c:195
-msgid "A read-only session exists"
-msgstr "読ã¿è¾¼ã¿å°‚用ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ãŒã‚ã‚Šã¾ã™"
-
-#: ../gck/gck-misc.c:197
-msgid "An administrator session exists"
-msgstr "管ç†è€…用ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ãŒã‚ã‚Šã¾ã™"
-
-#: ../gck/gck-misc.c:199
-msgid "The signature is bad or corrupted"
-msgstr "ç½²åãŒé–“é•ã£ã¦ã„ã‚‹ã‹ã¾ãŸã¯å£Šã‚Œã¦ã„ã¾ã™"
-
-#: ../gck/gck-misc.c:201
-msgid "The signature is unrecognized or corrupted"
-msgstr "ç½²åを解読ã§ããªã„ã‹ã¾ãŸã¯å£Šã‚Œã¦ã„ã¾ã™"
-
-#: ../gck/gck-misc.c:203
-msgid "Certain required fields are missing"
-msgstr "å¿…é ˆã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ãŒè¶³ã‚Šã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:205
-msgid "Certain fields have invalid values"
-msgstr "フィールドã®å€¤ãŒé–“é•ã£ã¦ã„ã¾ã™"
-
-#: ../gck/gck-misc.c:207
-msgid "The device is not present or unplugged"
-msgstr "デãƒã‚¤ã‚¹ãŒå­˜åœ¨ã—ãªã„ã‹ã¾ãŸã¯æŠœãå–られã¦ã„ã¾ã™"
-
-#: ../gck/gck-misc.c:209
-msgid "The device is invalid or unrecognizable"
-msgstr "デãƒã‚¤ã‚¹ãŒé–“é•ã£ã¦ã„ã‚‹ã‹ã¾ãŸã¯èªè­˜ã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:211
-msgid "The device is write protected"
-msgstr "ãã®ãƒ‡ãƒã‚¤ã‚¹ã«ã¯æ›¸ãè¾¼ã¿ã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:213
-msgid "Cannot import because the key is invalid"
-msgstr "ãã®éµãŒç„¡åŠ¹ãªãŸã‚インãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:215
-msgid "Cannot import because the key is of the wrong size"
-msgstr "éµã®ã‚µã‚¤ã‚ºãŒé–“é•ã£ã¦ã„ã‚‹ãŸã‚インãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:217
-msgid "Cannot import because the key is of the wrong type"
-msgstr "éµã®ç¨®é¡žãŒé–“é•ã£ã¦ã„ã‚‹ãŸã‚インãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:219
-msgid "You are already logged in"
-msgstr "ã‚ãªãŸã¯æ—¢ã«ãƒ­ã‚°ã‚¤ãƒ³ã—ã¦ã„ã¾ã™"
-
-#: ../gck/gck-misc.c:221
-msgid "No user has logged in"
-msgstr "誰もログインã—ã¦ã„ã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:223
-msgid "The user's password or PIN is not set"
-msgstr "ユーザã®ãƒ‘スワードã¾ãŸã¯ PIN ãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:225
-msgid "The user is of an invalid type"
-msgstr "ユーザã®ç¨®é¡žãŒé–“é•ã£ã¦ã„ã¾ã™"
-
-#: ../gck/gck-misc.c:227
-msgid "Another user is already logged in"
-msgstr "別ã®ãƒ¦ãƒ¼ã‚¶ãŒæ—¢ã«ãƒ­ã‚°ã‚¤ãƒ³ã—ã¦ã„ã¾ã™"
-
-#: ../gck/gck-misc.c:229
-#, fuzzy
-msgid "Too many users of different types are logged in"
-msgstr "ã„ã‚ã„ã‚ãªç¨®é¡žã®ãƒ¦ãƒ¼ã‚¶ãŒå¤§é‡ã«ãƒ­ã‚°ã‚¤ãƒ³ã—ã¦ã„ã¾ã™"
-
-#: ../gck/gck-misc.c:231
-msgid "Cannot import an invalid key"
-msgstr "無効ãªéµã¯ã‚¤ãƒ³ãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:233
-msgid "Cannot import a key of the wrong size"
-msgstr "é–“é•ã£ãŸã‚µã‚¤ã‚ºã®éµã¯ã‚¤ãƒ³ãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:235
-msgid "Cannot export because the key is invalid"
-msgstr "無効ãªéµã¯ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:237
-msgid "Cannot export because the key is of the wrong size"
-msgstr "éµã®ã‚µã‚¤ã‚ºãŒé–“é•ã£ã¦ã„ã‚‹ãŸã‚エクスãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:239
-msgid "Cannot export because the key is of the wrong type"
-msgstr "éµã®ç¨®é¡žãŒé–“é•ã£ã¦ã„ã‚‹ãŸã‚エクスãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:241
-msgid "Unable to initialize the random number generator"
-msgstr "乱数発生器をåˆæœŸåŒ–ã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:243
-msgid "No random number generator available"
-msgstr "利用å¯èƒ½ãªä¹±æ•°ç™ºç”Ÿå™¨ã¯ã‚ã‚Šã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:245
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "Crypto ã®ãƒ¡ã‚«ãƒ‹ã‚ºãƒ ã«ç„¡åŠ¹ãªå¼•æ•°ãŒã‚ã‚Šã¾ã™"
-
-#: ../gck/gck-misc.c:247
-msgid "Not enough space to store the result"
-msgstr "çµæžœã‚’ä¿å­˜ã—ã¦ãŠã容é‡ãŒè¶³ã‚Šã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:249
-msgid "The saved state is invalid"
-msgstr "ä¿ç®¡ã—ãŸçŠ¶æ…‹ãŒé–“é•ã£ã¦ã„ã¾ã™"
-
-#: ../gck/gck-misc.c:251
-msgid "The information is sensitive and cannot be revealed"
-msgstr "ãã®æƒ…å ±ã«ã¯å€‹äººæƒ…å ±ãŒå«ã¾ã‚Œã¦ã„ã‚‹ãŸã‚開示ã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:253
-msgid "The state cannot be saved"
-msgstr "状態をä¿å­˜ã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:255
-msgid "The module has not been initialized"
-msgstr "モジュールãŒåˆæœŸåŒ–ã•ã‚Œã¦ã„ã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:257
-msgid "The module has already been initialized"
-msgstr "æ—¢ã«ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¯åˆæœŸåŒ–済ã§ã™"
-
-#: ../gck/gck-misc.c:259
-msgid "Cannot lock data"
-msgstr "データをロックã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:261
-msgid "The data cannot be locked"
-msgstr "データをロックã§ãã¾ã›ã‚“"
-
-#: ../gck/gck-misc.c:263
-msgid "The signature request was rejected by the user"
-msgstr "ç½²åã¸ã®è¦æ±‚ãŒãƒ¦ãƒ¼ã‚¶ã«ã‚ˆã£ã¦æ‹’å¦ã•ã‚Œã¾ã—ãŸ"
+#: ../egg/egg-spawn.c:273
+#, c-format
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr "select() ãŒå­ãƒ—ロセスã‹ã‚‰ãƒ‡ãƒ¼ã‚¿èª­ã¿è¾¼ã¿ä¸­ã«äºˆæœŸã—ãªã„エラー (%s)"
-#: ../gck/gck-misc.c:267
-msgid "Unknown error"
-msgstr "原因ä¸æ˜Žã®ã‚¨ãƒ©ãƒ¼"
+#: ../egg/egg-spawn.c:320
+#, c-format
+msgid "Unexpected error in waitpid() (%s)"
+msgstr "waitpid() ã§ã®äºˆæœŸã—ãªã„エラー (%s)"
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
@@ -883,7 +294,7 @@ msgid "Couldn't parse public SSH key"
msgstr "SSH ã®å…¬é–‹éµã‚’解æžã§ãã¾ã›ã‚“ã§ã—ãŸ"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "パスワードã®ãƒ­ãƒƒã‚¯ã‚’解除: %s"
@@ -948,10 +359,22 @@ msgstr "公開éµã®è§£é™¤"
msgid "Unlock"
msgstr "ロックã®è§£é™¤"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "パスワードを入力ã—ã¦ç§˜å¯†éµã‚’解除ã—ã¦ãã ã•ã„"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "パスワードを入力ã—ã¦è¨¼æ˜Žæ›¸ã«ã‚ˆã‚‹ãƒ­ãƒƒã‚¯ã‚’解除ã—ã¦ãã ã•ã„"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "パスワードを入力ã—ã¦å…¬é–‹éµã‚’解除ã—ã¦ãã ã•ã„"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "パスワードを入力ã—ã¦ãƒ­ãƒƒã‚¯ã‚’解除ã—ã¦ãã ã•ã„"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1048,11 +471,11 @@ msgstr ""
msgid " "
msgstr ""
-#: ../ui/gku-prompt-tool.c:597
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "æš—å·åŒ–ã—ã¦ã„ãªã„パスワードをä¿å­˜ã—ã¾ã™ã‹?"
-#: ../ui/gku-prompt-tool.c:598
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1061,15 +484,15 @@ msgstr ""
"空ã®ãƒ‘スワードを利用ã™ã‚‹å ´åˆã€ä¿å­˜ã—ã¦ãŠã„ãŸãƒ‘スワードã¯å®Œå…¨ã«ã¯æš—å·åŒ–ã•ã‚Œã¾"
"ã›ã‚“。他ã®äººé”ãŒã“れらã®ãƒ‘スワードを利用ã™ã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚"
-#: ../ui/gku-prompt-tool.c:605
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "安全ã§ã¯ãªã„ストレージを使ã†"
-#: ../ui/gku-prompt-tool.c:643
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "パスワードãŒä¸€è‡´ã—ã¾ã›ã‚“。"
-#: ../ui/gku-prompt-tool.c:653
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "パスワードを空ã«ã—ãªã„ã§ãã ã•ã„"
@@ -1108,123 +531,3 @@ msgstr "å¤ã„パスワード(_O):"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "パスワード(_P):"
-
-#~ msgid "Email"
-#~ msgstr "E-メール"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>証明書ã«ã¯è¨˜è¿°ã•ã‚Œã¦ã„ã¾ã›ã‚“</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>ä¸æ˜Ž</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<証明書ã«ã¯è¨˜è¿°ãªã—>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>指紋</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>発行元</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>発行先</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>ã“ã®è¨¼æ˜Žæ›¸ã¯æ¬¡ã®ç”¨é€”ã«å¯¾ã—ã¦æ¤œè¨¼æ¸ˆã§ã™:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>妥当性</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "一般å (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "メールã®å—信人ã®è¨¼æ˜Žæ›¸"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "メールã®ç½²å者ã®è¨¼æ˜Žæ›¸"
-
-#~ msgid "Issued On"
-#~ msgstr "発行元"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "MD5 指紋"
-
-#~ msgid "Organization (O)"
-#~ msgstr "組織 (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "組織ã®éƒ¨ç½² (OU)"
-
-#~ msgid "SHA1 Fingerprint"
-#~ msgstr "SHA1 指紋"
-
-#~ msgid "SSL Client Certificate"
-#~ msgstr "SSL クライアント証明書"
-
-#~ msgid "SSL Server Certificate"
-#~ msgstr "SSL サーãƒè¨¼æ˜Žæ›¸"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr "<span size='large' weight='bold'>証明書ã¨éµã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆ</span>"
-
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "ã“ã®ã‚ªãƒ—ション㯠gnome-keyring デーモン㮠PKCS#11 コンãƒãƒ¼ãƒãƒ³ãƒˆã‚’有効ã«ã—"
-#~ "ã¾ã™ã€‚gnome-session ã§èµ·å‹•ã‚’ã—ãŸæ™‚ (ã™ãªã‚ã¡ãƒ¦ãƒ¼ã‚¶ãŒãƒ­ã‚°ã‚¤ãƒ³ã™ã‚‹éš›) ã«ã®ã¿"
-#~ "効果ãŒã‚ã‚Šã¾ã™ã€‚ã“ã“ã§è¨­å®šã—ãŸå†…容ã¯ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã‹ã‚‰ä¸Šæ›¸ãã™ã‚‹ã“ã¨ãŒã§ã"
-#~ "ã¾ã™ã€‚"
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "ã“ã®ã‚ªãƒ—ション㯠gnome-keyring デーモン㮠SSH コンãƒãƒ¼ãƒãƒ³ãƒˆã‚’有効ã«ã—ã¾"
-#~ "ã™ã€‚gnome-keyring デーモンを起動ã—ãŸæ™‚ (ã™ãªã‚ã¡ãƒ¦ãƒ¼ã‚¶ãŒãƒ­ã‚°ã‚¤ãƒ³ã—ã¦ã„ã‚‹å ´"
-#~ "åˆ) ã«ã®ã¿åŠ¹æžœãŒã‚ã‚Šã¾ã™ã€‚ã“ã“ã§è¨­å®šã—ãŸå†…容ã¯ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã‹ã‚‰ä¸Šæ›¸ãã™ã‚‹"
-#~ "ã“ã¨ãŒã§ãã¾ã™ã€‚"
-
-# FIXME: secret service = シークレットサービス?
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "ã“ã®ã‚ªãƒ—ション㯠gnome-keyring デーモンã®ã‚·ãƒ¼ã‚¯ãƒ¬ãƒƒãƒˆã‚µãƒ¼ãƒ“スコンãƒãƒ¼ãƒãƒ³"
-#~ "トを有効ã«ã—ã¾ã™ã€‚ã“ã‚Œã¯ã€gnome-session ã§èµ·å‹•ã‚’ã—ãŸæ™‚ (ã™ãªã‚ã¡ãƒ¦ãƒ¼ã‚¶ãŒãƒ­"
-#~ "グインã™ã‚‹éš›) ã«ã®ã¿åŠ¹æžœãŒã‚ã‚Šã¾ã™ã€‚ã“ã“ã§è¨­å®šã—ãŸå†…容ã¯ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã‹ã‚‰"
-#~ "上書ãã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "PKCS#11 コンãƒãƒ¼ãƒãƒ³ãƒˆã‚’有効ã«ã™ã‚‹ã‹ã©ã†ã‹"
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "SSH エージェントを有効ã«ã™ã‚‹ã‹ã©ã†ã‹"
-
-# FIXME: secret service = シークレットサービス?
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr "シークレットサービスを有効ã«ã™ã‚‹ã‹ã©ã†ã‹"
-
-#~ msgid "Automatically unlock secure storage when I log in."
-#~ msgstr "ログインã—ãŸã‚‰ã€ã“ã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã®ãƒ­ãƒƒã‚¯ã‚’自動的ã«è§£é™¤ã™ã‚‹"
-
-# FIXME:原文ãŠã‹ã—ã„ 'xxx'?
-#~ msgid ""
-#~ "<span size=\"large\" weight=\"bold\">Enter password for keyring 'login' "
-#~ "to unlock</span>\n"
-#~ "\n"
-#~ "An application wants access to the keyring 'xxx', but it is locked."
-#~ msgstr ""
-#~ "<span size=\"large\" weight=\"bold\">'login' キーリングã®ãƒ­ãƒƒã‚¯ã‚’解除ã™ã‚‹"
-#~ "ãŸã‚ã€ãƒ‘スワードを入力ã—ã¦ãã ã•ã„</span>\n"
-#~ "\n"
-#~ "アプリケーションãŒã‚­ãƒ¼ãƒªãƒ³ã‚° '%s' ã¸ã‚¢ã‚¯ã‚»ã‚¹ã—よã†ã¨ã—ã¾ã—ãŸãŒã€ãƒ­ãƒƒã‚¯ãŒã‹"
-#~ "ã‹ã£ã¦ã„ã¾ã—ãŸã€‚"
diff --git a/po/ka.po b/po/ka.po
index 93a19597..7f4dba3e 100644
--- a/po/ka.po
+++ b/po/ka.po
@@ -1,363 +1,514 @@
# Georgian translation for Gnome Keyring.
# Copyright © 2006 Ubuntu Georgian Translators.
# Alexander Didebulidze <didebuli@in.tum.de>, 2006.
-#
+#
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring HEAD\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-18 20:49+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2006-02-21 14:31+0100\n"
"Last-Translator: Alexander Didebulidze <didebuli@in.tum.de>\n"
"Language-Team: Georgian <ka@li.org>\n"
+"Language: ka\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0\n"
-#: ../gnome-keyring-ask.c:241
-msgid "_Old password:"
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
msgstr ""
-#: ../gnome-keyring-ask.c:262
-msgid "_Password:"
+#: ../daemon/dbus/gkd-secret-change.c:86
+#, fuzzy
+msgid "Change Keyring Password"
+msgstr "áƒáƒ®áƒáƒšáƒ˜ Keyring პáƒáƒ áƒáƒšáƒ˜"
+
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "შეიყვáƒáƒœáƒ” პáƒáƒ áƒáƒšáƒ˜ სტáƒáƒœáƒ“áƒáƒ áƒ¢áƒ£áƒšáƒ˜ keyring–ის გáƒáƒ¡áƒáƒ®áƒ¡áƒœáƒ”ლáƒáƒ“"
+
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
+msgid ""
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
msgstr ""
+"პრáƒáƒ’რáƒáƒ›áƒ '%s' სურს შექმნáƒáƒ¡ áƒáƒ®áƒáƒšáƒ˜ სტáƒáƒœáƒ“áƒáƒ áƒ¢áƒ£áƒšáƒ˜ keyring–ი. მის გáƒáƒ›áƒáƒ¡áƒáƒ§áƒ”ნებლáƒáƒ“ "
+"სáƒáƒ­áƒ˜áƒ áƒáƒ პáƒáƒ áƒáƒšáƒ˜áƒ¡ áƒáƒ áƒ©áƒ”ვáƒ."
-#: ../gnome-keyring-ask.c:284
-msgid "_Confirm new password:"
+#: ../daemon/dbus/gkd-secret-change.c:111
+msgid "The original password was incorrect"
msgstr ""
-#. Strength bar:
-#: ../gnome-keyring-ask.c:303
-msgid "<span weight=\"bold\">Password strength meter:</span>"
+#: ../daemon/dbus/gkd-secret-create.c:83
+msgid "New Keyring Password"
+msgstr "áƒáƒ®áƒáƒšáƒ˜ Keyring პáƒáƒ áƒáƒšáƒ˜"
+
+#: ../daemon/dbus/gkd-secret-create.c:84
+msgid "Choose password for new keyring"
msgstr ""
-#: ../gnome-keyring-ask.c:329
-#, fuzzy
-msgid "Old password cannot be blank."
-msgstr "ცáƒáƒ áƒ˜áƒ”ლი პáƒáƒ áƒáƒšáƒ˜ áƒáƒ  áƒáƒ áƒ˜áƒ¡ დáƒáƒ¨áƒ•áƒ”ბული."
+#: ../daemon/dbus/gkd-secret-create.c:86
+#, fuzzy, c-format
+msgid ""
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
+msgstr ""
+"პრáƒáƒ’რáƒáƒ›áƒ '%s' სურს გáƒáƒáƒ™áƒ”თáƒáƒ¡ áƒáƒ®áƒáƒšáƒ˜ keyring შეერთებრ'%s'. მის გáƒáƒ›áƒáƒ¡áƒáƒ§áƒ”ნებლáƒáƒ“ "
+"სáƒáƒ­áƒ˜áƒ áƒáƒ პáƒáƒ áƒáƒšáƒ˜áƒ¡ áƒáƒ áƒ©áƒ”ვáƒ."
-#: ../gnome-keyring-ask.c:340
-msgid "Password cannot be blank."
-msgstr "ცáƒáƒ áƒ˜áƒ”ლი პáƒáƒ áƒáƒšáƒ˜ áƒáƒ  áƒáƒ áƒ˜áƒ¡ დáƒáƒ¨áƒ•áƒ”ბული."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+msgid "Certificate and Key Storage"
+msgstr ""
-#: ../gnome-keyring-ask.c:348
-msgid "Passwords do not match."
-msgstr "პáƒáƒ áƒáƒšáƒ”ბი áƒáƒ  ემთხვევრერთმáƒáƒœáƒ”თს."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+msgid "GNOME Keyring: PKCS#11 Component"
+msgstr ""
-#: ../gnome-keyring-ask.c:407
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+msgid "GNOME Keyring: Secret Service"
msgstr ""
-#: ../gnome-keyring-ask.c:411
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the keyring '%s', but it is locked"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:416
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to an unknown keyring, but it is "
-"locked"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+msgid "GNOME Keyring: SSH Agent"
msgstr ""
-#: ../gnome-keyring-ask.c:422 ../gnome-keyring-ask.c:436
-#, c-format
-msgid ""
-"The application '%s' wants access to the default keyring, but it is locked"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
msgstr ""
-#: ../gnome-keyring-ask.c:426 ../gnome-keyring-ask.c:441
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+msgid "GNOME Keyring: GPG Agent"
msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:430 ../gnome-keyring-ask.c:446
-#, c-format
-msgid ""
-"The application '%s' wants access to an unknown keyring, but it is locked"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+msgid "GPG Password Agent"
msgstr ""
-#: ../gnome-keyring-ask.c:452
-msgid ""
-"An unknown application wants access to the default keyring, but it is locked"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+msgid "Unknown"
msgstr ""
-#: ../gnome-keyring-ask.c:456
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid ""
-"An unknown application wants access to the keyring '%s', but it is locked"
+msgid "PGP Key: %s"
msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:461
-msgid ""
-"An unknown application wants access to an unknown keyring, but it is locked"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-#: ../gnome-keyring-ask.c:468
-msgid "Enter password for default keyring to unlock"
-msgstr "შეიყვáƒáƒœáƒ” პáƒáƒ áƒáƒšáƒ˜ სტáƒáƒœáƒ“áƒáƒ áƒ¢áƒ£áƒšáƒ˜ keyring–ის გáƒáƒ¡áƒáƒ®áƒ¡áƒœáƒ”ლáƒáƒ“"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
+msgstr ""
-#: ../gnome-keyring-ask.c:470
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "შეიყვáƒáƒœáƒ” პáƒáƒ áƒáƒšáƒ˜ keyring '%s' –ის გáƒáƒ¡áƒáƒ®áƒ¡áƒœáƒ”ლáƒáƒ“"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
+msgstr ""
-#: ../gnome-keyring-ask.c:474
-msgid "Unlock Keyring"
-msgstr "გáƒáƒ®áƒ¡áƒ”ნი Keyring–ი"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
+msgstr ""
-#: ../gnome-keyring-ask.c:479 ../gnome-keyring-ask.c:563
-#: ../gnome-keyring-ask.c:655 ../gnome-keyring-ask.c:711
-#: ../gnome-keyring-ask.c:798
-msgid "_Deny"
-msgstr "áƒáƒ™áƒ áƒ«áƒáƒšáƒ”"
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
+msgstr ""
-#: ../gnome-keyring-ask.c:517
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:41
+msgid "Domain Component"
msgstr ""
-"პრáƒáƒ’რáƒáƒ›áƒ '%s' (%s)სურს გáƒáƒáƒ™áƒ”თáƒáƒ¡ áƒáƒ®áƒáƒšáƒ˜ keyring შეერთებრ'%s'. მის "
-"გáƒáƒ›áƒáƒ¡áƒáƒ§áƒ”ნებლáƒáƒ“ სáƒáƒ­áƒ˜áƒ áƒáƒ პáƒáƒ áƒáƒšáƒ˜áƒ¡ áƒáƒ áƒ©áƒ”ვáƒ."
-#: ../gnome-keyring-ask.c:521
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:43
+msgid "User ID"
msgstr ""
-"პრáƒáƒ’რáƒáƒ›áƒ '%s' (%s)სურს შექმნáƒáƒ¡ áƒáƒ®áƒáƒšáƒ˜ სტáƒáƒœáƒ“áƒáƒ áƒ¢áƒ£áƒšáƒ˜ keyring–ი. მის "
-"გáƒáƒ›áƒáƒ¡áƒáƒ§áƒ”ნებლáƒáƒ“ სáƒáƒ­áƒ˜áƒ áƒáƒ პáƒáƒ áƒáƒšáƒ˜áƒ¡ áƒáƒ áƒ©áƒ”ვáƒ."
-#: ../gnome-keyring-ask.c:527 ../gnome-keyring-ask.c:537
-#, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:46
+msgid "Email Address"
msgstr ""
-"პრáƒáƒ’რáƒáƒ›áƒ '%s' სურს გáƒáƒáƒ™áƒ”თáƒáƒ¡ áƒáƒ®áƒáƒšáƒ˜ keyring შეერთებრ'%s'. მის გáƒáƒ›áƒáƒ¡áƒáƒ§áƒ”ნებლáƒáƒ“ "
-"სáƒáƒ­áƒ˜áƒ áƒáƒ პáƒáƒ áƒáƒšáƒ˜áƒ¡ áƒáƒ áƒ©áƒ”ვáƒ."
-#: ../gnome-keyring-ask.c:531 ../gnome-keyring-ask.c:541
-#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:54
+msgid "Date of Birth"
msgstr ""
-"პრáƒáƒ’რáƒáƒ›áƒ '%s' სურს შექმნáƒáƒ¡ áƒáƒ®áƒáƒšáƒ˜ სტáƒáƒœáƒ“áƒáƒ áƒ¢áƒ£áƒšáƒ˜ keyring–ი. მის გáƒáƒ›áƒáƒ¡áƒáƒ§áƒ”ნებლáƒáƒ“ "
-"სáƒáƒ­áƒ˜áƒ áƒáƒ პáƒáƒ áƒáƒšáƒ˜áƒ¡ áƒáƒ áƒ©áƒ”ვáƒ."
-#: ../gnome-keyring-ask.c:547
-#, c-format
-msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
+#: ../egg/egg-oid.c:56
+msgid "Place of Birth"
msgstr ""
-#: ../gnome-keyring-ask.c:551
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:58
+msgid "Gender"
msgstr ""
-#: ../gnome-keyring-ask.c:558
-msgid "New Keyring Password"
-msgstr "áƒáƒ®áƒáƒšáƒ˜ Keyring პáƒáƒ áƒáƒšáƒ˜"
+#: ../egg/egg-oid.c:60
+msgid "Country of Citizenship"
+msgstr ""
-#: ../gnome-keyring-ask.c:559
-msgid "Choose password for new keyring"
+#: ../egg/egg-oid.c:62
+msgid "Country of Residence"
msgstr ""
-#: ../gnome-keyring-ask.c:602
-#, fuzzy, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:65
+msgid "Common Name"
msgstr ""
-"პრáƒáƒ’რáƒáƒ›áƒ '%s' (%s)სურს შექმნáƒáƒ¡ áƒáƒ®áƒáƒšáƒ˜ სტáƒáƒœáƒ“áƒáƒ áƒ¢áƒ£áƒšáƒ˜ keyring–ი. მის "
-"გáƒáƒ›áƒáƒ¡áƒáƒ§áƒ”ნებლáƒáƒ“ სáƒáƒ­áƒ˜áƒ áƒáƒ პáƒáƒ áƒáƒšáƒ˜áƒ¡ áƒáƒ áƒ©áƒ”ვáƒ."
-#: ../gnome-keyring-ask.c:606
-#, fuzzy, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:67
+msgid "Surname"
msgstr ""
-"პრáƒáƒ’რáƒáƒ›áƒ '%s' (%s)სურს შექმნáƒáƒ¡ áƒáƒ®áƒáƒšáƒ˜ სტáƒáƒœáƒ“áƒáƒ áƒ¢áƒ£áƒšáƒ˜ keyring–ი. მის "
-"გáƒáƒ›áƒáƒ¡áƒáƒ§áƒ”ნებლáƒáƒ“ სáƒáƒ­áƒ˜áƒ áƒáƒ პáƒáƒ áƒáƒšáƒ˜áƒ¡ áƒáƒ áƒ©áƒ”ვáƒ."
-#: ../gnome-keyring-ask.c:612 ../gnome-keyring-ask.c:622
-#, fuzzy, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:69
+msgid "Serial Number"
msgstr ""
-"პრáƒáƒ’რáƒáƒ›áƒ '%s' სურს შექმნáƒáƒ¡ áƒáƒ®áƒáƒšáƒ˜ სტáƒáƒœáƒ“áƒáƒ áƒ¢áƒ£áƒšáƒ˜ keyring–ი. მის გáƒáƒ›áƒáƒ¡áƒáƒ§áƒ”ნებლáƒáƒ“ "
-"სáƒáƒ­áƒ˜áƒ áƒáƒ პáƒáƒ áƒáƒšáƒ˜áƒ¡ áƒáƒ áƒ©áƒ”ვáƒ."
-#: ../gnome-keyring-ask.c:616 ../gnome-keyring-ask.c:626
-#, fuzzy, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:71
+msgid "Country"
msgstr ""
-"პრáƒáƒ’რáƒáƒ›áƒ '%s' სურს შექმნáƒáƒ¡ áƒáƒ®áƒáƒšáƒ˜ სტáƒáƒœáƒ“áƒáƒ áƒ¢áƒ£áƒšáƒ˜ keyring–ი. მის გáƒáƒ›áƒáƒ¡áƒáƒ§áƒ”ნებლáƒáƒ“ "
-"სáƒáƒ­áƒ˜áƒ áƒáƒ პáƒáƒ áƒáƒšáƒ˜áƒ¡ áƒáƒ áƒ©áƒ”ვáƒ."
-#: ../gnome-keyring-ask.c:632
-#, fuzzy, c-format
-msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:73
+msgid "Locality"
msgstr ""
-"პრáƒáƒ’რáƒáƒ›áƒ '%s' სურს შექმნáƒáƒ¡ áƒáƒ®áƒáƒšáƒ˜ სტáƒáƒœáƒ“áƒáƒ áƒ¢áƒ£áƒšáƒ˜ keyring–ი. მის გáƒáƒ›áƒáƒ¡áƒáƒ§áƒ”ნებლáƒáƒ“ "
-"სáƒáƒ­áƒ˜áƒ áƒáƒ პáƒáƒ áƒáƒšáƒ˜áƒ¡ áƒáƒ áƒ©áƒ”ვáƒ."
-#: ../gnome-keyring-ask.c:636
-#, fuzzy
-msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:75
+msgid "State"
+msgstr ""
+
+#: ../egg/egg-oid.c:77
+msgid "Street"
+msgstr ""
+
+#: ../egg/egg-oid.c:79
+msgid "Organization"
+msgstr ""
+
+#: ../egg/egg-oid.c:81
+msgid "Organizational Unit"
+msgstr ""
+
+#: ../egg/egg-oid.c:83
+msgid "Title"
+msgstr ""
+
+#: ../egg/egg-oid.c:85
+msgid "Telephone Number"
+msgstr ""
+
+#: ../egg/egg-oid.c:87
+msgid "Given Name"
+msgstr ""
+
+#: ../egg/egg-oid.c:89
+msgid "Initials"
+msgstr ""
+
+#: ../egg/egg-oid.c:91
+msgid "Generation Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:93
+msgid "DN Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:95
+msgid "Pseudonym"
+msgstr ""
+
+#: ../egg/egg-oid.c:98
+msgid "RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:99
+msgid "MD2 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:100
+msgid "MD5 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:101
+msgid "SHA1 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:103
+msgid "DSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:104
+msgid "SHA1 with DSA"
+msgstr ""
+
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
+
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
+
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
+
+#: ../egg/egg-spawn.c:273
+#, c-format
+msgid "Unexpected error in select() reading data from a child process (%s)"
msgstr ""
-"პრáƒáƒ’რáƒáƒ›áƒ '%s' სურს შექმნáƒáƒ¡ áƒáƒ®áƒáƒšáƒ˜ სტáƒáƒœáƒ“áƒáƒ áƒ¢áƒ£áƒšáƒ˜ keyring–ი. მის გáƒáƒ›áƒáƒ¡áƒáƒ§áƒ”ნებლáƒáƒ“ "
-"სáƒáƒ­áƒ˜áƒ áƒáƒ პáƒáƒ áƒáƒšáƒ˜áƒ¡ áƒáƒ áƒ©áƒ”ვáƒ."
-#: ../gnome-keyring-ask.c:643
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid "Choose a new password for the '%s' keyring. "
+msgid "Unexpected error in waitpid() (%s)"
msgstr ""
-#: ../gnome-keyring-ask.c:645
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr ""
+
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
+msgstr ""
+
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, c-format
+msgid "Unlock password for: %s"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+msgid "The unlock password was incorrect"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
#, fuzzy
-msgid "Choose a new password for the default keyring. "
-msgstr "შეიყვáƒáƒœáƒ” პáƒáƒ áƒáƒšáƒ˜ სტáƒáƒœáƒ“áƒáƒ áƒ¢áƒ£áƒšáƒ˜ keyring–ის გáƒáƒ¡áƒáƒ®áƒ¡áƒœáƒ”ლáƒáƒ“"
+msgid "Unlock Login Keyring"
+msgstr "გáƒáƒ®áƒ¡áƒ”ნი Keyring–ი"
-#: ../gnome-keyring-ask.c:650
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
#, fuzzy
-msgid "Change Keyring Password"
-msgstr "áƒáƒ®áƒáƒšáƒ˜ Keyring პáƒáƒ áƒáƒšáƒ˜"
+msgid "Enter password to unlock your login keyring"
+msgstr "შეიყვáƒáƒœáƒ” პáƒáƒ áƒáƒšáƒ˜ სტáƒáƒœáƒ“áƒáƒ áƒ¢áƒ£áƒšáƒ˜ keyring–ის გáƒáƒ¡áƒáƒ®áƒ¡áƒœáƒ”ლáƒáƒ“"
-#: ../gnome-keyring-ask.c:689
-#, c-format
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
msgstr ""
-#: ../gnome-keyring-ask.c:693 ../gnome-keyring-ask.c:697
-#, c-format
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+"The login keyring did not get unlocked when you logged into your computer."
msgstr ""
-#. app == APPLICATION_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:701
-msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "გáƒáƒ®áƒ¡áƒ”ნი Keyring–ი"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
+#, c-format
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "შეიყვáƒáƒœáƒ” პáƒáƒ áƒáƒšáƒ˜ keyring '%s' –ის გáƒáƒ¡áƒáƒ®áƒ¡áƒœáƒ”ლáƒáƒ“"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
msgstr ""
-#: ../gnome-keyring-ask.c:706
-msgid "Create Default Keyring"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
msgstr ""
-#: ../gnome-keyring-ask.c:707
-msgid "Choose password for default keyring"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+#, fuzzy
+msgid "Unlock certificate"
+msgstr "გáƒáƒ®áƒ¡áƒ”ნი Keyring–ი"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
msgstr ""
-#: ../gnome-keyring-ask.c:747
-msgid "Allow application access to keyring?"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+#, fuzzy
+msgid "Unlock"
+msgstr "გáƒáƒ®áƒ¡áƒ”ნი Keyring–ი"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+#, fuzzy
+msgid "Enter password to unlock the private key"
+msgstr "შეიყვáƒáƒœáƒ” პáƒáƒ áƒáƒšáƒ˜ სტáƒáƒœáƒ“áƒáƒ áƒ¢áƒ£áƒšáƒ˜ keyring–ის გáƒáƒ¡áƒáƒ®áƒ¡áƒœáƒ”ლáƒáƒ“"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
msgstr ""
-#: ../gnome-keyring-ask.c:750
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+#, fuzzy
+msgid "Enter password to unlock the public key"
+msgstr "შეიყვáƒáƒœáƒ” პáƒáƒ áƒáƒšáƒ˜ სტáƒáƒœáƒ“áƒáƒ áƒ¢áƒ£áƒšáƒ˜ keyring–ის გáƒáƒ¡áƒáƒ®áƒ¡áƒœáƒ”ლáƒáƒ“"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+#, fuzzy
+msgid "Enter password to unlock"
+msgstr "შეიყვáƒáƒœáƒ” პáƒáƒ áƒáƒšáƒ˜ keyring '%s' –ის გáƒáƒ¡áƒáƒ®áƒ¡áƒœáƒ”ლáƒáƒ“"
+
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
-msgid "The application '%s' (%s) wants to access the password for '%s' in %s."
+msgid "An application wants access to the private key '%s', but it is locked"
msgstr ""
-#: ../gnome-keyring-ask.c:753
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '%s' in the "
-"default keyring."
+msgid "An application wants access to the certificate '%s', but it is locked"
msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:756
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '%s' in an "
-"unknown keyring."
+msgid "An application wants access to the public key '%s', but it is locked"
msgstr ""
-#: ../gnome-keyring-ask.c:761 ../gnome-keyring-ask.c:772
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
#, c-format
-msgid "The application '%s' wants to access the password for '%s' in %s."
+msgid "An application wants access to '%s', but it is locked"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
msgstr ""
-#: ../gnome-keyring-ask.c:764 ../gnome-keyring-ask.c:775
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
+msgstr ""
+
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
#, c-format
msgid ""
-"The application '%s' wants to access the password for '%s' in the default "
-"keyring."
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:767 ../gnome-keyring-ask.c:778
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
#, c-format
msgid ""
-"The application '%s' wants to access the password for '%s' in an unknown "
-"keyring."
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
msgstr ""
-#: ../gnome-keyring-ask.c:783
-#, c-format
-msgid "An unknown application wants to access the password for '%s' in %s."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "áƒáƒ®áƒáƒšáƒ˜ Keyring პáƒáƒ áƒáƒšáƒ˜"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+msgid "Change password for secure storage"
msgstr ""
-#: ../gnome-keyring-ask.c:786
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
msgid ""
-"An unknown application wants to access the password for '%s' in the default "
-"keyring."
+"To change the password for '%s', the original and new passwords are required"
msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:789
+#: ../tool/gkr-tool.c:102
#, c-format
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
+
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
+
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:592
msgid ""
-"An unknown application wants to access the password for '%s' in an unknown "
-"keyring."
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
msgstr ""
-#: ../gnome-keyring-ask.c:794
-msgid "Allow access"
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
msgstr ""
-#: ../gnome-keyring-ask.c:799
-msgid "Allow _Once"
-msgstr "დáƒáƒ£áƒ¨áƒ•áƒ˜ მხáƒáƒšáƒáƒ“ _ერთხელ"
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr "პáƒáƒ áƒáƒšáƒ”ბი áƒáƒ  ემთხვევრერთმáƒáƒœáƒ”თს."
-#: ../gnome-keyring-ask.c:800
-msgid "_Always Allow"
-msgstr "_ყáƒáƒ•áƒ”ლთვის დáƒáƒ£áƒ¨áƒ•áƒ˜"
+#: ../ui/gku-prompt-tool.c:649
+#, fuzzy
+msgid "Password cannot be blank"
+msgstr "ცáƒáƒ áƒ˜áƒ”ლი პáƒáƒ áƒáƒšáƒ˜ áƒáƒ  áƒáƒ áƒ˜áƒ¡ დáƒáƒ¨áƒ•áƒ”ბული."
+
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
-#: ../gnome-keyring-ask.c:840
-msgid "You must specify the type of request to run\n"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
msgstr ""
-#: ../gnome-keyring-ask.c:857
-msgid "Unknown request type\n"
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:2
+msgid "_Application:"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:3
+msgid "_Confirm:"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:6
+msgid "_Old Password:"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
msgstr ""
diff --git a/po/kn.po b/po/kn.po
index 07668437..a95ddad9 100644
--- a/po/kn.po
+++ b/po/kn.po
@@ -6,647 +6,135 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.master.kn\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-keyring&component=general\n"
-"POT-Creation-Date: 2009-08-26 19:44+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2009-09-16 00:32+0530\n"
"Last-Translator: Shankar Prasad <svenkate@redhat.com>\n"
"Language-Team: Kannada <en@li.org>\n"
+"Language: kn\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:228
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in the default keyring."
-msgstr ""
-"'%s'(%s) ಅನà³à²µà²¯à²µà³ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಕೀಲಿಸà³à²°à³à²³à²¿à²¯à²²à³à²²à²¿ '<object prop='name'/>' ಗಾಗಿ "
-"ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ."
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:232
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in %s."
-msgstr ""
-"'%s'(%s) ಅನà³à²µà²¯à²µà³ %s ನಲà³à²²à²¿ '<object prop='name'/>' ಗಾಗಿ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ "
-"ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ."
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:238 ../daemon/gkr-daemon-ops.c:248
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in the default keyring."
-msgstr ""
-"%s ಅನà³à²µà²¯à²µà³ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಕೀಲಿಸà³à²°à³à²³à²¿à²¯à²²à³à²²à²¿ '<object prop='name'/>' ಗಾಗಿ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ "
-"ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ."
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:242 ../daemon/gkr-daemon-ops.c:252
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in %s."
-msgstr ""
-"%s ಅನà³à²µà²¯à²µà³ %s ನಲà³à²²à²¿ '<object prop='name'/>' ಗಾಗಿ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ "
-"ಬಯಸಿದೆ."
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:258
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in the default keyring."
-msgstr ""
-"ಒಂದೠಅಜà³à²žà²¾à²¤ ಅನà³à²µà²¯à²µà³ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಕೀಲಿಸà³à²°à³à²³à²¿à²¯à²²à³à²²à²¿ '<object prop='name'/>' ಗಾಗಿ "
-"ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ."
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:261
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in %s."
-msgstr ""
-"ಒಂದೠಅಜà³à²žà²¾à²¤ ಅನà³à²µà²¯à²µà³ %s ನಲà³à²²à²¿ '<object prop='name'/>' ಗಾಗಿ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ "
-"ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ."
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:267
-msgid "Allow access"
-msgstr "ನಿಲà³à²•à²£à³†à²¯à²¨à³à²¨à³ ಅನà³à²®à²¤à²¿à²¸à³"
-
-#: ../daemon/gkr-daemon-ops.c:267
-msgid "Allow application access to keyring?"
-msgstr "ಅನà³à²µà²¯à²µà³ ಕೀಲಿ ಸà³à²°à²³à²¿à²¯à²¨à³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಅನà³à²®à²¤à²¿à²¸à²¬à³‡à²•à³†?"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:309
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
-msgstr ""
-"'%s' (%s) ಅನà³à²µà²¯à²µà³ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಕೀಲಿಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ, ಆದರೆ "
-"ಅದನà³à²¨à³ ಲಾಕà³â€Œ ಮಾಡಲಾಗಿದೆ"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:314
-#, c-format
-msgid "The application '%s' (%s) wants access to the keyring '%s', but it is locked"
-msgstr ""
-"'%s' (%s) ಅನà³à²µà²¯à²µà³ '%s' ಕೀಲಿಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ, ಆದರೆ ಅದನà³à²¨à³ ಲಾಕà³â€Œ "
-"ಮಾಡಲಾಗಿದೆ"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:321 ../daemon/gkr-daemon-ops.c:333
-#, c-format
-msgid "The application '%s' wants access to the default keyring, but it is locked"
-msgstr ""
-"'%s' ಅನà³à²µà²¯à²µà³ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಕೀಲಿಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ, ಆದರೆ ಅದನà³à²¨à³ ಲಾಕà³â€Œ "
-"ಮಾಡಲಾಗಿದೆ"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:326 ../daemon/gkr-daemon-ops.c:339
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
-msgstr ""
-"'%s' ಅನà³à²µà²¯à²µà³ '%s' ಕೀಲಿಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ, ಆದರೆ ಅದನà³à²¨à³ ಲಾಕà³â€Œ "
-"ಮಾಡಲಾಗಿದೆ"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:346
-#, c-format
-msgid "An unknown application wants access to the default keyring, but it is locked"
-msgstr ""
-"ಒಂದೠಅಜà³à²žà²¾à²¤ ಅನà³à²µà²¯à²µà³ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಕೀಲಿಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ, ಆದರೆ "
-"ಅದನà³à²¨à³ ಲಾಕà³â€Œ ಮಾಡಲಾಗಿದೆ"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:351
-#, c-format
-msgid "An unknown application wants access to the keyring '%s', but it is locked"
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
msgstr ""
-"ಒಂದೠಅಜà³à²žà²¾à²¤ ಅನà³à²µà²¯à²µà³ '%s' ಕೀಲಿಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ, ಆದರೆ ಅದನà³à²¨à³ ಲಾಕà³â€Œ "
-"ಮಾಡಲಾಗಿದೆ"
-
-#: ../daemon/gkr-daemon-ops.c:358
-msgid "Enter password for default keyring to unlock"
-msgstr "ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಕೀಲಿಸà³à²°à³à²³à²¿à²—ಾಗಿ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನಮೂದಿಸಿ"
-
-#: ../daemon/gkr-daemon-ops.c:360
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "ಕೀಲಿಸà³à²°à³à²³à²¿ '%s' ಗಾಗಿ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನಮೂದಿಸಿ"
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:364
-msgid "Unlock Keyring"
-msgstr "ಕೀಲಿ ಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡà³"
-
-#: ../daemon/gkr-daemon-ops.c:376
-msgid "Automatically unlock this keyring when I log in."
-msgstr "ನಾನೠಒಳಗೆ ಪà³à²°à²µà³‡à²¶à²¿à²¸à²¿à²¦à²¾à²— ಈ ಕೀಲಿ ಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ತಾನಾಗಿಯೆ ಅನà³â€Œà²²à²¾à²•à³ ಆಗà³à²µà²‚ತೆ ಮಾಡà³."
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:413
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
-msgstr ""
-"'%s' (%s) ಅನà³à²µà²¯à²µà³ '%s' ಎಂಬ ಹೆಸರಿನ ಒಂದೠಹೊಸ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಕೀಲಿ ಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ "
-"ನಿರà³à²®à²¿à²¸à²²à³ ಬಯಸಿದೆ. ಅದಕà³à²•à³† ಬಳಸಲೠನೀವೠಒಂದೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಆರಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†."
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:418
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr ""
-"'%s' (%s) ಅನà³à²µà²¯à²µà³ ಒಂದೠಹೊಸ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಕೀಲಿ ಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ನಿರà³à²®à²¿à²¸à²²à³ ಬಯಸಿದೆ. ಅದಕà³à²•à³† "
-"ಬಳಸಲೠನೀವೠಒಂದೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಆರಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†."
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:425 ../daemon/gkr-daemon-ops.c:437
-#, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
-msgstr ""
-"'%s' ಅನà³à²µà²¯à²µà³ '%s' ಎಂಬ ಹೆಸರಿನ ಒಂದೠಹೊಸ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಕೀಲಿ ಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ನಿರà³à²®à²¿à²¸à²²à³ "
-"ಬಯಸಿದೆ. ಅದಕà³à²•à³† ಬಳಸಲೠನೀವೠಒಂದೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಆರಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†."
+#: ../daemon/dbus/gkd-secret-change.c:86
+msgid "Change Keyring Password"
+msgstr "ಕೀಲಿ ಸà³à²°à³à²³à²¿ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬದಲಾಯಿಸಿ"
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:430 ../daemon/gkr-daemon-ops.c:442
-#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr ""
-"'%s' ಅನà³à²µà²¯à²µà³ ಒಂದೠಹೊಸ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಕೀಲಿ ಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ನಿರà³à²®à²¿à²¸à²²à³ ಬಯಸಿದೆ. ಅದಕà³à²•à³† "
-"ಬಳಸಲೠನೀವೠಒಂದೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಆರಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†."
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "'%s' ಕೀಲಿಸà³à²°à³à²³à²¿à²—ಾಗಿ ಒಂದೠಹೊಸ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಆಯà³à²•à³† ಮಾಡಿ."
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:449
-#, c-format
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
msgstr ""
-"ಒಂದೠಅಜà³à²žà²¾à²¤ ಅನà³à²µà²¯à²µà³ '%s' ಎಂಬ ಹೆಸರಿನ ಒಂದೠಹೊಸ ಕೀಲಿ ಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ನಿರà³à²®à²¿à²¸à²²à³ ಬಯಸಿದೆ. "
-"ಅದಕà³à²•à³† ಬಳಸಲೠನೀವೠಒಂದೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಆರಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†."
+"ಒಂದೠಅಜà³à²žà²¾à²¤ ಅನà³à²µà²¯à²µà³ '%s' ಕೀಲಿಸà³à²°à³à²³à²¿à²¯ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬದಲಾಯಿಸಲೠಬಯಸಿದೆ. ಅದರಲà³à²²à²¿ ಯಾವ "
+"ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬಳಸಬೇಕೠಎಂದೠನೀವೠಆರಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†."
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:454
-#, c-format
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr ""
-"ಒಂದೠಅಜà³à²žà²¾à²¤ ಅನà³à²µà²¯à²µà³ ಒಂದೠಹೊಸ ಕೀಲಿ ಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ನಿರà³à²®à²¿à²¸à²²à³ ಬಯಸಿದೆ. ಅದಕà³à²•à³† ಬಳಸಲೠನೀವೠ"
-"ಒಂದೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಆರಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†."
+#: ../daemon/dbus/gkd-secret-change.c:111
+#, fuzzy
+msgid "The original password was incorrect"
+msgstr "ಗà³à²ªà³à²¤à²ªà²¦ ಅಥವ PIN ಸರಿಯಾಗಿಲà³à²²"
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:460
+#: ../daemon/dbus/gkd-secret-create.c:83
msgid "New Keyring Password"
msgstr "ಹೊಸ ಕೀಲಿಸà³à²°à³à²³à²¿ ಗà³à²ªà³à²¤à²ªà²¦"
-#: ../daemon/gkr-daemon-ops.c:461
+#: ../daemon/dbus/gkd-secret-create.c:84
msgid "Choose password for new keyring"
msgstr "ಹೊಸ ಕೀಲಿ ಸà³à²°à³à²³à²¿à²—ಾಗಿ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಆಯà³à²•à³† ಮಾಡಿ"
-#: ../daemon/gkr-daemon-ops.c:508
-#, c-format
+#: ../daemon/dbus/gkd-secret-create.c:86
+#, fuzzy, c-format
msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
-"'%s' (%s) ಅನà³à²µà²¯à²µà³ '%s' ಕೀಲಿಸà³à²°à³à²³à²¿à²¯ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬದಲಾಯಿಸಲೠಬಯಸಿದೆ. ಅದರಲà³à²²à²¿ ಯಾವ "
-"ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬಳಸಬೇಕೠಎಂದೠನೀವೠಆರಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†."
-
-#: ../daemon/gkr-daemon-ops.c:512
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
-msgstr ""
-"'%s' (%s) ಅನà³à²µà²¯à²µà³ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಕೀಲಿಸà³à²°à³à²³à²¿à²¯ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬದಲಾಯಿಸಲೠಬಯಸಿದೆ. ಅದರಲà³à²²à²¿ "
-"ಯಾವ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬಳಸಬೇಕೠಎಂದೠನೀವೠಆರಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†."
-
-#: ../daemon/gkr-daemon-ops.c:518 ../daemon/gkr-daemon-ops.c:528
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
-msgstr ""
-"'%s' ಅನà³à²µà²¯à²µà³ '%s' ಕೀಲಿಸà³à²°à³à²³à²¿à²¯ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬದಲಾಯಿಸಲೠಬಯಸಿದೆ. ಅದರಲà³à²²à²¿ ಯಾವ "
-"ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬಳಸಬೇಕೠಎಂದೠನೀವೠಆರಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†."
-
-#: ../daemon/gkr-daemon-ops.c:522 ../daemon/gkr-daemon-ops.c:532
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-"'%s' ಅನà³à²µà²¯à²µà³ ಕೀಲಿಸà³à²°à³à²³à²¿à²¯ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬದಲಾಯಿಸಲೠಬಯಸಿದೆ. ಅದರಲà³à²²à²¿ ಯಾವ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ "
-"ಬಳಸಬೇಕೠಎಂದೠನೀವೠಆರಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†."
-
-#: ../daemon/gkr-daemon-ops.c:538
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-"ಒಂದೠಅಜà³à²žà²¾à²¤ ಅನà³à²µà²¯à²µà³ '%s' ಕೀಲಿಸà³à²°à³à²³à²¿à²¯ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬದಲಾಯಿಸಲೠಬಯಸಿದೆ. ಅದರಲà³à²²à²¿ ಯಾವ "
-"ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬಳಸಬೇಕೠಎಂದೠನೀವೠಆರಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†."
-
-#: ../daemon/gkr-daemon-ops.c:542
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-"ಒಂದೠಅಜà³à²žà²¾à²¤ ಅನà³à²µà²¯à²µà³ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಕೀಲಿಸà³à²°à³à²³à²¿à²¯ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬದಲಾಯಿಸಲೠಬಯಸಿದೆ. "
-"ಅದರಲà³à²²à²¿ ಯಾವ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬಳಸಬೇಕೠಎಂದೠನೀವೠಆರಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†."
-
-#: ../daemon/gkr-daemon-ops.c:552
-#, c-format
-#| msgid "Choose a new password for the '%s' keyring. "
-msgid "Choose a new password for the '%s' keyring."
-msgstr "'%s' ಕೀಲಿಸà³à²°à³à²³à²¿à²—ಾಗಿ ಒಂದೠಹೊಸ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಆಯà³à²•à³† ಮಾಡಿ."
-
-#: ../daemon/gkr-daemon-ops.c:554
-#, c-format
-#| msgid "Choose a new password for the default keyring. "
-msgid "Choose a new password for the default keyring."
-msgstr "ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಕೀಲಿಸà³à²°à³à²³à²¿à²—ಾಗಿ ಒಂದೠಹೊಸ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಆಯà³à²•à³† ಮಾಡಿ."
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:558
-msgid "Change Keyring Password"
-msgstr "ಕೀಲಿ ಸà³à²°à³à²³à²¿ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬದಲಾಯಿಸಿ"
-
-#: ../daemon/gkr-daemon-ops.c:631
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-msgstr ""
-"ಅನà³à²µà²¯ '%s' (%s) ವೠಒಂದೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಶೇಖರಿಸಿಡಲೠಬಯಸಿದೆ, ಆದರೆ ಯಾವà³à²¦à³† ಕೀಲಿಸà³à²°à³à²³à²¿ "
-"ಇಲà³à²². ಒಂದೠಕೀಲಿಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ರಚಿಸಲೠಅದಕà³à²•à²¾à²—ಿ ಬಳಸಲೠಒಂದೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನೀವೠ"
-"ಆರಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†."
-
-#: ../daemon/gkr-daemon-ops.c:635 ../daemon/gkr-daemon-ops.c:639
-#, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-msgstr ""
-"ಅನà³à²µà²¯ '%s' ವೠಒಂದೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಶೇಖರಿಸಿಡಲೠಬಯಸಿದೆ, ಆದರೆ ಯಾವà³à²¦à³† ಕೀಲಿಸà³à²°à³à²³à²¿ ಇಲà³à²². "
-"ಒಂದೠಕೀಲಿಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ರಚಿಸಲೠಅದಕà³à²•à²¾à²—ಿ ಬಳಸಲೠಒಂದೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನೀವೠಆರಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†."
-
-#: ../daemon/gkr-daemon-ops.c:643
-#, c-format
-msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-msgstr ""
-"ಒಂದೠಅಜà³à²žà²¾à²¤ ಅನà³à²µà²¯à²µà³ ಒಂದೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಶೇಖರಿಸಿಡಲೠಬಯಸಿದೆ, ಆದರೆ ಯಾವà³à²¦à³† ಕೀಲಿಸà³à²°à³à²³à²¿ "
-"ಇಲà³à²². ಒಂದೠಕೀಲಿಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ರಚಿಸಲೠಅದಕà³à²•à²¾à²—ಿ ಬಳಸಲೠಒಂದೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನೀವೠ"
-"ಆರಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†."
+"ಒಂದೠಅಜà³à²žà²¾à²¤ ಅನà³à²µà²¯à²µà³ '%s' ಎಂಬ ಹೆಸರಿನ ಒಂದೠಹೊಸ ಕೀಲಿ ಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ನಿರà³à²®à²¿à²¸à²²à³ ಬಯಸಿದೆ. "
+"ಅದಕà³à²•à³† ಬಳಸಲೠನೀವೠಒಂದೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಆರಿಸಬೇಕಾಗà³à²¤à³à²¤à²¦à³†."
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:648
-msgid "Create Default Keyring"
-msgstr "ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಕೀಲಿಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ನಿರà³à²®à²¿à²¸à²¿"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+#, fuzzy
+msgid "Certificate and Key Storage"
+msgstr "ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²µà²¨à³à²¨à³/ಕೀಲಿಯನà³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡà³"
-#: ../daemon/gkr-daemon-ops.c:648
-msgid "Choose password for default keyring"
-msgstr "ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಕೀಲಿಸà³à²°à³à²³à²¿à²—ಾಗಿ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಆರಿಸಿ"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+#, fuzzy
+msgid "GNOME Keyring: PKCS#11 Component"
+msgstr "GNOME ಕೀಲಿಸà³à²°à³à²³à²¿ ಡೀಮನà³"
-#: ../daemon/data/gnome-keyring.schemas.in.h:1
-msgid ""
-"This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-"only takes effect as gnome-keyring-daemon starts, (ie: when the user logs "
-"in). This setting may be overridden when certain command line arguments are "
-"passed to the daemon."
-msgstr ""
-"ಈ ಆಯà³à²•à³†à²¯à³ gnome-keyring ಡೀಮನà³â€Œà²¨à²²à³à²²à²¿ PKCS#11 ಘಟಕವನà³à²¨à³ ಶಕà³à²¤à²—ೊಳಿಸà³à²¤à³à²¤à²¦à³†. gnome-keyring-"
-"daemon ಆರಂಭಗೊಂಡಾಗ ಮಾತà³à²°à²µà³† ಇದೠಕಾರà³à²¯à²°à³‚ಪಕà³à²•à³† ಬರà³à²¤à³à²¤à²¦à³†, (ಅಂದರೆ: ಬಳಕೆದಾರರೠಒಳಗೆ "
-"ಪà³à²°à²µà³‡à²¶à²¿à²¸à²¿à²¦à²¾à²—). ಡೀಮನà³â€Œà²—ೆ ಕೆಲವೠಆಜà³à²žà²¾ ಸಾಲಿನ ಆರà³à²—à³à²®à³†à²‚ಟà³â€Œà²—ಳನà³à²¨à³ ಒದಗಿಸಿದಾಗ ಈ ಸಿದà³à²§à²¤à³†à²—ಳೠ"
-"ಅತಿಕà³à²°à²®à²¿à²¸à²²à³à²ªà²¡à³à²¤à³à²¤à²µà³†."
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: Secret Service"
+msgstr "GNOME ಕೀಲಿಸà³à²°à³à²³à²¿ ಡೀಮನà³"
-#: ../daemon/data/gnome-keyring.schemas.in.h:2
-msgid ""
-"This option enables the SSH agent in the gnome-keyring daemon. It only takes "
-"effect as gnome-keyring-daemon starts, (ie: when the user logs in). This "
-"setting may be overridden when certain command line arguments are passed to "
-"the daemon."
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
msgstr ""
-"ಈ ಆಯà³à²•à³†à²¯à³ gnome-keyring daemon ನಲà³à²²à²¿ SSH ಮಧà³à²¯à²µà²°à³à²¤à²¿à²¯à²¨à³à²¨à³ ಶಕà³à²¤à²—ೊಳಿಸà³à²¤à³à²¤à²¦à³†. gnome-"
-"keyring-daemon ಆರಂಭಗೊಂಡಾಗ ಮಾತà³à²°à²µà³† ಇದೠಕಾರà³à²¯à²°à³‚ಪಕà³à²•à³† ಬರà³à²¤à³à²¤à²¦à³†, (ಅಂದರೆ: ಬಳಕೆದಾರರೠ"
-"ಒಳಗೆ ಪà³à²°à²µà³‡à²¶à²¿à²¸à²¿à²¦à²¾à²—). ಡೀಮನà³â€Œà²—ೆ ಕೆಲವೠಆಜà³à²žà²¾ ಸಾಲಿನ ಆರà³à²—à³à²®à³†à²‚ಟà³â€Œà²—ಳನà³à²¨à³ ಒದಗಿಸಿದಾಗ ಈ "
-"ಸಿದà³à²§à²¤à³†à²—ಳೠಅತಿಕà³à²°à²®à²¿à²¸à²²à³à²ªà²¡à³à²¤à³à²¤à²µà³†."
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:3
-msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-msgstr "gnome-ಕೀಲಿಸà³à²°à²³à²¿ PKCS#11 ಘಟಕವನà³à²¨à³ ಶಕà³à²¤à²—ೊಳಿಸಲಾಗಿದೆಯೆ."
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:4
-msgid "Whether the gnome-keyring SSH agent is enabled."
-msgstr "gnome-ಕೀಲಿಸà³à²°à²³à²¿ SSH ಮಧà³à²¯à²µà²°à³à²¤à²¿à²¯à²¨à³à²¨à³ ಶಕà³à²¤à²—ೊಳಿಸಲಾಗಿದೆಯೆ."
-#: ../daemon/gnome-keyring-daemon.desktop.in.in.h:1
-msgid "GNOME Keyring Daemon"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: SSH Agent"
msgstr "GNOME ಕೀಲಿಸà³à²°à³à²³à²¿ ಡೀಮನà³"
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:99
-msgid "Unlock Login Keyring"
-msgstr "ಪà³à²°à²µà³‡à²¶ ಕೀಲಿ ಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡà³"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:99
-msgid "Enter login password to unlock keyring"
-msgstr "ಕೀಲಿ ಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡಲೠಪà³à²°à²µà³‡à²¶ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನಮೂದಿಸಿ"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:101
-msgid ""
-"Your login keyring was not automatically unlocked when you logged into this "
-"computer."
-msgstr "ನೀವೠಈ ಗಣಕಕà³à²•à³† ಪà³à²°à²µà³‡à²¶à²¿à²¸à²¿à²¦à²¾à²— ಪà³à²°à²µà³‡à²¶ ಕೀಲಿಸà³à²°à³à²³à²¿à²¯à³ ತಾನಾಗಿಯೆ ಅನà³â€Œà²²à²¾à²•à³ ಆಗಿರಲಿಲà³à²²."
-
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:125
-msgid "Create Login Keyring"
-msgstr "ಪà³à²°à²µà³‡à²¶ ಕೀಲಿಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ರಚಿಸಿ"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:125
-msgid "Enter your login password"
-msgstr "ನಿಮà³à²® ಪà³à²°à²µà³‡à²¶à²¦ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನಮೂದಿಸಿ"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:127
-msgid ""
-"Your login keyring was not automatically created when you logged into this "
-"computer. It will now be created."
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
msgstr ""
-"ನೀವೠಈ ಗಣಕಕà³à²•à³† ಪà³à²°à²µà³‡à²¶à²¿à²¸à²¿à²¦à²¾à²— ಪà³à²°à²µà³‡à²¶ ಕೀಲಿಸà³à²°à³à²³à²¿à²¯à³ ತಾನಾಗಿಯೆ ನಿರà³à²®à²¿à²¤à²—ೊಂಡಿರಲಿಲà³à²². "
-"ಅದನà³à²¨à³ ಈಗ ನಿರà³à²®à²¿à²¸à²²à²¾à²—à³à²¤à³à²¤à²¦à³†."
-#: ../daemon/keyrings/gkr-keyring.c:587
-#, c-format
-msgid "Unlock password for %s keyring"
-msgstr "%s ಕೀಲಿಸà³à²°à³à²³à²¿à²—ಾಗಿನ ಅನà³â€Œà²²à²¾à²•à³ ಗà³à²ªà³à²¤à²ªà²¦"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:98
-msgid "Unlock private key"
-msgstr "ಖಾಸಗಿ ಕೀಲಿಯನà³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡà³"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:100
-msgid "Unlock certificate"
-msgstr "ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²µà²¨à³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡà³"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:102
-msgid "Unlock public key"
-msgstr "ಸಾರà³à²µà²œà²¨à²¿à²• ಕೀಲಿಯನà³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡà³"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:104
-msgid "Unlock"
-msgstr "ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡà³"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:113 ../gcr/gcr-importer.c:436
-msgid "Enter password to unlock the private key"
-msgstr "ಖಾಸಗಿ ಕೀಲಿಯನà³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡಲೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನಮೂದಿಸಿ"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:115 ../gcr/gcr-importer.c:438
-msgid "Enter password to unlock the certificate"
-msgstr "ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²µà²¨à³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡಲೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನಮೂದಿಸಿ"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: GPG Agent"
+msgstr "GNOME ಕೀಲಿಸà³à²°à³à²³à²¿ ಡೀಮನà³"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:117
-msgid "Enter password to unlock the public key"
-msgstr "ಸಾರà³à²µà²œà²¨à²¿à²• ಕೀಲಿಯನà³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡಲೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನಮೂದಿಸಿ"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+#, fuzzy
+msgid "GPG Password Agent"
+msgstr "ಹೊಸ ಗà³à²ªà³à²¤à²ªà²¦à²¦ ದೃಢತೆ"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:119 ../gcr/gcr-importer.c:440
-msgid "Enter password to unlock"
-msgstr "ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡಲೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನಮೂದಿಸಿ"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+#, fuzzy
+msgid "Unknown"
+msgstr "ಗೊತà³à²¤à²¿à²²à³à²²à²¦ ದೋಷ"
-#. TRANSLATORS: The private key is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:129
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid "An application wants access to the private key '%s', but it is locked"
+msgid "PGP Key: %s"
msgstr ""
-"ಒಂದೠಅನà³à²µà²¯à²µà³ ಖಾಸಗಿ ಕೀಲಿ '%s' ಅನà³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ, ಆದರೆ ಅದನà³à²¨à³ ಲಾಕà³â€Œ "
-"ಮಾಡಲಾಗಿದೆ"
-
-#. TRANSLATORS: The certificate is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:132
-#, c-format
-msgid "An application wants access to the certificate '%s', but it is locked"
-msgstr "ಒಂದೠಪà³à²°à²®à²¾à²£à²ªà²¤à³à²° '%s' ಅನà³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ, ಆದರೆ ಅದನà³à²¨à³ ಲಾಕà³â€Œ ಮಾಡಲಾಗಿದೆ"
-#. TRANSLATORS: The public key is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:135
-#, c-format
-msgid "An application wants access to the public key '%s', but it is locked"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-"ಒಂದೠಅನà³à²µà²¯à²µà³ ಸಾರà³à²µà²œà²¨à²¿à²• ಕೀಲಿ '%s' ಅನà³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ, ಆದರೆ ಅದನà³à²¨à³ ಲಾಕà³â€Œ "
-"ಮಾಡಲಾಗಿದೆ"
-
-#. TRANSLATORS: The object '%s' is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:138
-#, c-format
-msgid "An application wants access to '%s', but it is locked"
-msgstr "ಒಂದೠಅನà³à²µà²¯à²µà³ '%s' ಅನà³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ, ಆದರೆ ಅದನà³à²¨à³ ಲಾಕà³â€Œ ಮಾಡಲಾಗಿದೆ"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:147
-msgid "Automatically unlock this private key when I log in."
-msgstr "ನಾನೠಒಳಗೆ ಪà³à²°à²µà³‡à²¶à²¿à²¸à²¿à²¦à²¾à²— ಖಾಸಗಿ ಕೀಲಿಯೠತಾನಾಗಿಯೆ ಅನà³â€Œà²²à²¾à²•à³ ಆಗà³à²µà²‚ತೆ ಮಾಡà³."
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:149
-msgid "Automatically unlock this certificate when I log in."
-msgstr "ನಾನೠಒಳಗೆ ಪà³à²°à²µà³‡à²¶à²¿à²¸à²¿à²¦à²¾à²— ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²µà³ ತಾನಾಗಿಯೆ ಅನà³â€Œà²²à²¾à²•à³ ಆಗà³à²µà²‚ತೆ ಮಾಡà³."
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:151
-msgid "Automatically unlock this public key when I log in."
-msgstr "ನಾನೠಒಳಗೆ ಪà³à²°à²µà³‡à²¶à²¿à²¸à²¿à²¦à²¾à²— ಸಾರà³à²µà²œà²¨à²¿à²• ಕೀಲಿಯೠತಾನಾಗಿಯೆ ಅನà³â€Œà²²à²¾à²•à³ ಆಗà³à²µà²‚ತೆ ಮಾಡà³."
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:153
-msgid "Automatically unlock this when I log in"
-msgstr "ನಾನೠಒಳಗೆ ಪà³à²°à²µà³‡à²¶à²¿à²¸à²¿à²¦à²¾à²— ತಾನಾಗಿಯೆ ಅನà³â€Œà²²à²¾à²•à³ ಆಗà³à²µà²‚ತೆ ಮಾಡà³"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:394
-msgid "Unlock certificate/key storage"
-msgstr "ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²µà²¨à³à²¨à³/ಕೀಲಿಯನà³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡà³"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:395
-msgid "Enter password to unlock the certificate/key storage"
-msgstr "ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°/ಕೀಲಿ ಶೇಖರಣೆಯನà³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡಲೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನಮೂದಿಸಿ"
-
-#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:398
-#, c-format
-msgid ""
-"An application wants access to the certificate/key storage '%s', but it is "
-"locked"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
msgstr ""
-"ಒಂದೠಅನà³à²µà²¯à²µà³ ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°/ಕೀಲಿ ಶೇಖರಣೆ '%s' ಅನà³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ, ಆದರೆ ಅದನà³à²¨à³ "
-"ಲಾಕà³â€Œ ಮಾಡಲಾಗಿದೆ"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:403
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:554
-msgid "Automatically unlock secure storage when I log in."
-msgstr "ನಾನೠಒಳಗೆ ಪà³à²°à²µà³‡à²¶à²¿à²¸à²¿à²¦à²¾à²— ಸà³à²°à²•à³à²·à²¿à²¤ ಶೇಖರಣೆಯೠತಾನಾಗಿಯೆ ಅನà³â€Œà²²à²¾à²•à³ ಆಗà³à²µà²‚ತೆ ಮಾಡà³."
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:546
-msgid "New Password Required"
-msgstr "ಹೊಸ ಗà³à²ªà³à²¤à²ªà²¦à²¦ ಅಗತà³à²¯à²µà²¿à²¦à³†"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:547
-msgid "New password required for secure storage"
-msgstr "ಸà³à²°à²•à³à²·à²¿à²¤ ಶೇಖರಣೆಗಾಗಿ ಒಂದೠಗà³à²ªà³à²¤à²ªà²¦à²¦ ಅಗತà³à²¯à²µà²¿à²¦à³†"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:549
-#, c-format
-msgid ""
-"In order to prepare '%s' for storage of certificates or keys, a password is "
-"required"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-"'%s' ಅನà³à²¨à³ ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²—ಳನà³à²¨à³ ಅಥವ ಕೀಲಿಗಳನà³à²¨à³ ಶೇಖರಿಸಿಡಲೠಸಿದà³à²§à²—ೊಳಿಸಲà³, ಒಂದೠಗà³à²ªà³à²¤à²ªà²¦à²¦ "
-"ಅಗತà³à²¯à²µà²¿à²°à³à²¤à³à²¤à²¦à³†"
-#: ../daemon/ui/gkr-ask-tool.c:230
-msgid ""
-"<b><big>Could not grab your mouse.</big></b>\n"
-"\n"
-"A malicious client may be eavesdropping on your session or you may have just "
-"clicked a menu or some application just decided to get focus.\n"
-"\n"
-"Try again."
-msgstr ""
-"<b><big>ನಿಮà³à²® ಮೌಸನà³à²¨à³ ಸೆಳೆಯಲೠಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²².</big></b>\n"
-"\n"
-"ಒಂದೠಅಪಾಯಕಾರಿಯಾದ ಕà³à²²à³ˆà²‚ಟೠನಿಮà³à²® ಅಧಿವೇಶನವನà³à²¨à³ ಕದà³à²¦à³ ವೀಕà³à²·à²¿à²¸à³à²¤à³à²¤à²¿à²°à²¬à²¹à³à²¦à³ ಅಥವ ನೀವೠಗಮನ "
-"ಕೇಂದà³à²°à³€à²•à²°à²¿à²¸à²²à³ ಒಂದೠಮೆನೠಅಥವ ಯಾವà³à²¦à²¾à²¦à²°à³‚ ಅನà³à²µà²¯à²¦ ಮೇಲೆ ಕà³à²²à²¿à²•à³à²•à²¿à²¸à²¿à²°à²¬à²¹à³à²¦à³.\n"
-"\n"
-"ಇನà³à²¨à³Šà²®à³à²®à³† ಪà³à²°à²¯à²¤à³à²¨à²¿à²¸à²¿."
-
-#: ../daemon/ui/gkr-ask-tool.c:239
-msgid ""
-"<b><big>Could not grab your keyboard.</big></b>\n"
-"\n"
-"A malicious client may be eavesdropping on your session or you may have just "
-"clicked a menu or some application just decided to get focus.\n"
-"\n"
-"Try again."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
msgstr ""
-"<b><big>ನಿಮà³à²® ಕೀಲಿಮಣೆಯನà³à²¨à³ ಸೆಳೆಯಲೠಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²².</big></b>\n"
-"\n"
-"ಒಂದೠಅಪಾಯಕಾರಿಯಾದ ಕà³à²²à³ˆà²‚ಟೠನಿಮà³à²® ಅಧಿವೇಶನವನà³à²¨à³ ಕದà³à²¦à³ ವೀಕà³à²·à²¿à²¸à³à²¤à³à²¤à²¿à²°à²¬à²¹à³à²¦à³ ಅಥವ ನೀವೠಗಮನ "
-"ಕೇಂದà³à²°à³€à²•à²°à²¿à²¸à²²à³ ಒಂದೠಮೆನೠಅಥವ ಯಾವà³à²¦à²¾à²¦à²°à³‚ ಅನà³à²µà²¯à²¦ ಮೇಲೆ ಕà³à²²à²¿à²•à³à²•à²¿à²¸à²¿à²°à²¬à²¹à³à²¦à³.\n"
-"\n"
-"ಇನà³à²¨à³Šà²®à³à²®à³† ಪà³à²°à²¯à²¤à³à²¨à²¿à²¸à²¿."
-
-#: ../daemon/ui/gkr-ask-tool.c:276
-msgid "Store passwords unencrypted?"
-msgstr "ಗà³à²ªà³à²¤à²ªà²¦à²—ಳನà³à²¨à³ ಗೂಢಲಿಪೀಕರಿಸದೆ ಶೇಖರಿಸಿಡಬೇಕೆ?"
-#: ../daemon/ui/gkr-ask-tool.c:277
-msgid ""
-"By choosing to use a blank password, your stored passwords will not be "
-"safely encrypted. They will be accessible by anyone with access to your "
-"files."
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
msgstr ""
-"ಒಂದೠಖಾಲಿ ಇರà³à²µ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬಳಸà³à²µà³à²¦à²°à²¿à²‚ದ, ಶೇಖರಿಸಲಾದ ನಿಮà³à²® ಗà³à²ªà³à²¤à²ªà²¦à²—ಳೠಸà³à²°à²•à³à²·à²¿à²¤à²µà²¾à²—ಿ "
-"ಗೂಢಲಿಪೀಕರಿಸಲà³à²ªà²¡à³à²µà³à²¦à²¿à²²à³à²². ನಿಮà³à²® ಕಡತಗಳನà³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à³à²µ ಯಾರೆ ಆದರೂ ಆ ಗà³à²ªà³à²¤à²ªà²¦à²—ಳನà³à²¨à³ "
-"ನೋಡಬಹà³à²¦à²¾à²—ಿದೆ."
-
-#: ../daemon/ui/gkr-ask-tool.c:284
-msgid "Use Unsafe Storage"
-msgstr "ಅಸà³à²°à²•à³à²·à²¿à²¤ ಶೇಖರಣೆಯನà³à²¨à³ ಬಳಸà³"
-
-#: ../daemon/ui/gkr-ask-tool.c:512
-msgid "_Location:"
-msgstr "ಸà³à²¥à²³(_L):"
-
-#: ../daemon/ui/gkr-ask-tool.c:525
-msgid "_Old password:"
-msgstr "ಹಳೆಯ ಗà³à²ªà³à²¤à²ªà²¦(_O):"
-
-#: ../daemon/ui/gkr-ask-tool.c:545
-msgid "_Password:"
-msgstr "ಗà³à²ªà³à²¤à²ªà²¦(_P):"
-
-#: ../daemon/ui/gkr-ask-tool.c:567
-msgid "_Confirm password:"
-msgstr "ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಖಚಿತಪಡಿಸà³(_C):"
-
-#: ../daemon/ui/gkr-ask-tool.c:587
-msgid "New password strength"
-msgstr "ಹೊಸ ಗà³à²ªà³à²¤à²ªà²¦à²¦ ದೃಢತೆ"
-
-#: ../daemon/ui/gkr-ask-tool.c:645
-msgid "Passwords do not match."
-msgstr "ಗà³à²ªà³à²¤à²ªà²¦à²µà³ ತಾಳೆಯಾಗà³à²¤à³à²¤à²¿à²²à³à²²."
-
-#: ../daemon/ui/gkr-ask-tool.c:661
-msgid "Password cannot be blank"
-msgstr "ಗà³à²ªà³à²¤à²ªà²¦à²µà³ ಖಾಲಿ ಇರà³à²µà²‚ತಿಲà³à²²"
-
-#: ../daemon/ui/gkr-ask-tool.c:712
-msgid "_Deny"
-msgstr "ನಿರಾಕರಣೆ(_D)"
-
-#: ../daemon/ui/gkr-ask-tool.c:724
-msgid "C_reate"
-msgstr "ರಚಿಸà³(_r)"
-
-#: ../daemon/ui/gkr-ask-tool.c:728
-msgid "C_hange"
-msgstr "ಬದಲಾಯಿಸà³(_h)"
-
-#: ../daemon/ui/gkr-ask-tool.c:732
-msgid "Allow _Once"
-msgstr "ಒಮà³à²®à³† ಮಾತà³à²° ಅನà³à²®à²¤à²¿à²¸à³(_O)"
-
-#: ../daemon/ui/gkr-ask-tool.c:736
-msgid "_Always Allow"
-msgstr "ಯಾವಾಗಲೠಅನà³à²®à²¤à²¿à²¸à³(_A)"
-
-#: ../daemon/util/gkr-location.c:234
-#, c-format
-msgid "Removable Disk: %s"
-msgstr "ತೆಗೆಯಬಹà³à²¦à²¾à²¦ ಡಿಸà³à²•à³â€: %s"
-
-#: ../daemon/util/gkr-location.c:236
-msgid "Removable Disk"
-msgstr "ತೆಗೆಯಬಹà³à²¦à²¾à²¦ ಡಿಸà³à²•à³â€"
-
-#: ../daemon/util/gkr-location.c:327 ../daemon/util/gkr-location.c:339
-msgid "Home"
-msgstr "ಹೋಮà³"
-
-#: ../daemon/util/gkr-location.c:882 ../daemon/util/gkr-location.c:906
-msgid "The disk or drive this file is located on is not present"
-msgstr "ಈ ಕಡತವೠಇರà³à²µ ಡಿಸà³à²•à³â€ ಅಥವ ಡà³à²°à³ˆà²µà³ ಅಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²²à³à²²"
-
-#: ../daemon/util/gkr-location.c:914
-#, c-format
-msgid "Couldn't create directory: %s"
-msgstr "ಕೋಶವನà³à²¨à³ ನಿರà³à²®à²¿à²¸à²²à³ ಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²²: %s"
-
-#: ../daemon/util/gkr-location.c:948
-#, c-format
-msgid "Couldn't delete the file: %s"
-msgstr "ಕಡತವನà³à²¨à³ ಅಳಿಸಲೠಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²²: %s"
#: ../egg/egg-oid.c:41
msgid "Domain Component"
@@ -657,8 +145,8 @@ msgid "User ID"
msgstr "ಬಳಕೆದಾರ ID"
#: ../egg/egg-oid.c:46
-msgid "Email"
-msgstr "ಇಮೇಲà³"
+msgid "Email Address"
+msgstr ""
#: ../egg/egg-oid.c:54
msgid "Date of Birth"
@@ -688,8 +176,7 @@ msgstr "ಸಾಮಾನà³à²¯ ಹೆಸರà³"
msgid "Surname"
msgstr "ಉಪನಾಮ"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-basics-widget.ui.h:18
-#: ../gcr/gcr-certificate-details-widget.c:322
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "ಅನà³à²•à³à²°à²® ಸಂಖà³à²¯à³†"
@@ -749,634 +236,303 @@ msgstr "ಗà³à²ªà³à²¤à²¨à²¾à²®"
msgid "RSA"
msgstr "RSA"
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "RSA ಯೊಂದಿಗಿನ MD2"
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "RSA ಯೊಂದಿಗಿನ MD5"
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "RSA ಯೊಂದಿಗಿನ SHA1"
-#: ../egg/egg-oid.c:107
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "DSA ಯೊಂದಿಗಿನ SHA1"
-#: ../gcr/gcr-certificate-basics-widget.c:59
-msgid "<i>Not Part of Certificate</i>"
-msgstr "<i>ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²¦ ಭಾಗವಾಗಿಲà³à²²</i>"
-
-#: ../gcr/gcr-certificate-basics-widget.c:80
-msgid "<i>unknown</i>"
-msgstr "<i>ಗೊತà³à²¤à²¿à²°à²¦</i>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:1
-msgid "<Not Part of Certificate>"
-msgstr "<ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²¦ ಭಾಗವಲà³à²²>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:2
-msgid "<b>Fingerprints</b>"
-msgstr "<b>ಫಿಂಗರà³-ಪà³à²°à²¿à²‚ಟà³â€à²—ಳà³</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:3
-msgid "<b>Issued By</b>"
-msgstr "<b>ಒದಗಿಸಿದವರà³</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:4
-msgid "<b>Issued To</b>"
-msgstr "<b>ಇವರಿಗೆ ಒದಗಿಸಲಾಗಿದೆ</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:5
-msgid "<b>This certificate has been verified for the following uses:</b>"
-msgstr "<b>ಈ ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²µà²¨à³à²¨à³ ಈ ಕೆಳಗಿನ ಬಳಕೆಗಾಗಿ ಪರೀಕà³à²·à²¿à²¸à²²à²¾à²—ಿದೆ:</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:6
-msgid "<b>Validity</b>"
-msgstr "<b>ಕಾಲಾವಧಿ</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:7
-msgid "Common Name (CN)"
-msgstr "ಸಾಮಾನà³à²¯ ಹೆಸರೠ(CN)"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:8
-msgid "Email Recipient Certificate"
-msgstr "ಇಮೈಲೠಪಡೆಯà³à²µà²µà²° ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:9
-msgid "Email Signer Certificate"
-msgstr "ಇಮೈಲೠಸೈನರೠಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:10
-msgid "Expires On"
-msgstr "ಅವಧಿ ಮà³à²—ಿಯà³à²µ ದಿನಾಂಕ"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:11
-msgid "Issued On"
-msgstr "ಒದಗಿಸಲಾದ ದಿನಾಂಕ"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:12
-msgid "MD5 Fingerprint"
-msgstr "MD5 ಫಿಂಗರà³-ಪà³à²°à²¿à²‚ಟà³"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:13
-msgid "Organization (O)"
-msgstr "ಸಂಸà³à²¥à³† (O)"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:14
-msgid "Organizational Unit (OU)"
-msgstr "ಸಂಸà³à²¥à³†à²¯ ಘಟಕ (OU)"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:15
-msgid "SHA1 Fingerprint"
-msgstr "SHA1 ಫಿಂಗರà³-ಪà³à²°à²¿à²‚ಟà³"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+#, fuzzy
+msgid "Server Authentication"
+msgstr "SSL ಪರಿಚಾರಕ ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:16
-msgid "SSL Client Certificate"
+#: ../egg/egg-oid.c:108
+#, fuzzy
+msgid "Client Authentication"
msgstr "SSL ಕà³à²²à³ˆà²‚ಟೠಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:17
-msgid "SSL Server Certificate"
-msgstr "SSL ಪರಿಚಾರಕ ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°"
-
-#: ../gcr/gcr-certificate-details-widget.c:207
-msgid "Extension"
-msgstr "ವಿಸà³à²¤à²°à²£à³†"
-
-#: ../gcr/gcr-certificate-details-widget.c:212
-msgid "Identifier"
-msgstr "ಪತà³à²¤à³†à²—ಾರ"
-
-#: ../gcr/gcr-certificate-details-widget.c:222
-msgid "Value"
-msgstr "ಮೌಲà³à²¯"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "Critical"
-msgstr "ಸಂದಿಗà³à²§"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "Yes"
-msgstr "ಹೌದà³"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "No"
-msgstr "ಇಲà³à²²"
-
-#. The subject
-#: ../gcr/gcr-certificate-details-widget.c:303
-msgid "Subject Name"
-msgstr "ವಿಷಯದ ಹೆಸರà³"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-details-widget.c:307
-msgid "Issuer Name"
-msgstr "ಒದಗಿಸಿದವರ ಹೆಸರà³"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-details-widget.c:311
-msgid "Issued Certificate"
-msgstr "ಒದಗಿಸಲಾದ ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°"
-
-#: ../gcr/gcr-certificate-details-widget.c:316
-msgid "Version"
-msgstr "ಆವೃತà³à²¤à²¿"
-
-#: ../gcr/gcr-certificate-details-widget.c:329
-msgid "Not Valid Before"
-msgstr "ಇದಕà³à²•à³‚ ಮà³à²‚ಚೆ ಮಾನà³à²¯à²µà²²à³à²²"
-
-#: ../gcr/gcr-certificate-details-widget.c:334
-msgid "Not Valid After"
-msgstr "ಇದರ ನಂತರ ಮಾನà³à²¯à²µà²²à³à²²"
-
-#. Signature
-#: ../gcr/gcr-certificate-details-widget.c:339
-#: ../gcr/gcr-certificate-details-widget.c:355
-msgid "Signature"
-msgstr "ಸಹಿ"
-
-#: ../gcr/gcr-certificate-details-widget.c:343
-msgid "Signature Algorithm"
-msgstr "ಸಹಿ ಅಲà³à²—ಾರಿತಮà³"
-
-#: ../gcr/gcr-certificate-details-widget.c:348
-msgid "Signature Parameters"
-msgstr "ಸಹಿ ನಿಯತಾಂಕಗಳà³"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-details-widget.c:359
-msgid "Public Key Info"
-msgstr "ಸಾರà³à²µà²œà²¨à²¿à²• ಕೀಲಿ ಮಾಹಿತಿ"
-
-#: ../gcr/gcr-certificate-details-widget.c:363
-msgid "Key Algorithm"
-msgstr "ಕೀಲಿ ಅಲà³à²—ಾರಿತಮà³"
-
-#: ../gcr/gcr-certificate-details-widget.c:368
-msgid "Key Parameters"
-msgstr "ಕೀಲಿ ನಿಯತಾಂಕಗಳà³"
-
-#: ../gcr/gcr-certificate-details-widget.c:375
-msgid "Key Size"
-msgstr "ಕೀಲಿ ಗಾತà³à²°"
-
-#: ../gcr/gcr-certificate-details-widget.c:382 ../gcr/gcr-parser.c:202
-msgid "Public Key"
-msgstr "ಸಾರà³à²µà²œà²¨à²¿à²• ಕೀಲಿ"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-details-widget.c:386
-msgid "Fingerprints"
-msgstr "ಫಿಂಗರà³-ಪà³à²°à²¿à²‚ಟà³â€Œà²—ಳà³"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
msgstr ""
-"<span size='large' weight='bold'>ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²—ಳನà³à²¨à³ ಹಾಗೠಕೀಲಿಗಳನà³à²¨à³ ಆಮದೠಮಾಡಿಕೊ</"
-"span>"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "ಇದಕà³à²•à³† ಆಮದೠಮಾಡà³:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "ಗà³à²ªà³à²¤à²ªà²¦:"
-#: ../gcr/gcr-importer.c:163 ../gcr/gcr-parser.c:1573 ../gp11/gp11-misc.c:98
-msgid "The operation was cancelled"
-msgstr "ಕಾರà³à²¯à²µà²¨à³à²¨à³ ರದà³à²¦à³à²—ೊಳಿಸಲಾಗಿದೆ"
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
-#: ../gcr/gcr-importer.c:255
-#, c-format
-msgid "No location available to import to"
-msgstr "ಆಮದೠಮಾಡಲೠಯಾವà³à²¦à³† ಸà³à²¥à²³à²µà²¨à³à²¨à³ ಸೂಚಿಸಲಾಗಿಲà³à²²"
-
-#: ../gcr/gcr-importer.c:404
-msgid "Import Certificates/Keys"
-msgstr "ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²—ಳನà³à²¨à³/ಕೀಲಿಗಳನà³à²¨à³ ಆಮದೠಮಾಡಿಕೊ"
-
-#: ../gcr/gcr-importer.c:411
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "ಆಮದೠಮಾಡಲಾದ ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²—ಳನà³à²¨à³/ಕೀಲಿಗಳನà³à²¨à³ ಇರಿಸಿಲೠಒಂದೠಸà³à²¥à²³à²µà²¨à³à²¨à³ ಆಯà³à²•à³† ಮಾಡಿ."
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:449
-msgid "In order to import the private key, it must be unlocked"
-msgstr "ಖಾಸಗಿ ಕೀಲಿಯನà³à²¨à³ ಆಮದà³à²•à³Šà²³à³à²³à²²à³, ಅದೠಲಾಕೠಆಗಿರಬೇಕà³"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:452
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²µà²¨à³à²¨à³ ಆಮದà³à²•à³Šà²³à³à²³à²²à³, ಅದೠಲಾಕೠಆಗಿರಬಾರದà³"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:455
-msgid "In order to import the data, it must be unlocked"
-msgstr "ದತà³à²¤à²¾à²‚ಶವನà³à²¨à³ ಆಮದà³à²•à³Šà²³à³à²³à²²à³, ಅದೠಲಾಕೠಆಗಿರಬಾರದà³"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:460
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "'%s' ಖಾಸಗಿ ಕೀಲಿಯನà³à²¨à³ ಆಮದà³à²•à³Šà²³à³à²³à²²à³, ಅದೠಲಾಕೠಆಗಿರಬಾರದà³"
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:463
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "'%s' ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²µà²¨à³à²¨à³ ಆಮದà³à²•à³Šà²³à³à²³à²²à³, ಅದೠಲಾಕೠಆಗಿರಬಾರದà³"
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr ""
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:466
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "'%s' ಅನà³à²¨à³ ಆಮದà³à²•à³Šà²³à³à²³à²²à³, ಅದೠಲಾಕೠಆಗಿರಬಾರದà³"
-
-#: ../gcr/gcr-parser.c:196
-msgid "Private Key"
-msgstr "ಖಾಸಗಿ ಕೀಲಿ"
-
-#: ../gcr/gcr-parser.c:199
-msgid "Certificate"
-msgstr "ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°"
-
-#: ../gcr/gcr-parser.c:1576
-msgid "Unrecognized or unsupported data."
-msgstr "ಗà³à²°à³à²¤à²¿à²¸à²²à²¾à²—ದ ಅಥವ ಬೆಂಬಲವಿಲà³à²²à²¦ ದತà³à²¤à²¾à²‚ಶ."
-
-#: ../gcr/gcr-parser.c:1579
-msgid "Could not parse invalid or corrupted data."
-msgstr "ಅಮಾನà³à²¯à²µà²¾à²¦ ಅಥವ ಭà³à²°à²·à³à²Ÿà²—ೊಂಡ ದತà³à²¤à²¾à²‚ಶವನà³à²¨à³ ಪಾರà³à²¸à³ ಮಾಡಲಾಗಿಲà³à²²."
-
-#: ../gcr/gcr-parser.c:1582
-msgid "The data is locked"
-msgstr "ದತà³à²¤à²¾à²‚ಶವನà³à²¨à³ ಲಾಕೠಮಾಡಲಾಗಿದೆ"
-
-#: ../gp11/gp11-misc.c:101
-msgid "Insufficient memory available"
-msgstr "ಸಾಕಷà³à²Ÿà³ ಮೆಮೊರಿಯೠಲಭà³à²¯à²µà²¿à²²à³à²²"
-
-#: ../gp11/gp11-misc.c:103
-msgid "The specified slot ID is not valid"
-msgstr "ಸೂಚಿಸಲಾದ ಸà³à²²à²¾à²Ÿà³ à²à²¡à²¿à²¯à³ ಅಮಾನà³à²¯à²µà²¾à²—ಿದೆ"
-
-#: ../gp11/gp11-misc.c:105
-msgid "Internal error"
-msgstr "ಆಂತರಿಕ ದೋಷ"
-
-#: ../gp11/gp11-misc.c:107
-msgid "The operation failed"
-msgstr "ಕಾರà³à²¯à²µà³ ವಿಫಲಗೊಂಡಿದೆ"
-
-#: ../gp11/gp11-misc.c:109
-msgid "Invalid arguments"
-msgstr "ಅಮಾನà³à²¯ ಆರà³à²—à³à²¯à³à²®à³†à²‚ಟà³â€à²—ಳà³"
-
-#: ../gp11/gp11-misc.c:111
-msgid "The module cannot create needed threads"
-msgstr "ಅಗತà³à²¯à²µà²¿à²°à³à²µ ಎಳೆಗಳನà³à²¨à³ ಘಟಕದಿಂದ ನಿರà³à²®à²¿à²¸à²²à³ ಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²²"
-
-#: ../gp11/gp11-misc.c:113
-msgid "The module cannot lock data properly"
-msgstr "ಘಟಕದಿಂದ ದತà³à²¤à²¾à²‚ಶವನà³à²¨à³ ಸರಿಯಾಗಿ ಲಾಕà³â€Œ ಮಾಡಲೠಸಾಧà³à²¯à²µà²¿à²²à³à²²"
-
-#: ../gp11/gp11-misc.c:115
-msgid "The field is read-only"
-msgstr "ಕà³à²·à³‡à²¤à³à²°à²µà³ ಓದಲೠಮಾತà³à²°à²µà³† ಆಗಿದೆ"
-
-#: ../gp11/gp11-misc.c:117
-msgid "The field is sensitive and cannot be revealed"
-msgstr "ಕà³à²·à³‡à²¤à³à²°à²µà³ ಸೂಕà³à²·à³à²®à²µà²¾à²¦à³à²¦à²°à²¿à²‚ದ ಅದನà³à²¨à³ ಬಹಿರಂಗ ಪಡಿಸಲೠಸಾಧà³à²¯à²µà²¿à²²à³à²²"
-
-#: ../gp11/gp11-misc.c:119
-msgid "The field is invalid or does not exist"
-msgstr "ಕà³à²·à³‡à²¤à³à²°à²µà³ ಅಮಾನà³à²¯à²µà²¾à²—ಿದೆ ಅಥವ ಅಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²²à³à²²"
-
-#: ../gp11/gp11-misc.c:121
-msgid "Invalid value for field"
-msgstr "ಕà³à²·à³‡à²¤à³à²°à²•à³à²•à²¾à²—ಿನ ಅಮಾನà³à²¯à²µà²¾à²¦ ಮೌಲà³à²¯"
-
-#: ../gp11/gp11-misc.c:123
-msgid "The data is not valid or unrecognized"
-msgstr "ದತà³à²¤à²¾à²‚ಶವೠಅಮಾನà³à²¯à²µà²¾à²—ಿದೆ ಅಥವ ಗà³à²°à³à²¤à²¿à²¸à²²à²¾à²—ದಂತಿದೆ"
-
-#: ../gp11/gp11-misc.c:125
-msgid "The data is too long"
-msgstr "ದತà³à²¤à²¾à²‚ಶವೠಬಹಳ ದೊಡà³à²¡à²¦à²¾à²—ಿದೆ"
-
-#: ../gp11/gp11-misc.c:127
-msgid "An error occurred on the device"
-msgstr "ಸಾಧನದಲà³à²²à²¿ ಒಂದೠದೋಷವೠಕಂಡà³à²¬à²‚ದಿದೆ"
-
-#: ../gp11/gp11-misc.c:129
-msgid "Insufficient memory available on device"
-msgstr "ಸಾಧನದಲà³à²²à²¿ ಸಾಕಷà³à²Ÿà³ ಮೆಮೊರಿಯೠಲಭà³à²¯à²µà²¿à²²à³à²²"
-
-#: ../gp11/gp11-misc.c:131
-msgid "The device was removed or unplugged"
-msgstr "ಸಾಧನವನà³à²¨à³ ತೆಗೆಯಲಾಗಿದೆ ಅಥವ ಜೋಡಿಸಲಾಗಿಲà³à²²"
-
-#: ../gp11/gp11-misc.c:133
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "ಗೂಢಲಿಪೀಕರಣಗೊಂಡ ದತà³à²¤à²¾à²‚ಶ ಅಮಾನà³à²¯à²µà²¾à²—ಿದೆ ಅಥವ ಗà³à²°à³à²¤à²¿à²¸à²²à²¾à²—ದಂತಿದೆ"
-
-#: ../gp11/gp11-misc.c:135
-msgid "The encrypted data is too long"
-msgstr "ಗೂಢಲಿಪೀಕರಣಗೊಂಡ ದತà³à²¤à²¾à²‚ಶವೠಬಹಳ ದೊಡà³à²¡à²¦à²¾à²—ಿದೆ"
-
-#: ../gp11/gp11-misc.c:137
-msgid "This operation is not supported"
-msgstr "ಕಾರà³à²¯à²•à³à²•à³† ಬೆಂಬಲವಿಲà³à²²"
-
-#: ../gp11/gp11-misc.c:139
-msgid "The key is missing or invalid"
-msgstr "ಕೀಲಿಯೠಕಾಣಿಸà³à²¤à³à²¤à²¿à²²à³à²² ಅಥವ ಅಮಾನà³à²¯à²µà²¾à²—ಿದೆ"
-
-#: ../gp11/gp11-misc.c:141
-msgid "The key is the wrong size"
-msgstr "ತಪà³à²ªà²¾à²¦ ಗಾತà³à²°à²¦ ಕೀಲಿಯಾಗಿದೆ"
-
-#: ../gp11/gp11-misc.c:143
-msgid "The key is of the wrong type"
-msgstr "ತಪà³à²ªà²¾à²¦ ಬಗೆಯ ಕೀಲಿಯಾಗಿದೆ"
-
-#: ../gp11/gp11-misc.c:145
-msgid "No key is needed"
-msgstr "ಯಾವà³à²¦à³† ಕೀಲಿಯ ಅಗತà³à²¯à²µà²¿à²²à³à²²"
-
-#: ../gp11/gp11-misc.c:147
-msgid "The key is different than before"
-msgstr "ಕೀಲಿಯೠಈ ಮೊದಲಿನಿಗಿಂತ ಭಿನà³à²¨à²µà²¾à²¦à³à²¦à²¾à²—ಿದೆ"
-
-#: ../gp11/gp11-misc.c:149
-msgid "A key is needed"
-msgstr "ಒಂದೠಕೀಲಿಯ ಅಗತà³à²¯à²µà²¿à²¦à³†"
-
-#: ../gp11/gp11-misc.c:151
-msgid "Cannot include the key in digest"
-msgstr "ಡೈಜೆಸà³à²Ÿà²¿à²¨à²²à³à²²à²¿ ಕೀಲಿಯನà³à²¨à³ ಒಳಗೊಳà³à²³à²¿à²¸à²²à³ ಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²²"
-
-#: ../gp11/gp11-misc.c:153
-msgid "This operation cannot be done with this key"
-msgstr "ಈ ಕೀಲಿಯೊಂದಿಗೆ ಕಾರà³à²¯à²µà²¨à³à²¨à³ ನಿರà³à²µà²¹à²¿à²¸à²²à³ ಸಾಧà³à²¯à²µà²¿à²²à³à²²"
-
-#: ../gp11/gp11-misc.c:155
-msgid "The key cannot be wrapped"
-msgstr "ಕೀಲಿಯನà³à²¨à³ ವà³à²°à²¾à²ªà³ ಮಾಡಲೠಸಾಧà³à²¯à²µà²¿à²²à³à²²"
-
-#: ../gp11/gp11-misc.c:157
-msgid "Cannot export this key"
-msgstr "ಈ ಕೀಲಿಯನà³à²¨à³ ಆಮದೠಮಾಡಿಕೊಳà³à²³à²²à²¾à²—ಿಲà³à²²"
-
-#: ../gp11/gp11-misc.c:159
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "ಕà³à²°à²¿à²ªà³à²Ÿà³‹ ಕಾರà³à²¯à²µà³ˆà²–ರಿಯೠಅಮಾನà³à²¯à²µà²¾à²—ಿದೆ ಅಥವ ಗà³à²°à³à²¤à²¿à²¸à²²à²¾à²—ದಂತಿದೆ"
-
-#: ../gp11/gp11-misc.c:161
-msgid "The crypto mechanism has an invalid argument"
-msgstr "ಕà³à²°à²¿à²ªà³à²Ÿà³‹ ಕಾರà³à²¯à²µà³ˆà²–ರಿಯೠಅಮಾನà³à²¯à²µà²¾à²¦ ಆರà³à²—à³à²¯à³à²®à³†à²‚ಟನà³à²¨à³ ಹೊಂದಿದೆ"
+msgid "Unexpected error in waitpid() (%s)"
+msgstr ""
-#: ../gp11/gp11-misc.c:163
-msgid "The object is missing or invalid"
-msgstr "ವಸà³à²¤à³à²µà³ ಕಾಣಿಸà³à²¤à³à²¤à²¿à²²à³à²² ಅಥವ ಅಮಾನà³à²¯à²µà²¾à²—ಿದೆ"
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr "ಹೆಸರಿಲà³à²²à²¦ ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°"
-#: ../gp11/gp11-misc.c:165
-msgid "Another operation is already taking place"
-msgstr "ಇನà³à²¨à³Šà²‚ದೠಕಾರà³à²¯à²µà³ ಈಗಾಗಲೆ ನಡೆಯà³à²¤à³à²¤à²¿à²¦à³†"
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
+msgstr "ಸಾರà³à²µà²œà²¨à²¿à²• SSH ಕೀಲಿಯನà³à²¨à³ ಪಾರà³à²¸à³ ಮಾಡಲಾಗಿಲà³à²²"
-#: ../gp11/gp11-misc.c:167
-msgid "No operation is taking place"
-msgstr "ಯಾವà³à²¦à³† ಕಾರà³à²¯à²µà³ ನಡೆಯà³à²¤à³à²¤à²¿à²²à³à²²"
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, fuzzy, c-format
+msgid "Unlock password for: %s"
+msgstr "%s ಕೀಲಿಸà³à²°à³à²³à²¿à²—ಾಗಿನ ಅನà³â€Œà²²à²¾à²•à³ ಗà³à²ªà³à²¤à²ªà²¦"
-#: ../gp11/gp11-misc.c:169
-msgid "The password or PIN is incorrect"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+#, fuzzy
+msgid "The unlock password was incorrect"
msgstr "ಗà³à²ªà³à²¤à²ªà²¦ ಅಥವ PIN ಸರಿಯಾಗಿಲà³à²²"
-#: ../gp11/gp11-misc.c:171
-msgid "The password or PIN is invalid"
-msgstr "ಗà³à²ªà³à²¤à²ªà²¦ ಅಥವ PIN ಅಮಾನà³à²¯à²µà²¾à²—ಿದೆ"
-
-#: ../gp11/gp11-misc.c:173
-msgid "The password or PIN is of an invalid length"
-msgstr "ಗà³à²ªà³à²¤à²ªà²¦ ಅಥವ PIN ಒಂದೠಅಮಾನà³à²¯à²µà²¾à²¦ ಗಾತà³à²°à²µà²¨à³à²¨à³ ಹೊಂದಿದೆ"
-
-#: ../gp11/gp11-misc.c:175
-msgid "The password or PIN has expired"
-msgstr "ಗà³à²ªà³à²¤à²ªà²¦ ಅಥವ PIN ನ ವಾಯಿದೆಯೠತೀರಿದೆ"
-
-#: ../gp11/gp11-misc.c:177
-msgid "The password or PIN is locked"
-msgstr "ಗà³à²ªà³à²¤à²ªà²¦ ಅಥವ PIN ಲಾಕೠಆಗಿದೆ"
-
-#: ../gp11/gp11-misc.c:179
-msgid "The session is closed"
-msgstr "ಅಧಿವೇಶನವೠಮà³à²šà³à²šà²²à³à²ªà²Ÿà³à²Ÿà²¿à²¦à³†"
-
-#: ../gp11/gp11-misc.c:181
-msgid "Too many sessions are active"
-msgstr "ಬಹಳಷà³à²Ÿà³ ಅಧಿವೇಶನಗಳೠಸಕà³à²°à²¿à²¯à²µà²¾à²—ಿವೆ"
-
-#: ../gp11/gp11-misc.c:183
-msgid "The session is invalid"
-msgstr "ಅಮಾನà³à²¯à²µà²¾à²¦ ಅಧಿವೇಶನ"
-
-#: ../gp11/gp11-misc.c:185
-msgid "The session is read-only"
-msgstr "ಓದಲೠಮಾತà³à²°à²µà²¾à²¦ ಅಧಿವೇಶನ"
-
-#: ../gp11/gp11-misc.c:187
-msgid "An open session exists"
-msgstr "ಒಂದೠಮà³à²•à³à²¤ ಅಧಿವೇಶನವೠಅಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²¦à³†"
-
-#: ../gp11/gp11-misc.c:189
-msgid "A read-only session exists"
-msgstr "ಕೇವಲ ಓದಲೠಮಾತà³à²°à²µà²¾à²¦ ಅಧಿವೇಶನವೠಅಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²¦à³†"
-
-#: ../gp11/gp11-misc.c:191
-msgid "An administrator session exists"
-msgstr "ಒಂದೠವà³à²¯à²µà²¸à³à²¥à²¾à²ªà²• ಅಧಿವೇಶನವೠಅಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²¦à³†"
-
-#: ../gp11/gp11-misc.c:193
-msgid "The signature is bad or corrupted"
-msgstr "ಸಹಿಯೠಸರಿಯಾಗಿಲà³à²² ಅಥವ ಭà³à²°à²·à³à²Ÿà²—ೊಂಡಿದೆ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+msgid "Unlock Login Keyring"
+msgstr "ಪà³à²°à²µà³‡à²¶ ಕೀಲಿ ಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡà³"
-#: ../gp11/gp11-misc.c:195
-msgid "The signature is unrecognized or corrupted"
-msgstr "ಸಹಿಯನà³à²¨à³ ಗà³à²°à³à²¤à²¿à²¸à²²à²¾à²—ಿಲà³à²² ಅಥವ ಭà³à²°à²·à³à²Ÿà²—ೊಂಡಿದೆ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
+msgstr "ಕೀಲಿ ಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡಲೠಪà³à²°à²µà³‡à²¶ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನಮೂದಿಸಿ"
-#: ../gp11/gp11-misc.c:197
-msgid "Certain required fields are missing"
-msgstr "ಅಗತà³à²¯ ಕà³à²·à³‡à²¤à³à²°à²—ಳೠಖಾಲಿ ಇವೆ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
+msgstr ""
-#: ../gp11/gp11-misc.c:199
-msgid "Certain fields have invalid values"
-msgstr "ಕೆಲವೠಕà³à²·à³‡à²¤à³à²°à²—ಳೠಅಮಾನà³à²¯à²µà²¾à²¦ ಮೌಲà³à²¯à²—ಳನà³à²¨à³ ಹೊಂದಿವೆ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
+#, fuzzy
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr "ನೀವೠಈ ಗಣಕಕà³à²•à³† ಪà³à²°à²µà³‡à²¶à²¿à²¸à²¿à²¦à²¾à²— ಪà³à²°à²µà³‡à²¶ ಕೀಲಿಸà³à²°à³à²³à²¿à²¯à³ ತಾನಾಗಿಯೆ ಅನà³â€Œà²²à²¾à²•à³ ಆಗಿರಲಿಲà³à²²."
-#: ../gp11/gp11-misc.c:201
-msgid "The device is not present or unplugged"
-msgstr "ಸಾಧನವೠಅಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²²à³à²² ಅಥವ ಜೋಡಿಸಲಾಗಿಲà³à²²"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "ಕೀಲಿ ಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡà³"
-#: ../gp11/gp11-misc.c:203
-msgid "The device is invalid or unrecognizable"
-msgstr "ಸಾಧನವೠಅಮಾನà³à²¯à²µà²¾à²—ಿದೆ ಅಥವ ಗà³à²°à³à²¤à²¿à²¸à²²à²¾à²—ಿಲà³à²²"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
+#, c-format
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "ಕೀಲಿಸà³à²°à³à²³à²¿ '%s' ಗಾಗಿ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನಮೂದಿಸಿ"
-#: ../gp11/gp11-misc.c:205
-msgid "The device is write protected"
-msgstr "ಸಾಧನಕà³à²•à³† ಬರೆದಂತೆ ನಿರà³à²¬à²‚ಧಿಸಲಾಗಿದೆ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, fuzzy, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr ""
+"ಒಂದೠಅಜà³à²žà²¾à²¤ ಅನà³à²µà²¯à²µà³ '%s' ಕೀಲಿಸà³à²°à³à²³à²¿à²¯à²¨à³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ, ಆದರೆ ಅದನà³à²¨à³ ಲಾಕà³â€Œ "
+"ಮಾಡಲಾಗಿದೆ"
-#: ../gp11/gp11-misc.c:207
-msgid "Cannot import because the key is invalid"
-msgstr "ಆಮದೠಮಾಡಿಕೊಳà³à²³à²²à³ ಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²² à²à²•à³†à²‚ದರೆ ಕೀಲಿಯೠಅಮಾನà³à²¯à²µà²¾à²—ಿದೆ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
+msgstr "ಖಾಸಗಿ ಕೀಲಿಯನà³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡà³"
-#: ../gp11/gp11-misc.c:209
-msgid "Cannot import because the key is of the wrong size"
-msgstr "ಕೀಲಿಯನà³à²¨à³ ಆಮದೠಮಾಡಿಕೊಳà³à²³à²²à³ ಸಾಧà³à²¯à²µà²¿à²²à³à²² à²à²•à³†à²‚ದರೆ ಅದೠಒಂದೠಅಮಾನà³à²¯ ಗಾತà³à²°à²¦à³à²¦à²¾à²—ಿದೆ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+msgid "Unlock certificate"
+msgstr "ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²µà²¨à³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡà³"
-#: ../gp11/gp11-misc.c:211
-msgid "Cannot import because the key is of the wrong type"
-msgstr "ಕೀಲಿಯನà³à²¨à³ ಆಮದೠಮಾಡಿಕೊಳà³à²³à²²à³ ಸಾಧà³à²¯à²µà²¿à²²à³à²² à²à²•à³†à²‚ದರೆ ಅದೠಒಂದೠಅಮಾನà³à²¯ ಬಗೆಯದà³à²¦à²¾à²—ಿದೆ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
+msgstr "ಸಾರà³à²µà²œà²¨à²¿à²• ಕೀಲಿಯನà³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡà³"
-#: ../gp11/gp11-misc.c:213
-msgid "You are already logged in"
-msgstr "ನೀವೠಈಗಾಗಲೆ ಪà³à²°à²µà³‡à²¶à²¿à²¸à²¿à²¦à³à²¦à³€à²°à²¿"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡà³"
-#: ../gp11/gp11-misc.c:215
-msgid "No user has logged in"
-msgstr "ಯಾವà³à²¦à³† ಬಳಕೆದಾರರೠಪà³à²°à²µà³‡à²¶à²¿à²¸à²¿à²²à³à²²"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "ಖಾಸಗಿ ಕೀಲಿಯನà³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡಲೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನಮೂದಿಸಿ"
-#: ../gp11/gp11-misc.c:217
-msgid "The user's password or PIN is not set"
-msgstr "ಬಳಕೆದಾರರ ಗà³à²ªà³à²¤à²ªà²¦ ಅಥವ PIN ಅನà³à²¨à³ ಹೊಂದಿಸಲಾಗಿಲà³à²²"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²µà²¨à³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡಲೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನಮೂದಿಸಿ"
-#: ../gp11/gp11-misc.c:219
-msgid "The user is of an invalid type"
-msgstr "ಬಳಕೆದಾರರೠಅಮಾನà³à²¯ ಬಗೆಯವರಾಗಿದà³à²¦à²°à³"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+msgid "Enter password to unlock the public key"
+msgstr "ಸಾರà³à²µà²œà²¨à²¿à²• ಕೀಲಿಯನà³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡಲೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನಮೂದಿಸಿ"
-#: ../gp11/gp11-misc.c:221
-msgid "Another user is already logged in"
-msgstr "ಬೇರೊಬà³à²¬ ಬಳಕೆದಾರನೠಈಗಾಗಲೆ ಪà³à²°à²µà³‡à²¶à²¿à²¸à²¿à²¦à³à²¦à²¾à²°à³†"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡಲೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನಮೂದಿಸಿ"
-#: ../gp11/gp11-misc.c:223
-msgid "Too many users of different types logged in"
-msgstr "ವಿವಿಧ ಬಗೆಯ ಅನೇಕ ಬಳಕೆದಾರರೠಪà³à²°à²µà³‡à²¶à²¿à²¸à²¿à²¦à³à²¦à²¾à²°à³†"
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
+#, c-format
+msgid "An application wants access to the private key '%s', but it is locked"
+msgstr ""
+"ಒಂದೠಅನà³à²µà²¯à²µà³ ಖಾಸಗಿ ಕೀಲಿ '%s' ಅನà³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ, ಆದರೆ ಅದನà³à²¨à³ ಲಾಕà³â€Œ "
+"ಮಾಡಲಾಗಿದೆ"
-#: ../gp11/gp11-misc.c:225
-msgid "Cannot import an invalid key"
-msgstr "ಅಮಾನà³à²¯ ಬಗೆಯ ಕೀಲಿಯನà³à²¨à³ ಆಮದೠಮಾಡಿಕೊಳà³à²³à²²à³ ಸಾಧà³à²¯à²µà²¿à²²à³à²²"
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
+#, c-format
+msgid "An application wants access to the certificate '%s', but it is locked"
+msgstr ""
+"ಒಂದೠಪà³à²°à²®à²¾à²£à²ªà²¤à³à²° '%s' ಅನà³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ, ಆದರೆ ಅದನà³à²¨à³ ಲಾಕà³â€Œ ಮಾಡಲಾಗಿದೆ"
-#: ../gp11/gp11-misc.c:227
-msgid "Cannot import a key of the wrong size"
-msgstr "ತಪà³à²ªà²¾à²¦ ಗಾತà³à²°à²¦ ಕೀಲಿಯನà³à²¨à³ ಆಮದೠಮಾಡಿಕೊಳà³à²³à²²à³ ಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²²"
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
+#, c-format
+msgid "An application wants access to the public key '%s', but it is locked"
+msgstr ""
+"ಒಂದೠಅನà³à²µà²¯à²µà³ ಸಾರà³à²µà²œà²¨à²¿à²• ಕೀಲಿ '%s' ಅನà³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ, ಆದರೆ ಅದನà³à²¨à³ ಲಾಕà³â€Œ "
+"ಮಾಡಲಾಗಿದೆ"
-#: ../gp11/gp11-misc.c:229
-msgid "Cannot export because the key is invalid"
-msgstr "ಆಮದೠಮಾಡಿಕೊಳà³à²³à²²à³ ಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²² à²à²•à³†à²‚ದರೆ ಕೀಲಿಯೠಅಮಾನà³à²¯à²µà²¾à²—ಿದೆ"
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
+#, c-format
+msgid "An application wants access to '%s', but it is locked"
+msgstr "ಒಂದೠಅನà³à²µà²¯à²µà³ '%s' ಅನà³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ, ಆದರೆ ಅದನà³à²¨à³ ಲಾಕà³â€Œ ಮಾಡಲಾಗಿದೆ"
-#: ../gp11/gp11-misc.c:231
-msgid "Cannot export because the key is of the wrong size"
-msgstr "ಆಮದೠಮಾಡಿಕೊಳà³à²³à²²à³ ಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²² à²à²•à³†à²‚ದರೆ ಕೀಲಿಯೠಗಾತà³à²°à²µà³ ತಪà³à²ªà²¾à²—ಿದೆ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
+msgstr "ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²µà²¨à³à²¨à³/ಕೀಲಿಯನà³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡà³"
-#: ../gp11/gp11-misc.c:233
-msgid "Cannot export because the key is of the wrong type"
-msgstr "ಆಮದೠಮಾಡಿಕೊಳà³à²³à²²à³ ಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²² à²à²•à³†à²‚ದರೆ ಕೀಲಿಯೠಬಗೆಯೠತಪà³à²ªà²¾à²—ಿದೆ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
+msgstr "ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°/ಕೀಲಿ ಶೇಖರಣೆಯನà³à²¨à³ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡಲೠಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ನಮೂದಿಸಿ"
-#: ../gp11/gp11-misc.c:235
-msgid "Unable to initialize the random number generator"
-msgstr "ಮನಸà³à²¸à²¿à²—ೆ ಬಂದ ಸಂಖà³à²¯à³†à²¯ ಉತà³à²ªà²¾à²¦à²•à²µà²¨à³à²¨à³ ಆರಂಭಿಸಲೠಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²²"
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, c-format
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr ""
+"ಒಂದೠಅನà³à²µà²¯à²µà³ ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°/ಕೀಲಿ ಶೇಖರಣೆ '%s' ಅನà³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à²²à³ ಬಯಸಿದೆ, ಆದರೆ ಅದನà³à²¨à³ "
+"ಲಾಕà³â€Œ ಮಾಡಲಾಗಿದೆ"
-#: ../gp11/gp11-misc.c:237
-msgid "No random number generator available"
-msgstr "ಮನಸà³à²¸à²¿à²—ೆ ಬಂದ ಸಂಖà³à²¯à³†à²¯ ಉತà³à²ªà²¾à²¦à²•à²µà³ ಲಭà³à²¯à²µà²¿à²²à³à²²"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
+msgstr "ಹೊಸ ಗà³à²ªà³à²¤à²ªà²¦à²¦ ಅಗತà³à²¯à²µà²¿à²¦à³†"
-#: ../gp11/gp11-misc.c:239
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "ಕà³à²°à²¿à²ªà³à²Ÿà³‹ ಕಾರà³à²¯à²µà³ˆà²–ರಿಯೠಒಂದೠಅಮಾನà³à²¯à²µà²¾à²¦ ನಿಯತಾಂಕವನà³à²¨à³ ಹೊಂದಿದೆ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
+msgstr "ಸà³à²°à²•à³à²·à²¿à²¤ ಶೇಖರಣೆಗಾಗಿ ಒಂದೠಗà³à²ªà³à²¤à²ªà²¦à²¦ ಅಗತà³à²¯à²µà²¿à²¦à³†"
-#: ../gp11/gp11-misc.c:241
-msgid "Not enough space to store the result"
-msgstr "ಫಲಿತಾಂಶವನà³à²¨à³ ಶೇಖರಿಸಿಡಲೠಸಾಕಷà³à²Ÿà³ ಜಾಗವಿಲà³à²²"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
+#, c-format
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
+"'%s' ಅನà³à²¨à³ ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²—ಳನà³à²¨à³ ಅಥವ ಕೀಲಿಗಳನà³à²¨à³ ಶೇಖರಿಸಿಡಲೠಸಿದà³à²§à²—ೊಳಿಸಲà³, ಒಂದೠಗà³à²ªà³à²¤à²ªà²¦à²¦ "
+"ಅಗತà³à²¯à²µà²¿à²°à³à²¤à³à²¤à²¦à³†"
-#: ../gp11/gp11-misc.c:243
-msgid "The saved state is invalid"
-msgstr "ಉಳಿಸಲಾದ ಸà³à²¥à²¿à²¤à²¿à²¯à³ ಅಮಾನà³à²¯à²µà²¾à²—ಿದೆ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "ಕೀಲಿ ಸà³à²°à³à²³à²¿ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬದಲಾಯಿಸಿ"
-#: ../gp11/gp11-misc.c:245
-msgid "The information is sensitive and cannot be revealed"
-msgstr "ಮಾಹಿತಿಯೠಸೂಕà³à²·à³à²®à²µà²¾à²¦à³à²¦à²°à²¿à²‚ದ ಅದನà³à²¨à³ ಬಹಿರಂಗ ಪಡಿಸಲೠಸಾಧà³à²¯à²µà²¿à²²à³à²²"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "ಸà³à²°à²•à³à²·à²¿à²¤ ಶೇಖರಣೆಗಾಗಿ ಒಂದೠಗà³à²ªà³à²¤à²ªà²¦à²¦ ಅಗತà³à²¯à²µà²¿à²¦à³†"
-#: ../gp11/gp11-misc.c:247
-msgid "The state cannot be saved"
-msgstr "ಸà³à²¥à²¿à²¤à²¿à²¯à²¨à³à²¨à³ ಉಳಿಸಲೠಸಾಧà³à²¯à²µà²¿à²²à³à²²"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
+#, c-format
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
+msgstr ""
-#: ../gp11/gp11-misc.c:249
-msgid "The module has not been initialized"
-msgstr "ಘಟಕವೠಇನà³à²¨à³‚ ಆರಂಭಗೊಂಡಿಲà³à²²"
+#: ../tool/gkr-tool.c:102
+#, c-format
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
-#: ../gp11/gp11-misc.c:251
-msgid "The module has already been initialized"
-msgstr "ಘಟಕವೠಈಗಾಗಲೆ ಆರಂಭಗೊಂಡಿದೆ"
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
-#: ../gp11/gp11-misc.c:253
-msgid "Cannot lock data"
-msgstr "ದತà³à²¤à²¾à²‚ಶನà³à²¨à³ ಲಾಕೠಮಾಡಲೠಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²²"
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
-#: ../gp11/gp11-misc.c:255
-msgid "The data cannot be locked"
-msgstr "ದತà³à²¤à²¾à²‚ಶವನà³à²¨à³ ಲಾಕೠಮಾಡಲಾಗà³à²µà³à²¦à²¿à²²à³à²²"
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
+msgstr "ಗà³à²ªà³à²¤à²ªà²¦à²—ಳನà³à²¨à³ ಗೂಢಲಿಪೀಕರಿಸದೆ ಶೇಖರಿಸಿಡಬೇಕೆ?"
-#: ../gp11/gp11-misc.c:257
-msgid "The signature request was rejected by the user"
-msgstr "ಬಳಕೆದಾರರಿಂದ ಸಹಿ ಮನವಿಯೠತಿರಸà³à²•à²°à²¿à²¸à²²à³à²ªà²Ÿà³à²Ÿà²¿à²¦à³†"
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
+"ಒಂದೠಖಾಲಿ ಇರà³à²µ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಬಳಸà³à²µà³à²¦à²°à²¿à²‚ದ, ಶೇಖರಿಸಲಾದ ನಿಮà³à²® ಗà³à²ªà³à²¤à²ªà²¦à²—ಳೠಸà³à²°à²•à³à²·à²¿à²¤à²µà²¾à²—ಿ "
+"ಗೂಢಲಿಪೀಕರಿಸಲà³à²ªà²¡à³à²µà³à²¦à²¿à²²à³à²². ನಿಮà³à²® ಕಡತಗಳನà³à²¨à³ ನಿಲà³à²•à²¿à²¸à²¿à²•à³Šà²³à³à²³à³à²µ ಯಾರೆ ಆದರೂ ಆ ಗà³à²ªà³à²¤à²ªà²¦à²—ಳನà³à²¨à³ "
+"ನೋಡಬಹà³à²¦à²¾à²—ಿದೆ."
-#: ../gp11/gp11-misc.c:261
-msgid "Unknown error"
-msgstr "ಗೊತà³à²¤à²¿à²²à³à²²à²¦ ದೋಷ"
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
+msgstr "ಅಸà³à²°à²•à³à²·à²¿à²¤ ಶೇಖರಣೆಯನà³à²¨à³ ಬಳಸà³"
-#: ../library/gnome-keyring-utils.c:168
-msgid "Access Denied"
-msgstr "ನಿಲà³à²•à²¨à³à²¨à³ ನಿರಾಕರಿಸಲಾಗಿದೆ"
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr "ಗà³à²ªà³à²¤à²ªà²¦à²µà³ ತಾಳೆಯಾಗà³à²¤à³à²¤à²¿à²²à³à²²."
-#: ../library/gnome-keyring-utils.c:170
-msgid "The gnome-keyring-daemon application is not running."
-msgstr "gnome-keyring-daemon ಅನà³à²µà²¯à²µà³ ಚಾಲನೆಯಲà³à²²à²¿à²²à³à²²."
+#: ../ui/gku-prompt-tool.c:649
+msgid "Password cannot be blank"
+msgstr "ಗà³à²ªà³à²¤à²ªà²¦à²µà³ ಖಾಲಿ ಇರà³à²µà²‚ತಿಲà³à²²"
-#: ../library/gnome-keyring-utils.c:172
-msgid "Error communicating with gnome-keyring-daemon"
-msgstr "gnome-keyring-daemon ನೊಂದಿಗೆ ವà³à²¯à²µà²¹à²°à²¿à²¸à³à²µà²²à³à²²à²¿ ದೋಷ ಉಂಟಾಗಿದೆ"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:174
-msgid "A keyring with that name already exists"
-msgstr "ಆ ಹೆಸರಿನ ಕೀಲಿ ಸà³à²°à³à²³à²¿à²¯à³ ಈಗಾಗಲೆ ಅಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²¦à³†"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:176
-msgid "Programmer error: The application sent invalid data."
-msgstr "ಪà³à²°à³Šà²—à³à²°à²¾à²‚ ದೋಷ: ಅನà³à²µà²¯à²µà³ ಅಮಾನà³à²¯à²µà²¾à²¦ ಮಾಹಿತಿಯನà³à²¨à³ ಕಳà³à²¹à²¿à²¸à²¿à²¦à³†."
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
+msgstr "ಹೊಸ ಗà³à²ªà³à²¤à²ªà²¦à²¦ ದೃಢತೆ"
-#: ../library/gnome-keyring-utils.c:178
-msgid "No matching results"
-msgstr "ತಾಳೆಯಾಗà³à²µ ಯಾವà³à²µà³‚ ದೊರೆತಿಲà³à²²"
+#: ../ui/gku-prompt.ui.h:2
+#, fuzzy
+msgid "_Application:"
+msgstr "ಸà³à²¥à²³(_L):"
-#: ../library/gnome-keyring-utils.c:180
-msgid "A keyring with that name does not exist."
-msgstr "ಆ ಹೆಸರಿನ ಕೀಲಿ ಸà³à²°à³à²³à²¿à²¯à³ ಅಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²²à³à²²."
+#: ../ui/gku-prompt.ui.h:3
+#, fuzzy
+msgid "_Confirm:"
+msgstr "ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಖಚಿತಪಡಿಸà³(_C):"
-#: ../library/gnome-keyring-utils.c:187
-msgid "The keyring has already been unlocked."
-msgstr "ಕೀಲಿಸà³à²°à³à²³à²¿à²¯à³ ಈಗಾಗಲೆ ಅನà³â€Œà²²à²¾à²•à³ ಮಾಡಲà³à²ªà²Ÿà³à²Ÿà²¿à²¦à³†."
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
-#: ../pkcs11/gck/gck-certificate.c:716
-msgid "Unnamed Certificate"
-msgstr "ಹೆಸರಿಲà³à²²à²¦ ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°"
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr ""
-#: ../pkcs11/ssh-store/gck-ssh-private-key.c:328
-msgid "Couldn't parse public SSH key"
-msgstr "ಸಾರà³à²µà²œà²¨à²¿à²• SSH ಕೀಲಿಯನà³à²¨à³ ಪಾರà³à²¸à³ ಮಾಡಲಾಗಿಲà³à²²"
+#: ../ui/gku-prompt.ui.h:6
+#, fuzzy
+msgid "_Old Password:"
+msgstr "ಹಳೆಯ ಗà³à²ªà³à²¤à²ªà²¦(_O):"
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "ಗà³à²ªà³à²¤à²ªà²¦(_P):"
diff --git a/po/ko.po b/po/ko.po
index f42bd222..6072f16f 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -7,22 +7,21 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-09-19 08:45+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-23 05:52+0900\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: GNOME Korea <gnome-kr@googlegroups.com>\n"
+"Language: Korean\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: Korean\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "ì´ë¦„ ì—†ìŒ"
@@ -98,35 +97,34 @@ msgstr "그놈 키 모ìŒ: GPG ì—ì´ì „트"
msgid "GPG Password Agent"
msgstr "GPG 암호 ì—ì´ì „트"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "ì•Œ 수 ì—†ìŒ"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP 키: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "암호문 입력"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "ì¼ì • 시간 ìž…ë ¥ì´ ì—†ìœ¼ë©´ 암호 지우기"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "ì¼ì • 시간 ë’¤ì— ì•”í˜¸ 지우기"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "로그아웃할 때 암호 지우기"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "로그ì¸"
@@ -170,7 +168,7 @@ msgstr "공통 ì´ë¦„"
msgid "Surname"
msgstr "성"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "ì¼ë ¨ 번호"
@@ -226,7 +224,7 @@ msgstr "DN 권한"
msgid "Pseudonym"
msgstr "필명"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -242,7 +240,7 @@ msgstr "MD5 ë° RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 ë° RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -283,585 +281,6 @@ msgstr ""
msgid "Unexpected error in waitpid() (%s)"
msgstr "waitpid()ì—ì„œ 예ìƒì¹˜ 못한 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤ (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "PKCS#11 ëª¨ë“ˆì„ ì½ì–´ë“¤ì´ëŠ”ë° ì˜¤ë¥˜: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "ìž˜ëª»ëœ PKCS#11 모듈: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "PKCS#11 ëª¨ë“ˆì„ ì¤€ë¹„í•  수 없습니다: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "PKCS#11 ëª¨ë“ˆì„ ì´ˆê¸°í™”í•  수 없습니다: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "등ë¡í•œ PKCS#11 ëª¨ë“ˆì„ ì´ˆê¸°í™”í•  수 없습니다: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "ì´ë¦„"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "발급 날짜"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "만료 날짜"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "ì¸ì¦ì„œ"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>ê°™ì€ ì´ë¦„ì˜ íŒŒì¼ì´ ì´ë¯¸ 있습니다.</b>\n"
-"\n"
-"ì´ íŒŒì¼ì„ 새 파ì¼ë¡œ ë®ì–´ì“°ì‹œê² ìŠµë‹ˆê¹Œ?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "바꾸기(_R)"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "ìž‘ì—…ì„ ì·¨ì†Œí–ˆìŠµë‹ˆë‹¤."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "ì¸ì¦ì„œ 내보내기"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "ì¸ì¦ì„œ 파ì¼"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "PEM 파ì¼"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "다른 ì´ë¦„"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "XMPP 주소"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS 서버"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "ì „ìžë©”ì¼"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "X400 주소"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "디렉터리 ì´ë¦„"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "EDI 파티 ì´ë¦„"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "IP 주소"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "ë“±ë¡ ID"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "기본 제한"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "ì¸ì¦ 기관"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "예"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "아니요"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "최대 경로 길ì´"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "무제한"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "í™•ìž¥ëœ í‚¤ 사용"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "허용한 목ì "
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "제목 ì‹ë³„ ì´ë¦„"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "키 ì‹ë³„ ì´ë¦„"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "디지털 서명"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "키 암호화"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "ë°ì´í„° 암호화"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "키 êµí™˜"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "ì¸ì¦ì„œ 서명"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "철회 ëª©ë¡ ì„œëª…"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "키 사용"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "사용"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "제목 다른 ì´ë¦„"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "확장"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "ì‹ë³„ ì´ë¦„"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "ê°’"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "중대함"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "ì¸ì¦ì„œë¥¼ 내보낼 수 없습니다."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "ì‹ ì›"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "확ì¸í•œ ê³³"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "만료 날짜"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "제목"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "ë°œê¸‰ìž ì´ë¦„"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "발급한 ì¸ì¦ì„œ"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "버전"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "유효 기간 시작"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "유효 기간 ë"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "ì¸ì¦ì„œ 핑거프린트"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "서명"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "서명 알고리듬"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "서명 파ë¼ë¯¸í„°"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "공개 키 정보"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "키 알고리듬"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "키 파ë¼ë¯¸í„°"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "키 í¬ê¸°"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "키 SHA1 핑거프린트"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "공개 키"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "ìƒì„¸ ì •ë³´(_D)"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "'%s'ì„(를) 표시할 수 없습니다"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "파ì¼ì„ 표시할 수 없습니다"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "ì´ìœ "
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "ì´ ì¢…ë¥˜ì˜ íŒŒì¼ì„ 표시할 수 없습니다."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "ì¸ì¦ì„œ ë° í‚¤ 가져오기"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "가져와서 저장:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "암호:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "PGP 키"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "키 ID"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "gnupg 프로세스가 ë‹¤ìŒ ë¦¬í„´ê°’ìœ¼ë¡œ ë났습니다: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "gnupg 프로세스가 ë‹¤ìŒ ì‹œê·¸ë„ë¡œ ê°•ì œ 종료ë˜ì—ˆìŠµë‹ˆë‹¤: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919 ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "ìž‘ì—…ì„ ì·¨ì†Œí–ˆìŠµë‹ˆë‹¤"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "ê°œì¸ í‚¤ì˜ ìž ê¸ˆì„ í’€ 암호를 입력하십시오"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "ì¸ì¦ì„œì˜ ìž ê¸ˆì„ í’€ 암호를 입력하십시오"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "ìž ê¸ˆì„ í’€ 암호를 입력하십시오"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "ê°œì¸ í‚¤ë¥¼ 가져오려면 ìž ê¸ˆì„ í’€ì–´ì•¼ 합니다"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "ì¸ì¦ì„œë¥¼ 가져오려면 ìž ê¸ˆì„ í’€ì–´ì•¼ 합니다"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "ë°ì´í„°ë¥¼ 가져오려면 ìž ê¸ˆì„ í’€ì–´ì•¼ 합니다"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "'%s' ê°œì¸ í‚¤ë¥¼ 가져오려면 ìž ê¸ˆì„ í’€ì–´ì•¼ 합니다"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "'%s' ì¸ì¦ì„œë¥¼ 가져오려면 ìž ê¸ˆì„ í’€ì–´ì•¼ 합니다"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "'%s'ì„(를) 가져오려면 ìž ê¸ˆì„ í’€ì–´ì•¼ 합니다"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "가져와서 저장할 위치가 없습니다"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "ì¸ì¦ì„œ/키 가져오기"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "가져온 ì¸ì¦ì„œ/키를 저장할 위치를 ì„ íƒí•˜ì‹­ì‹œì˜¤."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "키"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "ê°œì¸ RSA 키"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "ê°œì¸ DSA 키"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "ê°œì¸ í‚¤"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "공개 DSA 키"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d비트"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "ê°•ë„"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "알고리듬"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "í¬ê¸°"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "핑거프린트"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "알지 못하거나 지ì›í•˜ì§€ 않는 ë°ì´í„°."
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "잘못ë˜ì—ˆê±°ë‚˜ ì†ìƒëœ ë°ì´í„°ë¥¼ 파싱할 수 없습니다."
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "ë°ì´í„°ê°€ 잠겨 있습니다"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "지정한 ì¸ì¦ì„œë¥¼ 저장할 위치를 ì°¾ì„ ìˆ˜ 없습니다"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "로그ì¸í•  ë•Œ ìžë™ìœ¼ë¡œ ì´ í‚¤ ëª¨ìŒ ìž ê¸ˆ 풀기"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "ë‹¤ìŒ ë™ìž‘ ë’¤ì— í‚¤ ëª¨ìŒ ìž ê·¸ê¸°"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "ì¼ì • 시간 ìž…ë ¥ì´ ì—†ìœ¼ë©´ 키 ëª¨ìŒ ìž ê·¸ê¸°"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "로그아웃할 ë•Œ ì´ í‚¤ ëª¨ìŒ ìž ê·¸ê¸°"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "분"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "잠금 풀기: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "잠금 풀기"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "암호가 올바르지 않습니다"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "암호"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr "'%s'ì˜ ë‚´ìš©ì´ ìž ê²¨ 있습니다. ë‚´ìš©ì„ ë³´ë ¤ë©´ 올바른 암호를 입력하십시오."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr "ë‚´ìš©ì´ ìž ê²¨ 있습니다. ë‚´ìš©ì„ ë³´ë ¤ë©´ 올바른 암호를 입력하십시오."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "GCR ì¸ì¦ì„œ ë° í‚¤ 보기"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "í”„ë¡œê·¸ëž¨ì˜ ë²„ì „ì„ í‘œì‹œí•©ë‹ˆë‹¤"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[파ì¼...]"
-
-# 커맨드 옵션 분류
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- ì¸ì¦ì„œ ë° í‚¤ íŒŒì¼ ë³´ê¸°"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "ì¸ì¦ì„œ 보기"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "URI ì¸ì½”ë”©ì´ ìž˜ëª»ë˜ì—ˆìŠµë‹ˆë‹¤."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "URIì— 'pkcs11' ìŠ¤í‚´ì´ ë“¤ì–´ìžˆì§€ 않습니다."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "URI 형ì‹ì´ 잘못ë˜ì—ˆìŠµë‹ˆë‹¤."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "URI ë²„ì „ì´ ìž˜ëª»ë˜ì—ˆìŠµë‹ˆë‹¤."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "ì´ë¦„ 없는 ì¸ì¦ì„œ"
@@ -871,7 +290,7 @@ msgid "Couldn't parse public SSH key"
msgstr "공개 SSH 키를 파싱할 수 없습니다"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "다ìŒì˜ 잠금 풀기 암호: %s"
@@ -927,10 +346,26 @@ msgstr "ì¸ì¦ì„œ 잠금 풀기"
msgid "Unlock public key"
msgstr "공개 키 잠금 풀기"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "잠금 풀기"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "ê°œì¸ í‚¤ì˜ ìž ê¸ˆì„ í’€ 암호를 입력하십시오"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "ì¸ì¦ì„œì˜ ìž ê¸ˆì„ í’€ 암호를 입력하십시오"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "공개 í‚¤ì˜ ìž ê¸ˆì„ í’€ 암호를 입력하십시오"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "ìž ê¸ˆì„ í’€ 암호를 입력하십시오"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1016,11 +451,11 @@ msgstr "명령:"
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "암호를 암호화하지 ì•Šì€ ìƒíƒœë¡œ 저장하시겠습니까?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1029,15 +464,15 @@ msgstr ""
"암호를 비워 놓으면 암호화하지 ì•Šì€ ìƒíƒœë¡œ 암호를 저장합니다. 그러면 파ì¼ì„ "
"ë³¼ 수 있는 사람ì´ë©´ 암호를 알아낼 수 있습니다."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "안전하지 ì•Šì€ ì €ìž¥ì†Œ 사용"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "암호가 맞지 않습니다."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "암호는 비워져 있으면 안 ë©ë‹ˆë‹¤"
diff --git a/po/lt.po b/po/lt.po
index 0b11f287..56f78276 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,23 +7,23 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring HEAD\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-09-19 08:45+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-24 01:26+0300\n"
"Last-Translator: Aurimas ÄŒernius <aurisc4@gmail.com>\n"
"Language-Team: Lithuanian <gnome-lt@lists.akl.lt>\n"
+"Language: lt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: lt\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
+"%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Virtaal 0.5.2\n"
#. TRANSLATORS: This is the label for an keyring created without a label
-#: ../daemon/dbus/gkd-secret-change.c:78
-#: ../daemon/dbus/gkd-secret-create.c:79
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Nepavadinta"
@@ -39,8 +39,12 @@ msgstr "Pasirinkite naują raktinės „%s“ slaptažodį"
#: ../daemon/dbus/gkd-secret-change.c:92
#, c-format
-msgid "An application wants to change the password for the '%s' keyring. Choose the new password you want to use for it."
-msgstr "Programa ketina pakeisti raktinės „%s“ slaptažodį. Turite pasirinkti jai naudotiną slaptažodį."
+msgid ""
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
+msgstr ""
+"Programa ketina pakeisti raktinės „%s“ slaptažodį. Turite pasirinkti jai "
+"naudotiną slaptažodį."
#: ../daemon/dbus/gkd-secret-change.c:111
msgid "The original password was incorrect"
@@ -56,8 +60,12 @@ msgstr "Pasirinkite naujos raktinės slaptažodį"
#: ../daemon/dbus/gkd-secret-create.c:86
#, c-format
-msgid "An application wants to create a new keyring called '%s'. Choose the password you want to use for it."
-msgstr "Programa nori sukurti naują raktinę pavadinimu „%s“. Turite pasirinkti jai naudotiną slaptažodį."
+msgid ""
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
+msgstr ""
+"Programa nori sukurti naują raktinę pavadinimu „%s“. Turite pasirinkti jai "
+"naudotiną slaptažodį."
#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
msgid "Certificate and Key Storage"
@@ -91,36 +99,34 @@ msgstr "GNOME raktinÄ—: GPG agentas"
msgid "GPG Password Agent"
msgstr "GPG slaptažodžių agentas"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104
-#: ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Nežinoma"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP raktas: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Įveskite slaptafrazę"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Užmiršti šį slaptažodį, jei nenaudojama"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Užmiršti šį slaptažodį po"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Užmiršti šį slaptažodį, kai atsijungiu"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Prisijungimas"
@@ -165,7 +171,6 @@ msgid "Surname"
msgstr "PavardÄ—"
#: ../egg/egg-oid.c:69
-#: ../gcr/gcr-certificate-renderer.c:652
msgid "Serial Number"
msgstr "Serijos numeris"
@@ -222,7 +227,6 @@ msgid "Pseudonym"
msgstr "Slapyvardis"
#: ../egg/egg-oid.c:98
-#: ../gcr/gcr-key-renderer.c:310
msgid "RSA"
msgstr "RSA"
@@ -239,7 +243,6 @@ msgid "SHA1 with RSA"
msgstr "MD2 su RSA"
#: ../egg/egg-oid.c:103
-#: ../gcr/gcr-key-renderer.c:312
msgid "DSA"
msgstr "DSA"
@@ -271,614 +274,15 @@ msgstr "Laiko žymos"
#: ../egg/egg-spawn.c:273
#, c-format
msgid "Unexpected error in select() reading data from a child process (%s)"
-msgstr "Netikėta klaida funkcijoje select() skaitant duomenis iš antrinio proceso (%s)"
+msgstr ""
+"Netikėta klaida funkcijoje select() skaitant duomenis iš antrinio proceso "
+"(%s)"
#: ../egg/egg-spawn.c:320
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "NetikÄ—ta klaida funkcijoje waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Klaida įkeliant PKCS#11 modulį: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Netinkamas PKCS#11 modulis: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Nepavyko nustatyti PKCS#11 modulio: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "Nepavyko inicijuoti PKCS#11 modulio: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "Nepavyko inicijuoti registruotų PKCS#11 modulių: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388
-#: ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Vardas"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "IÅ¡davÄ—"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "Galioja iki"
-
-#: ../gcr/gcr-certificate.c:1060
-#: ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101
-#: ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "Liudijimas"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Failas Å¡iuo pavadinimu jau yra.</b>\n"
-"\n"
-"Ar norite jį pakeisti nauju failu?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "Pa_keisti"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "Operacija nutraukta."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Eksportuoti liudijimÄ…"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Liudijimo failai"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "PEM failai"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Kitas vardas"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-#| msgid "IP Address"
-msgid "XMPP Addr"
-msgstr "XMPP adresas"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-#| msgid "DNS"
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "El. paštas"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "X400 adresas"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Katalogo pavadinimas"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "EDI Å¡alies pavadinimas"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "IP adresas"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "Registracijos ID"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Pagrindiniai ribojimai"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "Liudijimo įstaiga"
-
-#: ../gcr/gcr-certificate-renderer.c:119
-#: ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Taip"
-
-#: ../gcr/gcr-certificate-renderer.c:119
-#: ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Ne"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Didžiausias kelio ilgis"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Neribojamas"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "IÅ¡plÄ—stinis rakto naudojimas"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Leidžiami tikslai"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Subjekto rakto identifikatorius"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Rakto identifikatorius"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Skaitmeninis parašas"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Rakto Å¡ifravimas"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Duomenų šifravimas"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Rakto sutartis"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Liudijimo parašas"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Panaikinimų sąrašo parašas"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Rakto naudojimas"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Naudojimai"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Subjekto alternatyvūs vardai"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "PlÄ—tinys"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Identifikatorius"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Reikšmė"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Kritinis"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Nepavyko eksportuoti sertifikato."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "TapatybÄ—"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Patikrino"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "Galioja iki"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Kam išduotas"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Kas išdavė"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "IÅ¡duotasis liudijimas"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Versija"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Negalioja iki"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Negalioja po "
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Sertifikato kontroliniai kodai"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675
-#: ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Parašas"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Parašo algoritmas"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Parašo parametrai"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Viešojo rakto informacija"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Viešojo rakto algoritmas"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Rakto parametrai"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Rakto dydis"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "Rakto SHA1 kontrolinis kodas"
-
-#: ../gcr/gcr-certificate-renderer.c:719
-#: ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "Viešasis raktas"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_IÅ¡sami informacija"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "Nepavyko parodyti „%s“"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "Nepavyko parodyti failo"
-
-#: ../gcr/gcr-failure-renderer.c:170
-#| msgid "Version"
-msgid "Reason"
-msgstr "Priežastis"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Nepavyksta parodyti Å¡io tipo failo."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Importuoti liudijimus ir raktus"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Importuoti į:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Slaptažodis:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "PGP raktas"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "Rakto ID"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Gnupg procesas baigÄ—si su kodu: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Gnupg procesas baigÄ—si su signalu: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695
-#: ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919
-#: ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "Operacija nutraukta"
-
-#: ../gcr/gcr-importer.c:172
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Įveskite slaptažodį, kad atrakintumėte privatų raktą"
-
-#: ../gcr/gcr-importer.c:174
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Įveskite slaptažodį, kad atrakintumėte liudijimą"
-
-#: ../gcr/gcr-importer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Įveskite atrakinimo slaptažodį"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Norint importuoti privatųjį raktą „%s“, jį reiks atrakinti"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Norint importuoti liudijimą, jį reiks atrakinti"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Norint importuoti duomenis, juos reiks atrakinti"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Norint importuoti privatųjį raktą „%s“, jį reiks atrakinti"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Norint importuoti liudijimą „%s“, jį reiks atrakinti"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Norint importuoti „%s“, jį reiks atrakinti"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Neprieinama vieta, į kurią importuoti"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Importuoti liudijimus/raktus"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Pasirinkite vietą importuotų liudijimų/raktų saugojimui."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Raktas"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Privatus RSA raktas"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Privatus DSA raktas"
-
-#: ../gcr/gcr-key-renderer.c:287
-#: ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "Privatus raktas"
-
-#: ../gcr/gcr-key-renderer.c:290
-#: ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Viešasis DSA raktas"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bitas"
-msgstr[1] "%d bitai"
-msgstr[2] "%d bitų"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Stiprumas"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algoritmas"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Dydis"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Kontroliniai kodai"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "Duomenys netaisyklingi arba neatpažinti"
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "Nepavyko apdoroti netaisyklingų arba sugadintų duomenų."
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "Duomenys užrakinti"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Nepavyksta rasti vietos prisegto sertifikato įrašymui"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Automatiškai atrakinti šią raktinę, kai prisijungiu"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Užrakinti šią raktinę po"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Užrakinti šią raktinę, jei nenaudojama"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Užrakinti šią raktinę, kai atsijungiu"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minuÄių"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-#| msgid "Unlock"
-msgid "Unlock: %s"
-msgstr "Atrakinti: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65
-#: ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Atrakinti"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-#| msgid "The unlock password was incorrect"
-msgid "The password was incorrect"
-msgstr "Slaptažodis neteisingas"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-#| msgid "Password:"
-msgid "Password"
-msgstr "Slaptažodis"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid "The contents of '%s' are locked. In order to view the contents, enter the correct password."
-msgstr "„%s“ turinys užrakintas. Norėdami pamatyti turinį, įveskite teisingą slaptažodį."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid "The contents are locked. In order to view the contents, enter the correct password."
-msgstr "Turinys užrakintas. Norėdami pamatyti turinį, įveskite teisingą slaptažodį."
-
-#: ../gcr/gcr-viewer-tool.c:41
-#| msgid "Certificate and Key Storage"
-msgid "GCR Certificate and Key Viewer"
-msgstr "GCR liudijimų ir raktų žiūryklė"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Rodyti programos versijÄ…"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[failas...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-#| msgid "Certificate files"
-msgid "- View certificate and key files"
-msgstr "- žiūrėti liudijimų ir raktų failus"
-
-#: ../gcr/gcr-viewer-tool.c:118
-#| msgid "Certificate files"
-msgid "Certificate Viewer"
-msgstr "Liudijimų žiūryklė"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-#| msgid "The URI has invalid syntax. The '%s' field encoding is invalid."
-msgid "The URI has invalid encoding."
-msgstr "Bloga URI koduotÄ—."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "URI neturi „pkcs11“ schemos."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "Bloga URI sintaksÄ—."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "Blogas URI versijos numeris."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Bevardis liudijimas"
@@ -888,7 +292,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Nepavyko apdoroti viešojo SSH rakto"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "„%s“ atrakinimo slaptažodis"
@@ -907,12 +311,19 @@ msgid "Enter password to unlock your login keyring"
msgstr "Įveskite slaptažodį norėdami atrakinti savo prisijungimo raktinę"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
-msgid "The password you use to log in to your computer no longer matches that of your login keyring."
-msgstr "Slaptažodis, kurį naudojate prisijungdami prie kompiuterio, nebeatitinka jūsų prisijungimo raktinės slaptažodžio."
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
+msgstr ""
+"Slaptažodis, kurį naudojate prisijungdami prie kompiuterio, nebeatitinka "
+"jūsų prisijungimo raktinės slaptažodžio."
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
-msgid "The login keyring did not get unlocked when you logged into your computer."
-msgstr "Prisijungimo raktinė nebuvo automatiškai atrakinta, kai prisijungėte prie savo kompiuterio."
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr ""
+"Prisijungimo raktinė nebuvo automatiškai atrakinta, kai prisijungėte prie "
+"savo kompiuterio."
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
msgid "Unlock Keyring"
@@ -940,27 +351,49 @@ msgstr "Atrakinti liudijimÄ…"
msgid "Unlock public key"
msgstr "Atrakinti viešąjį raktą"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Atrakinti"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Įveskite slaptažodį, kad atrakintumėte privatų raktą"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Įveskite slaptažodį, kad atrakintumėte liudijimą"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Įveskite slaptažodį, kad atrakintumėte viešąjį raktą"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Įveskite atrakinimo slaptažodį"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
msgid "An application wants access to the private key '%s', but it is locked"
-msgstr "Nežinoma programa nori gauti prieigÄ… prie privataus rakto „%s“, taÄiau jis užrakintas"
+msgstr ""
+"Nežinoma programa nori gauti prieigÄ… prie privataus rakto „%s“, taÄiau jis "
+"užrakintas"
#. TRANSLATORS: The certificate is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
#, c-format
msgid "An application wants access to the certificate '%s', but it is locked"
-msgstr "Nežinoma programa nori gauti prieigÄ… prie liudijimo „%s“, taÄiau jis užrakintas"
+msgstr ""
+"Nežinoma programa nori gauti prieigÄ… prie liudijimo „%s“, taÄiau jis "
+"užrakintas"
#. TRANSLATORS: The public key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
#, c-format
msgid "An application wants access to the public key '%s', but it is locked"
-msgstr "Nežinoma programa nori gauti prieigÄ… prie vieÅ¡ojo rakto „%s“, taÄiau jis užrakintas"
+msgstr ""
+"Nežinoma programa nori gauti prieigÄ… prie vieÅ¡ojo rakto „%s“, taÄiau jis "
+"užrakintas"
#. TRANSLATORS: The object '%s' is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
@@ -979,8 +412,12 @@ msgstr "Įveskite slaptažodį liudijimų/raktų saugyklos atrakinimui"
#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
#, c-format
-msgid "An application wants access to the certificate/key storage '%s', but it is locked"
-msgstr "Programa nori gauti prieigą prie liudijimų/raktų saugyklos „%s“, bet pastaroji užrakinta"
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr ""
+"Programa nori gauti prieigą prie liudijimų/raktų saugyklos „%s“, bet "
+"pastaroji užrakinta"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
msgid "New Password Required"
@@ -992,8 +429,12 @@ msgstr "Įveskite saugyklos saugos slaptažodį"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
#, c-format
-msgid "In order to prepare '%s' for storage of certificates or keys, a password is required"
-msgstr "Norint paruošti saugyklą „%s“ liudijimų ar raktų saugojimui, reiks slaptažodžio"
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
+"Norint paruošti saugyklą „%s“ liudijimų ar raktų saugojimui, reiks "
+"slaptažodžio"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
msgid "Change Password"
@@ -1005,8 +446,11 @@ msgstr "Pakeisti saugios saugyklos slaptažodį"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
-msgid "To change the password for '%s', the original and new passwords are required"
-msgstr "Norėdami pakeisti „%s“ slaptažodį, reikia įvesti originalų ir naują slaptažodžius"
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
+msgstr ""
+"Norėdami pakeisti „%s“ slaptažodį, reikia įvesti originalų ir naują "
+"slaptažodžius"
#: ../tool/gkr-tool.c:102
#, c-format
@@ -1022,23 +466,28 @@ msgstr "komandos:"
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Saugoti nešifruotus slaptažodžius?"
-#: ../ui/gku-prompt-tool.c:595
-msgid "By choosing to use a blank password, your stored passwords will not be safely encrypted. They will be accessible by anyone with access to your files."
-msgstr "Jei pasirinksite tuÅ¡ÄiÄ… slaptažodį, saugomi slaptažodžiai nebus saugiai užšifruoti. Jie bus prieinami visiems, kas gali skaityti JÅ«sų failus."
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
+"Jei pasirinksite tuÅ¡ÄiÄ… slaptažodį, saugomi slaptažodžiai nebus saugiai "
+"užšifruoti. Jie bus prieinami visiems, kas gali skaityti Jūsų failus."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Naudoti nesaugiÄ… saugyklÄ…"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Slaptažodžiai nesutampa."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Slaptažodis negali bÅ«ti tuÅ¡Äias"
@@ -1077,45 +526,3 @@ msgstr "_Senas slaptažodis:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Slaptažodis:"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "Nepakanka laisvos atminties"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "Nurodytas lizdo id netaisyklingas"
-
-#~ msgid "Internal error"
-#~ msgstr "VidinÄ— klaida"
-
-#~ msgid "The operation failed"
-#~ msgstr "Operacija nesÄ—kminga"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "Netaisyklingi argumentai"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "Modulis negali sukurti reikalingų gijų"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "Modulis negali užrakinti duomenų"
-
-#~ msgid "The field is read-only"
-#~ msgstr "Laukas tik skaitymui"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "Laukas slaptas ir negali būti parodytas"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "Laukas netaisyklingas arba neegzistuoja"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "Netaisyklinga lauko reikšmė"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "Duomenys netaisyklingi arba neatpažinti"
-
-#~ msgid "The data is too long"
-#~ msgstr "Duomenys per ilgi"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "Įrenginyje įvyko klaida"
diff --git a/po/lv.po b/po/lv.po
index 15780603..aa196b78 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -10,12 +10,12 @@
msgid ""
msgstr ""
"Project-Id-Version: lv\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug."
-"cgi?product=gnome-keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-09-15 09:51+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-15 20:19+0300\n"
"Last-Translator: RÅ«dofls Mazurs <rudolfs.mazurs@gmail.com>\n"
"Language-Team: Latvian <lata-l10n@googlegroups.com>\n"
+"Language: lv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -23,12 +23,11 @@ msgstr ""
"X-Generator: Lokalize 1.2\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
"2);\n"
-"Language: lv\n"
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Nenosaukts"
@@ -104,35 +103,34 @@ msgstr "GNOME Keyring: GPG aģents"
msgid "GPG Password Agent"
msgstr "GPG paroles aģents"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "NezinÄms"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP atslēga: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Ievadiet paroli"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Aizmirst šo atslēgu, ja nekas nenotiek pēc"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Aizmirst šo atslēgu pēc"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Aizmirst šo atslēgu, kad es atsakos no sistēmas"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "PieteikÅ¡anÄs"
@@ -176,7 +174,7 @@ msgstr "Pilnais vÄrds"
msgid "Surname"
msgstr "UzvÄrds"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "SÄ“rijas numurs"
@@ -232,7 +230,7 @@ msgstr "DN identifikators"
msgid "Pseudonym"
msgstr "Pseidonīms"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -248,7 +246,7 @@ msgstr "MD5 ar RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 ar RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -287,592 +285,6 @@ msgstr "Negaidīta kļūda select() lasot datus no bērna procesa (%s)"
msgid "Unexpected error in waitpid() (%s)"
msgstr "Negaidīta kļūda waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Kļūda, ielÄdÄ“jot PKCS#11 moduli: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Nederīgs PKCS#11 modulis: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Nevarēja iestatīt PKCS#11 moduli: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "Nevarēja inicializēt PKCS#11 moduli: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "Nevarēja inicializēt reģistrētus PKCS#11 moduļus: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Nosaukums"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Izdevējs"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "Derīguma termiņš"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "SertifikÄts"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Fails ar Å¡Ädu nosaukumu jau pastÄv</b>\n"
-"\n"
-"Vai vÄ“laties aizstÄt to ar jauno failu?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_Aizvietot"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "Darbība tika atcelta."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "EksportÄ“t sertifikÄtu"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "SertifikÄta faili"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "PEM faili"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Citi nosaukumi"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "XMPP adrese"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "E-pasta adrese"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "X400 adrese"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Mapes nosaukums"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "EDI paritÄtes nosaukums"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "IP adrese"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "Reģistrēts ID"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Pamata ierobežojumi"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "SertifikÄta institÅ«cija"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "JÄ"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "NÄ“"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Maks. ceļa garums"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Neierobežots"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "PaplaÅ¡inÄta atslÄ“gas izmantoÅ¡ana"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Atļautie mērķi"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Subjekta atslēgas identifikators"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Atslēgas identifikators"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Ciparparaksts"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Atslēgas šifrējums"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Datu šifrējums"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "AtslÄ“gas vienoÅ¡anÄs"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "SertifikÄta paraksts"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Atsaukumu saraksta paraksts"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Atslēgas lietojums"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Lietojumi"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Subjekta alternatīvie nosaukumi"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "PaplaÅ¡inÄjums"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Identifikators"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Vērtība"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Kritisks"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "NeizdevÄs eksportÄ“t sertifikÄtu."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "IdentitÄte"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "PÄrbaudÄ«ja"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "Derīguma termiņš"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Subjekta nosaukums"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Izsniedzēja nosaukums"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Izsniegtais sertifikÄts"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Versija"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Nav derīgs pirms"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Nav derīgs pēc"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "SertifikÄta nospiedumi"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Paraksts"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Paraksta algoritms"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Paraksta parametri"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "InformÄcija par publisko atslÄ“gu"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Atslēgas algoritms"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Atslēgas parametri"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Atslēgas izmērs"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "Atslēgas SHA1 nospiedums"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "PubliskÄ atslÄ“ga"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_Detaļas"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "NeizdevÄs attÄ“lot '%s'"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "NeizdevÄs attÄ“lot failu"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Iemesls"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "NevarÄ“ja parÄdÄ«t Å¡Äda tipa failu."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "ImportÄ“t sertifikÄtus/atslÄ“gas"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Importēt:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Parole:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "PGP atslēga"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "Atslēgas ID"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Gnupg process izgÄja ar kodu: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Gnupg process tika pÄrtraukts ar signÄlu: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919 ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "Darbība bija atcelta"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Ievadiet paroli, lai atslÄ“gtu privÄto atslÄ“gu"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Ievadiet paroli, lai atslÄ“gtu sertifikÄtu"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Ievadiet paroli, lai atslēgtu"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Lai importÄ“tu privÄto atslÄ“gu, tai jÄbÅ«t atslÄ“gtai"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Lai importÄ“tu sertifikÄtu, tam jÄbÅ«t atslÄ“gtam"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Lai importÄ“tu datus, tiem jÄbÅ«t atslÄ“gtiem"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Lai importÄ“tu privÄto atslÄ“gu '%s', tai jÄbÅ«t atslÄ“gtai"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Lai importÄ“tu sertifikÄtu '%s', tam jÄbÅ«t atslÄ“gtam"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Lai importÄ“tu '%s', tam jÄbÅ«t atslÄ“gtam"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Nav pieejama vieta, uz kuru importēt"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "ImportÄ“t sertifikÄtus/atslÄ“gas"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "IzvÄ“lieties vietu, kur glabÄt importÄ“tos sertifikÄtus un atslÄ“gas."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Atslēga"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "PrivÄtÄ RSA atslÄ“ga"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "PrivÄtÄ DSA atslÄ“ga"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "PrivÄtÄ atslÄ“ga"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "PubliskÄ DSA atslÄ“ga"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bits"
-msgstr[1] "%d biti"
-msgstr[2] "%d biti"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Stiprums"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algoritms"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Izmērs"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Nospiedumi"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "Neatpazīti vai neatbalstīti dati."
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "NeizdevÄs izparsÄ“t nederÄ«gus vai bojÄtus datus."
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "Dati ir noslēgti"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "NevarÄ“ja atrast vietu, kur glabÄt sertifikÄtu"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "AutomÄtiski atslÄ“gt Å¡o saiÅ¡Ä·i tad, kad es ielogojos"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Slēgt šo saišķi pēc"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Slēgt šo saišķi, ja nekas nenotiek pēc"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Slēgt šo saišķi, kad es atsakos no sistēmas"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minūtes"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "Atslēgt: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Atslēgt"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "Parole nebija pareiza"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Parole"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-#| msgid ""
-#| "The contents of '%s' are locked. In order to view the contents, enter a "
-#| "the correct password."
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr "'%s' saturs ir bloķēts. Lai skatītu saturu, ievadiet pareizu paroli."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-#| msgid ""
-#| "The contents are locked. In order to view the contents, enter a the "
-#| "correct password."
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr "Saturs ir bloķēts. Lai skatītu saturu, ievadiet pareizu paroli."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "GCR sertifikÄtu un atslÄ“gu skatÄ«tÄjs"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "RÄdÄ«t lietotnes versiju"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[fails...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- SkatÄ«t sertifikÄtu un atslÄ“gu failus"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "SertifikÄta skatÄ«tÄjs"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "URI ir nederīgs kodējums."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "URI neatbilst 'pkcs11' shēmai."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "Å ai URI ir slikta sintakse."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "Å ai URI ir slikts versijas numurs."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Nenosaukts sertifikÄts"
@@ -882,7 +294,7 @@ msgid "Couldn't parse public SSH key"
msgstr "NeizdevÄs parsÄ“t publisko SSH atslÄ“gu"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Atslēgšanas parole: %s"
@@ -941,10 +353,26 @@ msgstr "AtslÄ“gt sertifikÄtu"
msgid "Unlock public key"
msgstr "Atslēgt publisko atslēgu"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Atslēgt"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Ievadiet paroli, lai atslÄ“gtu privÄto atslÄ“gu"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Ievadiet paroli, lai atslÄ“gtu sertifikÄtu"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Ievadiet paroli, lai atslēgtu publisko atslēgu"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Ievadiet paroli, lai atslēgtu"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1030,11 +458,11 @@ msgstr "komandas: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "GlabÄt paroles neÅ¡ifrÄ“tas?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1043,15 +471,15 @@ msgstr ""
"IzvÄ“loties tukÅ¡u paroli, jÅ«su saglabÄtÄs paroles netiks droÅ¡i Å¡ifrÄ“tas. TÄs "
"būs pieejamas ikvienam, kas varēs piekļūt jūsu failiem."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Izmantot nedroÅ¡u glabÄtuvi"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Paroles nesakrīt."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Parole nedrīkst būt tukša"
@@ -1090,704 +518,3 @@ msgstr "_IepriekÅ¡Ä“jÄ parole:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Parole:"
-
-#~| msgid "Fingerprints"
-#~ msgid "Fingerprint"
-#~ msgstr "Nospiedums"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "Nav pieejams pietiekami daudz atmiņas"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "NorÄdÄ«tais slota ID nav derÄ«gs"
-
-#~ msgid "Internal error"
-#~ msgstr "Iekšēja kļūda"
-
-#~ msgid "The operation failed"
-#~ msgstr "DarbÄ«ba neizdevÄs"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "Nederīgi argumenti"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "Modulis neizdodas izveidot nepieciešamos pavedienus"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "Modulim neizdodas noslēgt datus korekti"
-
-#~ msgid "The field is read-only"
-#~ msgstr "Lauks ir tikai nolasÄms"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "Lauks ir jÅ«tÄ«gs un nevar tikt atklÄts"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "Lauks nav derīgs, vai arī neeksistē"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "Nederīga vērtība laukam"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "Dati nav derīgi, vai arī ir neatpazīti"
-
-#~ msgid "The data is too long"
-#~ msgstr "Dati ir pÄrÄk gari"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "IerÄ«cei gadÄ«jÄs kļūda"
-
-#~| msgid "Insufficient memory available on device"
-#~ msgid "Insufficient memory available on the device"
-#~ msgstr "Ierīcei nepietiek atmiņas"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "Ierīce tika izņemta vai atvienota"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "Šifrētie dati nav derīgi, vai arī ir neatpazīti"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "Šifrētie dati ir par garu"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "Šī darbība nav atbalstīta"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "Atslēga nav atrodama, vai nav derīga"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "Nepareiza izmēra atslēga"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "Nepareiza tipa atslēga"
-
-#~ msgid "No key is needed"
-#~ msgstr "Nav nepieciešama atslēga"
-
-#~ msgid "The key is different than before"
-#~ msgstr "AtslÄ“ga ir atÅ¡Ä·irÄ«ga no iepriekÅ¡Ä“jÄs"
-
-#~ msgid "A key is needed"
-#~ msgstr "Nepieciešama atslēga"
-
-#~| msgid "Cannot include the key in digest"
-#~ msgid "Cannot include the key in the digest"
-#~ msgstr "Neizdodas iekļaut atslÄ“gu Ä«ssavilkumÄ"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "Šī darbība nevar tikt veikta ar šo atslēgu"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "Atslēgu nevar ietīt"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "Neizdodas eksportēt šo atslēgu"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "Å ifrÄ“Å¡anas mehÄnisms nav derÄ«gs vai arÄ« ir neatpazÄ«ts"
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "Å ifrÄ“Å¡anas mehÄnismam ir nederÄ«gs arguments"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "Objekts nav atrodams vai nav derīgs"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "Cita darbība jau notiek"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "Nenotiek nekÄda darbÄ«ba"
-
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "Parole vai PIN ir nepareizs"
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "Parole vai PIN nav derīgs"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "Parole vai PIN ir nepareiza garuma"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "Parole vai PIN beidzies derīguma termiņš"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "Parole vai PIN ir bloÄ·Ä“ts"
-
-#~ msgid "The session is closed"
-#~ msgstr "Sesija ir aizvērta"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "PÄrÄk daudz aktÄ«vu direktoriju"
-
-#~ msgid "The session is invalid"
-#~ msgstr "Sesija nav derīga"
-
-#~ msgid "The session is read-only"
-#~ msgstr "Sesija ar tikai nolasīšanas atbalstu"
-
-#~ msgid "An open session exists"
-#~ msgstr "Eksistē atvērta sesija"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "Eksistē sesija tikai ar lasīšanas atbalstu"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "Eksistē administratora sesija"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "Paraksts ir slikts vai bojÄts"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "Paraksts nav atpazÄ«ts vai ir bojÄts"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "Iztrūkst noteikti pieprasītie lauki"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "Noteiktiem laukiem ir nederīgas vērtības"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "IerÄ«ce nav pieejama vai tÄ ir izņemta"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "Ierīce ir nederīga vai neatpazīstama"
-
-#~ msgid "The device is write protected"
-#~ msgstr "IerÄ«ce ir aizsargÄta pret rakstÄ«Å¡anu"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "Neizdodas importēt nederīgas atslēgas dēļ"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "Neizdodas improtēt nepareiza izmēra atslēgas dēļ"
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "Neizdodas importēt nepareiza tipa atslēgas dēļ"
-
-#~ msgid "You are already logged in"
-#~ msgstr "Jūs jau esat pieteikušies"
-
-#~ msgid "No user has logged in"
-#~ msgstr "Neviens lietotÄjs nav pieteicies"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "LietotÄja parole vai PIN nav iestatÄ«ts"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "NederÄ«ga veida lietotÄjs"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "Cits lietotÄjs jau ir pieteicies"
-
-#~| msgid "Too many users of different types logged in"
-#~ msgid "Too many users of different types are logged in"
-#~ msgstr "Ir pieteikuÅ¡ies pÄrÄk daudz dažÄda veida lietotÄju"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "Nevar importēt nederīgu atslēgu"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "Neizdodas importēt atslēgu ar nepareizu izmēru"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "Neizdodas eksportēt, jo atslēga ir nederīga"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "Neizdodas eksportēt, jo atslēga ir nepareiza izmēra"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "Neizdodas eksportÄ“t, jo tÄ atslÄ“ga ir nepareiza veida"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "NeizdevÄs inicializÄ“t gadÄ«juma skaitļu Ä£eneratoru"
-
-#~ msgid "No random number generator available"
-#~ msgstr "Gadījuma skaitļu ģenerators nav pieejams"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "Å ifrÄ“Å¡anas mehÄnismam ir nederÄ«gs parametrs"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "Nav pietiekami vietas, lai saglabÄtu rezultÄtu"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "SaglabÄtais stÄvoklis ir nederÄ«gs"
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "InformÄcija ir jÅ«tÄ«ga un nevar tikt atklÄta"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "StÄvoklis nevar tikt saglabÄts"
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "Modulis nav inicializēts"
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "Modulis jau ir inicializēts"
-
-#~ msgid "Cannot lock data"
-#~ msgstr "Nevar noslēgt datus"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "Datus nevar noslēgt"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "Parakstīšanas pieprasījums"
-
-#~ msgid "Unknown error"
-#~ msgstr "NezinÄma kļūda"
-
-#~| msgid ""
-#~| "This option enables the PKCS#11 component in the gnome-keyring daemon. "
-#~| "It only takes effect as gnome-keyring-daemon starts, (ie: when the user "
-#~| "logs in). This setting may be overridden when certain command line "
-#~| "arguments are passed to the daemon."
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Å Ä« opcija aktivizÄ“ gnome-keyring dÄ“mona PKCS#11 komponenti. TÄ stÄjas "
-#~ "spÄ“kÄ tikai ar gnome-session startÄ“Å¡anos (t.i., kad lietotÄjs piesakÄs "
-#~ "sistÄ“mÄ). Å is iestatÄ«jums var tikt aizstÄts ar noteiktiem dÄ“monam "
-#~ "padotiem komandrindas argumentiem."
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "Å Ä« opcija aktivizÄ“ gnome-keyring dÄ“mona SSH aÄ£entu. TÄ stÄja spÄ“kÄ tikai "
-#~ "ar gnome-keyring-daemon startÄ“Å¡anos (t.i., kad lietotÄjs piesakÄs "
-#~ "sistÄ“mÄ).Å is iestatÄ«jums var tikt aizstÄts ar noteiktiem dÄ“monam padotiem "
-#~ "komandrindas argumentiem."
-
-#~| msgid ""
-#~| "This option enables the PKCS#11 component in the gnome-keyring daemon. "
-#~| "It only takes effect as gnome-keyring-daemon starts, (ie: when the user "
-#~| "logs in). This setting may be overridden when certain command line "
-#~| "arguments are passed to the daemon."
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Å Ä« opcija aktivizÄ“ gnome-keyring dÄ“mona slepenÄ servisa komponenti. TÄ "
-#~ "stÄjas spÄ“kÄ tikai ar gnome-session startÄ“Å¡anos (t.i., kad lietotÄjs "
-#~ "piesakÄs sistÄ“mÄ). Å is iestatÄ«jums var tikt aizstÄts ar noteiktiem "
-#~ "dēmonam padotiem komandrindas argumentiem."
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "Vai gnome-keyring PKCS#11 komponente ir aktivizēta."
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "Vai gnome-keyring SSH aģents ir aktivizēts."
-
-#~| msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr "Vai gnome-keyring slepenais serviss ir aktivizēts."
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>Nav daļa no sertifikÄta</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>nezinÄms</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<Nav daļa no sertifikÄta>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>Nospiedumi</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Izsniedzis</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Izsniegts</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr ""
-#~ "<b>Å is sertifikÄts ir pÄrbaudÄ«ts, lai to varÄ“tu izmantot sekojoÅ¡i:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>Derīgums</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "Kopējais nosaukums (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "E-pasta adresÄta sertifikÄts"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "E-pasta parakstÄ«tÄja sertifikÄts"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "MD5 nospiedums"
-
-#~ msgid "Organization (O)"
-#~ msgstr "OrganizÄcija (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "OrganizÄcijas vienÄ«ba (OU)"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr ""
-#~ "<span size='large' weight='bold'>ImportÄ“t sertifikÄtus un atslÄ“gas</span>"
-
-#~ msgid "_Confirm new password:"
-#~ msgstr "_ApstiprinÄt jauno paroli:"
-
-#~ msgid "<span weight=\"bold\">Password strength meter:</span>"
-#~ msgstr "<span weight=\"bold\">Paroles stipruma mÄ“rÄ«tÄjs:</span>"
-
-#~ msgid "Old password cannot be blank."
-#~ msgstr "IepriekÅ¡Ä“jai parolei jÄsatur vismaz viens simbols."
-
-#~ msgid "Password cannot be blank."
-#~ msgstr "Parolei jÄsatur vismaz viens simbols."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "AplikÄcija '%s' (%s) vÄ“las piekļūt noklusÄ“tajam atslÄ“gu saiÅ¡Ä·im, bet tas "
-#~ "ir aizslēgts"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "AplikÄcija '%s' (%s) vÄ“las piekļūt atslÄ“gu saiÅ¡Ä·im '%s', bet tas ir "
-#~ "aizslēgts"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Programma '%s' (%s) vÄ“las piekļūt nezinÄmam atslÄ“gu saiÅ¡Ä·im, bet tas ir "
-#~ "aizslēgts"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-#~ msgstr ""
-#~ "AplikÄcija '%s' vÄ“las piekļūt noklusÄ“tajam atslÄ“gu saiÅ¡Ä·im, bet tas ir "
-#~ "aizslēgts"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-#~ msgstr ""
-#~ "AplikÄcija '%s' vÄ“las piekļūt atslÄ“gu saiÅ¡Ä·im '%s', bet tas ir aizslÄ“gts"
-
-#~ msgid ""
-#~ "The application '%s' wants access to an unknown keyring, but it is locked"
-#~ msgstr ""
-#~ "Programma '%s' vÄ“las piekļūt nezinÄmam atslÄ“gu saiÅ¡Ä·im, bet tas ir "
-#~ "aizslēgts"
-
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "NezinÄma aplikÄcija vÄ“las piekļūt noklusÄ“tajam atslÄ“gu saiÅ¡Ä·im, bet tas "
-#~ "ir aizslēgts"
-
-#~ msgid ""
-#~ "An unknown application wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "NezinÄma programma vÄ“las piekļūt nezinÄmam atslÄ“gu saiÅ¡Ä·im, bet tas ir "
-#~ "aizslēgts"
-
-#~ msgid "Enter password for default keyring to unlock"
-#~ msgstr "Ievadiet paroli, lai atslēgtu noklusēto atslēgu saišķi"
-
-#~ msgid "_Deny"
-#~ msgstr "_Liegt"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "AplikÄcija '%s' (%s) vÄ“las izveidot jaunu atslÄ“gu saiÅ¡Ä·i ar nosaukumu '%"
-#~ "s'. Lūdzu izvēlieties tam paroli."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "AplikÄcija '%s' (%s) vÄ“las izveidot jaunu noklusÄ“to atslÄ“gu saiÅ¡Ä·i. LÅ«dzu "
-#~ "izvēlieties tam paroli."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "AplikÄcija '%s' vÄ“las izveidot jaunu atslÄ“gu saiÅ¡Ä·i ar nosaukumu '%s'. "
-#~ "Lūdzu izvēlieties tam paroli."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "AplikÄcija '%s' vÄ“las izveidot jaunu noklusÄ“to atslÄ“gu saiÅ¡Ä·i. LÅ«dzu "
-#~ "izvēlieties tam paroli."
-
-#~ msgid ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "NezinÄma aplikÄcija vÄ“las izveidot jaunu noklusÄ“to atslÄ“gu saiÅ¡Ä·i. LÅ«dzu "
-#~ "izvēlieties tam paroli."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "AplikÄcija '%s' (%s) vÄ“las mainÄ«t atslÄ“gu saiÅ¡Ä·a '%s' paroli. LÅ«dzu "
-#~ "izvēlieties paroli šim nolūkam."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "AplikÄcija '%s' (%s) vÄ“las mainÄ«t noklusÄ“tÄ atslÄ“gu saiÅ¡Ä·a paroli. LÅ«dzu "
-#~ "izvēlieties paroli šim nolūkam."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "AplikÄcija '%s' vÄ“las mainÄ«t atslÄ“gu saiÅ¡Ä·a '%s' paroli. LÅ«dzu "
-#~ "izvēlieties paroli šim nolūkam."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "AplikÄcija '%s' vÄ“las mainÄ«t noklusÄ“tÄ atslÄ“gu saiÅ¡Ä·a paroli. LÅ«dzu "
-#~ "izvēlieties paroli šim nolūkam."
-
-#~ msgid ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "NezinÄma aplikÄcija vÄ“las mainÄ«t noklusÄ“tÄ atslÄ“gu saiÅ¡Ä·a paroli. LÅ«dzu "
-#~ "izvēlieties paroli šim nolūkam."
-
-#~ msgid "Choose a new password for the default keyring. "
-#~ msgstr "Izvēlēties jaunu paroli noklusētajam atslēgu saišķim. "
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-#~ msgstr ""
-#~ "AplikÄcija '%s' (%s) vÄ“las saglabÄt paroli noklusÄ“tajÄ atslÄ“gu saiÅ¡Ä·Ä«, "
-#~ "bet tÄds neeskistÄ“. Lai izveidotu jaunu noklusÄ“to atslÄ“gu saiÅ¡Ä·i, "
-#~ "izvēlieties tam paroli."
-
-#~ msgid ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "AplikÄcija '%s' vÄ“las saglabÄt paroli noklusÄ“tajÄ atslÄ“gu saiÅ¡Ä·Ä«, bet "
-#~ "tÄds neeskistÄ“. Lai izveidotu jaunu noklusÄ“to atslÄ“gu saiÅ¡Ä·i, izvÄ“lieties "
-#~ "tam paroli."
-
-#~ msgid ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "NezinÄma aplikÄcija vÄ“las saglabÄt paroli noklusÄ“tajÄ atslÄ“gu saiÅ¡Ä·Ä«, bet "
-#~ "tÄds neeskistÄ“. Lai izveidotu jaunu noklusÄ“to atslÄ“gu saiÅ¡Ä·i, izvÄ“lieties "
-#~ "tam paroli."
-
-#~ msgid "Create Default Keyring"
-#~ msgstr "Izveidot noklusēto atslēgu saišķi"
-
-#~ msgid "Choose password for default keyring"
-#~ msgstr "Izvēlēties paroli noklusētajam atslēgu saišķim"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '%s' in %s."
-#~ msgstr ""
-#~ "Programma '%s' (%s) vÄ“las piekļūt parolei priekÅ¡ '%s', kura tiek glabÄta %"
-#~ "s."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '%s' in the "
-#~ "default keyring."
-#~ msgstr ""
-#~ "Programma '%s' (%s) vÄ“las piekļūt parolei priekÅ¡ '%s', kura tiek glabÄta "
-#~ "noklusÄ“tajÄ atslÄ“gu saiÅ¡Ä·Ä«."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr ""
-#~ "Programma '%s' (%s) vÄ“las piekļūt parolei priekÅ¡ '%s', kura tiek glabÄta "
-#~ "nezinÄmÄ atslÄ“gu saiÅ¡Ä·Ä«."
-
-#~ msgid "The application '%s' wants to access the password for '%s' in %s."
-#~ msgstr ""
-#~ "Programma '%s' vÄ“las piekļūt parolei priekÅ¡ '%s', kura tiek glabÄta %s."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '%s' in the default "
-#~ "keyring."
-#~ msgstr ""
-#~ "Programma '%s' vÄ“las piekļūt parolei priekÅ¡ '%s', kura tiek glabÄta "
-#~ "noklusÄ“tajÄ atslÄ“gu saiÅ¡Ä·Ä«."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '%s' in an unknown "
-#~ "keyring."
-#~ msgstr ""
-#~ "Programma '%s' vÄ“las piekļūt parolei priekÅ¡ '%s', kura tiek glabÄta "
-#~ "nezinÄmÄ atslÄ“gu saiÅ¡Ä·Ä«."
-
-#~ msgid "An unknown application wants to access the password for '%s' in %s."
-#~ msgstr ""
-#~ "NezinÄma programma vÄ“las piekļūt parolei priekÅ¡ '%s', kura tiek glabÄta %"
-#~ "s."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '%s' in the "
-#~ "default keyring."
-#~ msgstr ""
-#~ "NezinÄma programma vÄ“las piekļūt parolei priekÅ¡ '%s', kura tiek glabÄta "
-#~ "noklusÄ“tajÄ atslÄ“gu saiÅ¡Ä·Ä«."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr ""
-#~ "NezinÄma programma vÄ“las piekļūt parolei priekÅ¡ '%s', kura tiek glabÄta "
-#~ "nezinÄmÄ atslÄ“gu saiÅ¡Ä·Ä«."
-
-#~ msgid "Allow access"
-#~ msgstr "Atļaut pieeju"
-
-#~ msgid "Allow _Once"
-#~ msgstr "Atļaut _vienreiz"
-
-#~ msgid "_Always Allow"
-#~ msgstr "Atļau_t vienmēr"
-
-#~ msgid "You must specify the type of request to run\n"
-#~ msgstr "LÅ«dzu norÄdiet pieprasÄ«juma veidu, lai palaistu\n"
-
-#~ msgid "Unknown request type\n"
-#~ msgstr "NezinÄms pieprasÄ«juma veids\n"
-
-#~ msgid "Removable Disk: %s"
-#~ msgstr "MainÄms disks: %s"
-
-#~ msgid "Removable Disk"
-#~ msgstr "MainÄms disks"
-
-#~ msgid "Home"
-#~ msgstr "MÄjas"
-
-#~ msgid "The disk or drive this file is located on is not present"
-#~ msgstr "Diska vai ierīce uz kura atrodas šis fails nav atrodams"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "AplikÄcija '%s' (%s) vÄ“las pieeju objekta '<object prop='name'/>' parolei "
-#~ "noklusÄ“tajÄ atslÄ“gu saiÅ¡Ä·Ä«."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "AplikÄcija '%s' (%s) vÄ“las pieeju objekta '<object prop='name'/>' parolei "
-#~ "no %s."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "AplikÄcija '%s' vÄ“las pieeju objekta '<object prop='name'/>' parolei "
-#~ "noklusÄ“tajÄ atslÄ“gu saiÅ¡Ä·Ä«."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "AplikÄcija '%s' vÄ“las pieeju objekta '<object prop='name'/>' parolei no %"
-#~ "s."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "NezinÄma aplikÄcija vÄ“las pieeju objekta '<object prop='name'/>' parolei "
-#~ "noklusÄ“tajÄ atslÄ“gu saiÅ¡Ä·Ä«."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "NezinÄma aplikÄcija vÄ“las pieeju objekta '<object prop='name'/>' parolei "
-#~ "no %s."
-
-#~ msgid "Create Login Keyring"
-#~ msgstr "Izveidot pieteikÅ¡anÄs atslÄ“gu saiÅ¡Ä·i"
-
-#~ msgid "Enter your login password"
-#~ msgstr "Ievadiet savu pieteikÅ¡anÄs paroli"
-
-#~ msgid ""
-#~ "Your login keyring was not automatically created when you logged into "
-#~ "this computer. It will now be created."
-#~ msgstr ""
-#~ "JÅ«su pieteikÅ¡anÄs atslÄ“gu saiÅ¡Ä·is netika automÄtiski izveidots, kad "
-#~ "pieslÄ“dzÄties datoram. Tas tiks izveidots tagad."
-
-#~ msgid "The system wants to import the public key '%s', but it is locked"
-#~ msgstr "SistÄ“mas vÄ“las importÄ“t publisko atslÄ“gu '%s', taÄu tÄ ir bloÄ·Ä“ta"
-
-#~ msgid "Automatically unlock this private key when I log in."
-#~ msgstr "AutomÄtiski atbloÄ·Ä“t privÄto atslÄ“gu, kas es pieslÄ“dzos."
-
-#~ msgid "Automatically unlock this certificate when I log in."
-#~ msgstr "AutomÄtiski atbloÄ·Ä“t sertifikÄtu, kas es pieslÄ“dzos."
-
-#~ msgid "Automatically unlock this public key when I log in."
-#~ msgstr "AutomÄtiski atbloÄ·Ä“t publisko atslÄ“gu, kas es pieslÄ“dzos."
-
-#~ msgid "Automatically unlock this when I log in"
-#~ msgstr "AutomÄtiski atbloÄ·Ä“t, kas es pieslÄ“dzos."
-
-#~ msgid "Deny"
-#~ msgstr "Aizliegt"
-
-#~ msgid "Access Denied"
-#~ msgstr "Pieeja aizliegta"
-
-#~ msgid "The gnome-keyring-daemon application is not running."
-#~ msgstr "gnome-keyring-daemon aplikÄcija nestrÄdÄ."
-
-#~ msgid "Error communicating with gnome-keyring-daemon"
-#~ msgstr "Kļūda komunicējot ar gnome-keyring-daemon"
-
-#~ msgid "A keyring with that name already exists"
-#~ msgstr "AtslÄ“gu saiÅ¡Ä·is ar tÄdu nosaukumu jau eksistÄ“"
-
-#~ msgid "Programmer error: The application sent invalid data."
-#~ msgstr "ProgrammÄ“tÄja kļūda: aplikÄcija nosÅ«tÄ«jusi nepareizus datus."
-
-#~ msgid "No matching results"
-#~ msgstr "Nav neviena rezultÄta"
-
-#~ msgid "A keyring with that name does not exist."
-#~ msgstr "AtslÄ“gu saižķis ar Å¡Ädu nosaukumu neeksistÄ“."
diff --git a/po/mai.po b/po/mai.po
index e080479e..e839a793 100644
--- a/po/mai.po
+++ b/po/mai.po
@@ -6,559 +6,130 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.HEAD\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-keyring&component=general\n"
-"POT-Creation-Date: 2009-03-15 04:42+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2009-03-15 16:12+0530\n"
"Last-Translator: Sangeeta Kumari <sangeeta09@gmail.com>\n"
"Language-Team: Maithili <maithili.sf.net>\n"
+"Language: mai\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
-
-#: ../common/gkr-location.c:321
-#, c-format
-msgid "Removable Disk: %s"
-msgstr ""
-
-#: ../common/gkr-location.c:323
-msgid "Removable Disk"
-msgstr ""
-
-#: ../common/gkr-location.c:544 ../common/gkr-location.c:556
-msgid "Home"
-msgstr "घर"
-
-#: ../common/gkr-location.c:1105 ../common/gkr-location.c:1129
-msgid "The disk or drive this file is located on is not present"
-msgstr ""
-
-#: ../common/gkr-location.c:1137
-#, c-format
-msgid "Couldn't create directory: %s"
-msgstr ""
-
-#: ../common/gkr-location.c:1171
-#, c-format
-msgid "Couldn't delete the file: %s"
-msgstr ""
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:228
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in the default keyring."
-msgstr ""
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"\n"
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:232
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in %s."
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
msgstr ""
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:238 ../daemon/gkr-daemon-ops.c:248
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in the default keyring."
-msgstr ""
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:242 ../daemon/gkr-daemon-ops.c:252
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in %s."
-msgstr ""
+#: ../daemon/dbus/gkd-secret-change.c:86
+msgid "Change Keyring Password"
+msgstr "कीरिंग कूटशबà¥à¤¦ बदलू"
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:258
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in the default keyring."
-msgstr ""
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "कीरिंग '%s' क' लेल कूटशबà¥à¤¦ चà¥à¤¨à¥‚"
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:261
-#, c-format
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in %s."
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
msgstr ""
+"à¤à¤•à¤Ÿà¤¾ अनचिनà¥à¤¹ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' कीरिंग क' लेल कूटशबà¥à¤¦ बदलनाइ चाहैत अछि. अहाà¤à¤• कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾à¤‡ "
+"अछि जकरा अहाठà¤à¤•à¤°à¤¾ लेल पà¥à¤°à¤¯à¥‹à¤— कà¤à¤¨à¤¾à¤‡ चाहैत छी."
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:267
-msgid "Allow access"
-msgstr "अभिगम सà¥à¤µà¥€à¤•à¤¾à¤°à¥‚"
-
-#: ../daemon/gkr-daemon-ops.c:267
-msgid "Allow application access to keyring?"
-msgstr "कीरिंगमे अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— पहà¥à¤‚च सà¥à¤µà¥€à¤•à¤¾à¤°à¥‚?"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:309
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) मूलभूत कà¥à¤à¤œà¥€à¤®à¥‡ अभिगम चाहैत अछि, मà¥à¤¦à¤¾ ई बनà¥à¤¨ अछि"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:314
-#, c-format
-msgid "The application '%s' (%s) wants access to the keyring '%s', but it is locked"
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) मूलभूत कà¥à¤‚जीरिंग '%s' मे अभिगम चाहैत अछि, मà¥à¤¦à¤¾ ई बनà¥à¤¨ अछि"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:321 ../daemon/gkr-daemon-ops.c:333
-#, c-format
-msgid "The application '%s' wants access to the default keyring, but it is locked"
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' मूलभूत कà¥à¤‚जीरिंगमे अभिगम चाहैत अछि, मà¥à¤¦à¤¾ ई बनà¥à¤¨ अछि"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:326 ../daemon/gkr-daemon-ops.c:339
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' कà¥à¤‚जीरिंग '%s' मे अभिगम चाहैत अछि, मà¥à¤¦à¤¾ ई बनà¥à¤¨ अछि"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:346
-#, c-format
-msgid "An unknown application wants access to the default keyring, but it is locked"
-msgstr "अनचिनà¥à¤¹ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— मूलभूत कà¥à¤‚जीरिंगमे अभिगम चाहैत अछि, मà¥à¤¦à¤¾ ई बनà¥à¤¨ अछि"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:351
-#, c-format
-msgid "An unknown application wants access to the keyring '%s', but it is locked"
-msgstr "अनचिनà¥à¤¹ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— मूलभूत कà¥à¤‚जीरिंग '%s' मे अभिगम चाहैत अछि, मà¥à¤¦à¤¾ ई बनà¥à¤¨ अछि"
-
-#: ../daemon/gkr-daemon-ops.c:358
-msgid "Enter password for default keyring to unlock"
-msgstr "मूलभूत कीरिंग केठखोलभाक लेल कूटशबà¥à¤¦ दिअ'"
-
-#: ../daemon/gkr-daemon-ops.c:360
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "कीरिंग '%s' केठखोलबाक लेल कूटशबà¥à¤¦ दिअ'"
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:364
-msgid "Unlock Keyring"
-msgstr "कीरिंग खोलू"
-
-#: ../daemon/gkr-daemon-ops.c:376
-msgid "Automatically unlock this keyring when I log in."
+#: ../daemon/dbus/gkd-secret-change.c:111
+msgid "The original password was incorrect"
msgstr ""
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:413
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) '%s' नामक नवीन कीरिंग बनओनाइ चाहैत अछि. अहाà¤à¤• कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾à¤‡ अछि जकरासठअहाठà¤à¤•à¤°à¤¾ लेल पà¥à¤°à¤¯à¥‹à¤— कà¤à¤¨à¤¾à¤‡ चाहैत छी."
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:418
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) नवीन मूलभूत कीरिंग बनओनाइ चाहैत अछि. अहाà¤à¤• कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾à¤‡ अछि जकरा अहाठà¤à¤•à¤°à¤¾ लेल पà¥à¤°à¤¯à¥‹à¤— कà¤à¤¨à¤¾à¤‡ चाहैत छी."
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:425 ../daemon/gkr-daemon-ops.c:437
-#, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' '%s' नामक नवीन कीरिंग बनओनाइ चाहैत अछि. अहाà¤à¤• कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾à¤‡ अछि जकरा अहाठà¤à¤•à¤°à¤¾ लेल पà¥à¤°à¤¯à¥‹à¤— कà¤à¤¨à¤¾à¤‡ चाहैत छी."
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:430 ../daemon/gkr-daemon-ops.c:442
-#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' नवीन मूलभूत कीरिंग बनओनाइ चाहैत अछि. अहाà¤à¤• कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾à¤‡ अछि जकरा अहाठà¤à¤•à¤°à¤¾ लेल पà¥à¤°à¤¯à¥‹à¤— कà¤à¤¨à¤¾à¤‡ चाहैत छी."
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:449
-#, c-format
-msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
-msgstr "à¤à¤•à¤Ÿà¤¾ अनचिनà¥à¤¹ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' नामक नवीन कीरिंग बनओनाइ चाहैत अछि. अहाà¤à¤• कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾à¤‡ अछि जकरा अहाठà¤à¤•à¤°à¤¾ लेल पà¥à¤°à¤¯à¥‹à¤— कà¤à¤¨à¤¾à¤‡ चाहैत छी."
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:454
-#, c-format
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr "अनचिनà¥à¤¹ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— नवीन मूलभूत कीरिंग बनओनाइ चाहैत अछि. अहाà¤à¤• कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾à¤‡ अछि जकरा अहाठà¤à¤•à¤°à¤¾ लेल पà¥à¤°à¤¯à¥‹à¤— कà¤à¤¨à¤¾à¤‡ चाहैत छी."
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:460
+#: ../daemon/dbus/gkd-secret-create.c:83
msgid "New Keyring Password"
msgstr "नवीन कीरिंग कूटशबà¥à¤¦"
-#: ../daemon/gkr-daemon-ops.c:461
+#: ../daemon/dbus/gkd-secret-create.c:84
msgid "Choose password for new keyring"
msgstr "नवीन कीरिंग क' लेल कूटशबà¥à¤¦à¤•à¥‡à¤ चà¥à¤¨à¥‚"
-#: ../daemon/gkr-daemon-ops.c:508
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) कीरिंग '%s' क'लेल कूटशबà¥à¤¦ बदलनाइ चाहैत अछि. अहाà¤à¤• कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾à¤‡ अछि जकरा अहाठà¤à¤•à¤°à¤¾ लेल पà¥à¤°à¤¯à¥‹à¤— कà¤à¤¨à¤¾à¤‡ चाहैत छी."
-
-#: ../daemon/gkr-daemon-ops.c:512
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) मूलभूत कीरिंग क' लेल कूटशबà¥à¤¦ बदलनाइ चाहैत अछि. अहाà¤à¤• कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾à¤‡ अछि जकरा अहाठà¤à¤•à¤°à¤¾ लेल पà¥à¤°à¤¯à¥‹à¤— कà¤à¤¨à¤¾à¤‡ चाहैत छी."
-
-#: ../daemon/gkr-daemon-ops.c:518 ../daemon/gkr-daemon-ops.c:528
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' '%s' कीरिंग क' लेल कूटशबà¥à¤¦ बदलनाइ चाहैत अछि. अहाà¤à¤• कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾à¤‡ अछि जकरा अहाठà¤à¤•à¤°à¤¾ लेल पà¥à¤°à¤¯à¥‹à¤— कà¤à¤¨à¤¾à¤‡ चाहैत छी."
-
-#: ../daemon/gkr-daemon-ops.c:522 ../daemon/gkr-daemon-ops.c:532
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' मूलभूत कीरिंग क' लेल कूटशबà¥à¤¦ बदलनाइ चाहैत अछि. अहाà¤à¤• कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾à¤‡ अछि जकरा अहाठà¤à¤•à¤°à¤¾ लेल पà¥à¤°à¤¯à¥‹à¤— कà¤à¤¨à¤¾à¤‡ चाहैत छी."
-
-#: ../daemon/gkr-daemon-ops.c:538
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
-msgstr "à¤à¤•à¤Ÿà¤¾ अनचिनà¥à¤¹ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' कीरिंग क' लेल कूटशबà¥à¤¦ बदलनाइ चाहैत अछि. अहाà¤à¤• कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾à¤‡ अछि जकरा अहाठà¤à¤•à¤°à¤¾ लेल पà¥à¤°à¤¯à¥‹à¤— कà¤à¤¨à¤¾à¤‡ चाहैत छी."
-
-#: ../daemon/gkr-daemon-ops.c:542
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
-msgstr "à¤à¤•à¤Ÿà¤¾ अनचिनà¥à¤¹ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— मूलभूत कीरिंग क' लेल कूटशबà¥à¤¦ बदलनाइ चाहैत अछि. अहाà¤à¤• कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾à¤‡ अछि जकरा अहाठà¤à¤•à¤°à¤¾ लेल पà¥à¤°à¤¯à¥‹à¤— कà¤à¤¨à¤¾à¤‡ चाहैत छी."
-
-#: ../daemon/gkr-daemon-ops.c:552
-#, c-format
-msgid "Choose a new password for the '%s' keyring. "
-msgstr "कीरिंग '%s' क' लेल कूटशबà¥à¤¦ चà¥à¤¨à¥‚"
-
-#: ../daemon/gkr-daemon-ops.c:554
-#, c-format
-msgid "Choose a new password for the default keyring. "
-msgstr "मूलभूत कीरिंग क' लेल कूटशबà¥à¤¦ बदलू."
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:558
-msgid "Change Keyring Password"
-msgstr "कीरिंग कूटशबà¥à¤¦ बदलू"
-
-#: ../daemon/gkr-daemon-ops.c:631
-#, c-format
+#: ../daemon/dbus/gkd-secret-create.c:86
+#, fuzzy, c-format
msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) à¤à¤•à¤Ÿà¤¾ कूटशबà¥à¤¦ भंडारित कà¤à¤¨à¤¾à¤‡ चाहैत अछि, मà¥à¤¦à¤¾ कोनो मूलभूत कीरिंग नहि अछि. "
-"à¤à¤¹à¤¨ à¤à¤•à¤Ÿà¤¾ बनाबै क' लेल, अहाà¤à¤• कूटशबà¥à¤¦ चà¥à¤¨à¤¬ हाà¤à¤¤ जकरा अहाठà¤à¤•à¤°à¤¾ लेल पà¥à¤°à¤¯à¥‹à¤— कà¤à¤¨à¤¾à¤‡ चाहैत छी."
-
-#: ../daemon/gkr-daemon-ops.c:635 ../daemon/gkr-daemon-ops.c:639
-#, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' à¤à¤•à¤Ÿà¤¾ कूटशबà¥à¤¦ भंडारित कà¤à¤¨à¤¾à¤‡ चाहैत अछि, मà¥à¤¦à¤¾ कोनो मूलभूत कीरिंग नहि अछि. à¤à¤¹à¤¨ à¤à¤•à¤Ÿà¤¾ बनाबै क' लेल, अहाà¤à¤• कूटशबà¥à¤¦ चà¥à¤¨à¤¬ हाà¤à¤¤ जकरा अहाठà¤à¤•à¤°à¤¾ लेल पà¥à¤°à¤¯à¥‹à¤— कà¤à¤¨à¤¾à¤‡ चाहैत छी."
+"à¤à¤•à¤Ÿà¤¾ अनचिनà¥à¤¹ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' नामक नवीन कीरिंग बनओनाइ चाहैत अछि. अहाà¤à¤• कूटशबà¥à¤¦ चà¥à¤¨à¤¨à¤¾à¤‡ "
+"अछि जकरा अहाठà¤à¤•à¤°à¤¾ लेल पà¥à¤°à¤¯à¥‹à¤— कà¤à¤¨à¤¾à¤‡ चाहैत छी."
-#: ../daemon/gkr-daemon-ops.c:643
-#, c-format
-msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-msgstr "à¤à¤•à¤Ÿà¤¾ अनचिनà¥à¤¹ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— à¤à¤•à¤Ÿà¤¾ कूटशबà¥à¤¦ भंडारित कà¤à¤¨à¤¾à¤‡ चाहैत अछि, मà¥à¤¦à¤¾ कोनो मूलभूत कीरिंग नहि अछि. à¤à¤¹à¤¨ à¤à¤•à¤Ÿà¤¾ बनाबै क' लेल, अहाà¤à¤• कूटशबà¥à¤¦ चà¥à¤¨à¤¬ हाà¤à¤¤ जकरासठअहाठà¤à¤•à¤°à¤¾ लेल पà¥à¤°à¤¯à¥‹à¤— कà¤à¤¨à¤¾à¤‡ चाहैत छी."
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:648
-msgid "Create Default Keyring"
-msgstr "बनाबू मूलभूत कीरिंग"
-
-#: ../daemon/gkr-daemon-ops.c:648
-msgid "Choose password for default keyring"
-msgstr "मूलभूत कीरिंग क' लेल कूटशबà¥à¤¦ बदलू"
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:1
-msgid ""
-"This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-"only takes effect as gnome-keyring-daemon starts, (ie: when the user logs "
-"in). This setting may be overridden when certain command line arguments are "
-"passed to the daemon."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+msgid "Certificate and Key Storage"
msgstr ""
-#: ../daemon/data/gnome-keyring.schemas.in.h:2
-msgid ""
-"This option enables the SSH agent in the gnome-keyring daemon. It only takes "
-"effect as gnome-keyring-daemon starts, (ie: when the user logs in). This "
-"setting may be overridden when certain command line arguments are passed to "
-"the daemon."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+msgid "GNOME Keyring: PKCS#11 Component"
msgstr ""
-#: ../daemon/data/gnome-keyring.schemas.in.h:3
-msgid "Whether the gnome-keyring PKCS#11 component is enabled."
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+msgid "GNOME Keyring: Secret Service"
msgstr ""
-#: ../daemon/data/gnome-keyring.schemas.in.h:4
-msgid "Whether the gnome-keyring SSH agent is enabled."
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
msgstr ""
-#: ../daemon/gnome-keyring-daemon.desktop.in.in.h:1
-msgid "GNOME Keyring Daemon"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+msgid "GNOME Keyring: SSH Agent"
msgstr ""
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:98
-msgid "Unlock Login Keyring"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
msgstr ""
-#: ../daemon/keyrings/gkr-keyring-login.c:98
-msgid "Enter login password to unlock keyring"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+msgid "GNOME Keyring: GPG Agent"
msgstr ""
-#: ../daemon/keyrings/gkr-keyring-login.c:100
-msgid ""
-"Your login keyring was not automatically unlocked when you logged into this "
-"computer."
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+msgid "GPG Password Agent"
msgstr ""
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:124
-msgid "Create Login Keyring"
-msgstr ""
-
-#: ../daemon/keyrings/gkr-keyring-login.c:124
-msgid "Enter your login password"
-msgstr ""
-
-#: ../daemon/keyrings/gkr-keyring-login.c:126
-msgid ""
-"Your login keyring was not automatically created when you logged into this "
-"computer. It will now be created."
-msgstr ""
-
-#: ../daemon/keyrings/gkr-keyring.c:586
-#, c-format
-msgid "Unlock password for %s keyring"
-msgstr ""
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:99
-msgid "Unlock private key"
-msgstr ""
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:101
-msgid "Unlock certificate"
-msgstr ""
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:103
-msgid "Unlock public key"
-msgstr ""
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:105
-msgid "Unlock"
-msgstr "अनलौक करà¥"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:114 ../gcr/gcr-importer.c:436
-msgid "Enter password to unlock the private key"
-msgstr ""
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:116 ../gcr/gcr-importer.c:438
-msgid "Enter password to unlock the certificate"
-msgstr ""
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:118
-msgid "Enter password to unlock the public key"
-msgstr ""
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:120 ../gcr/gcr-importer.c:440
-msgid "Enter password to unlock"
-msgstr ""
-
-#. TRANSLATORS: The private key is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:130
-#, c-format
-msgid "An application wants access to the private key '%s', but it is locked"
-msgstr ""
-
-#. TRANSLATORS: The certificate is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:133
-#, c-format
-msgid "An application wants access to the certificate '%s', but it is locked"
-msgstr ""
-
-#. TRANSLATORS: The public key is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:136
-#, c-format
-msgid "An application wants access to the public key '%s', but it is locked"
-msgstr ""
-
-#. TRANSLATORS: The object '%s' is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:139
-#, c-format
-msgid "An application wants access to '%s', but it is locked"
-msgstr ""
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:148
-msgid "Automatically unlock this private key when I log in."
-msgstr ""
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:150
-msgid "Automatically unlock this certificate when I log in."
-msgstr ""
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:152
-msgid "Automatically unlock this public key when I log in."
-msgstr ""
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:154
-msgid "Automatically unlock this when I log in"
-msgstr ""
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:393
-msgid "Unlock certificate/key storage"
-msgstr ""
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:394
-msgid "Enter password to unlock the certificate/key storage"
-msgstr ""
-
-#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:397
-#, c-format
-msgid ""
-"An application wants access to the certificate/key storage '%s', but it is "
-"locked"
-msgstr ""
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:402
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:553
-msgid "Automatically unlock secure storage when I log in."
-msgstr ""
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:545
-msgid "New Password Required"
-msgstr ""
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:546
-msgid "New password required for secure storage"
-msgstr ""
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+#, fuzzy
+msgid "Unknown"
+msgstr "अजà¥à¤žà¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¤¿"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:548
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid ""
-"In order to prepare '%s' for storage of certificates or keys, a password is "
-"required"
+msgid "PGP Key: %s"
msgstr ""
-#: ../daemon/ui/gkr-ask-tool.c:230
-msgid ""
-"<b><big>Could not grab your mouse.</big></b>\n"
-"\n"
-"A malicious client may be eavesdropping on your session or you may have just "
-"clicked a menu or some application just decided to get focus.\n"
-"\n"
-"Try again."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-#: ../daemon/ui/gkr-ask-tool.c:239
-msgid ""
-"<b><big>Could not grab your keyboard.</big></b>\n"
-"\n"
-"A malicious client may be eavesdropping on your session or you may have just "
-"clicked a menu or some application just decided to get focus.\n"
-"\n"
-"Try again."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
msgstr ""
-#: ../daemon/ui/gkr-ask-tool.c:276
-msgid "Store passwords unencrypted?"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-#: ../daemon/ui/gkr-ask-tool.c:277
-msgid ""
-"By choosing to use a blank password, your stored passwords will not be "
-"safely encrypted. They will be accessible by anyone with access to your "
-"files."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
msgstr ""
-#: ../daemon/ui/gkr-ask-tool.c:284
-msgid "Use Unsafe Storage"
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
msgstr ""
-#: ../daemon/ui/gkr-ask-tool.c:512
-msgid "_Location:"
-msgstr "सà¥à¤¥à¤¾à¤¨ (_L):"
-
-#: ../daemon/ui/gkr-ask-tool.c:525
-msgid "_Old password:"
-msgstr "पà¥à¤°à¤¾à¤¨ कूटशबà¥à¤¦ (_O):"
-
-#: ../daemon/ui/gkr-ask-tool.c:545
-msgid "_Password:"
-msgstr "कूटशबà¥à¤¦ (_P):"
-
-#: ../daemon/ui/gkr-ask-tool.c:567
-msgid "_Confirm password:"
-msgstr ""
-
-#: ../daemon/ui/gkr-ask-tool.c:587
-msgid "New password strength"
-msgstr ""
-
-#: ../daemon/ui/gkr-ask-tool.c:645
-msgid "Passwords do not match."
-msgstr "कूटशबà¥à¤¦ मेल नहि करैत अछि."
-
-#: ../daemon/ui/gkr-ask-tool.c:661
-msgid "Password cannot be blank"
-msgstr ""
-
-#: ../daemon/ui/gkr-ask-tool.c:712
-msgid "_Deny"
-msgstr "मना करू (_D)"
-
-#: ../daemon/ui/gkr-ask-tool.c:724
-msgid "C_reate"
-msgstr "बनाबू (_r)"
-
-#: ../daemon/ui/gkr-ask-tool.c:728
-msgid "C_hange"
-msgstr ""
-
-#: ../daemon/ui/gkr-ask-tool.c:732
-msgid "Allow _Once"
-msgstr "सà¥à¤µà¥€à¤•à¤¾à¤°à¥‚ à¤à¤• बेर (_O)"
-
-#: ../daemon/ui/gkr-ask-tool.c:736
-msgid "_Always Allow"
-msgstr "हरदम सà¥à¤µà¥€à¤•à¤¾à¤°à¥‚ (_A)"
-
#: ../egg/egg-oid.c:41
msgid "Domain Component"
msgstr ""
@@ -568,8 +139,8 @@ msgid "User ID"
msgstr "पà¥à¤°à¤¯à¥‹à¤•à¥à¤¤à¤¾ आइ डी"
#: ../egg/egg-oid.c:46
-msgid "Email"
-msgstr "इमेल"
+msgid "Email Address"
+msgstr ""
#: ../egg/egg-oid.c:54
msgid "Date of Birth"
@@ -599,8 +170,7 @@ msgstr ""
msgid "Surname"
msgstr ""
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-basics-widget.glade.h:18
-#: ../gcr/gcr-certificate-details-widget.c:330
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "कà¥à¤°à¤® संखà¥à¤¯à¤¾"
@@ -660,632 +230,284 @@ msgstr ""
msgid "RSA"
msgstr ""
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr ""
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr ""
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr ""
-#: ../egg/egg-oid.c:107
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr ""
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr ""
-#: ../gcr/gcr-certificate-basics-widget.c:59
-msgid "<i>Not Part of Certificate</i>"
-msgstr ""
-
-#: ../gcr/gcr-certificate-basics-widget.c:80
-msgid "<i>unknown</i>"
-msgstr ""
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:1
-msgid "<Not Part of Certificate>"
-msgstr ""
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:2
-msgid "<b>Fingerprints</b>"
-msgstr "<b>फ़िंगरपà¥à¤°à¤¿à¤‚टà¥à¤¸</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:3
-msgid "<b>Issued By</b>"
-msgstr "<b>क' दà¥à¤µà¤¾à¤°à¤¾ निरà¥à¤—त</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:4
-msgid "<b>Issued To</b>"
-msgstr "<b>केठनिरà¥à¤—त</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:5
-msgid "<b>This certificate has been verified for the following uses:</b>"
-msgstr ""
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:6
-msgid "<b>Validity</b>"
-msgstr "<b>वैधता</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:7
-msgid "Common Name (CN)"
-msgstr ""
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:8
-msgid "Email Recipient Certificate"
-msgstr ""
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:9
-msgid "Email Signer Certificate"
-msgstr ""
-
-#: ../gcr/gcr-certificate-basics-widget.glade.h:10
-msgid "Expires On"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
msgstr ""
-#: ../gcr/gcr-certificate-basics-widget.glade.h:11
-msgid "Issued On"
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
msgstr ""
-#: ../gcr/gcr-certificate-basics-widget.glade.h:12
-msgid "MD5 Fingerprint"
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
msgstr ""
-#: ../gcr/gcr-certificate-basics-widget.glade.h:13
-msgid "Organization (O)"
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
msgstr ""
-#: ../gcr/gcr-certificate-basics-widget.glade.h:14
-msgid "Organizational Unit (OU)"
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
msgstr ""
-#: ../gcr/gcr-certificate-basics-widget.glade.h:15
-msgid "SHA1 Fingerprint"
+#: ../egg/egg-spawn.c:273
+#, c-format
+msgid "Unexpected error in select() reading data from a child process (%s)"
msgstr ""
-#: ../gcr/gcr-certificate-basics-widget.glade.h:16
-msgid "SSL Client Certificate"
+#: ../egg/egg-spawn.c:320
+#, c-format
+msgid "Unexpected error in waitpid() (%s)"
msgstr ""
-#: ../gcr/gcr-certificate-basics-widget.glade.h:17
-msgid "SSL Server Certificate"
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:207
-msgid "Extension"
-msgstr "विसà¥à¤¤à¤¾à¤°"
-
-#: ../gcr/gcr-certificate-details-widget.c:212
-msgid "Identifier"
-msgstr "पहचानकà¤à¤¨à¤¿à¤¹à¤¾à¤°"
-
-#: ../gcr/gcr-certificate-details-widget.c:222
-msgid "Value"
-msgstr "मान"
-
-#: ../gcr/gcr-certificate-details-widget.c:232
-msgid "Yes"
-msgstr "हà¤"
-
-#: ../gcr/gcr-certificate-details-widget.c:234
-msgid "No"
-msgstr "नहि"
-
-#: ../gcr/gcr-certificate-details-widget.c:237
-msgid "Critical"
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
msgstr ""
-#. The subject
-#: ../gcr/gcr-certificate-details-widget.c:311
-msgid "Subject Name"
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, c-format
+msgid "Unlock password for: %s"
msgstr ""
-#. The Issuer
-#: ../gcr/gcr-certificate-details-widget.c:315
-msgid "Issuer Name"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+msgid "The unlock password was incorrect"
msgstr ""
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-details-widget.c:319
-msgid "Issued Certificate"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+msgid "Unlock Login Keyring"
msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:324
-msgid "Version"
-msgstr "संसà¥à¤•à¤°à¤£"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
+msgstr "नवीन कीरिंग क' लेल कूटशबà¥à¤¦à¤•à¥‡à¤ चà¥à¤¨à¥‚"
-#: ../gcr/gcr-certificate-details-widget.c:337
-msgid "Not Valid Before"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:342
-msgid "Not Valid After"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
msgstr ""
-#. Signature
-#: ../gcr/gcr-certificate-details-widget.c:347
-#: ../gcr/gcr-certificate-details-widget.c:363
-msgid "Signature"
-msgstr "हसà¥à¤¤à¤¾à¤•à¥à¤·à¤°"
-
-#: ../gcr/gcr-certificate-details-widget.c:351
-msgid "Signature Algorithm"
-msgstr "हसà¥à¤¤à¤¾à¤•à¥à¤·à¤° अलगोरिथम"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "कीरिंग खोलू"
-#: ../gcr/gcr-certificate-details-widget.c:356
-msgid "Signature Parameters"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
+#, c-format
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "कीरिंग '%s' केठखोलबाक लेल कूटशबà¥à¤¦ दिअ'"
-#. Public Key Info
-#: ../gcr/gcr-certificate-details-widget.c:367
-msgid "Public Key Info"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, fuzzy, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr "अनचिनà¥à¤¹ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— मूलभूत कà¥à¤‚जीरिंग '%s' मे अभिगम चाहैत अछि, मà¥à¤¦à¤¾ ई बनà¥à¤¨ अछि"
-#: ../gcr/gcr-certificate-details-widget.c:371
-msgid "Key Algorithm"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:376
-msgid "Key Parameters"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+msgid "Unlock certificate"
msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:383
-msgid "Key Size"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:390 ../gcr/gcr-parser.c:202
-msgid "Public Key"
-msgstr "सारà¥à¤µà¤œà¤¨à¤¿à¤• कà¥à¤‚जी"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "अनलौक करà¥"
-#. Fingerprints
-#: ../gcr/gcr-certificate-details-widget.c:394
-msgid "Fingerprints"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
msgstr ""
-#: ../gcr/gcr-import-dialog.glade.h:1
-msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
msgstr ""
-#: ../gcr/gcr-import-dialog.glade.h:2
-msgid "Import Into:"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+msgid "Enter password to unlock the public key"
msgstr ""
-#: ../gcr/gcr-import-dialog.glade.h:3
-msgid "Password:"
-msgstr "कूटशबà¥à¤¦: "
-
-#: ../gcr/gcr-importer.c:163 ../gcr/gcr-parser.c:1573 ../gp11/gp11-misc.c:114
-msgid "The operation was cancelled"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
msgstr ""
-#: ../gcr/gcr-importer.c:255
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
-msgid "No location available to import to"
-msgstr ""
-
-#: ../gcr/gcr-importer.c:404
-msgid "Import Certificates/Keys"
-msgstr ""
-
-#: ../gcr/gcr-importer.c:411
-msgid "Choose a location to store the imported certificates/keys."
-msgstr ""
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:449
-msgid "In order to import the private key, it must be unlocked"
-msgstr ""
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:452
-msgid "In order to import the certificate, it must be unlocked"
-msgstr ""
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:455
-msgid "In order to import the data, it must be unlocked"
+msgid "An application wants access to the private key '%s', but it is locked"
msgstr ""
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:460
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
+msgid "An application wants access to the certificate '%s', but it is locked"
msgstr ""
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:463
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
+msgid "An application wants access to the public key '%s', but it is locked"
msgstr ""
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:466
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr ""
-
-#: ../gcr/gcr-parser.c:196
-msgid "Private Key"
-msgstr ""
-
-#: ../gcr/gcr-parser.c:199
-msgid "Certificate"
-msgstr ""
-
-#: ../gcr/gcr-parser.c:1576
-msgid "Unrecognized or unsupported data."
-msgstr ""
-
-#: ../gcr/gcr-parser.c:1579
-msgid "Could not parse invalid or corrupted data."
-msgstr ""
-
-#: ../gcr/gcr-parser.c:1582
-msgid "The data is locked"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:117
-msgid "Insufficient memory available"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:119
-msgid "The specified slot ID is not valid"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:121
-msgid "Internal error"
-msgstr "भितरका तà¥à¤°à¥à¤Ÿà¤¿"
-
-#: ../gp11/gp11-misc.c:123
-msgid "The operation failed"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:125
-msgid "Invalid arguments"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:127
-msgid "The module cannot create needed threads"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:129
-msgid "The module cannot lock data properly"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:131
-msgid "The field is read-only"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:133
-msgid "The field is sensitive and cannot be revealed"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:135
-msgid "The field is invalid or does not exist"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:137
-msgid "Invalid value for field"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:139
-msgid "The data is not valid or unrecognized"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:141
-msgid "The data is too long"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:143
-msgid "An error occurred on the device"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:145
-msgid "Insufficient memory available on device"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:147
-msgid "The device was removed or unplugged"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:149
-msgid "The encrypted data is not valid or unrecognized"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:151
-msgid "The encrypted data is too long"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:153
-msgid "This operation is not supported"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:155
-msgid "The key is missing or invalid"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:157
-msgid "The key is the wrong size"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:159
-msgid "The key is of the wrong type"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:161
-msgid "No key is needed"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:163
-msgid "The key is different than before"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:165
-msgid "A key is needed"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:167
-msgid "Cannot include the key in digest"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:169
-msgid "This operation cannot be done with this key"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:171
-msgid "The key cannot be wrapped"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:173
-msgid "Cannot export this key"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:175
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:177
-msgid "The crypto mechanism has an invalid argument"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:179
-msgid "The object is missing or invalid"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:181
-msgid "Another operation is already taking place"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:183
-msgid "No operation is taking place"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:185
-msgid "The password or PIN is incorrect"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:187
-msgid "The password or PIN is invalid"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:189
-msgid "The password or PIN is of an invalid length"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:191
-msgid "The password or PIN has expired"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:193
-msgid "The password or PIN is locked"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:195
-msgid "The session is closed"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:197
-msgid "Too many sessions are active"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:199
-msgid "The session is invalid"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:201
-msgid "The session is read-only"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:203
-msgid "An open session exists"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:205
-msgid "A read-only session exists"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:207
-msgid "An administrator session exists"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:209
-msgid "The signature is bad or corrupted"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:211
-msgid "The signature is unrecognized or corrupted"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:213
-msgid "Certain required fields are missing"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:215
-msgid "Certain fields have invalid values"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:217
-msgid "The device is not present or unplugged"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:219
-msgid "The device is invalid or unrecognizable"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:221
-msgid "The device is write protected"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:223
-msgid "Cannot import because the key is invalid"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:225
-msgid "Cannot import because the key is of the wrong size"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:227
-msgid "Cannot import because the key is of the wrong type"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:229
-msgid "You are already logged in"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:231
-msgid "No user has logged in"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:233
-msgid "The user's password or PIN is not set"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:235
-msgid "The user is of an invalid type"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:237
-msgid "Another user is already logged in"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:239
-msgid "Too many users of different types logged in"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:241
-msgid "Cannot import an invalid key"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:243
-msgid "Cannot import a key of the wrong size"
+msgid "An application wants access to '%s', but it is locked"
msgstr ""
-#: ../gp11/gp11-misc.c:245
-msgid "Cannot export because the key is invalid"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
msgstr ""
-#: ../gp11/gp11-misc.c:247
-msgid "Cannot export because the key is of the wrong size"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
msgstr ""
-#: ../gp11/gp11-misc.c:249
-msgid "Cannot export because the key is of the wrong type"
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, c-format
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
msgstr ""
-#: ../gp11/gp11-misc.c:251
-msgid "Unable to initialize the random number generator"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
msgstr ""
-#: ../gp11/gp11-misc.c:253
-msgid "No random number generator available"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
msgstr ""
-#: ../gp11/gp11-misc.c:255
-msgid "The crypto mechanism has an invalid parameter"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
+#, c-format
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
msgstr ""
-#: ../gp11/gp11-misc.c:257
-msgid "Not enough space to store the result"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "कीरिंग कूटशबà¥à¤¦ बदलू"
-#: ../gp11/gp11-misc.c:259
-msgid "The saved state is invalid"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "नवीन कीरिंग क' लेल कूटशबà¥à¤¦à¤•à¥‡à¤ चà¥à¤¨à¥‚"
-#: ../gp11/gp11-misc.c:261
-msgid "The information is sensitive and cannot be revealed"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
+#, c-format
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
msgstr ""
-#: ../gp11/gp11-misc.c:263
-msgid "The state cannot be saved"
+#: ../tool/gkr-tool.c:102
+#, c-format
+msgid "usage: gnome-keyring command [options]\n"
msgstr ""
-#: ../gp11/gp11-misc.c:265
-msgid "The module has not been initialized"
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
msgstr ""
-#: ../gp11/gp11-misc.c:267
-msgid "The module has already been initialized"
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
msgstr ""
-#: ../gp11/gp11-misc.c:269
-msgid "Cannot lock data"
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
msgstr ""
-#: ../gp11/gp11-misc.c:271
-msgid "The data cannot be locked"
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
msgstr ""
-#: ../gp11/gp11-misc.c:273
-msgid "The signature request was rejected by the user"
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
msgstr ""
-#: ../gp11/gp11-misc.c:277
-msgid "Unknown error"
-msgstr "अजà¥à¤žà¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¤¿"
-
-#: ../library/gnome-keyring-utils.c:155
-msgid "Access Denied"
-msgstr ""
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr "कूटशबà¥à¤¦ मेल नहि करैत अछि."
-#: ../library/gnome-keyring-utils.c:157
-msgid "The gnome-keyring-daemon application is not running."
+#: ../ui/gku-prompt-tool.c:649
+msgid "Password cannot be blank"
msgstr ""
-#: ../library/gnome-keyring-utils.c:159
-msgid "Error communicating with gnome-keyring-daemon"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
msgstr ""
-#: ../library/gnome-keyring-utils.c:161
-msgid "A keyring with that name already exists"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
msgstr ""
-#: ../library/gnome-keyring-utils.c:163
-msgid "Programmer error: The application sent invalid data."
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
msgstr ""
-#: ../library/gnome-keyring-utils.c:165
-msgid "No matching results"
-msgstr ""
+#: ../ui/gku-prompt.ui.h:2
+#, fuzzy
+msgid "_Application:"
+msgstr "सà¥à¤¥à¤¾à¤¨ (_L):"
-#: ../library/gnome-keyring-utils.c:167
-msgid "A keyring with that name does not exist."
+#: ../ui/gku-prompt.ui.h:3
+msgid "_Confirm:"
msgstr ""
-#: ../library/gnome-keyring-utils.c:174
-msgid "The keyring has already been unlocked."
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
msgstr ""
-#: ../pkcs11/gck/gck-certificate.c:710
-msgid "Unnamed Certificate"
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
msgstr ""
-#: ../pkcs11/ssh-store/gck-ssh-private-key.c:309
-msgid "Couldn't parse public SSH key"
-msgstr ""
+#: ../ui/gku-prompt.ui.h:6
+#, fuzzy
+msgid "_Old Password:"
+msgstr "पà¥à¤°à¤¾à¤¨ कूटशबà¥à¤¦ (_O):"
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "कूटशबà¥à¤¦ (_P):"
diff --git a/po/mg.po b/po/mg.po
index 22531793..6a41f222 100644
--- a/po/mg.po
+++ b/po/mg.po
@@ -6,405 +6,522 @@ msgid ""
msgstr ""
"Project-Id-Version: GNOME-KEYRING VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-18 20:49+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2006-08-18 23:15+0300\n"
"Last-Translator: Fano Rajaonarisoa <rajfanhar@yahoo.fr>\n"
"Language-Team: MALAGASY <i18n-malagasy-gnome@gna.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../gnome-keyring-ask.c:241
-msgid "_Old password:"
-msgstr "_Teny fanalahidy taloha:"
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
+msgstr ""
-#: ../gnome-keyring-ask.c:262
-msgid "_Password:"
-msgstr "_Teny fanalahidy:"
+#: ../daemon/dbus/gkd-secret-change.c:86
+msgid "Change Keyring Password"
+msgstr "Hanova ny teny fanalahidin'ilay rojom-panalahidy"
-#: ../gnome-keyring-ask.c:284
-msgid "_Confirm new password:"
-msgstr "_Amarino ny teny fanalahidy vaovao:"
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "Milazà teny fanalahidy vaovao ho an'ny rojom-panalahidy '%s'."
-#. Strength bar:
-#: ../gnome-keyring-ask.c:303
-msgid "<span weight=\"bold\">Password strength meter:</span>"
-msgstr "<span weight=\"bold\">Mpandrefy herin-teny fanalahidy :</span>"
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
+msgid ""
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
+msgstr ""
+"Misy rindranasa tsy fantatra te hanova ny teny fanalahidin'ny rojom-"
+"panalahidy '%s'. Mila milaza ny teny fanalahidy tianao ampiasaina amin'io "
+"ianao."
-#: ../gnome-keyring-ask.c:329
-msgid "Old password cannot be blank."
-msgstr "Tsy azo atao foana ny teny fanalahidy taloha."
+#: ../daemon/dbus/gkd-secret-change.c:111
+msgid "The original password was incorrect"
+msgstr ""
-#: ../gnome-keyring-ask.c:340
-msgid "Password cannot be blank."
-msgstr "Tsy azo atao foana ny teny fanalihidy."
+#: ../daemon/dbus/gkd-secret-create.c:83
+msgid "New Keyring Password"
+msgstr "Teny fanalahidin'ilay rojom-panalahidy vaovao"
-#: ../gnome-keyring-ask.c:348
-msgid "Passwords do not match."
-msgstr "Tsy mifanaraka ireo teny fanalahidy roa."
+#: ../daemon/dbus/gkd-secret-create.c:84
+msgid "Choose password for new keyring"
+msgstr "Lazao ny teny fanalahidin'ilay rojom-panalahidy vaovao"
-#: ../gnome-keyring-ask.c:407
-#, c-format
+#: ../daemon/dbus/gkd-secret-create.c:86
+#, fuzzy, c-format
msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
-"Ny rindranasa '%s' (%s) dia te hampiasa ny rojom-panalahidy lasitra nefa "
-"voageja ilay izy"
+"Misy rindranasa tsy fantatra te hamorona rojom-panalahidy vaovao antsoina "
+"hoe '%s'. Mila milaza ny teny fanalahidy tianao ampiasaina amin'io ianao."
-#: ../gnome-keyring-ask.c:411
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the keyring '%s', but it is locked"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+msgid "Certificate and Key Storage"
msgstr ""
-"Ny rindranasa '%s' (%s) dia te hampiasa ny rojom-panalahidy '%s' , nefa "
-"voageja ilay izy"
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:416
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to an unknown keyring, but it is "
-"locked"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+msgid "GNOME Keyring: PKCS#11 Component"
msgstr ""
-"Ny rindranasa '%s' (%s) dia te hampiasa rojom-panalahidy tsy fantatra , "
-"nefa voageja ilay izy"
-#: ../gnome-keyring-ask.c:422 ../gnome-keyring-ask.c:436
-#, c-format
-msgid ""
-"The application '%s' wants access to the default keyring, but it is locked"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+msgid "GNOME Keyring: Secret Service"
msgstr ""
-"Ny rindranasa '%s' dia te hampiasa ny rojom-panalahidy lasitra , nefa "
-"voageja ilay izy"
-#: ../gnome-keyring-ask.c:426 ../gnome-keyring-ask.c:441
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
msgstr ""
-"Ny rindranasa '%s' dia te hampiasa ny rojom-panalahidy '%s' , nefa voageja "
-"ilay izy"
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:430 ../gnome-keyring-ask.c:446
-#, c-format
-msgid ""
-"The application '%s' wants access to an unknown keyring, but it is locked"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+msgid "GNOME Keyring: SSH Agent"
msgstr ""
-"Ny rindranasa '%s' dia te hampiasa rojom-panalahidy tsy fantatra , nefa "
-"voageja ilay izy"
-#: ../gnome-keyring-ask.c:452
-msgid ""
-"An unknown application wants access to the default keyring, but it is locked"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
msgstr ""
-"Misy rindranasa tsy fantatra te hampiasa ny rojom-panalahidy lasitra, nefa "
-"voageja ilay izy"
-#: ../gnome-keyring-ask.c:456
-#, c-format
-msgid ""
-"An unknown application wants access to the keyring '%s', but it is locked"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+msgid "GNOME Keyring: GPG Agent"
msgstr ""
-"Misy rindranasa tsy fantatra te hampiasa ny rojom-panalahidy '%s', nefa "
-"voageja ilay izy"
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:461
-msgid ""
-"An unknown application wants access to an unknown keyring, but it is locked"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+msgid "GPG Password Agent"
msgstr ""
-"Misy rindranasa tsy fantatra te hampiasa rojom-panalahidy tsy fantatra, nefa "
-"voageja ilay izy"
-#: ../gnome-keyring-ask.c:468
-msgid "Enter password for default keyring to unlock"
-msgstr "Soraty ny teny fanalahidy hanafahana ny rojom-panalahidy lasitra"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+msgid "Unknown"
+msgstr ""
-#: ../gnome-keyring-ask.c:470
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "Soraty ny teny fanalahidy hanafahana ny rojom-panalahidy '%s'"
+msgid "PGP Key: %s"
+msgstr ""
-#: ../gnome-keyring-ask.c:474
-msgid "Unlock Keyring"
-msgstr "Manafaka ilay rojom-panalahidy"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
+msgstr ""
-#: ../gnome-keyring-ask.c:479 ../gnome-keyring-ask.c:563
-#: ../gnome-keyring-ask.c:655 ../gnome-keyring-ask.c:711
-#: ../gnome-keyring-ask.c:798
-msgid "_Deny"
-msgstr "_Lavo"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
+msgstr ""
-#: ../gnome-keyring-ask.c:517
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-"Ny rindranasa '%s' (%s) dia te hamorona rojom-panalahidy vaovao antsoina hoe "
-"'%s'. Mila milaza ny teny fanalahidy tianao ampiasaina amin'io ianao."
-#: ../gnome-keyring-ask.c:521
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
msgstr ""
-"Ny rindranasa '%s' (%s) dia te hamorona rojom-panalahidy lasitra vaovao. "
-"Mila milaza ny teny fanalahidy tianao ampiasaina amin'io ianao."
-#: ../gnome-keyring-ask.c:527 ../gnome-keyring-ask.c:537
-#, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
msgstr ""
-"Ny rindranasa '%s' dia te hamorona rojom-panalahidy vaovao antsoina hoe '%"
-"s'. Mila milaza ny teny fanalahidy tianao ampiasaina amin'io ianao."
-#: ../gnome-keyring-ask.c:531 ../gnome-keyring-ask.c:541
-#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:41
+msgid "Domain Component"
msgstr ""
-"Ny rindranasa '%s' dia te hamorona rojom-panalahidy lasitra vaovao. Mila "
-"milaza ny teny fanalahidy tianao ampiasaina amin'io ianao."
-#: ../gnome-keyring-ask.c:547
-#, c-format
-msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
+#: ../egg/egg-oid.c:43
+msgid "User ID"
msgstr ""
-"Misy rindranasa tsy fantatra te hamorona rojom-panalahidy vaovao antsoina "
-"hoe '%s'. Mila milaza ny teny fanalahidy tianao ampiasaina amin'io ianao."
-#: ../gnome-keyring-ask.c:551
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:46
+msgid "Email Address"
msgstr ""
-"Misy rindranasa tsy fantatra te hamorona rojom-panalahidy lasitra vaovao. "
-"Mila milaza ny teny fanalahidy tianao ampiasaina amin'io ianao."
-#: ../gnome-keyring-ask.c:558
-msgid "New Keyring Password"
-msgstr "Teny fanalahidin'ilay rojom-panalahidy vaovao"
+#: ../egg/egg-oid.c:54
+msgid "Date of Birth"
+msgstr ""
-#: ../gnome-keyring-ask.c:559
-msgid "Choose password for new keyring"
-msgstr "Lazao ny teny fanalahidin'ilay rojom-panalahidy vaovao"
+#: ../egg/egg-oid.c:56
+msgid "Place of Birth"
+msgstr ""
-#: ../gnome-keyring-ask.c:602
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:58
+msgid "Gender"
msgstr ""
-"Ny rindranasa '%s' (%s) dia te hanova ny teny fanalahidin'ny rojom-"
-"panalahidy '%s'. Mila milaza ny teny fanalahidy tianao ampiasaina amin'io "
-"ianao."
-#: ../gnome-keyring-ask.c:606
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:60
+msgid "Country of Citizenship"
+msgstr ""
+
+#: ../egg/egg-oid.c:62
+msgid "Country of Residence"
+msgstr ""
+
+#: ../egg/egg-oid.c:65
+msgid "Common Name"
+msgstr ""
+
+#: ../egg/egg-oid.c:67
+msgid "Surname"
+msgstr ""
+
+#: ../egg/egg-oid.c:69
+msgid "Serial Number"
+msgstr ""
+
+#: ../egg/egg-oid.c:71
+msgid "Country"
+msgstr ""
+
+#: ../egg/egg-oid.c:73
+msgid "Locality"
+msgstr ""
+
+#: ../egg/egg-oid.c:75
+msgid "State"
+msgstr ""
+
+#: ../egg/egg-oid.c:77
+msgid "Street"
+msgstr ""
+
+#: ../egg/egg-oid.c:79
+msgid "Organization"
+msgstr ""
+
+#: ../egg/egg-oid.c:81
+msgid "Organizational Unit"
+msgstr ""
+
+#: ../egg/egg-oid.c:83
+msgid "Title"
+msgstr ""
+
+#: ../egg/egg-oid.c:85
+msgid "Telephone Number"
+msgstr ""
+
+#: ../egg/egg-oid.c:87
+msgid "Given Name"
+msgstr ""
+
+#: ../egg/egg-oid.c:89
+msgid "Initials"
+msgstr ""
+
+#: ../egg/egg-oid.c:91
+msgid "Generation Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:93
+msgid "DN Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:95
+msgid "Pseudonym"
+msgstr ""
+
+#: ../egg/egg-oid.c:98
+msgid "RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:99
+msgid "MD2 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:100
+msgid "MD5 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:101
+msgid "SHA1 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:103
+msgid "DSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:104
+msgid "SHA1 with DSA"
+msgstr ""
+
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
msgstr ""
-"Ny rindranasa '%s' (%s) dia te hanova ny teny fanalahidin'ny rojom-"
-"panalahidy lasitra. Mila milaza ny teny fanalahidy tianao ampiasaina amin'io "
-"ianao."
-#: ../gnome-keyring-ask.c:612 ../gnome-keyring-ask.c:622
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
+
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
+
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
+msgid "Unexpected error in select() reading data from a child process (%s)"
msgstr ""
-"Ny rindranasa '%s' dia te hanova ny teny fanalahidin'ny rojom-panalahidy '%"
-"s'. Mila milaza ny teny fanalahidy tianao ampiasaina amin'io ianao."
-#: ../gnome-keyring-ask.c:616 ../gnome-keyring-ask.c:626
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+msgid "Unexpected error in waitpid() (%s)"
+msgstr ""
+
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
msgstr ""
-"Ny rindranasa '%s' dia te hanova ny teny fanalahidin'ny rojom-panalahidy "
-"lasitra. Mila milaza ny teny fanalahidy tianao ampiasaina amin'io ianao."
-#: ../gnome-keyring-ask.c:632
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
+msgstr ""
+
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
+msgid "Unlock password for: %s"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+msgid "The unlock password was incorrect"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+#, fuzzy
+msgid "Unlock Login Keyring"
+msgstr "Manafaka ilay rojom-panalahidy"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
+msgstr "Lazao ny teny fanalahidin'ilay rojom-panalahidy vaovao"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
msgstr ""
-"Misy rindranasa tsy fantatra te hanova ny teny fanalahidin'ny rojom-"
-"panalahidy '%s'. Mila milaza ny teny fanalahidy tianao ampiasaina amin'io "
-"ianao."
-#: ../gnome-keyring-ask.c:636
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+"The login keyring did not get unlocked when you logged into your computer."
msgstr ""
-"Misy rindranasa tsy fantatra te hanova ny teny fanalahidin'ny rojom-"
-"panalahidy lasitra. Mila milaza ny teny fanalahidy tianao ampiasaina amin'io "
-"ianao."
-#: ../gnome-keyring-ask.c:643
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "Manafaka ilay rojom-panalahidy"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
#, c-format
-msgid "Choose a new password for the '%s' keyring. "
-msgstr "Milazà teny fanalahidy vaovao ho an'ny rojom-panalahidy '%s'."
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "Soraty ny teny fanalahidy hanafahana ny rojom-panalahidy '%s'"
-#: ../gnome-keyring-ask.c:645
-msgid "Choose a new password for the default keyring. "
-msgstr "Milazà teny fanalahidy vaovao ho an'ny rojom-panalahidy lasitra."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, fuzzy, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr ""
+"Misy rindranasa tsy fantatra te hampiasa ny rojom-panalahidy '%s', nefa "
+"voageja ilay izy"
-#: ../gnome-keyring-ask.c:650
-msgid "Change Keyring Password"
-msgstr "Hanova ny teny fanalahidin'ilay rojom-panalahidy"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
+msgstr ""
-#: ../gnome-keyring-ask.c:689
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+#, fuzzy
+msgid "Unlock certificate"
+msgstr "Manafaka ilay rojom-panalahidy"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
msgstr ""
-"Te hitahiry teny fanalahidy ny rindranasa '%s' (%s), saingy tsy misy rojom-"
-"panalahidy lasitra. Mila milaza ny teny fanalahidy tianao ampiasaina amin'io "
-"ianao raha hamorona rojo iray."
-#: ../gnome-keyring-ask.c:693 ../gnome-keyring-ask.c:697
-#, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+#, fuzzy
+msgid "Unlock"
+msgstr "Manafaka ilay rojom-panalahidy"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+#, fuzzy
+msgid "Enter password to unlock the private key"
+msgstr "Soraty ny teny fanalahidy hanafahana ny rojom-panalahidy lasitra"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
msgstr ""
-"Te hitahiry teny fanalahidy ny rindranasa '%s', saingy tsy misy rojom-"
-"panalahidy lasitra. Mila milaza ny teny fanalahidy tianao ampiasaina amin'io "
-"ianao raha hamorona rojo iray."
-#. app == APPLICATION_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:701
-msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+#, fuzzy
+msgid "Enter password to unlock the public key"
+msgstr "Soraty ny teny fanalahidy hanafahana ny rojom-panalahidy lasitra"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+#, fuzzy
+msgid "Enter password to unlock"
+msgstr "Soraty ny teny fanalahidy hanafahana ny rojom-panalahidy '%s'"
+
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
+#, fuzzy, c-format
+msgid "An application wants access to the private key '%s', but it is locked"
msgstr ""
-"Misy ny rindranasa tsy fantatra te hitahiry teny fanalahidy, saingy tsy misy "
-"rojom-panalahidy lasitra. Mila milaza ny teny fanalahidy tianao ampiasaina "
-"amin'io ianao raha hamorona rojo iray."
+"Misy rindranasa tsy fantatra te hampiasa ny rojom-panalahidy '%s', nefa "
+"voageja ilay izy"
-#: ../gnome-keyring-ask.c:706
-msgid "Create Default Keyring"
-msgstr "Hamorona rojom-panalahidy lasitra"
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
+#, fuzzy, c-format
+msgid "An application wants access to the certificate '%s', but it is locked"
+msgstr ""
+"Misy rindranasa tsy fantatra te hampiasa ny rojom-panalahidy '%s', nefa "
+"voageja ilay izy"
+
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
+#, fuzzy, c-format
+msgid "An application wants access to the public key '%s', but it is locked"
+msgstr ""
+"Misy rindranasa tsy fantatra te hampiasa ny rojom-panalahidy '%s', nefa "
+"voageja ilay izy"
-#: ../gnome-keyring-ask.c:707
-msgid "Choose password for default keyring"
-msgstr "Lazao ny teny fanalahidy ho an'ny rojom-panalahidy lasitra"
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
+#, fuzzy, c-format
+msgid "An application wants access to '%s', but it is locked"
+msgstr ""
+"Misy rindranasa tsy fantatra te hampiasa ny rojom-panalahidy '%s', nefa "
+"voageja ilay izy"
-#: ../gnome-keyring-ask.c:747
-msgid "Allow application access to keyring?"
-msgstr "Avela hampiasa ny rojom-panalahidy ilay rindranasa?"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
+msgstr ""
-#: ../gnome-keyring-ask.c:750
-#, c-format
-msgid "The application '%s' (%s) wants to access the password for '%s' in %s."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
msgstr ""
-"Ny rindranasa '%s' (%s) dia te hampiasa ny teny fanalahidin'ny '%s' amin'ny %"
-"s."
-#: ../gnome-keyring-ask.c:753
-#, c-format
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, fuzzy, c-format
msgid ""
-"The application '%s' (%s) wants to access the password for '%s' in the "
-"default keyring."
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
msgstr ""
-"Ny rindranasa '%s' (%s) dia te hampiasa ny teny fanalahidin'ny '%s' amin'ny "
-"rojom-panalahidy lasitra."
+"Misy rindranasa tsy fantatra te hampiasa ny rojom-panalahidy '%s', nefa "
+"voageja ilay izy"
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:756
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '%s' in an "
-"unknown keyring."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
msgstr ""
-"Ny rindranasa '%s' (%s) dia te hampiasa ny teny fanalahidin'ny '%s' amina "
-"rojom-panalahidy tsy fantatra."
-#: ../gnome-keyring-ask.c:761 ../gnome-keyring-ask.c:772
-#, c-format
-msgid "The application '%s' wants to access the password for '%s' in %s."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
msgstr ""
-"Ny rindranasa '%s' dia te hampiasa ny teny fanalahidin'ny '%s' amin'ny %s."
-#: ../gnome-keyring-ask.c:764 ../gnome-keyring-ask.c:775
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
#, c-format
msgid ""
-"The application '%s' wants to access the password for '%s' in the default "
-"keyring."
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
msgstr ""
-"Ny rindranasa '%s' dia te hampiasa ny teny fanalahidin'ny '%s' amin'ny rojom-"
-"panalahidy lasitra."
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:767 ../gnome-keyring-ask.c:778
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "Hanova ny teny fanalahidin'ilay rojom-panalahidy"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "Lazao ny teny fanalahidin'ilay rojom-panalahidy vaovao"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
msgid ""
-"The application '%s' wants to access the password for '%s' in an unknown "
-"keyring."
+"To change the password for '%s', the original and new passwords are required"
msgstr ""
-"Ny rindranasa '%s' dia te hampiasa ny teny fanalahidin'ny '%s' amina rojom-"
-"panalahidy tsy fantatra."
-#: ../gnome-keyring-ask.c:783
+#: ../tool/gkr-tool.c:102
#, c-format
-msgid "An unknown application wants to access the password for '%s' in %s."
+msgid "usage: gnome-keyring command [options]\n"
msgstr ""
-"Misy rindranasa tsy fantatra te hampiasa ny teny fanalahidin'ny '%s' amin'ny "
-"%s."
-#: ../gnome-keyring-ask.c:786
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '%s' in the default "
-"keyring."
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
msgstr ""
-"Misy rindranasa tsy fantatra te hampiasa ny teny fanalahidin'ny '%s' amin'ny "
-"rojom-panalahidy lasitra."
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:789
-#, c-format
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:592
msgid ""
-"An unknown application wants to access the password for '%s' in an unknown "
-"keyring."
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
msgstr ""
-"Misy rindranasa tsy fantatra te hampiasa ny teny fanalahidin'ny '%s' amina "
-"rojom-panalahidy tsy fantatra."
-#: ../gnome-keyring-ask.c:794
-msgid "Allow access"
-msgstr "Avelao"
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
+msgstr ""
-#: ../gnome-keyring-ask.c:799
-msgid "Allow _Once"
-msgstr "Avelao _indray mandeha"
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr "Tsy mifanaraka ireo teny fanalahidy roa."
-#: ../gnome-keyring-ask.c:800
-msgid "_Always Allow"
-msgstr "_Avelao foana"
+#: ../ui/gku-prompt-tool.c:649
+#, fuzzy
+msgid "Password cannot be blank"
+msgstr "Tsy azo atao foana ny teny fanalihidy."
-#: ../gnome-keyring-ask.c:840
-msgid "You must specify the type of request to run\n"
-msgstr "Tsy maintsy milaza ny karazam-pangatahana hotanterahina ianao\n"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
+
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
-#: ../gnome-keyring-ask.c:857
-msgid "Unknown request type\n"
-msgstr "Karazam-pagatahana tsy fantatra\n"
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:2
+msgid "_Application:"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:3
+msgid "_Confirm:"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:6
+#, fuzzy
+msgid "_Old Password:"
+msgstr "_Teny fanalahidy taloha:"
+
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "_Teny fanalahidy:"
diff --git a/po/mk.po b/po/mk.po
index b1be63d8..b49f1f24 100644
--- a/po/mk.po
+++ b/po/mk.po
@@ -11,650 +11,465 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.HEAD.mk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-08-31 18:25+0000\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2008-09-25 18:22+0200\n"
"Last-Translator: Jovan Naumovski <jovan@lugola.net>\n"
"Language-Team: Macedonian <mkde-l10n@lists.sourceforge.net>\n"
+"Language: mk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1\n"
"X-Generator: KBabel 1.11.4\n"
-#: ../common/gkr-location.c:320
-#, c-format
-msgid "Removable Disk: %s"
-msgstr "ПреноÑлив диÑк: %s"
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
+msgstr ""
-#: ../common/gkr-location.c:322
-msgid "Removable Disk"
-msgstr "ПреноÑлив диÑк"
+#: ../daemon/dbus/gkd-secret-change.c:86
+msgid "Change Keyring Password"
+msgstr "Смени ја лозинката за привезокот"
-#: ../common/gkr-location.c:543 ../common/gkr-location.c:555
-msgid "Home"
-msgstr "Дома"
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "Изберете нова лозинка за привезокот „%s“. "
-#: ../common/gkr-location.c:1104 ../common/gkr-location.c:1128
-#: ../daemon/pkix/gkr-pkix-parser.c:524 ../daemon/pkix/gkr-pkix-serialize.c:58
-msgid "The disk or drive this file is located on is not present"
-msgstr "ДиÑкот или уредот на кој што Ñе наоѓа оваа датотека не е приÑутен"
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
+msgid ""
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
+msgstr ""
+"Ðепозната апликација Ñака да ја Ñмени лозинката за привезокот „%s“. Треба да "
+"изберете лозинка која што Ñакате да ја кориÑтите."
-#: ../common/gkr-location.c:1136
-#, c-format
-msgid "Couldn't create directory: %s"
-msgstr "Ðе можам да го креирам директориумот: %s"
+#: ../daemon/dbus/gkd-secret-change.c:111
+#, fuzzy
+msgid "The original password was incorrect"
+msgstr "Лозинката или PIN-от не е точен"
-#: ../common/gkr-location.c:1170
-#, c-format
-msgid "Couldn't delete the file: %s"
-msgstr "Ðе можам да ја избришам датотеката: %s"
+#: ../daemon/dbus/gkd-secret-create.c:83
+msgid "New Keyring Password"
+msgstr "Ðова лозинка за привезок"
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:227
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in the default keyring."
-msgstr ""
-"Ðпликацијата „%s“ (%s) Ñака да и приÑтапи на лозинката за „<object "
-"prop='name'/>“ во Ñтандардниот привезок."
+#: ../daemon/dbus/gkd-secret-create.c:84
+msgid "Choose password for new keyring"
+msgstr "Изберете лозинка за новиот привезок"
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:231
-#, c-format
+#: ../daemon/dbus/gkd-secret-create.c:86
+#, fuzzy, c-format
msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in %s."
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
-"Ðпликацијата „%s“(%s) Ñака да и приÑтапи на лозинката за „<object "
-"prop='name'/>“ во „%s“."
+"Ðепозната апликација Ñака да креира нов привезок кој што ќе Ñе вика „%s“. "
+"Треба да ја изберете лозинката која што Ñакате да ја кориÑтите."
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:237 ../daemon/gkr-daemon-ops.c:247
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in the default keyring."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+msgid "Certificate and Key Storage"
msgstr ""
-"Ðпликацијата „%s“ Ñака да и приÑтапи на лозинката за „<object prop='name'/>“ "
-"во Ñтандардниот привезок."
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:241 ../daemon/gkr-daemon-ops.c:251
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in %s."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+msgid "GNOME Keyring: PKCS#11 Component"
msgstr ""
-"Ðпликацијата „%s“ Ñака да и приÑтапи на лозинката за „<object prop='name'/>“ "
-"во %s."
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:257
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in the default keyring."
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+msgid "GNOME Keyring: Secret Service"
msgstr ""
-"Ðепозната апликација Ñака да и приÑтапи на лозинката за „<object prop='name'/"
-">“ во Ñтандардниот привезок."
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:260
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in %s."
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
msgstr ""
-"Ðепознатата апликација Ñака да и приÑтапи на лозинката за '<object "
-"prop='name'/>' во %s."
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:266
-msgid "Allow access"
-msgstr "Дозволи"
-#: ../daemon/gkr-daemon-ops.c:266
-msgid "Allow application access to keyring?"
-msgstr "Да дозволам приÑтап на апликациите до привезокот?"
-
-#: ../daemon/gkr-daemon-ops.c:307
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+msgid "GNOME Keyring: SSH Agent"
msgstr ""
-"Ðпликацијата „%s“ (%s) бара приÑтап до Ñтандардниот привезок но тој е "
-"заклучен"
-
-#: ../daemon/gkr-daemon-ops.c:311
-#, c-format
-msgid "The application '%s' (%s) wants access to the keyring '%s', but it is locked"
-msgstr "Ðпликацијата „%s“ (%s) бара приÑтап до привезокот „%s“ но тој е заклучен"
-
-#: ../daemon/gkr-daemon-ops.c:317 ../daemon/gkr-daemon-ops.c:327
-#, c-format
-msgid "The application '%s' wants access to the default keyring, but it is locked"
-msgstr "Ðпликацијата „%s“ бара приÑтап до Ñтандардниот привезок но тој е заклучен"
-
-#: ../daemon/gkr-daemon-ops.c:321 ../daemon/gkr-daemon-ops.c:332
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
-msgstr "Ðпликацијата „%s“ бара приÑтап до привезокот „%s“ но тој е заклучен"
-#: ../daemon/gkr-daemon-ops.c:338
-#, c-format
-msgid "An unknown application wants access to the default keyring, but it is locked"
-msgstr "Ðепозната апликација бара приÑтап до Ñтандардниот привезок но тој е заклучен"
-
-#: ../daemon/gkr-daemon-ops.c:342
-#, c-format
-msgid "An unknown application wants access to the keyring '%s', but it is locked"
-msgstr "Ðепозната апликација бара приÑтап до привезокот „%s“ но тој е заклучен"
-
-#: ../daemon/gkr-daemon-ops.c:349
-msgid "Enter password for default keyring to unlock"
-msgstr "ВнеÑете лозинка за да го отклучите Ñтандардниот привезок"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:351
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "ВнеÑете лозинка за отклучување на привезокот „%s“"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+msgid "GNOME Keyring: GPG Agent"
+msgstr ""
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:355
-msgid "Unlock Keyring"
-msgstr "Отклучи привезок"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+#, fuzzy
+msgid "GPG Password Agent"
+msgstr "Ðова јачина на лозинка"
-#: ../daemon/gkr-daemon-ops.c:367 ../daemon/pk/gkr-pk-index.c:135
-msgid "Automatically unlock this keyring when I log in."
-msgstr "ÐвтоматÑки отклучи го привезокот кога ќе Ñе најавам."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+#, fuzzy
+msgid "Unknown"
+msgstr "Ðепозната грешка"
-#: ../daemon/gkr-daemon-ops.c:403
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
+msgid "PGP Key: %s"
msgstr ""
-"Ðпликацијата „%s“ (%s) Ñака да креира нов привезок кој што ќе Ñе вика „%s“. "
-"Треба да ја изберете лозинката која што Ñакате да ја кориÑтите."
-#: ../daemon/gkr-daemon-ops.c:407
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-"Ðпликацијата „%s“ (%s) Ñака да креира нов Ñтандарден привезок. Треба да ја "
-"изберете лозинката која што Ñакате да ја кориÑтите."
-#: ../daemon/gkr-daemon-ops.c:413 ../daemon/gkr-daemon-ops.c:423
-#, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
msgstr ""
-"Ðпликацијата „%s“ Ñака да креира нов привезок кој што ќе Ñе вика „%s“. Треба "
-"да ја одберете лозинката која што Ñакате да ја кориÑтите."
-#: ../daemon/gkr-daemon-ops.c:417 ../daemon/gkr-daemon-ops.c:427
-#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-"Ðпликацијата „%s“ Ñака да креира нов Ñтандарден привезок. Треба да ја "
-"изберете лозинката која што Ñакате да ја кориÑтите."
-#: ../daemon/gkr-daemon-ops.c:433
-#, c-format
-msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
msgstr ""
-"Ðепозната апликација Ñака да креира нов привезок кој што ќе Ñе вика „%s“. "
-"Треба да ја изберете лозинката која што Ñакате да ја кориÑтите."
-#: ../daemon/gkr-daemon-ops.c:437
-#, c-format
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
msgstr ""
-"Ðепозната апликација Ñака да креиран нов Ñтандарден привезок. Треба да "
-"изберете лозинка која што Ñакате да ја кориÑтите."
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:443
-msgid "New Keyring Password"
-msgstr "Ðова лозинка за привезок"
+#: ../egg/egg-oid.c:41
+msgid "Domain Component"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:444
-msgid "Choose password for new keyring"
-msgstr "Изберете лозинка за новиот привезок"
+#: ../egg/egg-oid.c:43
+msgid "User ID"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:491
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:46
+msgid "Email Address"
msgstr ""
-"Ðпликацијата „%s“ (%s) Ñака да ја Ñмени лозинката за привезокот „%s“. Треба "
-"да ја изберете лозинката која што Ñакате да ја кориÑтите."
-#: ../daemon/gkr-daemon-ops.c:495
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:54
+msgid "Date of Birth"
msgstr ""
-"Ðпликацијата „%s“ (%s) Ñака да ја Ñмени лозинката за Ñтандардниот привезок. "
-"Треба да ја изберете лозинката која што Ñакате да ја кориÑтите."
-#: ../daemon/gkr-daemon-ops.c:501 ../daemon/gkr-daemon-ops.c:511
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:56
+msgid "Place of Birth"
msgstr ""
-"Ðпликацијата „%s“ Ñака да ја Ñмени лозинката за привезокот „%s“. Треба да ја "
-"изберете лозинката која што Ñакате да ја кориÑтите."
-#: ../daemon/gkr-daemon-ops.c:505 ../daemon/gkr-daemon-ops.c:515
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:58
+msgid "Gender"
msgstr ""
-"Ðпликацијата „%s“ Ñака да ја Ñмени лозинката за Ñтандардниот привезок. Треба "
-"да ја изберете лозинката која што Ñакате да ја кориÑтите."
-#: ../daemon/gkr-daemon-ops.c:521
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:60
+msgid "Country of Citizenship"
msgstr ""
-"Ðепозната апликација Ñака да ја Ñмени лозинката за привезокот „%s“. Треба да "
-"изберете лозинка која што Ñакате да ја кориÑтите."
-#: ../daemon/gkr-daemon-ops.c:525
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:62
+msgid "Country of Residence"
msgstr ""
-"Ðепозната апликација Ñака да ја Ñмени лозинката за Ñтандардниот привезок. "
-"Треба да изберете лозинка која што Ñакате да ја кориÑтите."
-#: ../daemon/gkr-daemon-ops.c:535
-#, c-format
-msgid "Choose a new password for the '%s' keyring. "
-msgstr "Изберете нова лозинка за привезокот „%s“. "
+#: ../egg/egg-oid.c:65
+msgid "Common Name"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:537
-#, c-format
-msgid "Choose a new password for the default keyring. "
-msgstr "Изберете нова лозинка за Ñтандардниот привезок. "
+#: ../egg/egg-oid.c:67
+msgid "Surname"
+msgstr ""
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:541
-msgid "Change Keyring Password"
-msgstr "Смени ја лозинката за привезокот"
+#: ../egg/egg-oid.c:69
+msgid "Serial Number"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:614
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../egg/egg-oid.c:71
+msgid "Country"
msgstr ""
-"Ðпликацијата „%s“ (%s) Ñака да Ñкладира лозинка но не поÑтои Ñтандарден "
-"привезок. За да креирате треба да изберете лозинка која што Ñакате да ја "
-"кориÑтите за иÑтиот."
-#: ../daemon/gkr-daemon-ops.c:618 ../daemon/gkr-daemon-ops.c:622
-#, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../egg/egg-oid.c:73
+msgid "Locality"
msgstr ""
-"Ðпликацијата „%s“ Ñака да Ñкладира лозинка но не поÑтои Ñтандарден привезок. "
-"За да креирате треба да изберете лозинка која што Ñакате да ја кориÑтите за "
-"иÑтиот."
-#: ../daemon/gkr-daemon-ops.c:626
-#, c-format
-msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../egg/egg-oid.c:75
+msgid "State"
msgstr ""
-"Ðепозната апликација Ñака да Ñкладира лозинка но не поÑти Ñтандарден "
-"привезок. За да креирате треба да изберете лозинка која што Ñакате да ја "
-"кориÑтите за иÑтиот."
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:631
-msgid "Create Default Keyring"
-msgstr "Креирај Ñтандарден привезок"
+#: ../egg/egg-oid.c:77
+msgid "Street"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:631
-msgid "Choose password for default keyring"
-msgstr "Изберете лозинка за Ñтандардниот привезок"
+#: ../egg/egg-oid.c:79
+msgid "Organization"
+msgstr ""
-#: ../daemon/data/gnome-keyring.schemas.in.h:1
-msgid ""
-"A list of paths to PKCS#11 modules to load. No modules are currently listed "
-"by default, as this is still an experimental feature. This is used by "
-"seahorse and other PKCS#11 aware applications."
+#: ../egg/egg-oid.c:81
+msgid "Organizational Unit"
msgstr ""
-"ЛиÑта на патеки за вчитување на PKCS#11 модули. Моментално нема модули кои Ñтандардно Ñе во лиÑтата бидејќи ова е екÑпериментална опција. Ова Ñе кориÑти од"
-"seahorse и други апликации кои го кориÑтат PKCS#11."
-#: ../daemon/data/gnome-keyring.schemas.in.h:2
-msgid "PKCS#11 Modules"
-msgstr "PKCS#11 модули"
+#: ../egg/egg-oid.c:83
+msgid "Title"
+msgstr ""
-#: ../daemon/data/gnome-keyring.schemas.in.h:3
-msgid ""
-"This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-"only takes effect as gnome-keyring-daemon starts, (ie: when the user logs "
-"in). This setting may be overridden when certain command line arguments are "
-"passed to the daemon."
+#: ../egg/egg-oid.c:85
+msgid "Telephone Number"
msgstr ""
-"Оваа опција ја вклучува компонентата PKCS#11 во даемонот за gnome-keyring. "
-"Се применува Ñамо при подигнувањето на даемонот за gnome-keyring, (пр. при "
-"најава на кориÑникот). Ова поÑтавување може да Ñе избегне Ñо додавање на "
-"одредени команди преку командната линија."
-#: ../daemon/data/gnome-keyring.schemas.in.h:4
-msgid ""
-"This option enables the SSH agent in the gnome-keyring daemon. It only takes "
-"effect as gnome-keyring-daemon starts, (ie: when the user logs in). This "
-"setting may be overridden when certain command line arguments are passed to "
-"the daemon."
-msgstr ""
-"Оваа опција го вклучува SSH агентот во gnome-keyring даемонот. Се применува "
-"Ñамо кога при подигнувањето на даемонот за gnome-keyring, (пр. кога Ñе "
-"најавува кориÑник). Ова поÑтавување може да Ñе избегне Ñо додавање на "
-"одредени команди преку командната линија."
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:5
-msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-msgstr "Дали е вклучена компонетата PKCS#11 за gnome-keyring."
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:6
-msgid "Whether the gnome-keyring SSH agent is enabled."
-msgstr "Дали е вклучен SSH агентот за gnome-keyring."
-
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:98
-msgid "Unlock Login Keyring"
-msgstr "Отклучи привезок за најава."
+#: ../egg/egg-oid.c:87
+msgid "Given Name"
+msgstr ""
-#: ../daemon/keyrings/gkr-keyring-login.c:98
-msgid "Enter login password to unlock keyring"
-msgstr "Изберете лозинка за отклучување на привезокот"
+#: ../egg/egg-oid.c:89
+msgid "Initials"
+msgstr ""
-#: ../daemon/keyrings/gkr-keyring-login.c:100
-msgid ""
-"Your login keyring was not automatically unlocked when you logged into this "
-"computer."
-msgstr "Вашиот привезок не беше автоматÑки отклучен кога Ñе најавивте."
+#: ../egg/egg-oid.c:91
+#, fuzzy
+msgid "Generation Qualifier"
+msgstr "Операцијата не уÑпеа"
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:124
-msgid "Create Login Keyring"
-msgstr "Креирај привезок за најава"
+#: ../egg/egg-oid.c:93
+msgid "DN Qualifier"
+msgstr ""
-#: ../daemon/keyrings/gkr-keyring-login.c:124
-msgid "Enter your login password"
-msgstr "ВнеÑете ја лозинката за најава"
+#: ../egg/egg-oid.c:95
+msgid "Pseudonym"
+msgstr ""
-#: ../daemon/keyrings/gkr-keyring-login.c:126
-msgid ""
-"Your login keyring was not automatically created when you logged into this "
-"computer. It will now be created."
+#: ../egg/egg-oid.c:98
+msgid "RSA"
msgstr ""
-"Вашиот привезок не беше креиран автоматÑки кога Ñе најавивте. Ќе биде "
-"креиран Ñега."
-#: ../daemon/keyrings/gkr-keyring.c:584
-#, c-format
-msgid "Unlock password for %s keyring"
-msgstr "Изберете лозинка за новиот привезок за %s"
+#: ../egg/egg-oid.c:99
+msgid "MD2 with RSA"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:88
-msgid "Import private key"
-msgstr "Увези приватен клуч"
+#: ../egg/egg-oid.c:100
+msgid "MD5 with RSA"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:90
-msgid "Import certificate"
-msgstr "Увези Ñертификат"
+#: ../egg/egg-oid.c:101
+msgid "SHA1 with RSA"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:92
-msgid "Import public key"
-msgstr "Увези јавен клуч"
+#: ../egg/egg-oid.c:103
+msgid "DSA"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:94
-msgid "Import"
-msgstr "Увези"
+#: ../egg/egg-oid.c:104
+msgid "SHA1 with DSA"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:101 ../daemon/pk/gkr-pk-storage.c:166
-msgid "Enter password to unlock the private key"
-msgstr "ВнеÑете лозинка за отклучување на приватниот клуч"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:103 ../daemon/pk/gkr-pk-storage.c:168
-msgid "Enter password to unlock the certificate"
-msgstr "ВнеÑете лозинка за отклучување на Ñертификатот"
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:105 ../daemon/pk/gkr-pk-storage.c:170
-msgid "Enter password to unlock the public key"
-msgstr "ВнеÑете лозинка за отклучување на јавниот клуч"
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:107 ../daemon/pk/gkr-pk-storage.c:172
-msgid "Enter password to unlock"
-msgstr "ВнеÑете лозинка за отклучување"
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:114
-#, c-format
-msgid "The system wants to import the private key '%s', but it is locked"
-msgstr "СиÑтемот Ñака да го увезе приватниот клуч %s, но тој е заклучен"
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:116
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid "The system wants to import the certificate '%s', but it is locked"
-msgstr "СиÑтемот Ñака да го увезе Ñертификатот %s, но тој е заклучен"
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:118
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid "The system wants to import the public key '%s', but it is locked"
-msgstr "СиÑтемот Ñака да го увезе јавниот клуч %s, но тој е заклучен."
+msgid "Unexpected error in waitpid() (%s)"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:120
-#, c-format
-msgid "The system wants to import '%s', but it is locked"
-msgstr "СиÑтемот Ñака да увезе %s, но тој е заклучен"
+#: ../pkcs11/gkm/gkm-certificate.c:572
+#, fuzzy
+msgid "Unnamed Certificate"
+msgstr "Сертификат"
-#. And put together the ask request
-#: ../daemon/pk/gkr-pk-index.c:93
-msgid "Create Storage for Key Information"
-msgstr "Креирај Ñклад за информации за клучевите"
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+#, fuzzy
+msgid "Couldn't parse public SSH key"
+msgstr "Ðе можам да го енкодирам јавниот клуч за безбедна школка."
-#: ../daemon/pk/gkr-pk-index.c:94
-msgid "Choose password to protect storage"
-msgstr "Изберете лозинка за заштита на Ñкладираните податоци"
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, fuzzy, c-format
+msgid "Unlock password for: %s"
+msgstr "Изберете лозинка за новиот привезок за %s"
-#: ../daemon/pk/gkr-pk-index.c:97
-msgid ""
-"The system wants to store information about your keys and certificates. In "
-"order to protect this information, choose a password with which it will be "
-"locked."
-msgstr ""
-"СиÑтемот Ñака да зачува информации за Вашите клучеви и Ñертификати. За "
-"да Ñе заштитат овие информации, одберете лозинка Ñо која ќе бидат заклучени."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+#, fuzzy
+msgid "The unlock password was incorrect"
+msgstr "Лозинката или PIN-от не е точен"
-#. And put together the ask request
-#: ../daemon/pk/gkr-pk-index.c:124
-msgid "Unlock Storage for Key Information"
-msgstr "Отклучи ги информациите за Ñкладирање на клуч"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+msgid "Unlock Login Keyring"
+msgstr "Отклучи привезок за најава."
-#: ../daemon/pk/gkr-pk-index.c:125
-msgid "Enter password to unlock storage"
-msgstr "ВнеÑете лозинка за отклучување на Ñкладираните податоци"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
+msgstr "Изберете лозинка за отклучување на привезокот"
-#: ../daemon/pk/gkr-pk-index.c:128
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
msgid ""
-"The system wants to access information about your keys and certificates, but "
-"it is locked."
-msgstr "СиÑтемот Ñака да приÑтапи до информации за Вашите клучеви и Ñертификати, но тие Ñе заклучени."
-
-#: ../daemon/pk/gkr-pk-object.c:883
-msgid "Certificate"
-msgstr "Сертификат"
-
-#: ../daemon/pk/gkr-pk-object.c:885
-msgid "Private Key"
-msgstr "Приватен клуч"
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
+msgstr ""
-#: ../daemon/pk/gkr-pk-object.c:887
-msgid "Public Key"
-msgstr "Јавен клуч"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
+#, fuzzy
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr "Вашиот привезок не беше автоматÑки отклучен кога Ñе најавивте."
-#: ../daemon/pk/gkr-pk-object.c:889
-msgid "Trust Association"
-msgstr "Придружување на доверба"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "Отклучи привезок"
-#: ../daemon/pk/gkr-pk-object-storage.c:436
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
#, c-format
-msgid "Cannot delete '%s' because it is tied to other objects."
-msgstr "Ðе можам да го избришам „%s“, бидејќи е поврзан Ñо други објекти."
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "ВнеÑете лозинка за отклучување на привезокот „%s“"
-#: ../daemon/pk/gkr-pk-storage.c:136
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, fuzzy, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr "Ðепозната апликација бара приÑтап до привезокот „%s“ но тој е заклучен"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
msgid "Unlock private key"
msgstr "Отклучи приватен клуч"
-#: ../daemon/pk/gkr-pk-storage.c:138
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
msgid "Unlock certificate"
msgstr "Отклучи Ñертификат"
-#: ../daemon/pk/gkr-pk-storage.c:140
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
msgid "Unlock public key"
msgstr "Отклучи јавен клуч"
-#: ../daemon/pk/gkr-pk-storage.c:142
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
msgid "Unlock"
msgstr "Отклучи"
-#: ../daemon/pk/gkr-pk-storage.c:153
-msgid "Lock private key"
-msgstr "Заклучи приватен клуч"
-
-#: ../daemon/pk/gkr-pk-storage.c:155
-msgid "Lock"
-msgstr "Заклучи"
-
-#: ../daemon/pk/gkr-pk-storage.c:183
-msgid "Enter password to protect the private key"
-msgstr "ВнеÑете лозинка за заштита на приватниот клуч"
-
-#: ../daemon/pk/gkr-pk-storage.c:185
-msgid "Enter password to protect storage"
-msgstr "ВнеÑете лозинка за заштита на Ñкладирани податоци"
-
-#: ../daemon/pk/gkr-pk-storage.c:196
-msgid "Automatically unlock this private key when I log in."
-msgstr "ÐвтоматÑки отклучи го приватниот клуч кога ќе Ñе најавам."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "ВнеÑете лозинка за отклучување на приватниот клуч"
-#: ../daemon/pk/gkr-pk-storage.c:198
-msgid "Automatically unlock this certificate when I log in."
-msgstr "ÐвтоматÑки отклучи го Ñертификатот кога ќе Ñе најавам."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "ВнеÑете лозинка за отклучување на Ñертификатот"
-#: ../daemon/pk/gkr-pk-storage.c:200
-msgid "Automatically unlock this public key when I log in."
-msgstr "ÐвтоматÑки отклучи го јавниот клуч кога ќе Ñе најавам."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+msgid "Enter password to unlock the public key"
+msgstr "ВнеÑете лозинка за отклучување на јавниот клуч"
-#: ../daemon/pk/gkr-pk-storage.c:202
-msgid "Automatically unlock this when I log in"
-msgstr "ÐвтоматÑки отклучи го ова кога ќе Ñе најавам."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "ВнеÑете лозинка за отклучување"
-#: ../daemon/pk/gkr-pk-storage.c:209
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
msgid "An application wants access to the private key '%s', but it is locked"
msgstr "Ðпликација бара приÑтап до приватниот клуч %s, но тој е заклучен"
-#: ../daemon/pk/gkr-pk-storage.c:211
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
#, c-format
msgid "An application wants access to the certificate '%s', but it is locked"
msgstr "Ðпликација бара приÑтап до Ñертификатот %s, но тој е заклучен"
-#: ../daemon/pk/gkr-pk-storage.c:213
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
#, c-format
msgid "An application wants access to the public key '%s', but it is locked"
msgstr "Ðпликација бара приÑтап до јавниот клуч %s, но тој е заклучен"
-#: ../daemon/pk/gkr-pk-storage.c:215
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
#, c-format
msgid "An application wants access to '%s', but it is locked"
msgstr "Ðпликација бара приÑтап до %s, но тој е заклучен."
-#: ../daemon/pk/gkr-pk-storage.c:228
-#, c-format
-msgid ""
-"The system wants to store the private key '%s' on your disk. Please enter a "
-"password to lock it with."
-msgstr "СиÑтемот Ñака да го Ñкладира приватниот клуч „%s“ на Вашиот диÑк. Ве молам, внеÑете лозинка за да го заклучите."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+#, fuzzy
+msgid "Unlock certificate/key storage"
+msgstr "Отклучи Ñертификат"
-#: ../daemon/pk/gkr-pk-storage.c:230
-#, c-format
-msgid ""
-"The system wants to store '%s' on your disk. Please enter a password to lock "
-"it with."
-msgstr "СиÑтемот Ñака да Ñкладира „%s“ на Вашиот диÑк. Ве молам, внеÑете лозинка за да го заклучите."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+#, fuzzy
+msgid "Enter password to unlock the certificate/key storage"
+msgstr "ВнеÑете лозинка за отклучување на Ñертификатот"
-#: ../daemon/pkix/gkr-pkix-parser.c:451 ../gp11/gp11-misc.c:64
-msgid "The operation was cancelled"
-msgstr "Операцијата беше откажана"
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, fuzzy, c-format
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr "Ðпликација бара приÑтап до Ñертификатот %s, но тој е заклучен"
-#: ../daemon/pkix/gkr-pkix-parser.c:455
-msgid "Unrecognized or unsupported file."
-msgstr "Ðепозната и неподдржана датотека."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+#, fuzzy
+msgid "New Password Required"
+msgstr "Ðова јачина на лозинка"
-#: ../daemon/pkix/gkr-pkix-parser.c:459
-msgid "Could not parse invalid or corrupted file."
-msgstr "Ðе можам да го ја парÑирам невалидната раÑипана датотека."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+#, fuzzy
+msgid "New password required for secure storage"
+msgstr "ВнеÑете лозинка за заштита на Ñкладирани податоци"
-#: ../daemon/ssh/gkr-ssh-storage.c:166
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
#, c-format
-msgid "Couldn't encode secure shell public key."
-msgstr "Ðе можам да го енкодирам јавниот клуч за безбедна школка."
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
-#: ../daemon/ssh/gkr-ssh-storage.c:412
-#, c-format
-msgid "Couldn't read secure shell private key: %s"
-msgstr "Ðе можам да го прочитам приватниот клуч за безбедна школка: %s"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "Смени ја лозинката за привезокот"
-#: ../daemon/ssh/gkr-ssh-storage.c:416
-#, c-format
-msgid "Invalid secure shell private key at: %s"
-msgstr "Ðевалиден клуч за безбедна школка: %s"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "Изберете лозинка за заштита на Ñкладираните податоци"
-#: ../daemon/ssh/gkr-ssh-storage.c:465
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
-msgid "Couldn't encrypt the SSH key to store it."
-msgstr "Ðе можам да го енкриптирам SSH клучот за да го Ñкладирам."
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
+msgstr ""
-#: ../daemon/ssh/gkr-ssh-storage.c:481
+#: ../tool/gkr-tool.c:102
#, c-format
-msgid "Couldn't encode the SSH key to store it."
-msgstr "Ðе можам да го енкодирам SSH клучот за да го Ñкладирам."
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
+
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
-#: ../daemon/ui/gkr-ask-tool.c:182
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Да ги зачувувам лозинките не-енкриптирани?"
-#: ../daemon/ui/gkr-ask-tool.c:183
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -664,407 +479,53 @@ msgstr ""
"енкриптирани. Тие ќе му бидат доÑтапни на Ñекој кој што има приÑтап до "
"Вашите датотеки."
-#: ../daemon/ui/gkr-ask-tool.c:190
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "КориÑти неÑигурен Ñклад"
-#: ../daemon/ui/gkr-ask-tool.c:413
-msgid "_Location:"
-msgstr "_Локација:"
-
-#: ../daemon/ui/gkr-ask-tool.c:426
-msgid "_Old password:"
-msgstr "_Стара лозинка:"
-
-#: ../daemon/ui/gkr-ask-tool.c:446
-msgid "_Password:"
-msgstr "_Лозинка:"
-
-#: ../daemon/ui/gkr-ask-tool.c:468
-msgid "_Confirm password:"
-msgstr "_Потврди лозинка:"
-
-#: ../daemon/ui/gkr-ask-tool.c:488
-msgid "New password strength"
-msgstr "Ðова јачина на лозинка"
-
-#: ../daemon/ui/gkr-ask-tool.c:546
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Лозинките не Ñе Ñовпаѓаат."
-#: ../daemon/ui/gkr-ask-tool.c:562
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Лозинката не може да биде празна"
-#: ../daemon/ui/gkr-ask-tool.c:613
-msgid "Deny"
-msgstr "Одбиј"
-
-#: ../daemon/ui/gkr-ask-tool.c:625
-msgid "C_reate"
-msgstr "К_реирај"
-
-#: ../daemon/ui/gkr-ask-tool.c:629
-msgid "C_hange"
-msgstr "_Промени"
-
-#: ../daemon/ui/gkr-ask-tool.c:633
-msgid "Allow _Once"
-msgstr "Само _еднаш"
-
-#: ../daemon/ui/gkr-ask-tool.c:637
-msgid "_Always Allow"
-msgstr "_Секогаш"
-
-#: ../gp11/gp11-misc.c:67
-msgid "Insufficient memory available"
-msgstr "Ðема доволно меморија"
-
-#: ../gp11/gp11-misc.c:69
-msgid "The specified slot ID is not valid"
-msgstr "Ðазначениот ID на Ñлот не е валиден"
-
-#: ../gp11/gp11-misc.c:71
-msgid "Internal error"
-msgstr "Внатрешна грешка"
-
-#: ../gp11/gp11-misc.c:73
-msgid "The operation failed"
-msgstr "Операцијата не уÑпеа"
-
-#: ../gp11/gp11-misc.c:75
-msgid "Invalid arguments"
-msgstr "Ðевалидни аргументи"
-
-#: ../gp11/gp11-misc.c:77
-msgid "The module cannot create needed threads"
-msgstr "Модулот не може да ги креира потребните нишки"
-
-#: ../gp11/gp11-misc.c:79
-msgid "The module cannot lock data properly"
-msgstr "Модулот не може правилно да ги заклуче податоците"
-
-#: ../gp11/gp11-misc.c:81
-msgid "The field is read-only"
-msgstr "Полето е Ñамо за читање"
-
-#: ../gp11/gp11-misc.c:83
-msgid "The field is sensitive and cannot be revealed"
-msgstr "Полето е доверливо и нема да Ви биде откриено"
-
-#: ../gp11/gp11-misc.c:85
-msgid "The field is invalid or does not exist"
-msgstr "Полето е невалидно или не поÑтои"
-
-#: ../gp11/gp11-misc.c:87
-msgid "Invalid value for field"
-msgstr "Ðевалидна вредноÑÑ‚ за полето"
-
-#: ../gp11/gp11-misc.c:89
-msgid "The data is not valid or unrecognized"
-msgstr "Податоците не Ñе валидни или не може да бидат препознаени"
-
-#: ../gp11/gp11-misc.c:91
-msgid "The data is too long"
-msgstr "Податоците Ñе предолги"
-
-#: ../gp11/gp11-misc.c:93
-msgid "An error occurred on the device"
-msgstr "Се Ñлучи грешка во уредот"
-
-#: ../gp11/gp11-misc.c:95
-msgid "Insufficient memory available on device"
-msgstr "Ðема доволно меморија на уредот"
-
-#: ../gp11/gp11-misc.c:97
-msgid "The device was removed or unplugged"
-msgstr "Уредот беше отÑтранет или изваден"
-
-#: ../gp11/gp11-misc.c:99
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "Енкриптираните податоци не Ñе валидни или препознаени"
-
-#: ../gp11/gp11-misc.c:101
-msgid "The encrypted data is too long"
-msgstr "Енкриптираните податоци Ñе предолги"
-
-#: ../gp11/gp11-misc.c:103
-msgid "This operation is not supported"
-msgstr "Операцијата не е поддржана"
-
-#: ../gp11/gp11-misc.c:105
-msgid "The key is missing or invalid"
-msgstr "Клучот недоÑтаÑува или не е валиден"
-
-#: ../gp11/gp11-misc.c:107
-msgid "The key is the wrong size"
-msgstr "Клучот има погрешна големина"
-
-#: ../gp11/gp11-misc.c:109
-msgid "The key is of the wrong type"
-msgstr "Клучот е од неправилен тип"
-
-#: ../gp11/gp11-misc.c:111
-msgid "No key is needed"
-msgstr "Ðема потреба од клуч"
-
-#: ../gp11/gp11-misc.c:113
-msgid "The key is different than before"
-msgstr "Клучот е различен од претходниот"
-
-#: ../gp11/gp11-misc.c:115
-msgid "A key is needed"
-msgstr "Потребен е клуч"
-
-#: ../gp11/gp11-misc.c:117
-msgid "Cannot include the key in digest"
-msgstr "Ðе можам да го вклучам клучот во пакетот"
-
-#: ../gp11/gp11-misc.c:119
-msgid "This operation cannot be done with this key"
-msgstr "Операцијата не може да биде извршена Ñо овој клуч"
-
-#: ../gp11/gp11-misc.c:121
-msgid "The key cannot be wrapped"
-msgstr "Клучот не може да биде обвиткан"
-
-#: ../gp11/gp11-misc.c:123
-msgid "Cannot export this key"
-msgstr "Ðе можам да го извезам овој клуч"
-
-#: ../gp11/gp11-misc.c:125
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "Механизмот за криптирање не е валиден или препознаен"
-
-#: ../gp11/gp11-misc.c:127
-msgid "The crypto mechanism has an invalid argument"
-msgstr "Механизмот за криптирање има невалиден аргумент"
-
-#: ../gp11/gp11-misc.c:129
-msgid "The object is missing or invalid"
-msgstr "Објектот недоÑтаÑува или не е валиден"
-
-#: ../gp11/gp11-misc.c:131
-msgid "Another operation is already taking place"
-msgstr "Веќе Ñе извршува друга операција"
-
-#: ../gp11/gp11-misc.c:133
-msgid "No operation is taking place"
-msgstr "Ðе Ñе извршува никаква операција"
-
-#: ../gp11/gp11-misc.c:135
-msgid "The password or PIN is incorrect"
-msgstr "Лозинката или PIN-от не е точен"
-
-#: ../gp11/gp11-misc.c:137
-msgid "The password or PIN is invalid"
-msgstr "Лозинката или PIN-от не е невалиден"
-
-#: ../gp11/gp11-misc.c:139
-msgid "The password or PIN is of an invalid length"
-msgstr "Лозинката или PIN-от има невалидна должина"
-
-#: ../gp11/gp11-misc.c:141
-msgid "The password or PIN has expired"
-msgstr "Лозинката или PIN-от иÑтече"
-
-#: ../gp11/gp11-misc.c:143
-msgid "The password or PIN is locked"
-msgstr "Лозинката или PIN-от е заклучен"
-
-#: ../gp11/gp11-misc.c:145
-msgid "The session is closed"
-msgstr "СеÑијата е затворена"
-
-#: ../gp11/gp11-misc.c:147
-msgid "Too many sessions are active"
-msgstr "Премногу активни ÑеÑии"
-
-#: ../gp11/gp11-misc.c:149
-msgid "The session is invalid"
-msgstr "СеÑијата е невалидна"
-
-#: ../gp11/gp11-misc.c:151
-msgid "The session is read-only"
-msgstr "СеÑијата е Ñамо за читање"
-
-#: ../gp11/gp11-misc.c:153
-msgid "An open session exists"
-msgstr "Веќе поÑтои отворена ÑеÑија"
-
-#: ../gp11/gp11-misc.c:155
-msgid "A read-only session exists"
-msgstr "Веќе поÑтои ÑеÑија Ñамо за читање"
-
-#: ../gp11/gp11-misc.c:157
-msgid "An administrator session exists"
-msgstr "ПоÑтои ÑеÑија на админиÑтраторот"
-
-#: ../gp11/gp11-misc.c:159
-msgid "The signature is bad or corrupted"
-msgstr "ПотпиÑот е неправилен или оштетен "
-
-#: ../gp11/gp11-misc.c:161
-msgid "The signature is unrecognized or corrupted"
-msgstr "ПотпиÑот не е препознаен или е оштетен"
-
-#: ../gp11/gp11-misc.c:163
-msgid "Certain required fields are missing"
-msgstr "Ðекои од потребните полиња недоÑтаÑуваат"
-
-#: ../gp11/gp11-misc.c:165
-msgid "Certain fields have invalid values"
-msgstr "Ðекои полиња имаат невалидни вредноÑти"
-
-#: ../gp11/gp11-misc.c:167
-msgid "The device is not present or unplugged"
-msgstr "Уредот не поÑтои или е изваден"
-
-#: ../gp11/gp11-misc.c:169
-msgid "The device is invalid or unrecognizable"
-msgstr "Уредот не е валиден или не може да биде препознаен"
-
-#: ../gp11/gp11-misc.c:171
-msgid "The device is write protected"
-msgstr "Ðа уредот не може да Ñе запишува"
-
-#: ../gp11/gp11-misc.c:173
-msgid "Cannot import because the key is invalid"
-msgstr "Ðе можам да увезам, бидејќи клучот е невалиден"
-
-#: ../gp11/gp11-misc.c:175
-msgid "Cannot import because the key is of the wrong size"
-msgstr "Ðе можам да увезам, бидејќи клучот има неправилна големина"
-
-#: ../gp11/gp11-misc.c:177
-msgid "Cannot import because the key is of the wrong type"
-msgstr "Ðе можам да увезам, бидејќи клучот е од неправилен тип"
-
-#: ../gp11/gp11-misc.c:179
-msgid "You are already logged in"
-msgstr "Веќе Ñте најавени"
-
-#: ../gp11/gp11-misc.c:181
-msgid "No user has logged in"
-msgstr "Ðема најавен кориÑник"
-
-#: ../gp11/gp11-misc.c:183
-msgid "The user's password or PIN is not set"
-msgstr "Ðе е поÑтавена лозинката или PIN-от на кориÑникот"
-
-#: ../gp11/gp11-misc.c:185
-msgid "The user is of an invalid type"
-msgstr "КориÑникот е од невалиден тип"
-
-#: ../gp11/gp11-misc.c:187
-msgid "Another user is already logged in"
-msgstr "Друг кориÑник е веќе најавен"
-
-#: ../gp11/gp11-misc.c:189
-msgid "Too many users of different types logged in"
-msgstr "Премногу кориÑници од повеќе различни типови Ñе најавени"
-
-#: ../gp11/gp11-misc.c:191
-msgid "Cannot import an invalid key"
-msgstr "Ðе можам да увезам невалиден клуч"
-
-#: ../gp11/gp11-misc.c:193
-msgid "Cannot import a key of the wrong size"
-msgstr "Ðе можам да увезам клуч Ñо неправилна големина"
-
-#: ../gp11/gp11-misc.c:195
-msgid "Cannot export because the key is invalid"
-msgstr "Ðе можам да извезам, бидејќи клучот е неправилен"
-
-#: ../gp11/gp11-misc.c:197
-msgid "Cannot export because the key is of the wrong size"
-msgstr "Ðе можам да извезам, бидејќи клучот има неправилна големина"
-
-#: ../gp11/gp11-misc.c:199
-msgid "Cannot export because the key is of the wrong type"
-msgstr "Ðе можам да извезам, бидејќи клучот е од неправилен тип"
-
-#: ../gp11/gp11-misc.c:201
-msgid "Unable to initialize the random number generator"
-msgstr "Ðе можам да го иницијализирам генераторот на произволни броеви"
-
-#: ../gp11/gp11-misc.c:203
-msgid "No random number generator available"
-msgstr "Ðема доÑтапен генератор на произволни броеви"
-
-#: ../gp11/gp11-misc.c:205
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "Механизмот за криптирање има невалиден параметар"
-
-#: ../gp11/gp11-misc.c:207
-msgid "Not enough space to store the result"
-msgstr "Ðема доволно проÑтор за зачувување на резултатот"
-
-#: ../gp11/gp11-misc.c:209
-msgid "The saved state is invalid"
-msgstr "Зачуваната ÑоÑтојба е неправилна"
-
-#: ../gp11/gp11-misc.c:211
-msgid "The information is sensitive and cannot be revealed"
-msgstr "Информациите Ñе доверливи и не може да бидат откриени"
-
-#: ../gp11/gp11-misc.c:213
-msgid "The state cannot be saved"
-msgstr "СоÑтојбата не може да Ñе зачува"
-
-#: ../gp11/gp11-misc.c:215
-msgid "The module has not been initialized"
-msgstr "Модулот не беше иницијализиран"
-
-#: ../gp11/gp11-misc.c:217
-msgid "The module has already been initialized"
-msgstr "Модулот е веќе иницијализиран"
-
-#: ../gp11/gp11-misc.c:219
-msgid "Cannot lock data"
-msgstr "Ðе можам да ги заклучам податоците"
-
-#: ../gp11/gp11-misc.c:221
-msgid "The data cannot be locked"
-msgstr "Податоците не можат да бидат заклучени"
-
-#: ../gp11/gp11-misc.c:223
-msgid "The signature request was rejected by the user"
-msgstr "Барањето за Ð¿Ð¾Ñ‚Ð¿Ð¸Ñ Ð±ÐµÑˆÐµ одбиено од кориÑникот"
-
-#: ../gp11/gp11-misc.c:227
-msgid "Unknown error"
-msgstr "Ðепозната грешка"
-
-#: ../library/gnome-keyring-utils.c:91
-msgid "Access Denied"
-msgstr "ПриÑтапот е одбиен"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:93
-msgid "The gnome-keyring-daemon application is not running."
-msgstr "gnome-keyring-daemon-от не работи."
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:95
-msgid "Error communicating with gnome-keyring-daemon"
-msgstr "Грешка при комуницирањето Ñо gnome-keyring даемонот"
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
+msgstr "Ðова јачина на лозинка"
-#: ../library/gnome-keyring-utils.c:97
-msgid "A keyring with that name already exists"
-msgstr "Привезок Ñо тоа име веќе поÑтои"
+#: ../ui/gku-prompt.ui.h:2
+#, fuzzy
+msgid "_Application:"
+msgstr "_Локација:"
-#: ../library/gnome-keyring-utils.c:99
-msgid "Programmer error: The application sent invalid data."
-msgstr "ПрограмерÑка грешка: Ðпликацијата иÑпрати невалидни податоци."
+#: ../ui/gku-prompt.ui.h:3
+#, fuzzy
+msgid "_Confirm:"
+msgstr "_Потврди лозинка:"
-#: ../library/gnome-keyring-utils.c:101
-msgid "No matching results"
-msgstr "Ðема резултати кои што Ñе Ñовпаѓаат"
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:103
-msgid "A keyring with that name does not exist."
-msgstr "Привезок Ñо тоа име веќе поÑтои."
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:110
-msgid "The keyring has already been unlocked."
-msgstr "Привезокот е веќе отклучен."
+#: ../ui/gku-prompt.ui.h:6
+#, fuzzy
+msgid "_Old Password:"
+msgstr "_Стара лозинка:"
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "_Лозинка:"
diff --git a/po/ml.po b/po/ml.po
index 351a6368..c2b54b0a 100644
--- a/po/ml.po
+++ b/po/ml.po
@@ -8,641 +8,135 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.master.ml\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-keyring&component=general\n"
-"POT-Creation-Date: 2009-08-26 19:44+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2009-09-12 18:27+0530\n"
"Last-Translator: \n"
"Language-Team: <en@li.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:228
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in the default keyring."
-msgstr ""
-"'%s' (%s) à´Žà´¨àµà´¨ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ സഹജമായ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´²àµà´³àµà´³ '<object prop='name'/> à´¨àµà´±àµ† "
-"അടയാളവാകàµà´•àµàµ ആവശàµà´¯à´®àµà´£àµà´Ÿàµ"
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:232
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in %s."
-msgstr "'%s' (%s) à´Žà´¨àµà´¨ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ %s à´²àµà´³àµà´³ '<object prop='name'/> à´¨àµà´±àµ† അടയാളവാകàµà´•àµàµ ആവശàµà´¯à´®àµà´£àµà´Ÿàµ"
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:238 ../daemon/gkr-daemon-ops.c:248
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in the default keyring."
-msgstr ""
-"'%s' à´Žà´¨àµà´¨ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ സഹജമായ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´²àµà´³àµà´³ '<object prop='name'/> à´¨àµà´±àµ† "
-"അടയാളവാകàµà´•àµàµ ആവശàµà´¯à´®àµà´£àµà´Ÿàµ"
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:242 ../daemon/gkr-daemon-ops.c:252
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in %s."
-msgstr "'%s' à´Žà´¨àµà´¨ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ %s à´²àµà´³àµà´³ '<object prop='name'/> à´¨àµà´±àµ† അടയാളവാകàµà´•àµàµ ആവശàµà´¯à´®àµà´£àµà´Ÿàµ"
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:258
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in the default keyring."
-msgstr ""
-"à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ സഹജമായ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´²àµà´³àµà´³ '<object prop='name'/> à´¨àµà´±àµ† "
-"അടയാളവാകàµà´•àµàµ ആവശàµà´¯à´®àµà´£àµà´Ÿàµ"
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:261
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in %s."
-msgstr "à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ %s à´²àµà´³àµà´³ '<object prop='name'/> à´¨àµà´±àµ† അടയാളവാകàµà´•àµàµ ആവശàµà´¯à´®àµà´£àµà´Ÿàµ"
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:267
-msgid "Allow access"
-msgstr "à´…à´¨àµà´µà´¾à´¦à´‚ കൊടàµà´•àµà´•àµà´•"
-
-#: ../daemon/gkr-daemon-ops.c:267
-msgid "Allow application access to keyring?"
-msgstr "à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµàµ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ ഉപയോഗികàµà´•à´¾à´¨àµâ€ à´…à´¨àµà´µà´¾à´¦à´‚ കൊടàµà´•àµà´•à´¾à´®àµ‹ ?"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:309
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
-msgstr ""
-"'%s' (%s) à´Žà´¨àµà´¨ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ സഹജമായ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´²àµ‡à´¯àµà´•àµà´•àµàµ à´ªàµà´°à´µàµ‡à´¶à´¨à´‚ ആവശàµà´¯à´®àµà´£àµà´Ÿàµ പകàµà´·àµ† അതൠ"
-"പൂടàµà´Ÿà´¿à´¯à´¿à´°à´¿à´¯àµà´•àµà´•àµà´¨àµà´¨àµ"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:314
-#, c-format
-msgid "The application '%s' (%s) wants access to the keyring '%s', but it is locked"
-msgstr ""
-"'%s' (%s) à´Žà´¨àµà´¨ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s' à´Žà´¨àµà´¨ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´²àµ‡à´¯àµà´•àµà´•àµàµ à´ªàµà´°à´µàµ‡à´¶à´¨à´‚ ആവശàµà´¯à´®àµà´£àµà´Ÿàµ പകàµà´·àµ† അതൠ"
-"പൂടàµà´Ÿà´¿à´¯à´¿à´°à´¿à´¯àµà´•àµà´•àµà´¨àµà´¨àµ"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:321 ../daemon/gkr-daemon-ops.c:333
-#, c-format
-msgid "The application '%s' wants access to the default keyring, but it is locked"
-msgstr ""
-"'%s' à´Žà´¨àµà´¨ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ സഹജമായ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´²àµ‡à´¯àµà´•àµà´•àµàµ à´ªàµà´°à´µàµ‡à´¶à´¨à´‚ ആവശàµà´¯à´®àµà´£àµà´Ÿàµ പകàµà´·àµ† അതൠ"
-"പൂടàµà´Ÿà´¿à´¯à´¿à´°à´¿à´¯àµà´•àµà´•àµà´¨àµà´¨àµ"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:326 ../daemon/gkr-daemon-ops.c:339
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
-msgstr ""
-"'%s' à´Žà´¨àµà´¨ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s' à´Žà´¨àµà´¨ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´²àµ‡à´¯àµà´•àµà´•àµàµ à´ªàµà´°à´µàµ‡à´¶à´¨à´‚ ആവശàµà´¯à´®àµà´£àµà´Ÿàµ പകàµà´·àµ† അതൠ"
-"പൂടàµà´Ÿà´¿à´¯à´¿à´°à´¿à´¯àµà´•àµà´•àµà´¨àµà´¨àµ"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:346
-#, c-format
-msgid "An unknown application wants access to the default keyring, but it is locked"
-msgstr ""
-"à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ സഹജമായ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´²àµ‡à´¯àµà´•àµà´•àµàµ à´ªàµà´°à´µàµ‡à´¶à´¨à´‚ ആവശàµà´¯à´®àµà´£àµà´Ÿàµ പകàµà´·àµ† അതൠ"
-"പൂടàµà´Ÿà´¿à´¯à´¿à´°à´¿à´¯àµà´•àµà´•àµà´¨àµà´¨àµ"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:351
-#, c-format
-msgid "An unknown application wants access to the keyring '%s', but it is locked"
-msgstr ""
-"à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s' à´Žà´¨àµà´¨ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´²àµ‡à´¯àµà´•àµà´•àµàµ à´ªàµà´°à´µàµ‡à´¶à´¨à´‚ ആവശàµà´¯à´®àµà´£àµà´Ÿàµ പകàµà´·àµ† അതൠ"
-"പൂടàµà´Ÿà´¿à´¯à´¿à´°à´¿à´¯àµà´•àµà´•àµà´¨àµà´¨àµ"
-
-#: ../daemon/gkr-daemon-ops.c:358
-msgid "Enter password for default keyring to unlock"
-msgstr "സഹജമായ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ à´¤àµà´±à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³àµà´³ അടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
-
-#: ../daemon/gkr-daemon-ops.c:360
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "'%s' à´Žà´¨àµà´¨ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ à´¤àµà´±à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³àµà´³ അടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:364
-msgid "Unlock Keyring"
-msgstr "ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ à´¤àµà´±à´•àµà´•àµà´•"
-
-#: ../daemon/gkr-daemon-ops.c:376
-msgid "Automatically unlock this keyring when I log in."
-msgstr "ഞാനàµâ€ à´…à´•à´¤àµà´¤àµà´•à´¯à´±àµà´®àµà´ªàµ‹à´³àµâ€ തനàµà´¨àµ† à´ˆ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ à´¸àµà´µà´¯à´‚ à´¤àµà´±à´•àµà´•àµà´•"
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:413
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
msgstr ""
-"'%s' (%s) à´Žà´¨àµà´¨ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s' à´Žà´¨àµà´¨àµ പേരàµà´³àµà´³ ഒരൠചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ ഉണàµà´Ÿà´¾à´•àµà´•à´£à´®àµ†à´¨àµà´¨àµà´£àµà´Ÿàµ. അതിനായി "
-"ഉപയോഗികàµà´•àµ‡à´£àµà´Ÿà´…ടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:418
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr ""
-"'%s' (%s) à´Žà´¨àµà´¨ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ ഒരൠപàµà´¤à´¿à´¯ സഹജമായ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ ഉണàµà´Ÿà´¾à´•àµà´•à´£à´®àµ†à´¨àµà´¨àµà´£àµà´Ÿàµ. അതിനായി "
-"ഉപയോഗികàµà´•àµ‡à´£àµà´Ÿà´…ടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:425 ../daemon/gkr-daemon-ops.c:437
-#, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
-msgstr ""
-"'%s' à´Žà´¨àµà´¨ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s' à´Žà´¨àµà´¨àµ പേരàµà´³àµà´³ ഒരൠചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ ഉണàµà´Ÿà´¾à´•àµà´•à´£à´®àµ†à´¨àµà´¨àµà´£àµà´Ÿàµ. അതിനായി "
-"ഉപയോഗികàµà´•àµ‡à´£àµà´Ÿà´…ടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
+#: ../daemon/dbus/gkd-secret-change.c:86
+msgid "Change Keyring Password"
+msgstr "ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´±àµ† അടയാളവാകàµà´•àµàµ മാറàµà´±àµà´•"
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:430 ../daemon/gkr-daemon-ops.c:442
-#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr ""
-"'%s' à´Žà´¨àµà´¨ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ ഒരൠപàµà´¤à´¿à´¯ സഹജമായ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ ഉണàµà´Ÿà´¾à´•àµà´•à´£à´®àµ†à´¨àµà´¨àµà´£àµà´Ÿàµ. അതിനായി "
-"ഉപയോഗികàµà´•àµ‡à´£àµà´Ÿà´…ടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "'%s' à´Žà´¨àµà´¨ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨à´¾à´¯à´¿ à´ªàµà´¤à´¿à´¯ ഒരൠഅടയാളവാകàµà´•àµàµ തെരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•."
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:449
-#, c-format
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
msgstr ""
-"à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s' à´Žà´¨àµà´¨àµ പേരàµà´³àµà´³ ഒരൠചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ ഉണàµà´Ÿà´¾à´•àµà´•à´£à´®àµ†à´¨àµà´¨àµà´£àµà´Ÿàµ. അതിനായി "
-"ഉപയോഗികàµà´•àµ‡à´£àµà´Ÿà´…ടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
+"à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s' à´Žà´¨àµà´¨ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´±àµ† അടയാളവാകàµà´•àµàµ മാറàµà´±à´£à´®àµ†à´¨àµà´¨àµà´£àµà´Ÿàµ . "
+"അതിനായി ഉപയോഗികàµà´•àµ‡à´£àµà´Ÿà´…ടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•."
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:454
-#, c-format
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr ""
-"à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ ഒരൠപàµà´¤à´¿à´¯ സഹജമായ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ ഉണàµà´Ÿà´¾à´•àµà´•à´£à´®àµ†à´¨àµà´¨àµà´£àµà´Ÿàµ. അതിനായി "
-"ഉപയോഗികàµà´•àµ‡à´£àµà´Ÿà´…ടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
+#: ../daemon/dbus/gkd-secret-change.c:111
+#, fuzzy
+msgid "The original password was incorrect"
+msgstr "അടയാളവാകàµà´•àµàµ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ PIN തെറàµà´±à´¾à´£àµ"
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:460
+#: ../daemon/dbus/gkd-secret-create.c:83
msgid "New Keyring Password"
msgstr "à´ªàµà´¤à´¿à´¯ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´³àµà´³ അടയാളവാകàµà´•àµàµ"
-#: ../daemon/gkr-daemon-ops.c:461
+#: ../daemon/dbus/gkd-secret-create.c:84
msgid "Choose password for new keyring"
msgstr "à´ªàµà´¤à´¿à´¯ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨à´¾à´¯àµà´³àµà´³ അടയാളവാകàµà´•àµàµ തെരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•"
-#: ../daemon/gkr-daemon-ops.c:508
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-"'%s' (%s) à´Žà´¨àµà´¨ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s' à´Žà´¨àµà´¨ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´±àµ† അടയാളവാകàµà´•àµàµ മാറàµà´±à´£à´®àµ†à´¨àµà´¨àµà´£àµà´Ÿàµ . "
-"അതിനായി ഉപയോഗികàµà´•àµ‡à´£àµà´Ÿà´…ടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
-
-#: ../daemon/gkr-daemon-ops.c:512
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
-msgstr ""
-"'%s' (%s) à´Žà´¨àµà´¨ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ സഹജമായ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´±àµ† അടയാളവാകàµà´•àµàµ മാറàµà´±à´£à´®àµ†à´¨àµà´¨àµà´£àµà´Ÿàµ . "
-"അതിനായി ഉപയോഗികàµà´•àµ‡à´£àµà´Ÿà´…ടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
-
-#: ../daemon/gkr-daemon-ops.c:518 ../daemon/gkr-daemon-ops.c:528
-#, c-format
+#: ../daemon/dbus/gkd-secret-create.c:86
+#, fuzzy, c-format
msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
-"'%s' à´Žà´¨àµà´¨ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s' à´Žà´¨àµà´¨ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´±àµ† അടയാളവാകàµà´•àµàµ മാറàµà´±à´£à´®àµ†à´¨àµà´¨àµà´£àµà´Ÿàµ . അതിനായി "
-"ഉപയോഗികàµà´•àµ‡à´£àµà´Ÿà´…ടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•."
-
-#: ../daemon/gkr-daemon-ops.c:522 ../daemon/gkr-daemon-ops.c:532
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-"'%s' à´Žà´¨àµà´¨ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ സഹജമായ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´±àµ† അടയാളവാകàµà´•àµàµ മാറàµà´±à´£à´®àµ†à´¨àµà´¨àµà´£àµà´Ÿàµ . അതിനായി "
+"à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s' à´Žà´¨àµà´¨àµ പേരàµà´³àµà´³ ഒരൠചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ ഉണàµà´Ÿà´¾à´•àµà´•à´£à´®àµ†à´¨àµà´¨àµà´£àµà´Ÿàµ. അതിനായി "
"ഉപയോഗികàµà´•àµ‡à´£àµà´Ÿà´…ടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
-#: ../daemon/gkr-daemon-ops.c:538
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-"à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s' à´Žà´¨àµà´¨ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´±àµ† അടയാളവാകàµà´•àµàµ മാറàµà´±à´£à´®àµ†à´¨àµà´¨àµà´£àµà´Ÿàµ . "
-"അതിനായി ഉപയോഗികàµà´•àµ‡à´£àµà´Ÿà´…ടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•."
-
-#: ../daemon/gkr-daemon-ops.c:542
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-"à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ സഹജമായ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´±àµ† അടയാളവാകàµà´•àµàµ മാറàµà´±à´£à´®àµ†à´¨àµà´¨àµà´£àµà´Ÿàµ . അതിനായി "
-"ഉപയോഗികàµà´•àµ‡à´£àµà´Ÿà´…ടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•."
-
-#: ../daemon/gkr-daemon-ops.c:552
-#, c-format
-#| msgid "Choose a new password for the '%s' keyring. "
-msgid "Choose a new password for the '%s' keyring."
-msgstr "'%s' à´Žà´¨àµà´¨ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨à´¾à´¯à´¿ à´ªàµà´¤à´¿à´¯ ഒരൠഅടയാളവാകàµà´•àµàµ തെരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•."
-
-#: ../daemon/gkr-daemon-ops.c:554
-#, c-format
-#| msgid "Choose a new password for the default keyring. "
-msgid "Choose a new password for the default keyring."
-msgstr "സഹജമായ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨à´¾à´¯à´¿ à´ªàµà´¤à´¿à´¯ ഒരൠഅടയാളവാകàµà´•àµàµ തെരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•."
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:558
-msgid "Change Keyring Password"
-msgstr "ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´±àµ† അടയാളവാകàµà´•àµàµ മാറàµà´±àµà´•"
-
-#: ../daemon/gkr-daemon-ops.c:631
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-msgstr ""
-"'%s' (%s) à´Žà´¨àµà´¨ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ ഒരൠഅടയാളവാകàµà´•àµàµ സൂകàµà´·à´¿à´•àµà´•à´£à´‚ , പകàµà´·àµ† ഇതിനായി സഹജമായ "
-"ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ à´’à´¨àµà´¨àµà´‚ ഇലàµà´². ഒരൠസഹജമായചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ ഉണàµà´Ÿà´¾à´•àµà´•à´¾à´¨à´¾à´¯à´¿ അതിനàµà´ªà´¯àµ‹à´—à´¿à´•àµà´•à´¾à´¨àµà´³àµà´³ അടയാളവാകàµà´•àµàµ "
-"തെരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•"
-
-#: ../daemon/gkr-daemon-ops.c:635 ../daemon/gkr-daemon-ops.c:639
-#, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-msgstr ""
-"'%s' à´Žà´¨àµà´¨ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ ഒരൠഅടയാളവാകàµà´•àµàµ സൂകàµà´·à´¿à´•àµà´•à´£à´‚ , പകàµà´·àµ† ഇതിനായി സഹജമായ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ "
-"à´’à´¨àµà´¨àµà´‚ ഇലàµà´². ഒരൠസഹജമായചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ ഉണàµà´Ÿà´¾à´•àµà´•à´¾à´¨à´¾à´¯à´¿ അതിനàµà´ªà´¯àµ‹à´—à´¿à´•àµà´•à´¾à´¨àµà´³àµà´³ അടയാളവാകàµà´•àµàµ തെരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•"
-
-#: ../daemon/gkr-daemon-ops.c:643
-#, c-format
-msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-msgstr ""
-"à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ ഒരൠഅടയാളവാകàµà´•àµàµ സൂകàµà´·à´¿à´•àµà´•à´£à´‚ , പകàµà´·àµ† ഇതിനായി സഹജമായ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ "
-"à´’à´¨àµà´¨àµà´‚ ഇലàµà´². ഒരൠസഹജമായചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ ഉണàµà´Ÿà´¾à´•àµà´•à´¾à´¨à´¾à´¯à´¿ അതിനàµà´ªà´¯àµ‹à´—à´¿à´•àµà´•à´¾à´¨àµà´³àµà´³ അടയാളവാകàµà´•àµàµ തെരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•"
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:648
-msgid "Create Default Keyring"
-msgstr "സഹജമായ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ ഉണàµà´Ÿà´¾à´•àµà´•àµà´•"
-
-#: ../daemon/gkr-daemon-ops.c:648
-msgid "Choose password for default keyring"
-msgstr "സഹജമായ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨à´¾à´¯àµà´³àµà´³ അടയാളവാകàµà´•àµàµ തെരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•"
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:1
-msgid ""
-"This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-"only takes effect as gnome-keyring-daemon starts, (ie: when the user logs "
-"in). This setting may be overridden when certain command line arguments are "
-"passed to the daemon."
-msgstr ""
-"à´ˆ à´à´šàµà´›à´¿à´•à´‚ à´—àµà´¨àµ‹à´®à´¿à´²àµ† ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´±àµ† നിരനàµà´¤à´°à´ªàµà´°à´•àµà´°à´¿à´¯à´¯à´¿à´²àµâ€ PKCS#11 ഘടകതàµà´¤àµ† "
-"à´ªàµà´°à´¾à´µà´°àµâ€à´¤àµà´¤à´¿à´•à´®à´¾à´•àµà´•àµà´¨àµà´¨àµ. à´—àµà´¨àµ‹à´®à´¿à´²àµ† ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´³àµà´³ നിരനàµà´¤à´°à´ªàµà´°à´•àµà´°à´¿à´¯ (gnome-keyring-daemon) "
-"à´¤àµà´Ÿà´™àµà´™àµà´®àµà´ªàµ‹à´³àµâ€ മാതàµà´°à´®àµ‡ ഇതàµàµ സജീവമാകൂ, (അതായതàµàµ ഉപയോകàµà´¤à´¾à´µàµàµ à´…à´•à´¤àµà´¤àµà´•à´¯à´±àµà´®àµà´ªàµ‹à´³àµâ€). ആജàµà´žà´¾à´¸àµà´¥à´¾à´¨à´¤àµà´¤àµàµ à´šà´¿à´² "
-"à´à´šàµà´›à´¿à´•à´™àµà´™à´³àµâ€ നിരനàµà´¤à´°à´ªàµà´°à´•àµà´°à´¿à´¯à´¯àµà´•àµà´•àµàµ കൊടàµà´•àµà´•àµà´®àµà´ªàµ‹à´³àµâ€ à´ˆ സജàµà´œàµ€à´•à´°à´£à´‚ മറികടകàµà´•à´¾à´µàµà´¨àµà´¨à´¤à´¾à´£àµàµ."
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:2
-msgid ""
-"This option enables the SSH agent in the gnome-keyring daemon. It only takes "
-"effect as gnome-keyring-daemon starts, (ie: when the user logs in). This "
-"setting may be overridden when certain command line arguments are passed to "
-"the daemon."
-msgstr ""
-"à´ˆ à´à´šàµà´›à´¿à´•à´‚ à´—àµà´¨àµ‹à´®à´¿à´²àµ† ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´³àµà´³ നിരനàµà´¤à´°à´ªàµà´°à´µàµƒà´¤àµà´¤à´¿à´¯à´¿à´²àµâ€ à´Žà´¸àµà´Žà´¸àµà´Žà´šàµà´šàµ à´à´œà´¨àµà´±à´¿à´¨àµ† "
-"à´ªàµà´°à´¾à´µà´°àµâ€à´¤àµà´¤à´¿à´•à´®à´¾à´•àµà´•àµà´¨àµà´¨àµ. à´—àµà´¨àµ‹à´®à´¿à´²àµ† ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´³àµà´³ നിരനàµà´¤à´°à´ªàµà´°à´•àµà´°à´¿à´¯ (gnome-keyring-daemon) "
-"à´¤àµà´Ÿà´™àµà´™àµà´®àµà´ªàµ‹à´³àµâ€ മാതàµà´°à´®àµ‡ ഇതàµàµ സജീവമാകൂ, (അതായതàµàµ ഉപയോകàµà´¤à´¾à´µàµàµ à´…à´•à´¤àµà´¤àµà´•à´¯à´±àµà´®àµà´ªàµ‹à´³àµâ€). ആജàµà´žà´¾à´¸àµà´¥à´¾à´¨à´¤àµà´¤àµàµ à´šà´¿à´² "
-"à´à´šàµà´›à´¿à´•à´™àµà´™à´³àµâ€ നിരനàµà´¤à´°à´ªàµà´°à´•àµà´°à´¿à´¯à´¯àµà´•àµà´•àµàµ കൊടàµà´•àµà´•àµà´®àµà´ªàµ‹à´³àµâ€ à´ˆ സജàµà´œàµ€à´•à´°à´£à´‚ മറികടകàµà´•à´¾à´µàµà´¨àµà´¨à´¤à´¾à´£àµàµ."
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:3
-msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-msgstr "à´—àµà´¨àµ‹à´®à´¿à´²àµ† ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´²àµâ€ PKCS#11 ഘടകം à´ªàµà´°à´¾à´µà´°àµâ€à´¤àµà´¤à´¿à´•à´®à´¾à´•àµà´•à´¿à´¯à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµ‹ à´Žà´¨àµà´¨àµàµ."
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:4
-msgid "Whether the gnome-keyring SSH agent is enabled."
-msgstr "à´—àµà´¨àµ‹à´‚-ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ SSH à´à´œà´¨àµà´±àµ സജീവമാണോ"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+#, fuzzy
+msgid "Certificate and Key Storage"
+msgstr "സാകàµà´·àµà´¯à´ªà´¤àµà´°à´¤àµà´¤à´¿à´¨àµà´±àµ†/കീ à´¸àµà´±àµà´±àµ‹à´±àµ‡à´œà´¿à´¨àµà´±àµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´•"
-#: ../daemon/gnome-keyring-daemon.desktop.in.in.h:1
-msgid "GNOME Keyring Daemon"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+#, fuzzy
+msgid "GNOME Keyring: PKCS#11 Component"
msgstr "à´—àµà´¨àµ‹à´‚ കീറിങൠഡെമണàµâ€"
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:99
-msgid "Unlock Login Keyring"
-msgstr "ലോഗിനàµâ€ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´±àµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´•"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:99
-msgid "Enter login password to unlock keyring"
-msgstr "ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´±àµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•à´¾à´¨à´¾à´¯à´¿ നിങàµà´™à´³àµà´Ÿàµ† ലോഗിനàµâ€ അടയാളവാകàµà´•àµ നലàµâ€à´•àµà´•"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: Secret Service"
+msgstr "à´—àµà´¨àµ‹à´‚ കീറിങൠഡെമണàµâ€"
-#: ../daemon/keyrings/gkr-keyring-login.c:101
-msgid ""
-"Your login keyring was not automatically unlocked when you logged into this "
-"computer."
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
msgstr ""
-"നിങàµà´™à´³àµà´Ÿàµ† ലോഗിനàµâ€ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´±àµ† പൂടàµà´Ÿàµ നിങàµà´™à´³àµâ€ à´ˆ à´•à´®àµà´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´²àµâ€ ലോഗിനàµâ€ ചെയàµà´¤à´ªàµà´ªàµ‹à´³àµâ€ "
-"à´¤àµà´±à´•àµà´•à´ªàµà´ªàµ†à´Ÿàµà´Ÿà´¿à´²àµà´²"
-
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:125
-msgid "Create Login Keyring"
-msgstr "ലോഗിനàµâ€ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ ഉണàµà´Ÿà´¾à´•àµà´•àµà´•"
-#: ../daemon/keyrings/gkr-keyring-login.c:125
-msgid "Enter your login password"
-msgstr "ലോഗിനàµâ€ ചെയàµà´¯à´¾à´¨à´¾à´¯àµà´³àµà´³ അടയാളവാകàµà´•àµ നലàµâ€à´•àµà´•"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: SSH Agent"
+msgstr "à´—àµà´¨àµ‹à´‚ കീറിങൠഡെമണàµâ€"
-#: ../daemon/keyrings/gkr-keyring-login.c:127
-msgid ""
-"Your login keyring was not automatically created when you logged into this "
-"computer. It will now be created."
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
msgstr ""
-"നിങàµà´™à´³àµà´Ÿàµ† ലോഗിനàµâ€ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ നിങàµà´™à´³àµâ€ à´ˆ à´•à´®àµà´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´²àµâ€ ലോഗിനàµâ€ ചെയàµà´¤à´ªàµà´ªàµ‹à´³àµâ€ ഉണàµà´Ÿà´¾à´•àµà´•à´ªàµà´ªàµ†à´Ÿàµà´Ÿà´¿à´²àµà´². അതൠ"
-"ഇപàµà´ªàµ‹à´³àµâ€ ഉണàµà´Ÿà´¾à´•àµà´•à´ªàµà´ªàµ†à´Ÿàµà´‚"
-
-#: ../daemon/keyrings/gkr-keyring.c:587
-#, c-format
-msgid "Unlock password for %s keyring"
-msgstr "%s à´Žà´¨àµà´¨ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´±àµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³àµà´³ അടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:98
-msgid "Unlock private key"
-msgstr "à´ªàµà´°àµˆà´µà´±àµà´±àµ കീയàµà´Ÿàµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´•"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:100
-msgid "Unlock certificate"
-msgstr "സാകàµà´·àµà´¯à´ªà´¤àµà´°à´¤àµà´¤à´¿à´¨àµà´±àµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´•"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:102
-msgid "Unlock public key"
-msgstr "പബàµà´³à´¿à´•àµ കീയàµà´Ÿàµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´•"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:104
-msgid "Unlock"
-msgstr "പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´•"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:113 ../gcr/gcr-importer.c:436
-msgid "Enter password to unlock the private key"
-msgstr "à´ªàµà´°àµˆà´µà´±àµà´±àµ കീയàµà´Ÿàµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ അടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:115 ../gcr/gcr-importer.c:438
-msgid "Enter password to unlock the certificate"
-msgstr "സാകàµà´·àµà´¯à´ªà´¤àµà´°à´¤àµà´¤à´¿à´¨àµà´±àµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ അടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: GPG Agent"
+msgstr "à´—àµà´¨àµ‹à´‚ കീറിങൠഡെമണàµâ€"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:117
-msgid "Enter password to unlock the public key"
-msgstr "പബàµà´³à´¿à´•àµ കീയàµà´Ÿàµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ അടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+#, fuzzy
+msgid "GPG Password Agent"
+msgstr "à´ªàµà´¤à´¿à´¯ അടയാളവാകàµà´¯à´¤àµà´¤à´¿à´¨àµà´±àµ† ശകàµà´¤à´¿"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:119 ../gcr/gcr-importer.c:440
-msgid "Enter password to unlock"
-msgstr "പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ അടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+#, fuzzy
+msgid "Unknown"
+msgstr "à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠതെറàµà´±àµ സംഭവിചàµà´šàµ"
-#. TRANSLATORS: The private key is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:129
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid "An application wants access to the private key '%s', but it is locked"
+msgid "PGP Key: %s"
msgstr ""
-"à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s' à´Žà´¨àµà´¨ à´ªàµà´°àµˆà´µà´±àµà´±àµ കീ വായികàµà´•à´¾à´¨àµâ€ à´…à´¨àµà´µà´¾à´¦à´‚ ആവശàµà´¯à´®à´¾à´£àµ, പകàµà´·àµ‡ അതൠ"
-"പൂടàµà´Ÿà´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ "
-# c-format
-#. TRANSLATORS: The certificate is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:132
-#, c-format
-msgid "An application wants access to the certificate '%s', but it is locked"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-"à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s' à´Žà´¨àµà´¨ സാകàµà´·àµà´¯à´ªà´¤àµà´°à´‚ വായികàµà´•à´¾à´¨àµâ€ à´…à´¨àµà´µà´¾à´¦à´‚ വേണം, പകàµà´·àµ‡ അതൠ"
-"പൂടàµà´Ÿà´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ "
-
-#. TRANSLATORS: The public key is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:135
-#, c-format
-msgid "An application wants access to the public key '%s', but it is locked"
-msgstr "à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s' à´ªàµà´°à´µàµ‡à´¶à´¨à´‚ ആവശàµà´¯à´®à´¾à´£àµ, പകàµà´·àµ‡ അതൠപൂടàµà´Ÿà´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ "
-
-#. TRANSLATORS: The object '%s' is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:138
-#, c-format
-msgid "An application wants access to '%s', but it is locked"
-msgstr "à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s'ലേകàµà´•àµ à´ªàµà´°à´µàµ‡à´¶à´¨à´‚ ആവശàµà´¯à´®à´¾à´£àµ, പകàµà´·àµ‡ അതൠപൂടàµà´Ÿà´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ "
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:147
-msgid "Automatically unlock this private key when I log in."
-msgstr "ഞാനàµâ€ ലോഗിനàµâ€ ചെയàµà´¯àµà´®àµà´ªàµ‹à´³àµâ€ à´ˆ à´ªàµà´°àµˆà´µà´±àµà´±àµ കീയàµà´Ÿàµ† പൂടàµà´Ÿàµ തനàµà´¨à´¤àµà´¤à´¾à´¨àµ† à´¤àµà´±à´•àµà´•àµà´•"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:149
-msgid "Automatically unlock this certificate when I log in."
-msgstr "ഞാനàµâ€ ലോഗിനàµâ€ ചെയàµà´¯àµà´®àµà´ªàµ‹à´³àµâ€ à´ˆ സാകàµà´·àµà´¯à´ªà´¤àµà´°à´¤àµà´¤à´¿à´¨àµà´±àµ† പൂടàµà´Ÿàµ തനàµà´¨à´¤àµà´¤à´¾à´¨àµ† à´¤àµà´±à´•àµà´•àµà´•"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:151
-msgid "Automatically unlock this public key when I log in."
-msgstr "ഞാനàµâ€ ലോഗിനàµâ€ ചെയàµà´¯àµà´®àµà´ªàµ‹à´³àµâ€ à´ˆ പബàµà´³à´¿à´•àµ കീയàµà´Ÿàµ† പൂടàµà´Ÿàµ തനàµà´¨à´¤àµà´¤à´¾à´¨àµ† à´¤àµà´±à´•àµà´•àµà´•"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:153
-msgid "Automatically unlock this when I log in"
-msgstr "ഞാനàµâ€ ലോഗിനàµâ€ ചെയàµà´¯àµà´®àµà´ªàµ‹à´³àµâ€ à´ˆ പൂടàµà´Ÿàµ തനàµà´¨à´¤àµà´¤à´¾à´¨àµ† à´¤àµà´±à´•àµà´•àµà´•"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:394
-msgid "Unlock certificate/key storage"
-msgstr "സാകàµà´·àµà´¯à´ªà´¤àµà´°à´¤àµà´¤à´¿à´¨àµà´±àµ†/കീ à´¸àµà´±àµà´±àµ‹à´±àµ‡à´œà´¿à´¨àµà´±àµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´•"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:395
-msgid "Enter password to unlock the certificate/key storage"
-msgstr "സാകàµà´·àµà´¯à´ªà´¤àµà´°à´¤àµà´¤à´¿à´¨àµà´±àµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ അടയാളവാകàµà´•àµàµ/കീ à´¸àµà´±àµà´±àµ‹à´±àµ‡à´œàµ നലàµâ€à´•àµà´•"
-
-# c-format
-#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:398
-#, c-format
-msgid ""
-"An application wants access to the certificate/key storage '%s', but it is "
-"locked"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
msgstr ""
-"ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s' à´Žà´¨àµà´¨ സാകàµà´·àµà´¯à´ªà´¤àµà´°à´‚/കീ à´¸àµà´±àµà´±àµ‹à´±àµ‡à´œàµ ലഭàµà´¯à´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´…à´¨àµà´µà´¾à´¦à´‚ വേണം, പകàµà´·àµ‡ അതൠ"
-"പൂടàµà´Ÿà´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ "
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:403
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:554
-msgid "Automatically unlock secure storage when I log in."
-msgstr "ഞാനàµâ€ ലോഗിനàµâ€ ചെയàµà´¯àµà´®àµà´ªàµ‹à´³àµâ€ à´¸àµà´°à´•àµà´·à´¿à´¤à´®à´¾à´¯ à´¸àµà´±àµà´±àµ‹à´±àµ‡à´œà´¿à´¨àµà´±àµ† പൂടàµà´Ÿàµ à´¸àµà´µà´¯à´‚ à´¤àµà´±à´•àµà´•àµà´•"
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:546
-msgid "New Password Required"
-msgstr "à´ªàµà´¤à´¿à´¯ അടയാളവാകàµà´•àµàµ ആവശàµà´¯à´®àµà´£àµà´Ÿàµàµ"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:547
-msgid "New password required for secure storage"
-msgstr "à´¸àµà´±àµà´±àµ‹à´±àµ‡à´œàµ സംരകàµà´·à´¿à´•àµà´•àµà´µà´¾à´¨à´¾à´¯àµà´³àµà´³ à´ªàµà´¤à´¿à´¯ അടയാളവാകàµà´•àµ നലàµâ€à´•àµà´•"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:549
-#, c-format
-msgid ""
-"In order to prepare '%s' for storage of certificates or keys, a password is "
-"required"
-msgstr "'%s'-à´¨àµà´³àµà´³ സാകàµà´·àµà´¯à´ªà´¤àµà´°à´™àµà´™à´³àµà´‚ കീകളàµà´‚ സൂകàµà´·à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿, ഒരൠഅടയാളവാകàµà´•àµàµ ആവശàµà´¯à´®à´¾à´£àµàµ."
-
-#: ../daemon/ui/gkr-ask-tool.c:230
-msgid ""
-"<b><big>Could not grab your mouse.</big></b>\n"
-"\n"
-"A malicious client may be eavesdropping on your session or you may have just "
-"clicked a menu or some application just decided to get focus.\n"
-"\n"
-"Try again."
-msgstr ""
-"<b><big>നിങàµà´™à´³àµà´Ÿàµ† മൌസൠലഭàµà´¯à´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´²àµà´².</big></b>\n"
-"\n"
-"പിശകàµà´³àµà´³ à´•àµà´²àµˆà´¨àµà´±àµ ഒരൠപകàµà´·àµ‡ നിങàµà´™à´³àµà´Ÿàµ† സെഷനàµâ€ കാണàµà´¨àµà´¨àµà´£àµà´Ÿà´¾à´µà´¾à´‚ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ നിങàµà´™à´³àµâ€ ഒരൠമെനàµà´µà´¿à´²àµâ€ à´•àµà´²à´¿à´•àµà´•àµ "
-"ചെയàµà´¤à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿà´¾à´µà´¾à´‚ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ à´à´¤àµ†à´™àµà´•à´¿à´²àµà´‚ à´ªàµà´°à´¯àµ‹à´—à´‚ ഫോകàµà´•à´¸àµ ലഭàµà´¯à´®à´¾à´•àµà´•à´¿à´¯à´¤à´¾à´µàµà´‚.\n"
-"\n"
-"വീണàµà´Ÿàµà´‚ à´¶àµà´°à´®à´¿à´•àµà´•àµà´•."
-
-#: ../daemon/ui/gkr-ask-tool.c:239
-msgid ""
-"<b><big>Could not grab your keyboard.</big></b>\n"
-"\n"
-"A malicious client may be eavesdropping on your session or you may have just "
-"clicked a menu or some application just decided to get focus.\n"
-"\n"
-"Try again."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-"<b><big>നിങàµà´™à´³àµà´Ÿàµ† കീബോരàµâ€à´¡àµ ലഭàµà´¯à´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´²àµà´².</big></b>\n"
-"\n"
-"പിശകàµà´³àµà´³ à´•àµà´²àµˆà´¨àµà´±àµ ഒരൠപകàµà´·àµ‡ നിങàµà´™à´³àµà´Ÿàµ† സെഷനàµâ€ കാണàµà´¨àµà´¨àµà´£àµà´Ÿà´¾à´µà´¾à´‚ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ നിങàµà´™à´³àµâ€ ഒരൠമെനàµà´µà´¿à´²àµâ€ à´•àµà´²à´¿à´•àµà´•àµ "
-"ചെയàµà´¤à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿà´¾à´µà´¾à´‚ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ à´à´¤àµ†à´™àµà´•à´¿à´²àµà´‚ à´ªàµà´°à´¯àµ‹à´—à´‚ ഫോകàµà´•à´¸àµ ലഭàµà´¯à´®à´¾à´•àµà´•à´¿à´¯à´¤à´¾à´µàµà´‚.\n"
-"\n"
-"വീണàµà´Ÿàµà´‚ à´¶àµà´°à´®à´¿à´•àµà´•àµà´•."
-
-#: ../daemon/ui/gkr-ask-tool.c:276
-msgid "Store passwords unencrypted?"
-msgstr "അടയാളവാകàµà´¯à´™àµà´™à´³àµâ€ à´Žà´¨àµâ€à´•àµà´°à´¿à´ªàµà´±àµà´±àµ ചെയàµà´¯à´¾à´¤àµ† സൂകàµà´·à´¿à´•àµà´•à´£à´®àµ†à´¨àµà´¨à´¾à´£àµ‹ ?"
-#: ../daemon/ui/gkr-ask-tool.c:277
-msgid ""
-"By choosing to use a blank password, your stored passwords will not be "
-"safely encrypted. They will be accessible by anyone with access to your "
-"files."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
msgstr ""
-"ഇവിടെ അടയാളവാകàµà´¯à´®àµŠà´¨àµà´¨àµà´‚ തെരഞàµà´žàµ†à´Ÿàµà´•àµà´•à´¾à´¤àµà´¤à´¤àµà´•àµŠà´£àµà´Ÿàµ നിങàµà´™à´³àµâ€ ഇതിലàµâ€ സൂകàµà´·à´¿à´•àµà´•àµà´¨àµà´¨ അടയാളവാകàµà´¯à´™àµà´™à´³àµâ€ "
-"നിങàµà´™à´³àµà´Ÿàµ† ഫയലàµà´•à´³àµà´Ÿàµ† നിയനàµà´¤àµà´°à´£à´‚ ഉളàµà´³ ആരàµâ€à´•àµà´•àµà´‚ ഉപയോഗികàµà´•à´¾à´¨àµâ€ à´•à´´à´¿à´¯àµà´‚"
-
-#: ../daemon/ui/gkr-ask-tool.c:284
-msgid "Use Unsafe Storage"
-msgstr "à´¸àµà´°à´•àµà´·à´¿à´¤à´®à´²àµà´²à´¾à´¤àµà´¤ à´¸àµà´±àµà´±àµ‹à´±àµ‡à´œàµ ഉപയോഗികàµà´•àµà´•"
-
-#: ../daemon/ui/gkr-ask-tool.c:512
-msgid "_Location:"
-msgstr "à´¸àµà´¥à´²à´‚ :"
-
-#: ../daemon/ui/gkr-ask-tool.c:525
-msgid "_Old password:"
-msgstr "പഴയ അടയാളവാകàµà´•àµàµ : (_O)"
-
-#: ../daemon/ui/gkr-ask-tool.c:545
-msgid "_Password:"
-msgstr "അടയാളവാകàµà´•àµàµ : (_P)"
-
-#: ../daemon/ui/gkr-ask-tool.c:567
-msgid "_Confirm password:"
-msgstr "à´ªàµà´¤à´¿à´¯ അടയാളവാകàµà´•àµàµ ഉറപàµà´ªà´¾à´•àµà´•àµà´•: (_C)"
-
-#: ../daemon/ui/gkr-ask-tool.c:587
-msgid "New password strength"
-msgstr "à´ªàµà´¤à´¿à´¯ അടയാളവാകàµà´¯à´¤àµà´¤à´¿à´¨àµà´±àµ† ശകàµà´¤à´¿"
-
-#: ../daemon/ui/gkr-ask-tool.c:645
-msgid "Passwords do not match."
-msgstr "അടയാളവാകàµà´¯à´™àµà´™à´³àµâ€ തമàµà´®à´¿à´²àµâ€ പൊരàµà´¤àµà´¤à´•àµà´•àµ‡à´Ÿàµà´£àµà´Ÿàµ."
-
-#: ../daemon/ui/gkr-ask-tool.c:661
-msgid "Password cannot be blank"
-msgstr "à´Žà´¨àµà´¤àµ†à´™àµà´•à´¿à´²àµà´‚ അടയാളവാകàµà´•àµàµ രേഖപàµà´ªàµ†à´Ÿàµà´¤àµà´¤àµ‡à´£àµà´Ÿà´¤à´¾à´£àµ"
-
-#: ../daemon/ui/gkr-ask-tool.c:712
-msgid "_Deny"
-msgstr "_നിഷേധികàµà´•àµà´•"
-
-#: ../daemon/ui/gkr-ask-tool.c:724
-msgid "C_reate"
-msgstr "ഉണàµà´Ÿà´¾à´•àµà´•àµà´• (_r)"
-
-#: ../daemon/ui/gkr-ask-tool.c:728
-msgid "C_hange"
-msgstr "മാറàµà´±àµà´• (‌_h)"
-
-#: ../daemon/ui/gkr-ask-tool.c:732
-msgid "Allow _Once"
-msgstr "à´’à´°à´¿à´•àµà´•à´²àµâ€ മാതàµà´°à´‚ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´• (_O)"
-
-#: ../daemon/ui/gkr-ask-tool.c:736
-msgid "_Always Allow"
-msgstr "à´Žà´ªàµà´ªàµ‹à´´àµà´‚ à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´• (_A)"
-
-#: ../daemon/util/gkr-location.c:234
-#, c-format
-msgid "Removable Disk: %s"
-msgstr "à´Žà´Ÿàµà´¤àµà´¤àµ മാറàµà´±à´¾à´µàµà´¨àµà´¨ à´¡à´¿à´¸àµà´•àµ : %s"
-#: ../daemon/util/gkr-location.c:236
-msgid "Removable Disk"
-msgstr "à´Žà´Ÿàµà´¤àµà´¤àµ മാറàµà´±à´¾à´µàµà´¨àµà´¨ à´¡à´¿à´¸àµà´•àµ "
-
-#: ../daemon/util/gkr-location.c:327 ../daemon/util/gkr-location.c:339
-msgid "Home"
-msgstr "ആസàµà´¥à´¾à´¨à´‚"
-
-#: ../daemon/util/gkr-location.c:882 ../daemon/util/gkr-location.c:906
-msgid "The disk or drive this file is located on is not present"
-msgstr "à´ˆ ഫയലàµâ€ ഇരികàµà´•àµà´¨àµà´¨ à´¡à´¿à´¸àµà´•àµ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ à´¡àµà´°àµˆà´µàµ ഇപàµà´ªàµ‹à´³àµâ€ ലഭàµà´¯à´®à´²àµà´²"
-
-#: ../daemon/util/gkr-location.c:914
-#, c-format
-msgid "Couldn't create directory: %s"
-msgstr "തടàµà´Ÿàµà´£àµà´Ÿà´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´•à´´à´¿à´žàµà´žà´¿à´²àµà´² : %s"
-
-#: ../daemon/util/gkr-location.c:948
-#, c-format
-msgid "Couldn't delete the file: %s"
-msgstr "ഫയലàµâ€ à´Žà´Ÿàµà´¤àµà´¤àµà´•à´³à´¯àµà´µà´¾à´¨àµâ€ à´•à´´à´¿à´žàµà´žà´¿à´²àµà´² : %s"
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
+msgstr ""
#: ../egg/egg-oid.c:41
msgid "Domain Component"
@@ -653,8 +147,8 @@ msgid "User ID"
msgstr "ഉപയോകàµà´¤àµƒ ID"
#: ../egg/egg-oid.c:46
-msgid "Email"
-msgstr "ഈമെയിലàµâ€"
+msgid "Email Address"
+msgstr ""
#: ../egg/egg-oid.c:54
msgid "Date of Birth"
@@ -684,8 +178,7 @@ msgstr "കോമണàµâ€ നെയിം"
msgid "Surname"
msgstr "à´•àµà´Ÿàµà´‚ബപàµà´ªàµ‡à´°àµàµ"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-basics-widget.ui.h:18
-#: ../gcr/gcr-certificate-details-widget.c:322
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "സീരിയലàµâ€ നംബരàµâ€â€"
@@ -745,636 +238,303 @@ msgstr "Pseudonym"
msgid "RSA"
msgstr "RSA"
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "RSA-à´¯àµà´•àµà´•àµŠà´ªàµà´ªà´‚ MD2"
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "RSA-à´¯àµà´•àµà´•àµŠà´ªàµà´ªà´‚ MD5"
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "RSA-à´¯àµà´•àµà´•àµŠà´ªàµà´ªà´‚ SHA1"
-#: ../egg/egg-oid.c:107
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "DSA-à´¯àµà´•àµà´•àµŠà´ªàµà´ªà´‚ SHA1"
-#: ../gcr/gcr-certificate-basics-widget.c:59
-msgid "<i>Not Part of Certificate</i>"
-msgstr "<i>സാകàµà´·àµà´¯à´ªà´¤àµà´°à´¤àµà´¤à´¿à´¨àµà´±àµ† ഭാഗമലàµà´²</i>"
-
-#: ../gcr/gcr-certificate-basics-widget.c:80
-msgid "<i>unknown</i>"
-msgstr "<i>അപരിചിതം</i>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:1
-msgid "<Not Part of Certificate>"
-msgstr "<സാകàµà´·àµà´¯à´ªà´¤àµà´°à´™àµà´™à´³àµà´Ÿàµ† ഭാഗമലàµà´²>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:2
-msgid "<b>Fingerprints</b>"
-msgstr "<b>വിരലടയാളങàµà´™à´³àµâ€</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:3
-msgid "<b>Issued By</b>"
-msgstr "<b>നലàµâ€à´•à´¿à´¯à´¤àµàµ ആരàµàµ</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:4
-msgid "<b>Issued To</b>"
-msgstr "<b>നലàµâ€à´•à´¿à´¯à´¤àµàµ ആരàµâ€à´•àµà´•àµàµ</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:5
-msgid "<b>This certificate has been verified for the following uses:</b>"
-msgstr "<b>à´ˆ ഉപയോഗങàµà´™à´³àµâ€à´•àµà´•à´¾à´¯à´¿ സാകàµà´·àµà´¯à´ªà´¤àµà´°à´‚ ഉറപàµà´ªà´¾à´•àµà´•à´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ:</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:6
-msgid "<b>Validity</b>"
-msgstr "<b>കാലാവധി</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:7
-msgid "Common Name (CN)"
-msgstr "കോമണàµâ€ നെയിം (CN)"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:8
-msgid "Email Recipient Certificate"
-msgstr "ഈമെയിലàµâ€ റെസിപിയനàµà´±àµ സാകàµà´·àµà´¯à´ªà´¤àµà´°à´™àµà´™à´³àµâ€ "
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:9
-msgid "Email Signer Certificate"
-msgstr "ഈമെയിലàµâ€ സൈനരàµâ€ സാകàµà´·àµà´¯à´ªà´¤àµà´°à´‚"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:10
-msgid "Expires On"
-msgstr "കാലാവധി തീരàµà´¨àµà´¨à´¤àµàµ"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:11
-msgid "Issued On"
-msgstr "നലàµâ€à´•à´¿à´¯à´¿à´¤àµ†à´¨àµà´¨àµàµ"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:12
-msgid "MD5 Fingerprint"
-msgstr "MD5 വിരലടയാളം"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:13
-msgid "Organization (O)"
-msgstr "à´¸àµà´¥à´¾à´ªà´¨à´‚ (O)"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:14
-msgid "Organizational Unit (OU)"
-msgstr "à´“à´°àµâ€à´—നൈസേഷനàµâ€ യൂണിറàµà´±àµ (OU)"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:15
-msgid "SHA1 Fingerprint"
-msgstr "SHA1 വിരലടയാളം"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+#, fuzzy
+msgid "Server Authentication"
+msgstr "SSL സരàµâ€à´µà´°àµâ€ സാകàµà´·àµà´¯à´ªà´¤àµà´°à´‚"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:16
-msgid "SSL Client Certificate"
+#: ../egg/egg-oid.c:108
+#, fuzzy
+msgid "Client Authentication"
msgstr "SSL à´•àµà´²àµˆà´¨àµà´±àµ സാകàµà´·àµà´¯à´ªà´¤àµà´°à´‚"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:17
-msgid "SSL Server Certificate"
-msgstr "SSL സരàµâ€à´µà´°àµâ€ സാകàµà´·àµà´¯à´ªà´¤àµà´°à´‚"
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:207
-msgid "Extension"
-msgstr "à´Žà´•àµà´¸àµà´±àµà´±àµ†à´¨àµâ€à´·à´¨àµâ€"
-
-#: ../gcr/gcr-certificate-details-widget.c:212
-msgid "Identifier"
-msgstr "à´à´¡à´¨àµà´±à´¿à´«à´¯à´°àµâ€"
-
-#: ../gcr/gcr-certificate-details-widget.c:222
-msgid "Value"
-msgstr "മൂലàµà´²àµà´¯à´‚"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "Critical"
-msgstr "à´…à´¤àµà´¯à´¾à´µà´¶àµà´¯à´‚"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "Yes"
-msgstr "ഉവàµà´µàµàµ"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "No"
-msgstr "ഇലàµà´²"
-
-#. The subject
-#: ../gcr/gcr-certificate-details-widget.c:303
-msgid "Subject Name"
-msgstr "വിഷയം"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-details-widget.c:307
-msgid "Issuer Name"
-msgstr "നലàµâ€à´•à´¿à´¯à´µà´°àµà´Ÿàµ† പേരàµàµ"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-details-widget.c:311
-msgid "Issued Certificate"
-msgstr "നലàµâ€à´•à´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ സാകàµà´·àµà´¯à´ªà´¤àµà´°à´‚"
-
-#: ../gcr/gcr-certificate-details-widget.c:316
-msgid "Version"
-msgstr "പതിപàµà´ªàµàµ"
-
-#: ../gcr/gcr-certificate-details-widget.c:329
-msgid "Not Valid Before"
-msgstr "ഇതിനàµàµ à´®àµà´®àµà´ªàµàµ ഉപയോഗമിലàµà´²"
-
-#: ../gcr/gcr-certificate-details-widget.c:334
-msgid "Not Valid After"
-msgstr "ഇതിനàµàµ ശേഷം ഉപയോഗമിലàµà´²"
-
-#. Signature
-#: ../gcr/gcr-certificate-details-widget.c:339
-#: ../gcr/gcr-certificate-details-widget.c:355
-msgid "Signature"
-msgstr "സിഗàµà´¨àµ‡à´šàµà´šà´°àµâ€"
-
-#: ../gcr/gcr-certificate-details-widget.c:343
-msgid "Signature Algorithm"
-msgstr "സിഗàµà´¨àµ‡à´šàµà´šà´°àµâ€ ആലàµâ€à´—ോരിഥം"
-
-#: ../gcr/gcr-certificate-details-widget.c:348
-msgid "Signature Parameters"
-msgstr "സിഗàµà´¨àµ‡à´šàµà´šà´°àµâ€ പരാമീറàµà´±à´±àµà´•à´³àµâ€"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-details-widget.c:359
-msgid "Public Key Info"
-msgstr "പബàµà´³à´¿à´•àµ കീ വിവരം"
-
-#: ../gcr/gcr-certificate-details-widget.c:363
-msgid "Key Algorithm"
-msgstr "കീ ആലàµâ€à´—ോരിഥം"
-
-#: ../gcr/gcr-certificate-details-widget.c:368
-msgid "Key Parameters"
-msgstr "കീ പരാമീറàµà´±à´±àµà´•à´³àµâ€"
-
-#: ../gcr/gcr-certificate-details-widget.c:375
-msgid "Key Size"
-msgstr "കീയàµà´Ÿàµ† à´µàµà´¯à´¾à´ªàµà´¤à´¿"
-
-#: ../gcr/gcr-certificate-details-widget.c:382 ../gcr/gcr-parser.c:202
-msgid "Public Key"
-msgstr "പബàµà´³à´¿à´•àµ കീ"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-details-widget.c:386
-msgid "Fingerprints"
-msgstr "വിരലടയാളങàµà´™à´³àµâ€"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-msgstr "<span size='large' weight='bold'>സാകàµà´·àµà´¯à´ªà´¤àµà´°à´™àµà´™à´³àµà´‚ കീകളàµà´‚ ഇംപോരàµâ€à´Ÿàµà´Ÿàµ ചെയàµà´¯àµà´•</span>"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "എവിടേകàµà´•àµàµ ഇംപോരàµâ€à´Ÿàµà´Ÿàµ ചെയàµà´¯à´£à´‚:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "അടയാളവാകàµà´•àµàµ:"
-
-#: ../gcr/gcr-importer.c:163 ../gcr/gcr-parser.c:1573 ../gp11/gp11-misc.c:98
-msgid "The operation was cancelled"
-msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨à´¤àµà´¤àµ† റദàµà´¦à´¾à´•àµà´•à´¿"
-
-#: ../gcr/gcr-importer.c:255
-#, c-format
-msgid "No location available to import to"
-msgstr "ഇംപോരàµâ€à´Ÿàµà´Ÿàµ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ ഒരൠസàµà´¥à´²à´‚ ലഭàµà´¯à´®à´²àµà´²"
-
-#: ../gcr/gcr-importer.c:404
-msgid "Import Certificates/Keys"
-msgstr "സാകàµà´·àµà´¯à´ªà´¤àµà´°à´™àµà´™à´³àµâ€/കീകളàµâ€ ഇംപോരàµâ€à´Ÿàµà´Ÿàµ ചെയàµà´¯àµà´•"
-
-#: ../gcr/gcr-importer.c:411
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "ഇംപോരàµâ€à´Ÿàµà´Ÿàµ ചെയàµà´¤ സാകàµà´·àµà´¯à´ªà´¤àµà´°à´™àµà´™à´³àµâ€/കീകളàµâ€ à´Žà´¨àµà´¨à´¿à´µ സൂകàµà´·à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ ഒരൠസàµà´¥à´¾à´¨à´‚ തെരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•."
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:449
-msgid "In order to import the private key, it must be unlocked"
-msgstr "à´ªàµà´°àµˆà´µà´±àµà´±àµ കീ ഇംപോരàµâ€à´Ÿàµà´Ÿàµ ചെയàµà´¯àµ‡à´£àµà´Ÿà´¤à´¿à´¨àµàµ ഇതàµàµ പൂടàµà´Ÿà´¾à´¤àµ†à´¯à´¿à´°à´¿à´•àµà´•à´£à´‚."
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:452
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "സാകàµà´·àµà´¯à´ªà´¤àµà´°à´‚ ഇംപോരàµâ€à´Ÿàµà´Ÿàµ ചെയàµà´¯àµ‡à´£àµà´Ÿà´¤à´¿à´¨àµàµ ഇതàµàµ പൂടàµà´Ÿà´¾à´¤àµ†à´¯à´¿à´°à´¿à´•àµà´•à´£à´‚."
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:455
-msgid "In order to import the data, it must be unlocked"
-msgstr "ഡേറàµà´±à´¾ ഇംപോരàµâ€à´Ÿàµà´Ÿàµ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿, ഇതàµàµ പൂടàµà´Ÿà´¾à´¤àµ†à´¯à´¿à´°à´¿à´•àµà´•à´£à´‚"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:460
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "'%s'à´Žà´¨àµà´¨ à´ªàµà´°àµˆà´µà´±àµà´±àµ കീ ഇംപോരàµâ€à´Ÿàµà´Ÿàµ ചെയàµà´¯àµ‡à´£àµà´Ÿà´¤à´¿à´¨àµàµ ഇതàµàµ പൂടàµà´Ÿà´¾à´¤àµ†à´¯à´¿à´°à´¿à´•àµà´•à´£à´‚."
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:463
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "'%s'à´Žà´¨àµà´¨ സാകàµà´·àµà´¯à´ªà´¤àµà´°à´‚ ഇംപോരàµâ€à´Ÿàµà´Ÿàµ ചെയàµà´¯àµ‡à´£àµà´Ÿà´¤à´¿à´¤àµàµ ഇതàµàµ പൂടàµà´Ÿà´¾à´¤àµ†à´¯à´¿à´°à´¿à´•àµà´•à´£à´‚."
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:466
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "'%s'ഇംപോരàµâ€à´Ÿàµà´Ÿàµ ചെയàµà´¯àµ‡à´£àµà´Ÿà´¤à´¿à´¨àµàµ ഇതàµàµ പൂടàµà´Ÿà´¾à´¤àµ†à´¯à´¿à´°à´¿à´•àµà´•à´£à´‚."
-
-#: ../gcr/gcr-parser.c:196
-msgid "Private Key"
-msgstr "à´ªàµà´°àµˆà´µà´±àµà´±àµ കീ"
-
-#: ../gcr/gcr-parser.c:199
-msgid "Certificate"
-msgstr "സാകàµà´·àµà´¯à´ªà´¤àµà´°à´‚"
-
-#: ../gcr/gcr-parser.c:1576
-msgid "Unrecognized or unsupported data."
-msgstr "പിനàµà´¤àµà´£à´¯à´¿à´²àµà´²à´¾à´¤àµà´¤ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ തിരിചàµà´šà´±à´¿à´¯à´¾à´¨àµâ€ കഴിയാതàµà´¤ ഡേറàµà´±à´¾."
-
-#: ../gcr/gcr-parser.c:1579
-msgid "Could not parse invalid or corrupted data."
-msgstr "അസാധàµà´µà´¾à´¯ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ തെറàµà´±àµà´•à´³àµà´³àµà´³ ഡേറàµà´±à´¾ പാഴàµà´¸àµ ചെയàµà´¯à´¾à´¨àµâ€ à´•à´´à´¿à´žàµà´žà´¿à´²àµà´². "
-
-#: ../gcr/gcr-parser.c:1582
-msgid "The data is locked"
-msgstr "ഡേറàµà´± പൂടàµà´Ÿà´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ"
-
-#: ../gp11/gp11-misc.c:101
-msgid "Insufficient memory available"
-msgstr "ആവശàµà´¯à´®à´¾à´¯ മെമàµà´®à´±à´¿ ലഭàµà´¯à´®à´²àµà´²"
-
-#: ../gp11/gp11-misc.c:103
-msgid "The specified slot ID is not valid"
-msgstr "പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ à´¸àµà´²àµ‹à´Ÿàµà´Ÿàµ à´ à´¡à´¿à´•àµà´•àµ സാധàµà´¤à´¯à´¿à´²àµà´²"
-
-#: ../gp11/gp11-misc.c:105
-msgid "Internal error"
-msgstr "ഉളàµà´³à´¿à´²àµ†à´¨àµà´¤àµ‹ à´•àµà´´à´ªàµà´ªà´‚ സംഭവിചàµà´šà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ"
-
-#: ../gp11/gp11-misc.c:107
-msgid "The operation failed"
-msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿ പൂരàµâ€à´¤àµà´¤à´¿à´¯à´¾à´•àµà´•à´¾à´¨àµâ€ സാധàµà´¯à´®à´²àµà´²"
-
-#: ../gp11/gp11-misc.c:109
-msgid "Invalid arguments"
-msgstr "അസാധàµà´µà´¾à´¯ ആരàµâ€à´—àµà´¯àµà´®àµ†à´¨àµà´±àµà´•à´³àµâ€"
-
-#: ../gp11/gp11-misc.c:111
-msgid "The module cannot create needed threads"
-msgstr "à´ˆ മോഡàµà´¯àµ‚ളിനൠആവശàµà´¯à´®à´¾à´¯ à´¤àµà´°àµ†à´¡àµà´•à´³àµà´£àµà´Ÿà´¾à´•àµà´•à´¾à´¨àµà´³àµà´³ കഴിവിലàµà´²"
-
-#: ../gp11/gp11-misc.c:113
-msgid "The module cannot lock data properly"
-msgstr "à´ˆ മോഡàµà´¯àµ‚ളിനൠവിവരങàµà´™à´³àµâ€ നേരാം വണàµà´£à´‚ പൂടàµà´Ÿà´¿à´µàµ†à´•àµà´•à´¾à´¨àµà´³àµà´³ കഴിവിലàµà´²"
-
-#: ../gp11/gp11-misc.c:115
-msgid "The field is read-only"
-msgstr "à´ˆ കളതàµà´¤à´¿à´²àµâ€ മാറàµà´±à´™àµà´™à´³àµâ€ വരàµà´¤àµà´¤à´¾à´¨àµâ€ സാധàµà´¯à´®à´²àµà´²"
-
-#: ../gp11/gp11-misc.c:117
-msgid "The field is sensitive and cannot be revealed"
-msgstr "à´ˆ കളതàµà´¤à´¿à´¨àµà´±àµ† രഹസàµà´¯à´¸àµà´µà´­à´¾à´µà´‚ കാരണം അതൠകാണിചàµà´šàµ തരാനàµâ€ നിവരàµâ€à´¤àµà´¤à´¿à´¯à´¿à´²àµà´²"
-
-#: ../gp11/gp11-misc.c:119
-msgid "The field is invalid or does not exist"
-msgstr "à´ˆ കളം അസാധàµà´µà´¾à´£àµ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ അതൠനിലവിലിലàµà´²"
-
-#: ../gp11/gp11-misc.c:121
-msgid "Invalid value for field"
-msgstr "à´ˆ കളതàµà´¤à´¿à´²àµ† വില അസാധàµà´µà´¾à´£àµ"
-
-#: ../gp11/gp11-misc.c:123
-msgid "The data is not valid or unrecognized"
-msgstr "വിവരതàµà´¤à´¿à´¨àµ സാധàµà´¤à´¯à´¿à´²àµà´² à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ അതിനെ തിരിചàµà´šà´±à´¿à´¯à´¾à´¨àµâ€ à´•à´´à´¿à´žàµà´žà´¿à´Ÿàµà´Ÿà´¿à´²àµà´²"
-
-#: ../gp11/gp11-misc.c:125
-msgid "The data is too long"
-msgstr "വിവരതàµà´¤à´¿à´¨àµà´±àµ† നീളം വളരെ കൂടàµà´¤à´²à´¾à´£àµ"
-
-#: ../gp11/gp11-misc.c:127
-msgid "An error occurred on the device"
-msgstr "ഉപകരനതàµà´¤à´¿à´²àµâ€ à´Žà´¨àµà´¤àµ‹ à´•àµà´´à´ªàµà´ªà´®àµà´£àµà´Ÿà´¾à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ"
-
-#: ../gp11/gp11-misc.c:129
-msgid "Insufficient memory available on device"
-msgstr "ഉപകരണതàµà´¤à´¿à´²àµâ€ ആവശàµà´¯à´¤àµà´¤à´¿à´¨àµ മെമàµà´®à´±à´¿ ലഭàµà´¯à´®à´²àµà´²"
-
-#: ../gp11/gp11-misc.c:131
-msgid "The device was removed or unplugged"
-msgstr "à´ˆ ഉപകരണം à´Žà´Ÿàµà´¤àµà´¤àµà´®à´¾à´±àµà´±à´ªàµà´ªàµ†à´Ÿàµà´Ÿà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ."
-
-#: ../gp11/gp11-misc.c:133
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "à´Žà´¨àµâ€à´•àµà´°à´¿à´ªàµà´±àµà´±àµ ചെയàµà´¤ വിവരം അസാധàµà´µà´¾à´£àµ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ അതിനെ തിരിചàµà´šà´±à´¿à´¯à´¾à´¨àµâ€ à´•à´´à´¿à´žàµà´žà´¿à´Ÿàµà´Ÿà´¿à´²àµà´²"
-
-#: ../gp11/gp11-misc.c:135
-msgid "The encrypted data is too long"
-msgstr "à´Žà´¨àµâ€à´•àµà´°à´¿à´ªàµà´±àµà´±àµ ചെയàµà´¤ വിവരതàµà´¤à´¿à´¨àµà´±àµ† നീളം വളരെ കൂടàµà´¤à´²à´¾à´£àµ"
-
-#: ../gp11/gp11-misc.c:137
-msgid "This operation is not supported"
-msgstr "à´ˆ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•àµà´³àµà´³ പിനàµà´¤àµà´£ ലഭàµà´¯à´®à´²àµà´²"
-
-#: ../gp11/gp11-misc.c:139
-msgid "The key is missing or invalid"
-msgstr "à´ˆ കീ കാണàµà´®à´¾à´¨à´¿à´²àµà´² à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ അസാധàµà´µà´¾à´£àµ"
-
-#: ../gp11/gp11-misc.c:141
-msgid "The key is the wrong size"
-msgstr "à´ˆ കീയàµà´Ÿàµ† വലàµà´ªàµà´ªà´‚ തെറàµà´±à´¾à´£àµ"
-
-#: ../gp11/gp11-misc.c:143
-msgid "The key is of the wrong type"
-msgstr "à´ˆ കീയàµà´Ÿàµ† തരം തെറàµà´±à´¾à´£àµ"
-
-#: ../gp11/gp11-misc.c:145
-msgid "No key is needed"
-msgstr "ഒരൠകീയàµà´‚ ആവശàµà´¯à´®à´¿à´²àµà´²"
-
-#: ../gp11/gp11-misc.c:147
-msgid "The key is different than before"
-msgstr "à´ˆ കീ നേരതàµà´¤à´¤à´¿à´²àµâ€ നിനàµà´¨àµà´‚ à´µàµà´¯à´¤àµà´¯à´¸àµà´¤à´®à´¾à´£àµ"
-
-#: ../gp11/gp11-misc.c:149
-msgid "A key is needed"
-msgstr "ഒരൠകീ ആവശàµà´¯à´®à´¾à´£àµ"
-
-#: ../gp11/gp11-misc.c:151
-msgid "Cannot include the key in digest"
-msgstr "à´ˆ കീ യെ ഡൈജസàµà´±àµà´±à´¿à´²àµà´³àµâ€à´ªàµà´ªàµ†à´Ÿàµà´¤àµà´¤à´¾à´¨àµâ€ കഴിയിലàµà´²"
-
-#: ../gp11/gp11-misc.c:153
-msgid "This operation cannot be done with this key"
-msgstr "à´ˆ കീ കൊണàµà´Ÿàµ à´ˆ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨à´‚ നടതàµà´¤à´¾à´¨àµâ€ കഴിയിലàµà´²"
-
-#: ../gp11/gp11-misc.c:155
-msgid "The key cannot be wrapped"
-msgstr "à´ˆ കീ യെ റാപൠചെയàµà´¯à´¾à´¨àµâ€ കഴിയിലàµà´²"
-
-#: ../gp11/gp11-misc.c:157
-msgid "Cannot export this key"
-msgstr "à´ˆ കീ à´Žà´•àµà´¸àµâ€Œà´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµ ചെയàµà´¯à´¾à´¨àµâ€ കഴിയിലàµà´²"
-
-#: ../gp11/gp11-misc.c:159
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "രഹസàµà´¯à´¸à´‚വിധാനം അസാധàµà´µà´¾à´£àµ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ അതിനെ തിരിചàµà´šà´±à´¿à´¯à´¾à´¨àµâ€ à´•à´´à´¿à´¯àµà´¨àµà´¨à´¿à´²àµà´²"
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr ""
-#: ../gp11/gp11-misc.c:161
-msgid "The crypto mechanism has an invalid argument"
-msgstr "രഹസàµà´¯à´¸à´‚വിധാനതàµà´¤à´¿à´¨àµ à´•à´¿à´Ÿàµà´Ÿà´¿à´¯ ആരàµâ€à´—àµà´¯àµà´®àµ†à´¨àµà´±àµà´•à´³à´¿à´²àµŠà´°àµ†à´£àµà´£à´‚ അസാധàµà´µà´¾à´£àµ"
+#: ../egg/egg-spawn.c:320
+#, c-format
+msgid "Unexpected error in waitpid() (%s)"
+msgstr ""
-#: ../gp11/gp11-misc.c:163
-msgid "The object is missing or invalid"
-msgstr "à´ˆ വസàµà´¤àµ അസാധàµà´µà´¾à´£àµ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ അതിനെ കാണàµà´®à´¾à´¨à´¿à´²àµà´²"
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr "പേരിലàµà´²à´¾à´¤àµà´¤ സാകàµà´·àµà´¯à´ªà´¤àµà´°à´‚"
-#: ../gp11/gp11-misc.c:165
-msgid "Another operation is already taking place"
-msgstr "മറàµà´±àµŠà´°àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨à´‚ നടനàµà´¨àµà´•àµŠà´£àµà´Ÿà´¿à´°à´¿à´•àµà´•àµà´•à´¯à´¾à´£àµ"
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
+msgstr "പബàµà´³à´¿à´•àµ SSH കീ പാഴàµà´¸àµ ചെയàµà´¯àµà´µà´¾à´¨àµâ€ സാധിചàµà´šà´¿à´²àµà´²"
-#: ../gp11/gp11-misc.c:167
-msgid "No operation is taking place"
-msgstr "ഒരൠപàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨à´µàµà´‚ നടകàµà´•àµà´¨àµà´¨à´¿à´²àµà´²"
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, fuzzy, c-format
+msgid "Unlock password for: %s"
+msgstr "%s à´Žà´¨àµà´¨ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´±àµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³àµà´³ അടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
-#: ../gp11/gp11-misc.c:169
-msgid "The password or PIN is incorrect"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+#, fuzzy
+msgid "The unlock password was incorrect"
msgstr "അടയാളവാകàµà´•àµàµ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ PIN തെറàµà´±à´¾à´£àµ"
-#: ../gp11/gp11-misc.c:171
-msgid "The password or PIN is invalid"
-msgstr "അടയാളവാകàµà´•àµàµ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ PIN അസാധàµà´µà´¾à´£àµ"
-
-#: ../gp11/gp11-misc.c:173
-msgid "The password or PIN is of an invalid length"
-msgstr "അടയാളവാകàµà´¯à´¤àµà´¤à´¿à´¨àµà´±àµ† à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ PIN à´¨àµà´±àµ† നീളം അസാധàµà´µà´¾à´£àµ"
-
-#: ../gp11/gp11-misc.c:175
-msgid "The password or PIN has expired"
-msgstr "അടയാളവാകàµà´¯à´¤àµà´¤à´¿à´¨àµà´±àµ† à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ PIN à´¨àµà´±àµ† കാലാവധി à´•à´´à´¿à´žàµà´žàµà´ªàµ‹à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ"
-
-#: ../gp11/gp11-misc.c:177
-msgid "The password or PIN is locked"
-msgstr "അടയാളവാകàµà´¯à´®àµ‹ PIN à´“ ഇപàµà´ªàµ‹à´³àµâ€ പൂടàµà´Ÿà´¿ വെചàµà´šà´¿à´°à´¿à´•àµà´•àµà´•à´¯à´¾à´£àµ"
-
-#: ../gp11/gp11-misc.c:179
-msgid "The session is closed"
-msgstr "à´ˆ സെഷനàµâ€ അവസാനിചàµà´šà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ"
-
-#: ../gp11/gp11-misc.c:181
-msgid "Too many sessions are active"
-msgstr "സജീവമായ സെഷനàµà´•à´³àµà´Ÿàµ† à´Žà´£àµà´£à´‚ വളരെ കൂടàµà´¤à´²à´¾à´£àµ"
-
-#: ../gp11/gp11-misc.c:183
-msgid "The session is invalid"
-msgstr "à´ˆ സെഷനàµâ€ അസാധàµà´µà´¾à´£àµ"
-
-#: ../gp11/gp11-misc.c:185
-msgid "The session is read-only"
-msgstr "à´ˆ സെഷനിലàµâ€ മാറàµà´±à´™àµà´™à´²àµâ€ വരàµà´¤àµà´¤à´¾à´¨àµâ€ സാധàµà´¯à´®à´²àµà´²"
-
-#: ../gp11/gp11-misc.c:187
-msgid "An open session exists"
-msgstr "à´¤àµà´±à´¨àµà´¨à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ ഒരൠസെഷനàµâ€ നേരതàµà´¤àµ† തനàµà´¨àµ† ഉണàµà´Ÿàµ"
-
-#: ../gp11/gp11-misc.c:189
-msgid "A read-only session exists"
-msgstr "മാറàµà´±à´™àµà´™à´³àµâ€ വരàµà´¤àµà´¤à´¾à´¨àµâ€ സാധàµà´¯à´®à´²àµà´²à´¾à´¤àµà´¤ ഒരൠസെഷനàµâ€ നേരതàµà´¤àµ† തനàµà´¨àµ† ഉണàµà´Ÿàµ"
-
-#: ../gp11/gp11-misc.c:191
-msgid "An administrator session exists"
-msgstr "ഒരൠഅഡàµà´®à´¿à´¨à´¿à´¸àµà´±àµà´±àµà´°àµ‡à´±àµà´±à´°àµâ€ സെഷനàµâ€ നേരതàµà´¤àµ† തനàµà´¨àµ† ഉണàµà´Ÿàµ "
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+msgid "Unlock Login Keyring"
+msgstr "ലോഗിനàµâ€ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´±àµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´•"
-#: ../gp11/gp11-misc.c:193
-msgid "The signature is bad or corrupted"
-msgstr "à´ˆ à´’à´ªàµà´ªà´¿à´²àµâ€ à´Žà´¨àµà´¤àµ‹ തെറàµà´±àµà´£àµà´Ÿàµ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
+msgstr "ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´±àµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•à´¾à´¨à´¾à´¯à´¿ നിങàµà´™à´³àµà´Ÿàµ† ലോഗിനàµâ€ അടയാളവാകàµà´•àµ നലàµâ€à´•àµà´•"
-#: ../gp11/gp11-misc.c:195
-msgid "The signature is unrecognized or corrupted"
-msgstr "à´ˆ à´’à´ªàµà´ªà´¿à´¨àµ† തിരിചàµà´šà´±à´¿à´¯à´¾à´¨àµâ€ à´•à´´à´¿à´¯àµà´¨àµà´¨à´¿à´²àµà´² à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ അതിലàµâ€ à´Žà´¨àµà´¤àµ‹ തെറàµà´±àµà´£àµà´Ÿàµ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
+msgstr ""
-#: ../gp11/gp11-misc.c:197
-msgid "Certain required fields are missing"
-msgstr "അവശàµà´¯à´®à´¾à´¯ à´šà´¿à´² à´•à´³àµà´³à´¿à´•à´³àµâ€ ലഭàµà´¯à´®à´²àµà´²"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
+#, fuzzy
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr ""
+"നിങàµà´™à´³àµà´Ÿàµ† ലോഗിനàµâ€ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´±àµ† പൂടàµà´Ÿàµ നിങàµà´™à´³àµâ€ à´ˆ à´•à´®àµà´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´²àµâ€ ലോഗിനàµâ€ ചെയàµà´¤à´ªàµà´ªàµ‹à´³àµâ€ "
+"à´¤àµà´±à´•àµà´•à´ªàµà´ªàµ†à´Ÿàµà´Ÿà´¿à´²àµà´²"
-#: ../gp11/gp11-misc.c:199
-msgid "Certain fields have invalid values"
-msgstr "à´šà´¿à´² à´•à´³àµà´³à´¿à´•à´³à´¿à´²àµâ€ അസാധàµà´µà´¾à´¯ വിലകളാണàµà´³àµà´³à´¤àµ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ à´¤àµà´±à´•àµà´•àµà´•"
-#: ../gp11/gp11-misc.c:201
-msgid "The device is not present or unplugged"
-msgstr "à´ˆ ഉപകരണം ലഭàµà´¯à´®à´²àµà´² à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ അതൠകമàµà´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´²àµâ€ à´•àµà´¤àµà´¤à´¿à´¯à´¿à´Ÿàµà´Ÿà´¿à´²àµà´²"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
+#, c-format
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "'%s' à´Žà´¨àµà´¨ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ à´¤àµà´±à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³àµà´³ അടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
-#: ../gp11/gp11-misc.c:203
-msgid "The device is invalid or unrecognizable"
-msgstr "à´ˆ ഉപകരണതàµà´¤àµ† തിരിചàµà´šà´±à´¿à´¯à´¾à´¨àµâ€ സാധികàµà´•àµà´¨àµà´¨à´¿à´²àµà´² à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ അതൠഅസാധàµà´µà´¾à´¯ à´’à´¨àµà´¨à´¾à´£àµ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, fuzzy, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr ""
+"à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s' à´Žà´¨àµà´¨ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´²àµ‡à´¯àµà´•àµà´•àµàµ à´ªàµà´°à´µàµ‡à´¶à´¨à´‚ ആവശàµà´¯à´®àµà´£àµà´Ÿàµ പകàµà´·àµ† അതൠ"
+"പൂടàµà´Ÿà´¿à´¯à´¿à´°à´¿à´¯àµà´•àµà´•àµà´¨àµà´¨àµ"
-#: ../gp11/gp11-misc.c:205
-msgid "The device is write protected"
-msgstr "à´ˆ ഉപകരണതàµà´¤à´¿à´²àµâ€ വിവരങàµà´™à´³àµâ€ à´’à´¨àµà´¨àµà´‚ രേഖപàµà´ªàµ†à´Ÿàµà´¤àµà´¤àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´²àµà´² "
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
+msgstr "à´ªàµà´°àµˆà´µà´±àµà´±àµ കീയàµà´Ÿàµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´•"
-#: ../gp11/gp11-misc.c:207
-msgid "Cannot import because the key is invalid"
-msgstr "കീ അസാധàµà´µà´¾à´¯ à´’à´¨àµà´¨à´¾à´¯à´¤à´¿à´¨à´¾à´²àµâ€ അതൠഇംപോരàµâ€à´Ÿàµà´Ÿàµ ചെയàµà´¯à´¾à´¨àµâ€ à´•à´´à´¿à´žàµà´žà´¿à´²àµà´²"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+msgid "Unlock certificate"
+msgstr "സാകàµà´·àµà´¯à´ªà´¤àµà´°à´¤àµà´¤à´¿à´¨àµà´±àµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´•"
-#: ../gp11/gp11-misc.c:209
-msgid "Cannot import because the key is of the wrong size"
-msgstr "ചാവിയàµà´Ÿàµ† വലàµà´ªàµà´ªà´‚ തെറàµà´±à´¾à´¯à´¤à´¿à´¨à´¾à´²àµâ€ അതൠഇംപോരàµâ€à´Ÿàµà´Ÿàµ ചെയàµà´¯à´¾à´¨àµâ€ à´•à´´à´¿à´žàµà´žà´¿à´²àµà´²"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
+msgstr "പബàµà´³à´¿à´•àµ കീയàµà´Ÿàµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´•"
-#: ../gp11/gp11-misc.c:211
-msgid "Cannot import because the key is of the wrong type"
-msgstr "കീ അസാധàµà´µà´¾à´¯ à´’à´¨àµà´¨à´¾à´¯à´¤à´¿à´¨à´¾à´²àµâ€ അതൠഇംപോരàµâ€à´Ÿàµà´Ÿàµ ചെയàµà´¯à´¾à´¨àµâ€ à´•à´´à´¿à´žàµà´žà´¿à´²àµà´²"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´•"
-#: ../gp11/gp11-misc.c:213
-msgid "You are already logged in"
-msgstr "നിങàµà´™à´³àµâ€ നേരതàµà´¤àµ† തനàµà´¨àµ† ലോഗിനàµâ€ ചെയàµà´¤à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµ "
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "à´ªàµà´°àµˆà´µà´±àµà´±àµ കീയàµà´Ÿàµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ അടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
-#: ../gp11/gp11-misc.c:215
-msgid "No user has logged in"
-msgstr "ഒരൠഉപയോകàµà´¤à´¾à´µàµà´‚ ലോഗിനàµâ€ ചെയàµà´¤à´¿à´Ÿàµà´Ÿà´¿à´²àµà´²"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "സാകàµà´·àµà´¯à´ªà´¤àµà´°à´¤àµà´¤à´¿à´¨àµà´±àµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ അടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
-#: ../gp11/gp11-misc.c:217
-msgid "The user's password or PIN is not set"
-msgstr "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´±àµ† അടയാളവാകàµà´¯à´®àµ‹ PIN à´“ നേരതàµà´¤àµ† ഉറപàµà´ªà´¿à´šàµà´šà´¿à´Ÿàµà´Ÿà´¿à´²àµà´²"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+msgid "Enter password to unlock the public key"
+msgstr "പബàµà´³à´¿à´•àµ കീയàµà´Ÿàµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ അടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
-#: ../gp11/gp11-misc.c:219
-msgid "The user is of an invalid type"
-msgstr "ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´±àµ† തരം അസാധàµà´µà´¾à´¯ à´’à´¨àµà´¨à´¾à´£àµ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ അടയാളവാകàµà´•àµàµ നലàµâ€à´•àµà´•"
-#: ../gp11/gp11-misc.c:221
-msgid "Another user is already logged in"
-msgstr "മറàµà´±àµŠà´°àµ ഉപയോകàµà´¤à´¾à´µàµ നേരതàµà´¤àµ† തനàµà´¨àµ† ലോഗിനàµâ€ ചെയàµà´¤à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ"
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
+#, c-format
+msgid "An application wants access to the private key '%s', but it is locked"
+msgstr ""
+"à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s' à´Žà´¨àµà´¨ à´ªàµà´°àµˆà´µà´±àµà´±àµ കീ വായികàµà´•à´¾à´¨àµâ€ à´…à´¨àµà´µà´¾à´¦à´‚ ആവശàµà´¯à´®à´¾à´£àµ, പകàµà´·àµ‡ അതൠ"
+"പൂടàµà´Ÿà´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ "
-#: ../gp11/gp11-misc.c:223
-msgid "Too many users of different types logged in"
-msgstr "വിവിധ തരതàµà´¤à´¿à´²àµà´³àµà´³ à´’à´°àµà´ªà´¾à´Ÿàµ ഉപയോകàµà´¤à´¾à´•àµà´•à´³àµâ€ ലോഗിനàµâ€ ചെയàµà´¤à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ"
+# c-format
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
+#, c-format
+msgid "An application wants access to the certificate '%s', but it is locked"
+msgstr ""
+"à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s' à´Žà´¨àµà´¨ സാകàµà´·àµà´¯à´ªà´¤àµà´°à´‚ വായികàµà´•à´¾à´¨àµâ€ à´…à´¨àµà´µà´¾à´¦à´‚ വേണം, പകàµà´·àµ‡ അതൠ"
+"പൂടàµà´Ÿà´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ "
-#: ../gp11/gp11-misc.c:225
-msgid "Cannot import an invalid key"
-msgstr "ചാവി അസാധàµà´µà´¾à´¯ à´’à´¨àµà´¨à´¾à´¯à´¤à´¿à´¨à´¾à´²àµâ€ അതൠഇംപോരàµâ€à´Ÿàµà´Ÿàµ ചെയàµà´¯à´¾à´¨àµâ€ à´•à´´à´¿à´žàµà´žà´¿à´²àµà´²"
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
+#, c-format
+msgid "An application wants access to the public key '%s', but it is locked"
+msgstr "à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s' à´ªàµà´°à´µàµ‡à´¶à´¨à´‚ ആവശàµà´¯à´®à´¾à´£àµ, പകàµà´·àµ‡ അതൠപൂടàµà´Ÿà´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ "
-#: ../gp11/gp11-misc.c:227
-msgid "Cannot import a key of the wrong size"
-msgstr "ചാവിയàµà´Ÿàµ† വലàµà´ªàµà´ªà´‚ തെറàµà´±à´¾à´¯à´¤à´¿à´¨à´¾à´²àµâ€ അതൠഇംപോരàµâ€à´Ÿàµà´Ÿàµ ചെയàµà´¯à´¾à´¨àµâ€ à´•à´´à´¿à´žàµà´žà´¿à´²àµà´²"
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
+#, c-format
+msgid "An application wants access to '%s', but it is locked"
+msgstr "à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s'ലേകàµà´•àµ à´ªàµà´°à´µàµ‡à´¶à´¨à´‚ ആവശàµà´¯à´®à´¾à´£àµ, പകàµà´·àµ‡ അതൠപൂടàµà´Ÿà´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ "
-#: ../gp11/gp11-misc.c:229
-msgid "Cannot export because the key is invalid"
-msgstr "കീ അസാധàµà´µà´¾à´¯à´¤à´¿à´¨à´¾à´²àµâ€ അതൠഎകàµà´¸àµâ€Œà´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµ ചെയàµà´¯à´¾à´¨àµâ€ à´•à´´à´¿à´žàµà´žà´¿à´²àµà´²"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
+msgstr "സാകàµà´·àµà´¯à´ªà´¤àµà´°à´¤àµà´¤à´¿à´¨àµà´±àµ†/കീ à´¸àµà´±àµà´±àµ‹à´±àµ‡à´œà´¿à´¨àµà´±àµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´•"
-#: ../gp11/gp11-misc.c:231
-msgid "Cannot export because the key is of the wrong size"
-msgstr "ചാവിയàµà´Ÿàµ† വലിപàµà´ªà´‚ തെറàµà´±à´¾à´¯à´¤à´¿à´¨à´¾à´²àµâ€ അതൠഎകàµà´¸àµâ€Œà´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµ ചെയàµà´¯à´¾à´¨àµâ€ à´•à´´à´¿à´žàµà´žà´¿à´²àµà´²"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
+msgstr "സാകàµà´·àµà´¯à´ªà´¤àµà´°à´¤àµà´¤à´¿à´¨àµà´±àµ† പൂടàµà´Ÿàµ à´¤àµà´±à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ അടയാളവാകàµà´•àµàµ/കീ à´¸àµà´±àµà´±àµ‹à´±àµ‡à´œàµ നലàµâ€à´•àµà´•"
-#: ../gp11/gp11-misc.c:233
-msgid "Cannot export because the key is of the wrong type"
-msgstr "ചാവിയàµà´Ÿàµ† തരം തെറàµà´±à´¾à´¯à´¤à´¿à´¨à´¾à´²àµâ€ അതൠഎകàµà´¸àµâ€Œà´ªàµ‹à´°àµâ€à´Ÿàµà´Ÿàµ ചെയàµà´¯à´¾à´¨àµâ€ à´•à´´à´¿à´žàµà´žà´¿à´²àµà´²"
+# c-format
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, c-format
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr ""
+"ഒരൠപàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ '%s' à´Žà´¨àµà´¨ സാകàµà´·àµà´¯à´ªà´¤àµà´°à´‚/കീ à´¸àµà´±àµà´±àµ‹à´±àµ‡à´œàµ ലഭàµà´¯à´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ à´…à´¨àµà´µà´¾à´¦à´‚ വേണം, പകàµà´·àµ‡ അതൠ"
+"പൂടàµà´Ÿà´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ "
-#: ../gp11/gp11-misc.c:235
-msgid "Unable to initialize the random number generator"
-msgstr "റാനàµâ€à´¡à´‚ സംഖàµà´¯ ഉണàµà´Ÿà´¾à´•àµà´•àµà´¨àµà´¨ സംവിധാനതàµà´¤àµ† ഇനീഷàµà´¯à´²àµˆà´¸àµ ചെയàµà´¯à´¾à´¨àµâ€ à´•à´´à´¿à´žàµà´žà´¿à´²àµà´²"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
+msgstr "à´ªàµà´¤à´¿à´¯ അടയാളവാകàµà´•àµàµ ആവശàµà´¯à´®àµà´£àµà´Ÿàµàµ"
-#: ../gp11/gp11-misc.c:237
-msgid "No random number generator available"
-msgstr "റാനàµâ€à´¡à´‚ സംഖàµà´¯ ഉണàµà´Ÿà´¾à´•àµà´•àµà´¨àµà´¨ സംവിധാനം ലഭàµà´¯à´®à´²àµà´²"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
+msgstr "à´¸àµà´±àµà´±àµ‹à´±àµ‡à´œàµ സംരകàµà´·à´¿à´•àµà´•àµà´µà´¾à´¨à´¾à´¯àµà´³àµà´³ à´ªàµà´¤à´¿à´¯ അടയാളവാകàµà´•àµ നലàµâ€à´•àµà´•"
-#: ../gp11/gp11-misc.c:239
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "രഹസàµà´¯à´¸à´‚വിധാനതàµà´¤à´¿à´¨àµ à´•à´¿à´Ÿàµà´Ÿà´¿à´¯ പാരാമീറàµà´±à´±àµà´•à´³à´¿à´²àµŠà´°àµ†à´£àµà´£à´‚ അസാധàµà´µà´¾à´£àµ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
+#, c-format
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr "'%s'-à´¨àµà´³àµà´³ സാകàµà´·àµà´¯à´ªà´¤àµà´°à´™àµà´™à´³àµà´‚ കീകളàµà´‚ സൂകàµà´·à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿, ഒരൠഅടയാളവാകàµà´•àµàµ ആവശàµà´¯à´®à´¾à´£àµàµ."
-#: ../gp11/gp11-misc.c:241
-msgid "Not enough space to store the result"
-msgstr "ഫലം സൂകàµà´·à´¿à´šàµà´šàµ വെകàµà´•àµà´µà´¾à´¨à´¾à´µà´¶àµà´¯à´®àµà´³àµà´³ à´¸àµà´¥à´²à´‚ ലഭàµà´¯à´®à´²àµà´²"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´±àµ† അടയാളവാകàµà´•àµàµ മാറàµà´±àµà´•"
-#: ../gp11/gp11-misc.c:243
-msgid "The saved state is invalid"
-msgstr "സൂകàµà´·à´¿à´šàµà´šàµ വെചàµà´šà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ അവസàµà´¥ അസാധàµà´µà´¾à´£àµ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "à´¸àµà´±àµà´±àµ‹à´±àµ‡à´œàµ സംരകàµà´·à´¿à´•àµà´•àµà´µà´¾à´¨à´¾à´¯àµà´³àµà´³ à´ªàµà´¤à´¿à´¯ അടയാളവാകàµà´•àµ നലàµâ€à´•àµà´•"
-#: ../gp11/gp11-misc.c:245
-msgid "The information is sensitive and cannot be revealed"
-msgstr "à´ˆ വിവരം രഹസàµà´¯à´¸àµà´µà´­à´¾à´µà´®àµà´³àµà´³ à´’à´¨àµà´¨à´¾à´¯à´¤à´¿à´¨à´¾à´²àµâ€ അതൠകാണികàµà´•à´¾à´¨àµâ€ പറàµà´±à´¿à´²àµà´²"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
+#, c-format
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
+msgstr ""
-#: ../gp11/gp11-misc.c:247
-msgid "The state cannot be saved"
-msgstr "à´ˆ അവസàµà´¥à´¯àµ† സൂകàµà´·à´¿à´šàµà´šàµ വെകàµà´•à´¾à´¨àµâ€ സാധàµà´¯à´®à´²àµà´²."
+#: ../tool/gkr-tool.c:102
+#, c-format
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
-#: ../gp11/gp11-misc.c:249
-msgid "The module has not been initialized"
-msgstr "à´ˆ മോഡàµà´¯àµ‚à´³àµâ€ ഇനീഷàµà´¯à´²àµˆà´¸àµ ചെയàµà´¤à´¤à´¿à´Ÿàµà´Ÿà´¿à´²àµà´²"
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
-#: ../gp11/gp11-misc.c:251
-msgid "The module has already been initialized"
-msgstr "à´ˆ മോഡàµà´¯àµ‚à´³àµâ€ നേരതàµà´¤àµ† തനàµà´¨àµ† ഇനീഷàµà´¯à´²àµˆà´¸àµ ചെയàµà´¤à´¤à´¾à´£àµ"
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
-#: ../gp11/gp11-misc.c:253
-msgid "Cannot lock data"
-msgstr "വിവരങàµà´™à´³àµâ€ പൂടàµà´Ÿà´¿à´µàµ†à´•àµà´•à´¾à´¨àµâ€ പറàµà´±à´¿à´¯à´¿à´²àµà´²."
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
+msgstr "അടയാളവാകàµà´¯à´™àµà´™à´³àµâ€ à´Žà´¨àµâ€à´•àµà´°à´¿à´ªàµà´±àµà´±àµ ചെയàµà´¯à´¾à´¤àµ† സൂകàµà´·à´¿à´•àµà´•à´£à´®àµ†à´¨àµà´¨à´¾à´£àµ‹ ?"
-#: ../gp11/gp11-misc.c:255
-msgid "The data cannot be locked"
-msgstr "à´ˆ വിവരങàµà´™à´³àµâ€ പൂടàµà´Ÿà´¿à´µàµ†à´•àµà´•à´¾à´¨àµâ€ പറàµà´±à´¿à´²àµà´²."
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
+"ഇവിടെ അടയാളവാകàµà´¯à´®àµŠà´¨àµà´¨àµà´‚ തെരഞàµà´žàµ†à´Ÿàµà´•àµà´•à´¾à´¤àµà´¤à´¤àµà´•àµŠà´£àµà´Ÿàµ നിങàµà´™à´³àµâ€ ഇതിലàµâ€ സൂകàµà´·à´¿à´•àµà´•àµà´¨àµà´¨ അടയാളവാകàµà´¯à´™àµà´™à´³àµâ€ "
+"നിങàµà´™à´³àµà´Ÿàµ† ഫയലàµà´•à´³àµà´Ÿàµ† നിയനàµà´¤àµà´°à´£à´‚ ഉളàµà´³ ആരàµâ€à´•àµà´•àµà´‚ ഉപയോഗികàµà´•à´¾à´¨àµâ€ à´•à´´à´¿à´¯àµà´‚"
-#: ../gp11/gp11-misc.c:257
-msgid "The signature request was rejected by the user"
-msgstr "à´’à´ªàµà´ªà´¿à´¨à´¾à´¯àµà´³àµà´³ അപേകàµà´· ഉപയോകàµà´¤à´¾à´µàµ നിരസിചàµà´šàµ"
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
+msgstr "à´¸àµà´°à´•àµà´·à´¿à´¤à´®à´²àµà´²à´¾à´¤àµà´¤ à´¸àµà´±àµà´±àµ‹à´±àµ‡à´œàµ ഉപയോഗികàµà´•àµà´•"
-#: ../gp11/gp11-misc.c:261
-msgid "Unknown error"
-msgstr "à´…à´œàµà´žà´¾à´¤à´®à´¾à´¯ ഒരൠതെറàµà´±àµ സംഭവിചàµà´šàµ"
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr "അടയാളവാകàµà´¯à´™àµà´™à´³àµâ€ തമàµà´®à´¿à´²àµâ€ പൊരàµà´¤àµà´¤à´•àµà´•àµ‡à´Ÿàµà´£àµà´Ÿàµ."
-#: ../library/gnome-keyring-utils.c:168
-msgid "Access Denied"
-msgstr "à´ªàµà´°à´µàµ‡à´¶à´¨à´¤àµà´¤à´¿à´¨àµ à´…à´¨àµà´µà´¾à´¦à´®à´¿à´²àµà´²"
+#: ../ui/gku-prompt-tool.c:649
+msgid "Password cannot be blank"
+msgstr "à´Žà´¨àµà´¤àµ†à´™àµà´•à´¿à´²àµà´‚ അടയാളവാകàµà´•àµàµ രേഖപàµà´ªàµ†à´Ÿàµà´¤àµà´¤àµ‡à´£àµà´Ÿà´¤à´¾à´£àµ"
-#: ../library/gnome-keyring-utils.c:170
-msgid "The gnome-keyring-daemon application is not running."
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
msgstr ""
-"à´—àµà´¨àµ‹à´‚-ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚-നിരനàµà´¤à´°à´ªàµà´°à´•àµà´°à´¿à´¯ (gnome-keyring-daemon) à´Žà´¨àµà´¨ à´ªàµà´°à´¯àµ‹à´—à´‚ ഇപàµà´ªàµ‹à´³àµâ€ "
-"à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•àµà´¨àµà´¨à´¿à´²àµà´²"
-#: ../library/gnome-keyring-utils.c:172
-msgid "Error communicating with gnome-keyring-daemon"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
msgstr ""
-"à´—àµà´¨àµ‹à´‚-ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚-നിരനàµà´¤à´°à´ªàµà´°à´•àµà´°à´¿à´¯ (gnome-keyring-daemon) à´¯àµà´®à´¾à´¯àµà´³àµà´³ ആശയവിനിമയതàµà´¤à´¿à´²àµâ€ "
-"à´•àµà´´à´ªàµà´ªà´®àµà´£àµà´Ÿà´¾à´¯à´¿ "
-#: ../library/gnome-keyring-utils.c:174
-msgid "A keyring with that name already exists"
-msgstr "à´† പേരിലàµà´³àµà´³ ഒരൠചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ നേരതàµà´¤àµ† തനàµà´¨àµ† ഉണàµà´Ÿàµ ."
-
-#: ../library/gnome-keyring-utils.c:176
-msgid "Programmer error: The application sent invalid data."
-msgstr "à´ªàµà´°àµ‹à´—àµà´°à´¾à´®à´°àµâ€à´•àµà´•àµ തെറàµà´±àµ പറàµà´±à´¿: à´ªàµà´°à´¯àµ‹à´—à´‚ അയചàµà´š വിവരങàµà´™à´³àµâ€à´•àµà´•àµ സാധàµà´¤à´¯à´¿à´²àµà´²."
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
+msgstr "à´ªàµà´¤à´¿à´¯ അടയാളവാകàµà´¯à´¤àµà´¤à´¿à´¨àµà´±àµ† ശകàµà´¤à´¿"
-#: ../library/gnome-keyring-utils.c:178
-msgid "No matching results"
-msgstr "പൊരàµà´¤àµà´¤à´®àµà´³àµà´³ ഫലങàµà´™à´³àµŠà´¨àµà´¨àµà´®à´¿à´²àµà´²"
+#: ../ui/gku-prompt.ui.h:2
+#, fuzzy
+msgid "_Application:"
+msgstr "à´¸àµà´¥à´²à´‚ :"
-#: ../library/gnome-keyring-utils.c:180
-msgid "A keyring with that name does not exist."
-msgstr "à´† പേരിലàµà´³àµà´³àµŠà´°àµ ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´®à´¿à´²àµà´²."
+#: ../ui/gku-prompt.ui.h:3
+#, fuzzy
+msgid "_Confirm:"
+msgstr "à´ªàµà´¤à´¿à´¯ അടയാളവാകàµà´•àµàµ ഉറപàµà´ªà´¾à´•àµà´•àµà´•: (_C)"
-#: ../library/gnome-keyring-utils.c:187
-msgid "The keyring has already been unlocked."
-msgstr "ചാവികàµà´•àµ‚à´Ÿàµà´Ÿà´‚ നേരതàµà´¤àµ‡ തനàµà´¨àµ† à´¤àµà´±à´¨àµà´¨à´¿à´°à´¿à´¯àµà´•àµà´•àµà´¨àµà´¨àµ."
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
-#: ../pkcs11/gck/gck-certificate.c:716
-msgid "Unnamed Certificate"
-msgstr "പേരിലàµà´²à´¾à´¤àµà´¤ സാകàµà´·àµà´¯à´ªà´¤àµà´°à´‚"
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr ""
-#: ../pkcs11/ssh-store/gck-ssh-private-key.c:328
-msgid "Couldn't parse public SSH key"
-msgstr "പബàµà´³à´¿à´•àµ SSH കീ പാഴàµà´¸àµ ചെയàµà´¯àµà´µà´¾à´¨àµâ€ സാധിചàµà´šà´¿à´²àµà´²"
+#: ../ui/gku-prompt.ui.h:6
+#, fuzzy
+msgid "_Old Password:"
+msgstr "പഴയ അടയാളവാകàµà´•àµàµ : (_O)"
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "അടയാളവാകàµà´•àµàµ : (_P)"
diff --git a/po/mn.po b/po/mn.po
index 6ca6944d..91a39c42 100644
--- a/po/mn.po
+++ b/po/mn.po
@@ -8,384 +8,515 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.HEAD\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-18 20:49+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2006-06-07 18:34+0900\n"
"Last-Translator: tamir <tamir@pmis.gov.mn>\n"
"Language-Team: Mongolian <openmn-translation@lists.sf.net>\n"
+"Language: mn\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../gnome-keyring-ask.c:241
-msgid "_Old password:"
-msgstr "_Хуучин нÑвтрÑÑ… үг:"
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
+msgstr ""
-#: ../gnome-keyring-ask.c:262
-msgid "_Password:"
-msgstr "_ÐÑвтрÑÑ… үг:"
+#: ../daemon/dbus/gkd-secret-change.c:86
+msgid "Change Keyring Password"
+msgstr "Кейринг ÐÑвтрÑÑ… үгийн өөрчлөлт"
-#: ../gnome-keyring-ask.c:284
-msgid "_Confirm new password:"
-msgstr "Ð¨Ð¸Ð½Ñ Ð½ÑвтрÑÑ… үгÑÑ _баталгаажуулах:"
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "'%s' кейринг-ийн нÑвтрÑÑ… үгийг Ñонго. "
-#. Strength bar:
-#: ../gnome-keyring-ask.c:303
-msgid "<span weight=\"bold\">Password strength meter:</span>"
-msgstr "<span weight=\"Тодруулах\">Password strength meter:</span>"
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
+msgid ""
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
+msgstr ""
+"Үл мÑдÑгдÑÑ… програм '%s'кейрингийн нÑвтрÑÑ… үгийг өөрчлөхийг Ñ…Ò¯Ñч байна. "
+"ИймÑÑÑ Ñ‚Ð° үүнд Ñ…ÑÑ€ÑглÑхийг Ñ…Ò¯ÑÑÑн нÑвтрÑÑ… үгÑÑ Ñонгох Ñ‘Ñтой."
-#: ../gnome-keyring-ask.c:329
-msgid "Old password cannot be blank."
-msgstr "Хуучин нÑвтрÑÑ… үгийн Ñ‚ÑмдÑгтийн зай байхгүй байна"
+#: ../daemon/dbus/gkd-secret-change.c:111
+msgid "The original password was incorrect"
+msgstr ""
-#: ../gnome-keyring-ask.c:340
-msgid "Password cannot be blank."
-msgstr "ÐÑвтрÑÑ… үгийн Ñ‚ÑмдÑгтийн зай байхгүй байна."
+#: ../daemon/dbus/gkd-secret-create.c:83
+msgid "New Keyring Password"
+msgstr "Ð¨Ð¸Ð½Ñ ÐšÐµÐ¹Ñ€Ð¸Ð½Ð³ ÐÑвтрÑÑ… үг"
-#: ../gnome-keyring-ask.c:348
-msgid "Passwords do not match."
-msgstr "ÐÑвтрÑÑ… үгнүүд тохирохгүй байна."
+#: ../daemon/dbus/gkd-secret-create.c:84
+msgid "Choose password for new keyring"
+msgstr "Ð¨Ð¸Ð½Ñ ÐºÐµÐ¹Ñ€Ð¸Ð½Ð³-ийн нÑвтрÑÑ… үгийг Ñонго"
-#: ../gnome-keyring-ask.c:407
-#, c-format
+#: ../daemon/dbus/gkd-secret-create.c:86
+#, fuzzy, c-format
msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
-"Програм '%s' (%s) Ñтандарт киринг руу хандахыг Ñ…Ò¯ÑÑÑн боловч түгжÑÑÑ‚Ñй байна."
+"Үл мÑдÑгдÑÑ… програм '%s' гÑÑÑн ÑˆÐ¸Ð½Ñ ÐºÐµÐ¹Ñ€Ð¸Ð½Ð³ Ò¯Ò¯ÑгÑхийг Ñ…Ò¯ÑÑÑн юм. ИймÑÑÑ Ñ‚Ð° "
+"үүнд Ñ…ÑÑ€ÑглÑхийг Ñ…Ò¯ÑÑÑн нÑвтрÑÑ… үгÑÑ Ñонгох Ñ‘Ñтой."
-#: ../gnome-keyring-ask.c:411
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the keyring '%s', but it is locked"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+msgid "Certificate and Key Storage"
msgstr ""
-"'%s' (%s) програм '%s' кейринг руу хандахыг Ñ…Ò¯ÑÑÑн боловч түгжÑÑÑ‚Ñй байна."
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:416
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to an unknown keyring, but it is "
-"locked"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+msgid "GNOME Keyring: PKCS#11 Component"
msgstr ""
-"'%s' (%s) програм үл мÑдÑгдÑÑ… киринг руу хандахыг Ñ…Ò¯ÑÑÑн боловч түгжÑÑÑ‚Ñй "
-"байна."
-#: ../gnome-keyring-ask.c:422 ../gnome-keyring-ask.c:436
-#, c-format
-msgid ""
-"The application '%s' wants access to the default keyring, but it is locked"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+msgid "GNOME Keyring: Secret Service"
msgstr ""
-"Програм '%s' Ñтандарт киринг руу хандахыг Ñ…Ò¯ÑÑÑн боловч түгжÑÑÑ‚Ñй байна."
-#: ../gnome-keyring-ask.c:426 ../gnome-keyring-ask.c:441
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
-msgstr "Програм '%s' '%s' киринг руу хандахыг Ñ…Ò¯ÑÑÑн боловч түгжÑÑÑ‚Ñй байна."
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
+msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:430 ../gnome-keyring-ask.c:446
-#, c-format
-msgid ""
-"The application '%s' wants access to an unknown keyring, but it is locked"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+msgid "GNOME Keyring: SSH Agent"
msgstr ""
-"Програм '%s' үл мÑдÑгдÑÑ… кейринг руу хандахыг Ñ…Ò¯ÑÑÑн боловч түгжÑÑÑ‚Ñй байна."
-#: ../gnome-keyring-ask.c:452
-msgid ""
-"An unknown application wants access to the default keyring, but it is locked"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
msgstr ""
-"Үл мÑдÑгдÑÑ… програм Ñтандарт кейринг руу хандахыг Ñ…Ò¯ÑÑÑн боловч түгжÑÑÑ‚Ñй "
-"байна."
-#: ../gnome-keyring-ask.c:456
-#, c-format
-msgid ""
-"An unknown application wants access to the keyring '%s', but it is locked"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+msgid "GNOME Keyring: GPG Agent"
msgstr ""
-"Үл мÑдÑгдÑÑ… програм '%s' кейринг руу хандахыг Ñ…Ò¯ÑÑÑн боловч түгжÑÑÑ‚Ñй байна."
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:461
-msgid ""
-"An unknown application wants access to an unknown keyring, but it is locked"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+msgid "GPG Password Agent"
msgstr ""
-"Үл мÑдÑгдÑÑ… програм үл мÑдÑгдÑÑ… кейринг руу хандахыг Ñ…Ò¯ÑÑÑн боловч түгжÑÑÑ‚Ñй "
-"байна."
-#: ../gnome-keyring-ask.c:468
-msgid "Enter password for default keyring to unlock"
-msgstr "Стандарт киринг түгжÑÑг тайлах нууц үг оруул"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+msgid "Unknown"
+msgstr ""
-#: ../gnome-keyring-ask.c:470
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "киринг '%s' түгжÑÑг тайлах нууц үг оруул"
+msgid "PGP Key: %s"
+msgstr ""
-#: ../gnome-keyring-ask.c:474
-msgid "Unlock Keyring"
-msgstr "Кейринг түгжÑÑг тайлах"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
+msgstr ""
-#: ../gnome-keyring-ask.c:479 ../gnome-keyring-ask.c:563
-#: ../gnome-keyring-ask.c:655 ../gnome-keyring-ask.c:711
-#: ../gnome-keyring-ask.c:798
-msgid "_Deny"
-msgstr "_Татгалзах"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
+msgstr ""
-#: ../gnome-keyring-ask.c:517
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-"Програм '%s' (%s) ÑˆÐ¸Ð½Ñ '%s' гÑÑÑн кейринг Ò¯Ò¯ÑгÑхийг Ñ…Ò¯ÑÑÑн юм. ИймÑÑÑ Ñ‚Ð° "
-"үүнд Ñ…ÑÑ€ÑглÑхийг Ñ…Ò¯ÑÑÑн нÑвтрÑÑ… үгÑÑ Ñонгох Ñ‘Ñтой."
-#: ../gnome-keyring-ask.c:521
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
msgstr ""
-"Програм '%s' (%s) ÑˆÐ¸Ð½Ñ Ñтандарт кейринг Ò¯Ò¯ÑгÑхийг Ñ…Ò¯ÑÑÑн юм. ИймÑÑÑ Ñ‚Ð° үүнд "
-"Ñ…ÑÑ€ÑглÑхийг Ñ…Ò¯ÑÑÑн нÑвтрÑÑ… үгÑÑ Ñонгох Ñ‘Ñтой."
-#: ../gnome-keyring-ask.c:527 ../gnome-keyring-ask.c:537
-#, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
msgstr ""
-"Програм '%s' ÑˆÐ¸Ð½Ñ '%s' гÑÑÑн кейринг Ò¯Ò¯ÑгÑхийг Ñ…Ò¯ÑÑÑн юм. ИймÑÑÑ Ñ‚Ð° үүнд "
-"Ñ…ÑÑ€ÑглÑхийг Ñ…Ò¯ÑÑÑн нÑвтрÑÑ… үгÑÑ Ñонгох Ñ‘Ñтой."
-#: ../gnome-keyring-ask.c:531 ../gnome-keyring-ask.c:541
-#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:41
+msgid "Domain Component"
msgstr ""
-"Програм '%s' ÑˆÐ¸Ð½Ñ Ñтандарт кейринг Ò¯Ò¯ÑгÑхийг Ñ…Ò¯ÑÑÑн юм. ИймÑÑÑ Ñ‚Ð° үүнд "
-"Ñ…ÑÑ€ÑглÑхийг Ñ…Ò¯ÑÑÑн нÑвтрÑÑ… үгÑÑ Ñонгох Ñ‘Ñтой."
-#: ../gnome-keyring-ask.c:547
-#, c-format
-msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
+#: ../egg/egg-oid.c:43
+msgid "User ID"
msgstr ""
-"Үл мÑдÑгдÑÑ… програм '%s' гÑÑÑн ÑˆÐ¸Ð½Ñ ÐºÐµÐ¹Ñ€Ð¸Ð½Ð³ Ò¯Ò¯ÑгÑхийг Ñ…Ò¯ÑÑÑн юм. ИймÑÑÑ Ñ‚Ð° "
-"үүнд Ñ…ÑÑ€ÑглÑхийг Ñ…Ò¯ÑÑÑн нÑвтрÑÑ… үгÑÑ Ñонгох Ñ‘Ñтой."
-#: ../gnome-keyring-ask.c:551
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:46
+msgid "Email Address"
msgstr ""
-"Үл мÑдÑгдÑÑ… програм ÑˆÐ¸Ð½Ñ Ñтандарт кейринг Ò¯Ò¯ÑгÑхийг Ñ…Ò¯ÑÑÑн юм. ИймÑÑÑ Ñ‚Ð° "
-"үүнд Ñ…ÑÑ€ÑглÑхийг Ñ…Ò¯ÑÑÑн нÑвтрÑÑ… үгÑÑ Ñонгох Ñ‘Ñтой."
-#: ../gnome-keyring-ask.c:558
-msgid "New Keyring Password"
-msgstr "Ð¨Ð¸Ð½Ñ ÐšÐµÐ¹Ñ€Ð¸Ð½Ð³ ÐÑвтрÑÑ… үг"
+#: ../egg/egg-oid.c:54
+msgid "Date of Birth"
+msgstr ""
-#: ../gnome-keyring-ask.c:559
-msgid "Choose password for new keyring"
-msgstr "Ð¨Ð¸Ð½Ñ ÐºÐµÐ¹Ñ€Ð¸Ð½Ð³-ийн нÑвтрÑÑ… үгийг Ñонго"
+#: ../egg/egg-oid.c:56
+msgid "Place of Birth"
+msgstr ""
-#: ../gnome-keyring-ask.c:602
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:58
+msgid "Gender"
msgstr ""
-"Програм '%s' (%s) '%s' кейрингийн нÑвтрÑÑ… үгийг өөрчлөхийг Ñ…Ò¯Ñч байна. "
-"ИймÑÑÑ Ñ‚Ð° үүнд Ñ…ÑÑ€ÑглÑхийг Ñ…Ò¯ÑÑÑн нÑвтрÑÑ… үгÑÑ Ñонгох Ñ‘Ñтой."
-#: ../gnome-keyring-ask.c:606
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:60
+msgid "Country of Citizenship"
+msgstr ""
+
+#: ../egg/egg-oid.c:62
+msgid "Country of Residence"
+msgstr ""
+
+#: ../egg/egg-oid.c:65
+msgid "Common Name"
+msgstr ""
+
+#: ../egg/egg-oid.c:67
+msgid "Surname"
+msgstr ""
+
+#: ../egg/egg-oid.c:69
+msgid "Serial Number"
+msgstr ""
+
+#: ../egg/egg-oid.c:71
+msgid "Country"
+msgstr ""
+
+#: ../egg/egg-oid.c:73
+msgid "Locality"
+msgstr ""
+
+#: ../egg/egg-oid.c:75
+msgid "State"
+msgstr ""
+
+#: ../egg/egg-oid.c:77
+msgid "Street"
+msgstr ""
+
+#: ../egg/egg-oid.c:79
+msgid "Organization"
+msgstr ""
+
+#: ../egg/egg-oid.c:81
+msgid "Organizational Unit"
+msgstr ""
+
+#: ../egg/egg-oid.c:83
+msgid "Title"
+msgstr ""
+
+#: ../egg/egg-oid.c:85
+msgid "Telephone Number"
+msgstr ""
+
+#: ../egg/egg-oid.c:87
+msgid "Given Name"
+msgstr ""
+
+#: ../egg/egg-oid.c:89
+msgid "Initials"
+msgstr ""
+
+#: ../egg/egg-oid.c:91
+msgid "Generation Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:93
+msgid "DN Qualifier"
msgstr ""
-"Програм '%s' (%s) ÑˆÐ¸Ð½Ñ Ñтандарт кейринг өөрчлөхийг Ñ…Ò¯ÑÑÑн юм. ИймÑÑÑ Ñ‚Ð° үүнд "
-"Ñ…ÑÑ€ÑглÑхийг Ñ…Ò¯ÑÑÑн нууц үгÑÑ Ñонгох Ñ‘Ñтой."
-#: ../gnome-keyring-ask.c:612 ../gnome-keyring-ask.c:622
+#: ../egg/egg-oid.c:95
+msgid "Pseudonym"
+msgstr ""
+
+#: ../egg/egg-oid.c:98
+msgid "RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:99
+msgid "MD2 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:100
+msgid "MD5 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:101
+msgid "SHA1 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:103
+msgid "DSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:104
+msgid "SHA1 with DSA"
+msgstr ""
+
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
+
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
+
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
+
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
+msgid "Unexpected error in select() reading data from a child process (%s)"
msgstr ""
-"Програм '%s' '%s' кейрингийн нÑвтрÑÑ… үгийг өөрчлөхийг Ñ…Ò¯Ñч байна. ИймÑÑÑ Ñ‚Ð° "
-"үүнд Ñ…ÑÑ€ÑглÑхийг Ñ…Ò¯ÑÑÑн нÑвтрÑÑ… үгÑÑ Ñонгох Ñ‘Ñтой."
-#: ../gnome-keyring-ask.c:616 ../gnome-keyring-ask.c:626
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+msgid "Unexpected error in waitpid() (%s)"
+msgstr ""
+
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr ""
+
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
msgstr ""
-"Програм '%s' Ñтандарт киринг өөрчлөхийг Ñ…Ò¯ÑÑÑн юм. ИймÑÑÑ Ñ‚Ð° үүнд "
-"Ñ…ÑÑ€ÑглÑхийг Ñ…Ò¯ÑÑÑн нÑвтрÑÑ… үгÑÑ Ñонгох Ñ‘Ñтой."
-#: ../gnome-keyring-ask.c:632
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
+msgid "Unlock password for: %s"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+msgid "The unlock password was incorrect"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+#, fuzzy
+msgid "Unlock Login Keyring"
+msgstr "Кейринг түгжÑÑг тайлах"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
+msgstr "Ð¨Ð¸Ð½Ñ ÐºÐµÐ¹Ñ€Ð¸Ð½Ð³-ийн нÑвтрÑÑ… үгийг Ñонго"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
msgstr ""
-"Үл мÑдÑгдÑÑ… програм '%s'кейрингийн нÑвтрÑÑ… үгийг өөрчлөхийг Ñ…Ò¯Ñч байна. "
-"ИймÑÑÑ Ñ‚Ð° үүнд Ñ…ÑÑ€ÑглÑхийг Ñ…Ò¯ÑÑÑн нÑвтрÑÑ… үгÑÑ Ñонгох Ñ‘Ñтой."
-#: ../gnome-keyring-ask.c:636
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+"The login keyring did not get unlocked when you logged into your computer."
msgstr ""
-"Үл мÑдÑгдÑÑ… програм Ñтандарт кейрингийн нÑвтрÑÑ… үгийг өөрчлөхийг Ñ…Ò¯Ñч байна. "
-"ИймÑÑÑ Ñ‚Ð° үүнд Ñ…ÑÑ€ÑглÑхийг Ñ…Ò¯ÑÑÑн нÑвтрÑÑ… үгÑÑ Ñонгох Ñ‘Ñтой."
-#: ../gnome-keyring-ask.c:643
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "Кейринг түгжÑÑг тайлах"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
#, c-format
-msgid "Choose a new password for the '%s' keyring. "
-msgstr "'%s' кейринг-ийн нÑвтрÑÑ… үгийг Ñонго. "
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "киринг '%s' түгжÑÑг тайлах нууц үг оруул"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, fuzzy, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr ""
+"Үл мÑдÑгдÑÑ… програм '%s' кейринг руу хандахыг Ñ…Ò¯ÑÑÑн боловч түгжÑÑÑ‚Ñй байна."
-#: ../gnome-keyring-ask.c:645
-msgid "Choose a new password for the default keyring. "
-msgstr "Стандарт кейринг-ийн ÑˆÐ¸Ð½Ñ Ð½ÑвтрÑÑ… үгийг Ñонго"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
+msgstr ""
-#: ../gnome-keyring-ask.c:650
-msgid "Change Keyring Password"
-msgstr "Кейринг ÐÑвтрÑÑ… үгийн өөрчлөлт"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+#, fuzzy
+msgid "Unlock certificate"
+msgstr "Кейринг түгжÑÑг тайлах"
-#: ../gnome-keyring-ask.c:689
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
msgstr ""
-"Програм '%s' (%s) нÑвтрÑÑ… үгийг хадгалахыг Ñ…Ò¯ÑÑÑн боловч Ñтандарт кейринг "
-"байхгүй байна. Үүнийг Ò¯Ò¯ÑгÑÑ…Ñд цаашид ашиглах нууц үгÑÑ Ñонгох Ñ…ÑÑ€ÑгтÑй."
-#: ../gnome-keyring-ask.c:693 ../gnome-keyring-ask.c:697
-#, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+#, fuzzy
+msgid "Unlock"
+msgstr "Кейринг түгжÑÑг тайлах"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+#, fuzzy
+msgid "Enter password to unlock the private key"
+msgstr "Стандарт киринг түгжÑÑг тайлах нууц үг оруул"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
msgstr ""
-"Програм '%s' нÑвтрÑÑ… үгийг хадгалахыг Ñ…Ò¯ÑÑÑн боловч Ñтандарт кейринг байхгүй "
-"байна. Үүнийг Ò¯Ò¯ÑгÑÑ…Ñд цаашид ашиглах нууц үгÑÑ Ñонгох Ñ…ÑÑ€ÑгтÑй."
-#. app == APPLICATION_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:701
-msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+#, fuzzy
+msgid "Enter password to unlock the public key"
+msgstr "Стандарт киринг түгжÑÑг тайлах нууц үг оруул"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+#, fuzzy
+msgid "Enter password to unlock"
+msgstr "киринг '%s' түгжÑÑг тайлах нууц үг оруул"
+
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
+#, fuzzy, c-format
+msgid "An application wants access to the private key '%s', but it is locked"
msgstr ""
-"Үл мÑдÑгдÑÑ… програм нÑвтрÑÑ… үгийг хадгалахыг Ñ…Ò¯ÑÑÑн боловч Ñтандарт кейринг "
-"байхгүй байна. Үүнийг Ò¯Ò¯ÑгÑÑ…Ñд цаашид ашиглах нууц үгÑÑ Ñонгох Ñ…ÑÑ€ÑгтÑй."
+"Үл мÑдÑгдÑÑ… програм '%s' кейринг руу хандахыг Ñ…Ò¯ÑÑÑн боловч түгжÑÑÑ‚Ñй байна."
-#: ../gnome-keyring-ask.c:706
-msgid "Create Default Keyring"
-msgstr "Стандарт Кейринг Ò¯Ò¯ÑгÑÑ…"
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
+#, fuzzy, c-format
+msgid "An application wants access to the certificate '%s', but it is locked"
+msgstr ""
+"Үл мÑдÑгдÑÑ… програм '%s' кейринг руу хандахыг Ñ…Ò¯ÑÑÑн боловч түгжÑÑÑ‚Ñй байна."
-#: ../gnome-keyring-ask.c:707
-msgid "Choose password for default keyring"
-msgstr "Стандарт кейринг-ийн нÑвтрÑÑ… үгийг Ñонго"
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
+#, fuzzy, c-format
+msgid "An application wants access to the public key '%s', but it is locked"
+msgstr ""
+"Үл мÑдÑгдÑÑ… програм '%s' кейринг руу хандахыг Ñ…Ò¯ÑÑÑн боловч түгжÑÑÑ‚Ñй байна."
-#: ../gnome-keyring-ask.c:747
-msgid "Allow application access to keyring?"
-msgstr "Кейринг рүү хандах програмыг зөвшөөрөх үү?"
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
+#, fuzzy, c-format
+msgid "An application wants access to '%s', but it is locked"
+msgstr ""
+"Үл мÑдÑгдÑÑ… програм '%s' кейринг руу хандахыг Ñ…Ò¯ÑÑÑн боловч түгжÑÑÑ‚Ñй байна."
-#: ../gnome-keyring-ask.c:750
-#, c-format
-msgid "The application '%s' (%s) wants to access the password for '%s' in %s."
-msgstr "'%s' (%s) програм %s дÑÑ… '%s'-ий нÑвтрÑÑ… үгт хандахыг Ñ…Ò¯ÑÑж байна."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
+msgstr ""
-#: ../gnome-keyring-ask.c:753
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '%s' in the "
-"default keyring."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
msgstr ""
-"Програм '%s' (%s) Ñтандарт кейринг дÑÑ… '%s'-ий нÑвтрÑÑ… үгт хандахыг Ñ…Ò¯ÑÑж "
-"байна."
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:756
-#, c-format
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, fuzzy, c-format
msgid ""
-"The application '%s' (%s) wants to access the password for '%s' in an "
-"unknown keyring."
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
msgstr ""
-"Програм '%s' (%s) үл мÑдÑгдÑÑ… кейринг дÑÑ… '%s'-ий нÑвтрÑÑ… үгт хандахыг Ñ…Ò¯ÑÑж "
-"байна."
+"Үл мÑдÑгдÑÑ… програм '%s' кейринг руу хандахыг Ñ…Ò¯ÑÑÑн боловч түгжÑÑÑ‚Ñй байна."
-#: ../gnome-keyring-ask.c:761 ../gnome-keyring-ask.c:772
-#, c-format
-msgid "The application '%s' wants to access the password for '%s' in %s."
-msgstr "'%s' програм %s дÑÑ… '%s'-ий нÑвтрÑÑ… үгт хандахыг Ñ…Ò¯ÑÑж байна."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
+msgstr ""
-#: ../gnome-keyring-ask.c:764 ../gnome-keyring-ask.c:775
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '%s' in the default "
-"keyring."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
msgstr ""
-"Програм '%s' Ñтандарт кейринг дÑÑ… '%s'-ий нÑвтрÑÑ… үгт хандахыг Ñ…Ò¯ÑÑж байна."
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:767 ../gnome-keyring-ask.c:778
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
#, c-format
msgid ""
-"The application '%s' wants to access the password for '%s' in an unknown "
-"keyring."
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
msgstr ""
-"Програм '%s' үл мÑдÑгдÑÑ… кейринг дÑÑ… '%s'-ий нууц үгт хандахыг Ñ…Ò¯ÑÑж байна."
-#: ../gnome-keyring-ask.c:783
-#, c-format
-msgid "An unknown application wants to access the password for '%s' in %s."
-msgstr "Үл мÑдÑгдÑÑ… програм %s дÑÑ… '%s'-ий нÑвтрÑÑ… үгт хандахыг Ñ…Ò¯ÑÑж байна."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "Кейринг ÐÑвтрÑÑ… үгийн өөрчлөлт"
-#: ../gnome-keyring-ask.c:786
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "Ð¨Ð¸Ð½Ñ ÐºÐµÐ¹Ñ€Ð¸Ð½Ð³-ийн нÑвтрÑÑ… үгийг Ñонго"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
msgid ""
-"An unknown application wants to access the password for '%s' in the default "
-"keyring."
+"To change the password for '%s', the original and new passwords are required"
msgstr ""
-"Үл мÑдÑгдÑÑ… програм Ñтандарт кейринг дÑÑ… '%s'-ий нÑвтрÑÑ… үгт хандахыг Ñ…Ò¯ÑÑж "
-"байна."
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:789
+#: ../tool/gkr-tool.c:102
#, c-format
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
+
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
+
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:592
msgid ""
-"An unknown application wants to access the password for '%s' in an unknown "
-"keyring."
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr "ÐÑвтрÑÑ… үгнүүд тохирохгүй байна."
+
+#: ../ui/gku-prompt-tool.c:649
+#, fuzzy
+msgid "Password cannot be blank"
+msgstr "ÐÑвтрÑÑ… үгийн Ñ‚ÑмдÑгтийн зай байхгүй байна."
+
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
+
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:2
+msgid "_Application:"
msgstr ""
-"Үл мÑдÑгдÑÑ… програм үл мÑдÑгдÑÑ… кейринг дÑÑ… '%s'-ий нÑвтрÑÑ… үгт хандахыг "
-"Ñ…Ò¯ÑÑж байна."
-#: ../gnome-keyring-ask.c:794
-msgid "Allow access"
-msgstr "Хандалтыг зөвшөөрөх"
+#: ../ui/gku-prompt.ui.h:3
+msgid "_Confirm:"
+msgstr ""
-#: ../gnome-keyring-ask.c:799
-msgid "Allow _Once"
-msgstr "_ÐÑг удаа зөвшөөрнө"
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
-#: ../gnome-keyring-ask.c:800
-msgid "_Always Allow"
-msgstr "_Байнга зөвшөөрнө"
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr ""
-#: ../gnome-keyring-ask.c:840
-msgid "You must specify the type of request to run\n"
-msgstr "Та уншигдах Ñ…Ò¯ÑÑлтийн төрлийг тодорхойлох Ñ‘Ñтой\n"
+#: ../ui/gku-prompt.ui.h:6
+#, fuzzy
+msgid "_Old Password:"
+msgstr "_Хуучин нÑвтрÑÑ… үг:"
-#: ../gnome-keyring-ask.c:857
-msgid "Unknown request type\n"
-msgstr "Үл мÑдÑгдÑÑ… Ñ…Ò¯ÑÑлтийн төрөл\n"
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "_ÐÑвтрÑÑ… үг:"
diff --git a/po/mr.po b/po/mr.po
index f417ed00..d5c51296 100644
--- a/po/mr.po
+++ b/po/mr.po
@@ -10,621 +10,135 @@
msgid ""
msgstr ""
"Project-Id-Version: mr\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-keyring&component=general\n"
-"POT-Creation-Date: 2009-08-26 19:44+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2009-09-11 19:12+0530\n"
"Last-Translator: Sandeep Shedmake <sshedmak@redhat.com>\n"
"Language-Team: Marathi <fedora-trans-mr@redhat.com>\n"
+"Language: mr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:228
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in the default keyring."
-msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) मà¥à¤²à¤­à¥‚त कीरिंगमधील '<object prop='name'/>' करीता परवलीचà¥à¤¯à¤¾ "
-"शबà¥à¤¦à¤¾à¤šà¤¾ वापर करॠइचà¥à¤›à¤¿à¤¤à¥‹."
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:232
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in %s."
-msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) ला %s मधील '<object prop='name'/>' करीता परवली शबà¥à¤¦à¤¾à¤šà¤¾ वापर "
-"करायचा आहे."
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:238 ../daemon/gkr-daemon-ops.c:248
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in the default keyring."
-msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' ला मà¥à¤²à¤­à¥‚त किरींग मधील '<object prop='name'/>' करीता परवली शबà¥à¤¦à¤¾à¤šà¤¾ "
-"वापर करायचा आहे."
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:242 ../daemon/gkr-daemon-ops.c:252
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in %s."
-msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' ला %s मधील '<object prop='name'/>' करीता परवली शबà¥à¤¦à¤¾à¤šà¤¾ वापर "
-"करायचा आहे."
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:258
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in the default keyring."
-msgstr ""
-"अपरिचित अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ास मà¥à¤²à¤­à¥‚त किरींग मधील '<object prop='name'/>' करीता परवली शबà¥à¤¦à¤šà¤¾ "
-"वापर करायचा आहे."
-
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:261
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in %s."
-msgstr ""
-"अपरिचित अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ास '%s' मधील '<object prop='name'/>' करीता परवली शबà¥à¤¦à¤šà¤¾ वापर "
-"करायचा आहे."
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:267
-msgid "Allow access"
-msgstr "वापरॠदà¥à¤¯à¤¾"
-
-#: ../daemon/gkr-daemon-ops.c:267
-msgid "Allow application access to keyring?"
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ास कीरिंगचà¥à¤¯à¤¾ वापराची परवानगी दà¥à¤¯à¤¾à¤¯à¤šà¥€?"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:309
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¥€à¤¤ कीरिंगचा वापर करॠइचà¥à¤›à¤¿à¤¤à¥‹, पण ती कà¥à¤²à¥‚पबंद आहे"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:314
-#, c-format
-msgid "The application '%s' (%s) wants access to the keyring '%s', but it is locked"
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) '%s' कीरिंगचा वापर करॠइचà¥à¤›à¤¿à¤¤à¥‹, पण ती कà¥à¤²à¥‚पबंद आहे"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:321 ../daemon/gkr-daemon-ops.c:333
-#, c-format
-msgid "The application '%s' wants access to the default keyring, but it is locked"
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¥€à¤¤ कीरिंगचा वापर करॠइचà¥à¤›à¤¿à¤¤à¥‹, पण ती कà¥à¤²à¥‚पबंद आहे"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:326 ../daemon/gkr-daemon-ops.c:339
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' '%s' कीरिंगचा वापर करॠइचà¥à¤›à¤¿à¤¤à¥‹, पण ती कà¥à¤²à¥‚पबंद आहे"
-
-#. TRANSLATORS: The default keyring is locked
-#: ../daemon/gkr-daemon-ops.c:346
-#, c-format
-msgid "An unknown application wants access to the default keyring, but it is locked"
-msgstr "à¤à¤• अपरिचित अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¥€à¤¤ कीरिंगचा वापर करॠइचà¥à¤›à¤¿à¤¤à¥‹, पण ती कà¥à¤²à¥‚पबंद आहे"
-
-#. TRANSLATORS: The keyring '%s' is locked
-#: ../daemon/gkr-daemon-ops.c:351
-#, c-format
-msgid "An unknown application wants access to the keyring '%s', but it is locked"
-msgstr "à¤à¤• अपरिचित अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' कीरिंगचा वापर करॠइचà¥à¤›à¤¿à¤¤à¥‹, पण ती कà¥à¤²à¥‚पबंद आहे"
-
-#: ../daemon/gkr-daemon-ops.c:358
-msgid "Enter password for default keyring to unlock"
-msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¥€à¤¤ कीरिंगचे कà¥à¤²à¥‚प उघडणà¥à¤¯à¤¾à¤¸ परवलिचा शबà¥à¤¦ दाखल करा"
-
-#: ../daemon/gkr-daemon-ops.c:360
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "'%s' कीरिंगचे कà¥à¤²à¥‚प उघडणà¥à¤¯à¤¾à¤¸ परवलिचा शबà¥à¤¦ दाखल करा"
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:364
-msgid "Unlock Keyring"
-msgstr "कीरिंगचे कà¥à¤²à¥‚प उघडा"
-
-#: ../daemon/gkr-daemon-ops.c:376
-msgid "Automatically unlock this keyring when I log in."
-msgstr "दाखलन केलà¥à¤¯à¤¾à¤µà¤° आपोआप ही कीरींग विनाकà¥à¤²à¥‚प करा."
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:413
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
-msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) नवी कीरिंग '%s' या नावाने तयार करॠइचà¥à¤›à¤¿à¤¤à¥‹, तà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ "
-"नवा पासवरà¥à¤¡ नीवडावे लागेल."
-
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:418
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) नवी पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¥€à¤¤ कीरिंग तयार करॠइचà¥à¤›à¤¿à¤¤à¥‹, तà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ नवा परवलीचा "
-"शबà¥à¤¦ नीवडावे लागेल."
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:425 ../daemon/gkr-daemon-ops.c:437
-#, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
-msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' नवी कीरिंग '%s' या नावाने तयार करॠइचà¥à¤›à¤¿à¤¤à¥‹, तà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ नवा "
-"पासवरà¥à¤¡ नीवडावे लागेल."
+#: ../daemon/dbus/gkd-secret-change.c:86
+msgid "Change Keyring Password"
+msgstr "कीरिंग पासवरà¥à¤¡ बदला"
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:430 ../daemon/gkr-daemon-ops.c:442
-#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' नवी पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¥€à¤¤ कीरिंग तयार करॠइचà¥à¤›à¤¿à¤¤à¥‹, तà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ नवा पासवरà¥à¤¡ "
-"नीवडावे लागेल."
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "'%s' किरींगकरीता नवीन पासवरà¥à¤¡ नीवडा."
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:449
-#, c-format
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
msgstr ""
-"à¤à¤• अपरिचित अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— नवी कीरिंग '%s' या नावाने तयार करॠइचà¥à¤›à¤¿à¤¤à¥‹, तà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ "
-"नवा पासवरà¥à¤¡ नीवडावे लागेल."
+"à¤à¤• अपरिचित अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' कीरिंगकरीता पासवरà¥à¤¡ बदलू इचà¥à¤›à¤¿à¤¤à¥‹. तà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ नवा "
+"पासवरà¥à¤¡ निवडावा लागेल."
-#. TRANSLATORS: The password is for the new keyring
-#: ../daemon/gkr-daemon-ops.c:454
-#, c-format
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr ""
-"à¤à¤• अपरिचित अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— नवी पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¥€à¤¤ कीरिंग तयार करॠइचà¥à¤›à¤¿à¤¤à¥‹, तà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ नवा "
-"पासवरà¥à¤¡ नीवडावे लागेल."
+#: ../daemon/dbus/gkd-secret-change.c:111
+#, fuzzy
+msgid "The original password was incorrect"
+msgstr "पासवरà¥à¤¡ किंवा PIN अयोगà¥à¤¯ आहे"
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:460
+#: ../daemon/dbus/gkd-secret-create.c:83
msgid "New Keyring Password"
msgstr "नवा पासवरà¥à¤¡"
-#: ../daemon/gkr-daemon-ops.c:461
+#: ../daemon/dbus/gkd-secret-create.c:84
msgid "Choose password for new keyring"
msgstr "पासवरà¥à¤¡ नवà¥à¤¯à¤¾ कीरिंगकरीता नीवडा"
-#: ../daemon/gkr-daemon-ops.c:508
-#, c-format
+#: ../daemon/dbus/gkd-secret-create.c:86
+#, fuzzy, c-format
msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) '%s' कीरिंग करीता पासवरà¥à¤¡ बदलू इचà¥à¤›à¤¿à¤¤à¥‹. तà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ "
+"à¤à¤• अपरिचित अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— नवी कीरिंग '%s' या नावाने तयार करॠइचà¥à¤›à¤¿à¤¤à¥‹, तà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ "
"नवा पासवरà¥à¤¡ नीवडावे लागेल."
-#: ../daemon/gkr-daemon-ops.c:512
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
-msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¥€à¤¤ कीरिंग करीता पासवरà¥à¤¡ बदलू इचà¥à¤›à¤¿à¤¤à¥‹. तà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ "
-"नवा पासवरà¥à¤¡ नीवडावे लागेल."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+#, fuzzy
+msgid "Certificate and Key Storage"
+msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°/कि साठा विना कà¥à¤²à¥‚पबंद करा"
-#: ../daemon/gkr-daemon-ops.c:518 ../daemon/gkr-daemon-ops.c:528
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
-msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' '%s' कीरिंग करीता पासवरà¥à¤¡ बदलू इचà¥à¤›à¤¿à¤¤à¥‹. तà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ नवा "
-"पासवरà¥à¤¡ नीवडावे लागेल."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+#, fuzzy
+msgid "GNOME Keyring: PKCS#11 Component"
+msgstr "GNOME किरींग डिमन"
-#: ../daemon/gkr-daemon-ops.c:522 ../daemon/gkr-daemon-ops.c:532
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
-msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¥€à¤¤ कीरिंग करीता पासवरà¥à¤¡ बदलू इचà¥à¤›à¤¿à¤¤à¥‹. तà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ नवा "
-"पासवरà¥à¤¡ नीवडावे लागेल."
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: Secret Service"
+msgstr "GNOME किरींग डिमन"
-#: ../daemon/gkr-daemon-ops.c:538
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
msgstr ""
-"à¤à¤• अपरिचित अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' कीरिंगकरीता पासवरà¥à¤¡ बदलू इचà¥à¤›à¤¿à¤¤à¥‹. तà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ "
-"नवा पासवरà¥à¤¡ निवडावा लागेल."
-#: ../daemon/gkr-daemon-ops.c:542
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: SSH Agent"
+msgstr "GNOME किरींग डिमन"
+
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
msgstr ""
-"à¤à¤• अपरिचित अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¥€à¤¤ कीरिंग करीता पासवरà¥à¤¡ बदलू इचà¥à¤›à¤¿à¤¤à¥‹. तà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ "
-"नवा पासवरà¥à¤¡ निवडावा लागेल."
-#: ../daemon/gkr-daemon-ops.c:552
-#, c-format
-#| msgid "Choose a new password for the '%s' keyring. "
-msgid "Choose a new password for the '%s' keyring."
-msgstr "'%s' किरींगकरीता नवीन पासवरà¥à¤¡ नीवडा."
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: GPG Agent"
+msgstr "GNOME किरींग डिमन"
-#: ../daemon/gkr-daemon-ops.c:554
-#, c-format
-#| msgid "Choose a new password for the default keyring. "
-msgid "Choose a new password for the default keyring."
-msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¥€à¤¤ कीरिंगकरीता नवीन पासवरà¥à¤¡ नीवडा."
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+#, fuzzy
+msgid "GPG Password Agent"
+msgstr "नवीन पासवरà¥à¤¡ कà¥à¤·à¤®à¤¤à¤¾"
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:558
-msgid "Change Keyring Password"
-msgstr "कीरिंग पासवरà¥à¤¡ बदला"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+#, fuzzy
+msgid "Unknown"
+msgstr "अपरिचीत तà¥à¤°à¥à¤Ÿà¥€"
-#: ../daemon/gkr-daemon-ops.c:631
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+msgid "PGP Key: %s"
msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) à¤à¤• पासवरà¥à¤¡ साठवू इचà¥à¤›à¤¿à¤¤à¥‹ पण तà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¥€à¤¤ कीरिंग नाही. "
-"नवी कीरिंग तयार करणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ हवा असलेला पासवरà¥à¤¡ नीवडा."
-#: ../daemon/gkr-daemon-ops.c:635 ../daemon/gkr-daemon-ops.c:639
-#, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' à¤à¤• पासवरà¥à¤¡ साठवू इचà¥à¤›à¤¿à¤¤à¥‹ पण तà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¥€à¤¤ कीरिंग नाही. नवी "
-"कीरिंग तयार करणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ हवा असलेला पासवरà¥à¤¡ नीवडा."
-#: ../daemon/gkr-daemon-ops.c:643
-#, c-format
-msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
msgstr ""
-"à¤à¤• अपरिचीत अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— पासवरà¥à¤¡ साठवू इचà¥à¤›à¤¿à¤¤à¥‹ पण तà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¥€à¤¤ कीरिंग नाही. नवी "
-"कीरिंग तयार करणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ हवा असलेला पासवरà¥à¤¡ नीवडा."
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:648
-msgid "Create Default Keyring"
-msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¥€à¤¤ कीरिंग तयार करा"
-#: ../daemon/gkr-daemon-ops.c:648
-msgid "Choose password for default keyring"
-msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¥€à¤¤ कीरिंग करीता पासवरà¥à¤¡ नीवडा"
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:1
-msgid ""
-"This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-"only takes effect as gnome-keyring-daemon starts, (ie: when the user logs "
-"in). This setting may be overridden when certain command line arguments are "
-"passed to the daemon."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-"हा परà¥à¤¯à¤¾à¤¯ gnome-keyring डीमन मधà¥à¤¯à¥‡ PKCS#11 घटक कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ करतो. gnome-keyring-"
-"daemon पà¥à¤¨à¥à¤¹à¤¾ सà¥à¤°à¥‚ होताच तà¥à¤¯à¤¾à¤šà¤¾ पà¥à¤°à¤­à¤¾à¤µ दृशà¥à¤¯à¤¾à¤¸ पडतो, (मà¥à¤¹à¤£à¤œà¥‡à¤š: वापरकरà¥à¤¤à¤¾ दाखलन करतो "
-"तेवà¥à¤¹à¤¾). ही संयोजना ठराविक डीमन करीता आदेश ओळ बाब पाठविलà¥à¤¯à¤¾à¤¸ खोडून पà¥à¤¨à¥à¤¹à¤¾ लिहीले जाते."
-#: ../daemon/data/gnome-keyring.schemas.in.h:2
-msgid ""
-"This option enables the SSH agent in the gnome-keyring daemon. It only takes "
-"effect as gnome-keyring-daemon starts, (ie: when the user logs in). This "
-"setting may be overridden when certain command line arguments are passed to "
-"the daemon."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
msgstr ""
-"हा परà¥à¤¯à¤¾à¤¯ SSH घटक gnome-keyring डीमन कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ करतो. gnome-keyring-daemon "
-"पà¥à¤¨à¥à¤¹à¤¾ सà¥à¤°à¥‚ केलà¥à¤¯à¤¾à¤µà¤°à¤š तà¥à¤¯à¤¾à¤šà¥‡ पà¥à¤°à¤­à¤¾à¤µ दिसून पडते, (मà¥à¤¹à¤£à¤œà¥‡: जेवà¥à¤¹à¤¾ वापरकरà¥à¤¤à¤¾ दाखलन करतो). ही "
-"संयोजना ठराविक डीमन करीता आदेश ओळ बाब पाठविलà¥à¤¯à¤¾à¤¸ खोडून पà¥à¤¨à¥à¤¹à¤¾ लिहीले जाते."
-#: ../daemon/data/gnome-keyring.schemas.in.h:3
-msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-msgstr "gnome-keyring PKCS#11 घटक कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ आहे का."
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:4
-msgid "Whether the gnome-keyring SSH agent is enabled."
-msgstr "gnome-keyring SSH घटक कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ करायचे का."
-
-#: ../daemon/gnome-keyring-daemon.desktop.in.in.h:1
-msgid "GNOME Keyring Daemon"
-msgstr "GNOME किरींग डिमन"
-
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:99
-msgid "Unlock Login Keyring"
-msgstr "दाखलन कीरिंग कà¥à¤²à¥‚प उघडा"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:99
-msgid "Enter login password to unlock keyring"
-msgstr "कीरिंगचे कà¥à¤²à¥‚प उघडणà¥à¤¯à¤¾à¤¸ पासवरà¥à¤¡ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ करा"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:101
-msgid ""
-"Your login keyring was not automatically unlocked when you logged into this "
-"computer."
-msgstr "या संगणकावर दाखलन केलà¥à¤¯à¤¾à¤¸ तà¥à¤®à¤šà¥‡ दाखलन किरींग आपोआप विनाकà¥à¤²à¥‚प बंद केले गेले नाही."
-
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:125
-msgid "Create Login Keyring"
-msgstr "दाखलन कीरिंग तयार करा"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:125
-msgid "Enter your login password"
-msgstr "दाखलन पासवरà¥à¤¡ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ करा"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:127
-msgid ""
-"Your login keyring was not automatically created when you logged into this "
-"computer. It will now be created."
-msgstr "या संगणकावर दाखलन केलà¥à¤¯à¤¾à¤µà¤° दाखलन किरींग आपोआप बनविले गेले नाही. ते आता बनविले à¤à¤¾à¤ˆà¤²."
-
-#: ../daemon/keyrings/gkr-keyring.c:587
-#, c-format
-msgid "Unlock password for %s keyring"
-msgstr "%s किरींग करीता पासवरà¥à¤¡à¤¾à¤šà¥‡ कà¥à¤²à¥‚प उघडा"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:98
-msgid "Unlock private key"
-msgstr "वà¥à¤¯à¤•à¥à¤¤à¤¿à¤—त किलà¥à¤²à¥€ उघडा"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:100
-msgid "Unlock certificate"
-msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° उघडा"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:102
-msgid "Unlock public key"
-msgstr "सारà¥à¤µà¤œà¤¨à¥€à¤• किलà¥à¤²à¥€ उघडा"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:104
-msgid "Unlock"
-msgstr "कà¥à¤²à¥‚प उघडा"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:113 ../gcr/gcr-importer.c:436
-msgid "Enter password to unlock the private key"
-msgstr "वà¥à¤¯à¤•à¥à¤¤à¤¿à¤—त किलà¥à¤²à¥€ उघडणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ पासवरà¥à¤¡ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ करा"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:115 ../gcr/gcr-importer.c:438
-msgid "Enter password to unlock the certificate"
-msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° उघडणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ पासवरà¥à¤¡ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ करा"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:117
-msgid "Enter password to unlock the public key"
-msgstr "सारà¥à¤µà¤œà¤¨à¥€à¤• किलà¥à¤²à¥€ उडणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ पासवरà¥à¤¡ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ करा"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:119 ../gcr/gcr-importer.c:440
-msgid "Enter password to unlock"
-msgstr "उघडणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ पासवरà¥à¤¡ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ करा"
-
-#. TRANSLATORS: The private key is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:129
-#, c-format
-msgid "An application wants access to the private key '%s', but it is locked"
-msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€à¤²à¤¾ वà¥à¤¯à¤•à¥à¤¤à¤¿à¤—त किलà¥à¤²à¥€ '%s' वापरायचे आहे, पण ते कà¥à¤²à¥‚पबंद आहे"
-
-#. TRANSLATORS: The certificate is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:132
-#, c-format
-msgid "An application wants access to the certificate '%s', but it is locked"
-msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€à¤²à¤¾ पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° '%s' वापरायचे आहे, पण ते कà¥à¤²à¥‚प बंद आहे"
-
-#. TRANSLATORS: The public key is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:135
-#, c-format
-msgid "An application wants access to the public key '%s', but it is locked"
-msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€à¤²à¤¾ सारà¥à¤µà¤œà¤¨à¥€à¤• किलà¥à¤²à¥€ '%s' वापरायचे आहे, पण ते कà¥à¤²à¥‚पबंद आहे"
-
-#. TRANSLATORS: The object '%s' is locked
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:138
-#, c-format
-msgid "An application wants access to '%s', but it is locked"
-msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€à¤²à¤¾ '%s' वापरायचे आहे, पण ते कà¥à¤²à¥‚पबंद आहे"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:147
-msgid "Automatically unlock this private key when I log in."
-msgstr "दाखलन à¤à¤¾à¤²à¤²à¥à¤¯à¤¾à¤µà¤° आपोआप ही वà¥à¤¯à¤•à¥à¤¤à¤¿à¤—त किलà¥à¤²à¥€ उघडा."
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:149
-msgid "Automatically unlock this certificate when I log in."
-msgstr "दाखलन à¤à¤¾à¤²à¥à¤¯à¤¾à¤µà¤° आपोआप हे पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° उघडा."
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:151
-msgid "Automatically unlock this public key when I log in."
-msgstr "दाखलन à¤à¤¾à¤²à¥à¤¯à¤¾à¤µà¤° आपोआप वà¥à¤¯à¤•à¥à¤¤à¤¿à¤—त किलà¥à¤²à¥€ उघडा."
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:153
-msgid "Automatically unlock this when I log in"
-msgstr "दाखलन à¤à¤¾à¤²à¥à¤¯à¤¾à¤¸à¤†à¤ªà¥‹à¤†à¤ª यास उघडा"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:394
-msgid "Unlock certificate/key storage"
-msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°/कि साठा विना कà¥à¤²à¥‚पबंद करा"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:395
-msgid "Enter password to unlock the certificate/key storage"
-msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°/कि साठा उघडणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ पासवरà¥à¤¡ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ करा"
-
-#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:398
-#, c-format
-msgid ""
-"An application wants access to the certificate/key storage '%s', but it is "
-"locked"
-msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€à¤²à¤¾ पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°/कि साठा '%s' वापरायचे आहे, पण ते कà¥à¤²à¥‚प बंद आहे"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:403
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:554
-msgid "Automatically unlock secure storage when I log in."
-msgstr "दाखलन à¤à¤¾à¤²à¥à¤¯à¤¾à¤µà¤° आपोआप सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ साठा उघडा."
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:546
-msgid "New Password Required"
-msgstr "नवीन पासवरà¥à¤¡ आवशà¥à¤¯à¤•"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:547
-msgid "New password required for secure storage"
-msgstr "सà¥à¤°à¤•à¥à¤·à¤¾ साठा करीता नवीन पासवरà¥à¤¡ आवशà¥à¤¯à¤•"
-
-#: ../daemon/pkcs11/gkr-pkcs11-auth.c:549
-#, c-format
-msgid ""
-"In order to prepare '%s' for storage of certificates or keys, a password is "
-"required"
-msgstr "'%s' ला पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° किंवा किज साठविणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तयार करणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾, पासवरà¥à¤¡ आवशà¥à¤¯à¤• आहे"
-
-#: ../daemon/ui/gkr-ask-tool.c:230
-msgid ""
-"<b><big>Could not grab your mouse.</big></b>\n"
-"\n"
-"A malicious client may be eavesdropping on your session or you may have just "
-"clicked a menu or some application just decided to get focus.\n"
-"\n"
-"Try again."
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
msgstr ""
-"<b><big>माऊस घटना पà¥à¤°à¤¾à¤ªà¥à¤¤ करणे अशकà¥à¤¯.</big></b>\n"
-"\n"
-"सदोषीत कà¥à¤²à¤¾à¤à¤‚ट तà¥à¤®à¤šà¥à¤¯à¤¾ सतà¥à¤°à¤¾à¤µà¤° eavesdropping करत असेल किंवा तà¥à¤®à¥à¤¹à¥€ नà¥à¤•à¤¤à¥‡à¤š मेनà¥à¤¯à¥‚वर कà¥à¤²à¤¿à¤• केले "
-"असाल किंवा कà¥à¤ à¤²à¥à¤¯à¤¾à¤¤à¤°à¥€ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ास माऊस घटना पà¥à¤°à¤¾à¤ªà¥à¤¤ केली असावी.\n"
-"\n"
-"पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करा."
-
-#: ../daemon/ui/gkr-ask-tool.c:239
-msgid ""
-"<b><big>Could not grab your keyboard.</big></b>\n"
-"\n"
-"A malicious client may be eavesdropping on your session or you may have just "
-"clicked a menu or some application just decided to get focus.\n"
-"\n"
-"Try again."
-msgstr ""
-"<b><big>कळफलक घटना पà¥à¤°à¤¾à¤ªà¥à¤¤ करणà¥à¤¯à¤¾à¤¸ अशकà¥à¤¯.</big></b>\n"
-"\n"
-"सदोषीत कà¥à¤²à¤¾à¤à¤‚ट तà¥à¤®à¤šà¥à¤¯à¤¾ सतà¥à¤°à¤¾à¤µà¤° eavesdropping करत असेल किंवा तà¥à¤®à¥à¤¹à¥€ नà¥à¤•à¤¤à¥‡à¤š मेनà¥à¤¯à¥‚वर कà¥à¤²à¤¿à¤• केले "
-"असाल किंवा कà¥à¤ à¤²à¥à¤¯à¤¾à¤¤à¤°à¥€ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ास माऊस घटना पà¥à¤°à¤¾à¤ªà¥à¤¤ केली असावी.\n"
-"\n"
-"पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करा."
-
-#: ../daemon/ui/gkr-ask-tool.c:276
-msgid "Store passwords unencrypted?"
-msgstr "पासवरà¥à¤¡ विनाà¤à¤‚कà¥à¤°à¥€à¤ªà¥à¤Ÿà¤°à¥€à¤¤à¥à¤¯à¤¾ संचयीत करा?"
-
-#: ../daemon/ui/gkr-ask-tool.c:277
-msgid ""
-"By choosing to use a blank password, your stored passwords will not be "
-"safely encrypted. They will be accessible by anyone with access to your "
-"files."
-msgstr ""
-"रिकामे पासवरà¥à¤¡ वापरणà¥à¤¯à¤¾à¤šà¥‡ निवडलà¥à¤¯à¤¾à¤¸, तà¥à¤®à¤šà¥‡ संचयीत पासवरà¥à¤¡ सà¥à¤°à¤•à¥à¤·à¥€à¤¤à¤°à¤¿à¤¤à¥à¤¯à¤¾ "
-"à¤à¤‚कà¥à¤°à¥€à¤ªà¥à¤Ÿ केले जाणार नाही. तà¥à¤®à¤šà¥à¤¯à¤¾ फाइल करीता पà¥à¤°à¤µà¥‡à¤¶ पà¥à¤°à¤¾à¤ªà¥à¤¯ कोणतà¥à¤¯à¤¾à¤¹à¥€ वापरकरà¥à¤¤à¥à¤¯à¤¾à¤¸ पà¥à¤°à¤µà¥‡à¤¶ "
-"मिळू शकतो."
-
-#: ../daemon/ui/gkr-ask-tool.c:284
-msgid "Use Unsafe Storage"
-msgstr "असà¥à¤°à¤•à¥à¤·à¥€à¤¤ संचयन"
-
-#: ../daemon/ui/gkr-ask-tool.c:512
-msgid "_Location:"
-msgstr "सà¥à¤¥à¤¾à¤¨ (_L):"
-
-#: ../daemon/ui/gkr-ask-tool.c:525
-msgid "_Old password:"
-msgstr "जà¥à¤¨à¤¾ पासवरà¥à¤¡(_O):"
-
-#: ../daemon/ui/gkr-ask-tool.c:545
-msgid "_Password:"
-msgstr "पासवरà¥à¤¡(_P):"
-
-#: ../daemon/ui/gkr-ask-tool.c:567
-msgid "_Confirm password:"
-msgstr "पासवरà¥à¤¡ पकà¥à¤•à¤¾ करा(_C):"
-
-#: ../daemon/ui/gkr-ask-tool.c:587
-msgid "New password strength"
-msgstr "नवीन पासवरà¥à¤¡ कà¥à¤·à¤®à¤¤à¤¾"
-
-#: ../daemon/ui/gkr-ask-tool.c:645
-msgid "Passwords do not match."
-msgstr "परवलीचे शबà¥à¤¦ जà¥à¤³à¤¤ नाहीत."
-
-#: ../daemon/ui/gkr-ask-tool.c:661
-msgid "Password cannot be blank"
-msgstr "पासवरà¥à¤¡ रिकामा असू शकत नाही"
-
-#: ../daemon/ui/gkr-ask-tool.c:712
-msgid "_Deny"
-msgstr "नकारा (_D)"
-
-#: ../daemon/ui/gkr-ask-tool.c:724
-msgid "C_reate"
-msgstr "निरà¥à¤®à¤¾à¤£ करा(_r)"
-
-#: ../daemon/ui/gkr-ask-tool.c:728
-msgid "C_hange"
-msgstr "बदलवा (_h)"
-
-#: ../daemon/ui/gkr-ask-tool.c:732
-msgid "Allow _Once"
-msgstr "à¤à¤•à¤¦à¤¾ वापरॠदà¥à¤¯à¤¾(_O)"
-
-#: ../daemon/ui/gkr-ask-tool.c:736
-msgid "_Always Allow"
-msgstr "नेहमी वापरॠदà¥à¤¯à¤¾(_A)"
-
-#: ../daemon/util/gkr-location.c:234
-#, c-format
-msgid "Removable Disk: %s"
-msgstr "काढूण टाकणà¥à¤¯à¤¾à¤œà¥‹à¤—ी डिसà¥à¤•: %s"
-
-#: ../daemon/util/gkr-location.c:236
-msgid "Removable Disk"
-msgstr "काढूण टाकणà¥à¤¯à¤¾à¤œà¥‹à¤—ी डिसà¥à¤•"
-
-#: ../daemon/util/gkr-location.c:327 ../daemon/util/gkr-location.c:339
-msgid "Home"
-msgstr "मà¥à¤–à¥à¤¯"
-
-#: ../daemon/util/gkr-location.c:882 ../daemon/util/gkr-location.c:906
-msgid "The disk or drive this file is located on is not present"
-msgstr "डिसà¥à¤• किंवा डà¥à¤°à¤¾à¤‡à¤µà¥à¤¹ वरील सà¥à¤¥à¤¾à¤ªà¥€à¤¤ फाइल असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ नाही"
-
-#: ../daemon/util/gkr-location.c:914
-#, c-format
-msgid "Couldn't create directory: %s"
-msgstr "संचयीका बनवू शकत नाही: %s"
-
-#: ../daemon/util/gkr-location.c:948
-#, c-format
-msgid "Couldn't delete the file: %s"
-msgstr "फाइल काढून टाकू शकत नाही: %s"
#: ../egg/egg-oid.c:41
msgid "Domain Component"
@@ -635,8 +149,8 @@ msgid "User ID"
msgstr "वापरकरà¥à¤¤à¤¾ ID"
#: ../egg/egg-oid.c:46
-msgid "Email"
-msgstr "ईमेल"
+msgid "Email Address"
+msgstr ""
#: ../egg/egg-oid.c:54
msgid "Date of Birth"
@@ -666,8 +180,7 @@ msgstr "सामानà¥à¤¯ नाव"
msgid "Surname"
msgstr "आडनाव"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-basics-widget.ui.h:18
-#: ../gcr/gcr-certificate-details-widget.c:322
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "सिरीयल कà¥à¤°à¤®à¤¾à¤‚क"
@@ -727,632 +240,292 @@ msgstr "Pseudonym"
msgid "RSA"
msgstr "RSA"
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "MD2 RSA सह"
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "MD5 RSA सह"
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "SHA1 RSA सह"
-#: ../egg/egg-oid.c:107
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "SHA1 DSA सह"
-#: ../gcr/gcr-certificate-basics-widget.c:59
-msgid "<i>Not Part of Certificate</i>"
-msgstr "<i>पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°à¤¾à¤šà¥‡ भाग नाही</i>"
-
-#: ../gcr/gcr-certificate-basics-widget.c:80
-msgid "<i>unknown</i>"
-msgstr "<i>अपरिचीत</i>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:1
-msgid "<Not Part of Certificate>"
-msgstr "<पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°à¤¾à¤šà¥‡ भाग नाही>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:2
-msgid "<b>Fingerprints</b>"
-msgstr "<b>फिंगरपà¥à¤°à¤¿à¤¨à¥à¤Ÿà¤¸à¥</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:3
-msgid "<b>Issued By</b>"
-msgstr "<b>पà¥à¤°à¤µà¤ à¤¾à¤•à¤°à¥à¤¤à¤¾</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:4
-msgid "<b>Issued To</b>"
-msgstr "<b>यांस पà¥à¤°à¤µà¤²à¥‡</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:5
-msgid "<b>This certificate has been verified for the following uses:</b>"
-msgstr "<b>या पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°à¤¾à¤šà¥€ तपासणी खालिल वापर करीता केले गेले आहे:</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:6
-msgid "<b>Validity</b>"
-msgstr "<b>वैधता</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:7
-msgid "Common Name (CN)"
-msgstr "Common Name (CN)"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:8
-msgid "Email Recipient Certificate"
-msgstr "ईमेल भोकà¥à¤¤à¤¾ पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:9
-msgid "Email Signer Certificate"
-msgstr "ईमेल सà¥à¤µà¤¾à¤•à¥à¤·à¤°à¥€à¤•à¤°à¥à¤¤à¤¾ पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:10
-msgid "Expires On"
-msgstr "यावेळी à¤à¤•à¥à¤¸à¤ªà¤¾à¤¯à¤° होईल"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:11
-msgid "Issued On"
-msgstr "यावेळी पà¥à¤°à¤µà¤²à¥‡"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:12
-msgid "MD5 Fingerprint"
-msgstr "MD5 फिंगरपà¥à¤°à¤¿à¤¨à¥à¤Ÿ"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:13
-msgid "Organization (O)"
-msgstr "Organization (O)"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:14
-msgid "Organizational Unit (OU)"
-msgstr "Organizational Unit (OU)"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:15
-msgid "SHA1 Fingerprint"
-msgstr "SHA1 फिंगरपà¥à¤°à¤¿à¤¨à¥à¤Ÿ"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+#, fuzzy
+msgid "Server Authentication"
+msgstr "SSL सरà¥à¤µà¤° पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:16
-msgid "SSL Client Certificate"
+#: ../egg/egg-oid.c:108
+#, fuzzy
+msgid "Client Authentication"
msgstr "SSL कà¥à¤²à¤¾à¤à¤‚ट पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:17
-msgid "SSL Server Certificate"
-msgstr "SSL सरà¥à¤µà¤° पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°"
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:207
-msgid "Extension"
-msgstr "वाढ"
-
-#: ../gcr/gcr-certificate-details-widget.c:212
-msgid "Identifier"
-msgstr "ओळखकरà¥à¤¤à¤¾"
-
-#: ../gcr/gcr-certificate-details-widget.c:222
-msgid "Value"
-msgstr "मूलà¥à¤¯"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "Critical"
-msgstr "गंभीर"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "Yes"
-msgstr "होय"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "No"
-msgstr "नाही"
-
-#. The subject
-#: ../gcr/gcr-certificate-details-widget.c:303
-msgid "Subject Name"
-msgstr "विषयाचे नाव"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-details-widget.c:307
-msgid "Issuer Name"
-msgstr "देयकाचे नाव"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-details-widget.c:311
-msgid "Issued Certificate"
-msgstr "देयक पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°"
-
-#: ../gcr/gcr-certificate-details-widget.c:316
-msgid "Version"
-msgstr "आवृतà¥à¤¤à¥€"
-
-#: ../gcr/gcr-certificate-details-widget.c:329
-msgid "Not Valid Before"
-msgstr "या आधी वैध नाही"
-
-#: ../gcr/gcr-certificate-details-widget.c:334
-msgid "Not Valid After"
-msgstr "या नंतर वैध नाही"
-
-#. Signature
-#: ../gcr/gcr-certificate-details-widget.c:339
-#: ../gcr/gcr-certificate-details-widget.c:355
-msgid "Signature"
-msgstr "सà¥à¤µà¤¾à¤•à¥à¤·à¤°à¥€"
-
-#: ../gcr/gcr-certificate-details-widget.c:343
-msgid "Signature Algorithm"
-msgstr "सà¥à¤µà¤¾à¤•à¥à¤·à¤°à¥€ अलà¥à¤—ोरिदम"
-
-#: ../gcr/gcr-certificate-details-widget.c:348
-msgid "Signature Parameters"
-msgstr "सà¥à¤µà¤¾à¤•à¥à¤·à¤°à¥€ बाब"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-details-widget.c:359
-msgid "Public Key Info"
-msgstr "सारà¥à¤µà¤œà¤£à¥€à¤• कि माहिती"
-
-#: ../gcr/gcr-certificate-details-widget.c:363
-msgid "Key Algorithm"
-msgstr "कि अलà¥à¤—ोरिदम"
-
-#: ../gcr/gcr-certificate-details-widget.c:368
-msgid "Key Parameters"
-msgstr "कि बाब"
-
-#: ../gcr/gcr-certificate-details-widget.c:375
-msgid "Key Size"
-msgstr "कि आकार"
-
-#: ../gcr/gcr-certificate-details-widget.c:382 ../gcr/gcr-parser.c:202
-msgid "Public Key"
-msgstr "वà¥à¤¯à¤•à¥à¤¤à¤¿à¤—त कि"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-details-widget.c:386
-msgid "Fingerprints"
-msgstr "फिंगरपà¥à¤°à¤¿à¤¨à¥à¤Ÿ"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-msgstr "<span size='large' weight='bold'>पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° व कि आयात करा</span>"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "येथे आयात करा:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "पासवरà¥à¤¡:"
-
-#: ../gcr/gcr-importer.c:163 ../gcr/gcr-parser.c:1573 ../gp11/gp11-misc.c:98
-msgid "The operation was cancelled"
-msgstr "कारà¥à¤¯à¤ªà¤¦à¥à¤§à¤¤à¥€ रदà¥à¤¦ केले गेली"
-
-#: ../gcr/gcr-importer.c:255
-#, c-format
-msgid "No location available to import to"
-msgstr "आयात करणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ ठिकाण उपलबà¥à¤§ नाही"
-
-#: ../gcr/gcr-importer.c:404
-msgid "Import Certificates/Keys"
-msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°/कि आयात करा"
-
-#: ../gcr/gcr-importer.c:411
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "आयात केलेले पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°/किज साठवणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ ठिकाण नीवडा."
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:449
-msgid "In order to import the private key, it must be unlocked"
-msgstr "वैयकà¥à¤¤à¤¿à¤• कि आयात करणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾, विनाकà¥à¤²à¥‚पबंद असायला हवे"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:452
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° आयात करणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾, विनाकà¥à¤²à¥‚पबंद असायला हवे"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:455
-msgid "In order to import the data, it must be unlocked"
-msgstr "डेटा आयात करणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾, विनाकà¥à¤²à¥‚पबंद असायला हवे"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:460
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "वैयकà¥à¤¤à¤¿à¤• कि '%s' आयात करणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾, विनाकà¥à¤²à¥‚पबंद असायला हवे"
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:463
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° '%s' आयात करणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾, विनाकà¥à¤²à¥‚पबंद असायला हवे"
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:466
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "'%s' आयात करणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾, विनाकà¥à¤²à¥‚पबंद असायला हवे"
-
-#: ../gcr/gcr-parser.c:196
-msgid "Private Key"
-msgstr "वà¥à¤¯à¤•à¥à¤¤à¤¿à¤—त कि"
-
-#: ../gcr/gcr-parser.c:199
-msgid "Certificate"
-msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°"
-
-#: ../gcr/gcr-parser.c:1576
-msgid "Unrecognized or unsupported data."
-msgstr "अपरिचीत किंवा असमरà¥à¤¥à¥€à¤¤ डेटा."
-
-#: ../gcr/gcr-parser.c:1579
-msgid "Could not parse invalid or corrupted data."
-msgstr "अवैध किंवा सदोषीत डेटा वाचू शकत नाही."
-
-#: ../gcr/gcr-parser.c:1582
-msgid "The data is locked"
-msgstr "डेटा कà¥à¤²à¥‚पबंद आहे"
-
-#: ../gp11/gp11-misc.c:101
-msgid "Insufficient memory available"
-msgstr "अपूरे सà¥à¤®à¥ƒà¤¤à¥€ उपलबà¥à¤§"
-
-#: ../gp11/gp11-misc.c:103
-msgid "The specified slot ID is not valid"
-msgstr "निरà¥à¤¦à¥‡à¤¶à¥€à¤¤ सà¥à¤²à¥‰à¤Ÿ ID वैध नाही"
-
-#: ../gp11/gp11-misc.c:105
-msgid "Internal error"
-msgstr "आंतरिक तà¥à¤°à¥à¤Ÿà¥€"
-
-#: ../gp11/gp11-misc.c:107
-msgid "The operation failed"
-msgstr "कारà¥à¤¯à¤ªà¤¦à¥à¤§à¤¤à¥€ अपयशी"
-
-#: ../gp11/gp11-misc.c:109
-msgid "Invalid arguments"
-msgstr "अवैध बाब"
-
-#: ../gp11/gp11-misc.c:111
-msgid "The module cannot create needed threads"
-msgstr "विभाग आवशà¥à¤¯à¤• थà¥à¤°à¥‡à¤¡ बनवू शकत नाही"
-
-#: ../gp11/gp11-misc.c:113
-msgid "The module cannot lock data properly"
-msgstr "विभाग माहिती यशसà¥à¤µà¥€à¤°à¤¿à¤¤à¥à¤¯à¤¾ कà¥à¤²à¥‚पबंद करू शकत नाही"
-
-#: ../gp11/gp11-misc.c:115
-msgid "The field is read-only"
-msgstr "गà¥à¤£à¤µà¤¿à¤¶à¥‡à¤· फकà¥à¤¤ वाचणीय आहे"
-
-#: ../gp11/gp11-misc.c:117
-msgid "The field is sensitive and cannot be revealed"
-msgstr "गà¥à¤£à¤µà¤¿à¤¶à¥‡à¤· संवेदनशील आहे व गà¥à¤ªà¥à¤¤ आहे"
-
-#: ../gp11/gp11-misc.c:119
-msgid "The field is invalid or does not exist"
-msgstr "गà¥à¤£à¤µà¤¿à¤¶à¥‡à¤· अवैध आहे किंवा असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ नाही"
-
-#: ../gp11/gp11-misc.c:121
-msgid "Invalid value for field"
-msgstr "गà¥à¤£à¤µà¤¿à¤¶à¥‡à¤· करीता अवैध मà¥à¤²à¥à¤¯"
-
-#: ../gp11/gp11-misc.c:123
-msgid "The data is not valid or unrecognized"
-msgstr "माहिती वैध किंवा परिचीत नाही"
-
-#: ../gp11/gp11-misc.c:125
-msgid "The data is too long"
-msgstr "माहिती खूपच लांब आहे"
-
-#: ../gp11/gp11-misc.c:127
-msgid "An error occurred on the device"
-msgstr "साधनावरील तà¥à¤°à¥à¤Ÿà¥€ आढळली"
-
-#: ../gp11/gp11-misc.c:129
-msgid "Insufficient memory available on device"
-msgstr "साधनावरील उपलबà¥à¤§ अपूरी सà¥à¤®à¥ƒà¤¤à¥€"
-
-#: ../gp11/gp11-misc.c:131
-msgid "The device was removed or unplugged"
-msgstr "साधन काढून टाकले गेले किंवा जोडले गेले नाही"
-
-#: ../gp11/gp11-misc.c:133
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "à¤à¤¨à¥à¤•à¥à¤°à¥€à¤ªà¥à¤Ÿà¥‡à¤¡ माहिती वैध नाही किंवा परिचीत नाही"
-
-#: ../gp11/gp11-misc.c:135
-msgid "The encrypted data is too long"
-msgstr "à¤à¤¨à¥à¤•à¥à¤°à¥€à¤ªà¥à¤Ÿà¥‡à¤¡ माहिती खूपच लांब आहे"
-
-#: ../gp11/gp11-misc.c:137
-msgid "This operation is not supported"
-msgstr "ही कारà¥à¤¯à¤ªà¤¦à¥à¤§à¤¤à¥€ समरà¥à¤¥à¥€à¤¤ नाही"
-
-#: ../gp11/gp11-misc.c:139
-msgid "The key is missing or invalid"
-msgstr "की आढळली नाही किंवा अवैध आहे"
-
-#: ../gp11/gp11-misc.c:141
-msgid "The key is the wrong size"
-msgstr "कि चूकीचà¥à¤¯à¤¾ आकाराची आहे"
-
-#: ../gp11/gp11-misc.c:143
-msgid "The key is of the wrong type"
-msgstr "की चा पà¥à¤°à¤•à¤¾à¤° चूकीचा आहे"
-
-#: ../gp11/gp11-misc.c:145
-msgid "No key is needed"
-msgstr "कि आवशà¥à¤¯à¤• आहे"
-
-#: ../gp11/gp11-misc.c:147
-msgid "The key is different than before"
-msgstr "कि पूरà¥à¤µà¥€à¤ªà¥‡à¤•à¥à¤·à¤¾ वेगळे आहे"
-
-#: ../gp11/gp11-misc.c:149
-msgid "A key is needed"
-msgstr "कि आवशà¥à¤¯à¤• आहे"
-
-#: ../gp11/gp11-misc.c:151
-msgid "Cannot include the key in digest"
-msgstr "कि डायजेसà¥à¤Ÿ अंतरà¥à¤—त समाविषà¥à¤Ÿ करू शकत नाही"
-
-#: ../gp11/gp11-misc.c:153
-msgid "This operation cannot be done with this key"
-msgstr "ही कारà¥à¤¯à¤ªà¤¦à¥à¤§à¤¤à¥€ या कि दà¥à¤µà¤¾à¤°à¥‡ केले जाऊ शकत नाही"
-
-#: ../gp11/gp11-misc.c:155
-msgid "The key cannot be wrapped"
-msgstr "कि समाविषà¥à¤Ÿà¥€à¤¤ केली जाऊ शकत नाही"
-
-#: ../gp11/gp11-misc.c:157
-msgid "Cannot export this key"
-msgstr "कि पाठविले जाऊ शकत नाही"
-
-#: ../gp11/gp11-misc.c:159
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "कà¥à¤Ÿà¤²à¤¿à¤ªà¥€ पदà¥à¤§à¤¤à¥€ अवैध किंवा अपरिचीत आहे"
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr ""
-#: ../gp11/gp11-misc.c:161
-msgid "The crypto mechanism has an invalid argument"
-msgstr "कà¥à¤Ÿà¤²à¤¿à¤ªà¥€ पदà¥à¤§à¤¤à¥€à¤¤ अवैध बाब आढळली"
+#: ../egg/egg-spawn.c:320
+#, c-format
+msgid "Unexpected error in waitpid() (%s)"
+msgstr ""
-#: ../gp11/gp11-misc.c:163
-msgid "The object is missing or invalid"
-msgstr "घटक आढळले नाही किंवा अवैध आहे"
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr "निनावी पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°"
-#: ../gp11/gp11-misc.c:165
-msgid "Another operation is already taking place"
-msgstr "अनà¥à¤¯ कारà¥à¤¯à¤ªà¤¦à¥à¤§à¤¤à¥€ आधिपासून कारà¥à¤¯à¤°à¤¤ आहे"
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
+msgstr "सारà¥à¤µà¤œà¤£à¥€à¤• SSH कि वाचणे शकà¥à¤¯ नाही"
-#: ../gp11/gp11-misc.c:167
-msgid "No operation is taking place"
-msgstr "कà¥à¤ à¤²à¤¿à¤¹à¥€ कारà¥à¤¯à¤ªà¤¦à¥à¤§à¤¤à¥€ कारà¥à¤¯à¤°à¤¤ नाही"
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, fuzzy, c-format
+msgid "Unlock password for: %s"
+msgstr "%s किरींग करीता पासवरà¥à¤¡à¤¾à¤šà¥‡ कà¥à¤²à¥‚प उघडा"
-#: ../gp11/gp11-misc.c:169
-msgid "The password or PIN is incorrect"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+#, fuzzy
+msgid "The unlock password was incorrect"
msgstr "पासवरà¥à¤¡ किंवा PIN अयोगà¥à¤¯ आहे"
-#: ../gp11/gp11-misc.c:171
-msgid "The password or PIN is invalid"
-msgstr "पासवरà¥à¤¡ किंवा PIN अवैध आहे"
-
-#: ../gp11/gp11-misc.c:173
-msgid "The password or PIN is of an invalid length"
-msgstr "पासवरà¥à¤¡ किंवा PIN ची लांबी अवैध आहे"
-
-#: ../gp11/gp11-misc.c:175
-msgid "The password or PIN has expired"
-msgstr "पासवरà¥à¤¡ किंवा PIN कालबाहà¥à¤¯ à¤à¤¾à¤²à¥‡"
-
-#: ../gp11/gp11-misc.c:177
-msgid "The password or PIN is locked"
-msgstr "पासवरà¥à¤¡ किंवा PIN कà¥à¤²à¥‚पबंद आहे"
-
-#: ../gp11/gp11-misc.c:179
-msgid "The session is closed"
-msgstr "सतà¥à¤° बंद à¤à¤¾à¤²à¥‡"
-
-#: ../gp11/gp11-misc.c:181
-msgid "Too many sessions are active"
-msgstr "à¤à¤•à¤¾à¤ªà¥‡à¤•à¥à¤·à¤¾ जासà¥à¤¤ सतà¥à¤° सकà¥à¤°à¥€à¤¯ आहेत"
-
-#: ../gp11/gp11-misc.c:183
-msgid "The session is invalid"
-msgstr "सतà¥à¤° अवैध आहे"
-
-#: ../gp11/gp11-misc.c:185
-msgid "The session is read-only"
-msgstr "सतà¥à¤° फकà¥à¤¤ वाचणà¥à¤¯à¤¾à¤œà¥‹à¤—ी आहे"
-
-#: ../gp11/gp11-misc.c:187
-msgid "An open session exists"
-msgstr "उगडलेले सतà¥à¤° असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ आहे"
-
-#: ../gp11/gp11-misc.c:189
-msgid "A read-only session exists"
-msgstr "फकà¥à¤¤ वाचणीय सतà¥à¤° असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ आहे"
-
-#: ../gp11/gp11-misc.c:191
-msgid "An administrator session exists"
-msgstr "वà¥à¤¯à¤µà¤¸à¥à¤¥à¤ªà¤¾à¤• सतà¥à¤° असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ आहे"
-
-#: ../gp11/gp11-misc.c:193
-msgid "The signature is bad or corrupted"
-msgstr "सà¥à¤µà¤¾à¤•à¥à¤·à¤°à¥€ चूकीचे किंवा सदोषीत आहे"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+msgid "Unlock Login Keyring"
+msgstr "दाखलन कीरिंग कà¥à¤²à¥‚प उघडा"
-#: ../gp11/gp11-misc.c:195
-msgid "The signature is unrecognized or corrupted"
-msgstr "सà¥à¤µà¤¾à¤•à¥à¤·à¤°à¥€ परिचीत किंवा सदोषीत आहे"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
+msgstr "कीरिंगचे कà¥à¤²à¥‚प उघडणà¥à¤¯à¤¾à¤¸ पासवरà¥à¤¡ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ करा"
-#: ../gp11/gp11-misc.c:197
-msgid "Certain required fields are missing"
-msgstr "आवशà¥à¤¯à¤• गà¥à¤£à¤µà¤¿à¤¶à¥‡ आढळले नाही"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
+msgstr ""
-#: ../gp11/gp11-misc.c:199
-msgid "Certain fields have invalid values"
-msgstr "ठराविक गà¥à¤£à¤µà¤¿à¤¶à¥‡à¤· मधà¥à¤¯à¥‡ अवैध मà¥à¤²à¥à¤¯ आहेत"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
+#, fuzzy
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr "या संगणकावर दाखलन केलà¥à¤¯à¤¾à¤¸ तà¥à¤®à¤šà¥‡ दाखलन किरींग आपोआप विनाकà¥à¤²à¥‚प बंद केले गेले नाही."
-#: ../gp11/gp11-misc.c:201
-msgid "The device is not present or unplugged"
-msgstr "साधन आढळले नाही किंवा जोडले गेले नाही"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "कीरिंगचे कà¥à¤²à¥‚प उघडा"
-#: ../gp11/gp11-misc.c:203
-msgid "The device is invalid or unrecognizable"
-msgstr "साधन अवैध आहे किंवा ओळखणà¥à¤¯à¤¾à¤œà¥‹à¤—ी नाही"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
+#, c-format
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "'%s' कीरिंगचे कà¥à¤²à¥‚प उघडणà¥à¤¯à¤¾à¤¸ परवलिचा शबà¥à¤¦ दाखल करा"
-#: ../gp11/gp11-misc.c:205
-msgid "The device is write protected"
-msgstr "साधनावर लिहीणà¥à¤¯à¤¾à¤šà¥€ परवानगी नाही"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, fuzzy, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr "à¤à¤• अपरिचित अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' कीरिंगचा वापर करॠइचà¥à¤›à¤¿à¤¤à¥‹, पण ती कà¥à¤²à¥‚पबंद आहे"
-#: ../gp11/gp11-misc.c:207
-msgid "Cannot import because the key is invalid"
-msgstr "कि अवैध असलà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ पà¥à¤°à¤¾à¤ªà¥à¤¤ केले जाऊ शकत नाही"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
+msgstr "वà¥à¤¯à¤•à¥à¤¤à¤¿à¤—त किलà¥à¤²à¥€ उघडा"
-#: ../gp11/gp11-misc.c:209
-msgid "Cannot import because the key is of the wrong size"
-msgstr "कि चà¥à¤•à¥€à¤šà¥‡ आकाराची असलà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ पà¥à¤°à¤¾à¤ªà¥à¤¤ केले जाऊ शकत नाही"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+msgid "Unlock certificate"
+msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° उघडा"
-#: ../gp11/gp11-misc.c:211
-msgid "Cannot import because the key is of the wrong type"
-msgstr "कि चा पà¥à¤°à¤•à¤¾à¤° चà¥à¤•à¥€à¤šà¤¾ असलà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ पà¥à¤°à¤¾à¤ªà¥à¤¤ केला जाऊ शकत नाही"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
+msgstr "सारà¥à¤µà¤œà¤¨à¥€à¤• किलà¥à¤²à¥€ उघडा"
-#: ../gp11/gp11-misc.c:213
-msgid "You are already logged in"
-msgstr "तà¥à¤®à¥à¤¹à¥€ आधिपासूनच दाखलन केले आहे"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "कà¥à¤²à¥‚प उघडा"
-#: ../gp11/gp11-misc.c:215
-msgid "No user has logged in"
-msgstr "कà¥à¤ à¤²à¥à¤¯à¤¾à¤¹à¥€ वापरकरà¥à¤¤à¥à¤¯à¤¾à¤¨à¥‡ दाखलन केले नाही"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "वà¥à¤¯à¤•à¥à¤¤à¤¿à¤—त किलà¥à¤²à¥€ उघडणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ पासवरà¥à¤¡ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ करा"
-#: ../gp11/gp11-misc.c:217
-msgid "The user's password or PIN is not set"
-msgstr "वापरकरà¥à¤¤à¥à¤¯à¤¾à¤šà¥‡ परवलीशबà¥à¤¦ किंवा PIN निशà¥à¤šà¤¿à¤¤ केले गेले नाही"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° उघडणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ पासवरà¥à¤¡ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ करा"
-#: ../gp11/gp11-misc.c:219
-msgid "The user is of an invalid type"
-msgstr "अवैध पà¥à¤°à¤•à¤¾à¤°à¤šà¤¾ वापरकरà¥à¤¤à¤¾"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+msgid "Enter password to unlock the public key"
+msgstr "सारà¥à¤µà¤œà¤¨à¥€à¤• किलà¥à¤²à¥€ उडणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ पासवरà¥à¤¡ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ करा"
-#: ../gp11/gp11-misc.c:221
-msgid "Another user is already logged in"
-msgstr "अनà¥à¤¯ वापरकरà¥à¤¤à¤¾à¤¨à¥‡ आधिपासूनच दाखलन केले आहे"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "उघडणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ पासवरà¥à¤¡ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ करा"
-#: ../gp11/gp11-misc.c:223
-msgid "Too many users of different types logged in"
-msgstr "à¤à¤•à¤¾à¤ªà¥‡à¤•à¥à¤·à¤¾ जासà¥à¤¤ पà¥à¤°à¤•à¤¾à¤°à¤šà¥‡ वापरकरà¥à¤¤à¥à¤¯à¤¾à¤¨à¥‡ दाखलन केले आहे"
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
+#, c-format
+msgid "An application wants access to the private key '%s', but it is locked"
+msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€à¤²à¤¾ वà¥à¤¯à¤•à¥à¤¤à¤¿à¤—त किलà¥à¤²à¥€ '%s' वापरायचे आहे, पण ते कà¥à¤²à¥‚पबंद आहे"
-#: ../gp11/gp11-misc.c:225
-msgid "Cannot import an invalid key"
-msgstr "अवैध कि पà¥à¤°à¤¾à¤ªà¥à¤¤ करू शकत नाही"
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
+#, c-format
+msgid "An application wants access to the certificate '%s', but it is locked"
+msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€à¤²à¤¾ पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° '%s' वापरायचे आहे, पण ते कà¥à¤²à¥‚प बंद आहे"
-#: ../gp11/gp11-misc.c:227
-msgid "Cannot import a key of the wrong size"
-msgstr "चूकीचे आकाराची कि पà¥à¤°à¤¾à¤ªà¥à¤¤ केले जाऊ शकत नाही"
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
+#, c-format
+msgid "An application wants access to the public key '%s', but it is locked"
+msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€à¤²à¤¾ सारà¥à¤µà¤œà¤¨à¥€à¤• किलà¥à¤²à¥€ '%s' वापरायचे आहे, पण ते कà¥à¤²à¥‚पबंद आहे"
-#: ../gp11/gp11-misc.c:229
-msgid "Cannot export because the key is invalid"
-msgstr "कि अवैध असलà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ पाठविले जाऊ शकत नाही"
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
+#, c-format
+msgid "An application wants access to '%s', but it is locked"
+msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€à¤²à¤¾ '%s' वापरायचे आहे, पण ते कà¥à¤²à¥‚पबंद आहे"
-#: ../gp11/gp11-misc.c:231
-msgid "Cannot export because the key is of the wrong size"
-msgstr "कि चा आकार चà¥à¤•à¥€à¤šà¤¾ असलà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ पाठविले जाऊ शकत नाही"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
+msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°/कि साठा विना कà¥à¤²à¥‚पबंद करा"
-#: ../gp11/gp11-misc.c:233
-msgid "Cannot export because the key is of the wrong type"
-msgstr "कि चा पà¥à¤°à¤•à¤¾à¤° चà¥à¤•à¥€à¤šà¤¾ असलà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ पाठविले जाऊ शकत नाही"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
+msgstr "पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°/कि साठा उघडणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ पासवरà¥à¤¡ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ करा"
-#: ../gp11/gp11-misc.c:235
-msgid "Unable to initialize the random number generator"
-msgstr "विनाकà¥à¤°à¤® संखà¥à¤¯à¤¾ निरà¥à¤®à¤¾à¤¤à¤¾ पà¥à¤°à¤¾à¤°à¤‚भ करणà¥à¤¯à¤¾à¤¸ अपयशी"
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, c-format
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€à¤²à¤¾ पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°/कि साठा '%s' वापरायचे आहे, पण ते कà¥à¤²à¥‚प बंद आहे"
-#: ../gp11/gp11-misc.c:237
-msgid "No random number generator available"
-msgstr "विनाकà¥à¤°à¤® संखà¥à¤¯à¤¾ निरà¥à¤®à¤¾à¤¤à¤¾ उपलबà¥à¤§ नाही"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
+msgstr "नवीन पासवरà¥à¤¡ आवशà¥à¤¯à¤•"
-#: ../gp11/gp11-misc.c:239
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "कà¥à¤°à¤¿à¤ªà¥à¤Ÿà¥‹ पदà¥à¤§à¤¤à¥€à¤¤ अवैध बाब समाविषà¥à¤Ÿà¥€à¤¤ आहे"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
+msgstr "सà¥à¤°à¤•à¥à¤·à¤¾ साठा करीता नवीन पासवरà¥à¤¡ आवशà¥à¤¯à¤•"
-#: ../gp11/gp11-misc.c:241
-msgid "Not enough space to store the result"
-msgstr "परिणाम संचयीत करणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ अतिरिकà¥à¤¤ जागा नाही"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
+#, c-format
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
+"'%s' ला पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° किंवा किज साठविणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾ तयार करणà¥à¤¯à¤¾à¤•à¤°à¥€à¤¤à¤¾, पासवरà¥à¤¡ आवशà¥à¤¯à¤• आहे"
-#: ../gp11/gp11-misc.c:243
-msgid "The saved state is invalid"
-msgstr "संचयीत सà¥à¤¥à¤¿à¤¤à¥€ अवैध आहे"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "कीरिंग पासवरà¥à¤¡ बदला"
-#: ../gp11/gp11-misc.c:245
-msgid "The information is sensitive and cannot be revealed"
-msgstr "माहिती संवेदनशील आहे व उघडकीस केले जाऊ शकत नाही"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "सà¥à¤°à¤•à¥à¤·à¤¾ साठा करीता नवीन पासवरà¥à¤¡ आवशà¥à¤¯à¤•"
-#: ../gp11/gp11-misc.c:247
-msgid "The state cannot be saved"
-msgstr "सà¥à¤¥à¤¿à¤¤à¥€ संचयीत केले जाऊ शकत नाही"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
+#, c-format
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
+msgstr ""
-#: ../gp11/gp11-misc.c:249
-msgid "The module has not been initialized"
-msgstr "विभाग पà¥à¤°à¤¾à¤°à¤‚भ केले गेले नाही"
+#: ../tool/gkr-tool.c:102
+#, c-format
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
-#: ../gp11/gp11-misc.c:251
-msgid "The module has already been initialized"
-msgstr "घटक आधिपासूनच पà¥à¤°à¤¾à¤°à¤‚भ केले गेले आहे"
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
-#: ../gp11/gp11-misc.c:253
-msgid "Cannot lock data"
-msgstr "माहिती कà¥à¤²à¥‚पबंद सकà¥à¤·à¤® नाही"
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
-#: ../gp11/gp11-misc.c:255
-msgid "The data cannot be locked"
-msgstr "माहिती कà¥à¤²à¥‚पबंद केले जाऊ शकत नाही"
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
+msgstr "पासवरà¥à¤¡ विनाà¤à¤‚कà¥à¤°à¥€à¤ªà¥à¤Ÿà¤°à¥€à¤¤à¥à¤¯à¤¾ संचयीत करा?"
-#: ../gp11/gp11-misc.c:257
-msgid "The signature request was rejected by the user"
-msgstr "सà¥à¤µà¤¾à¤•à¥à¤·à¤°à¥€ विनंती वापरकरà¥à¤¤à¤¾ दà¥à¤µà¤¾à¤°à¥‡ नकारले गेली"
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
+"रिकामे पासवरà¥à¤¡ वापरणà¥à¤¯à¤¾à¤šà¥‡ निवडलà¥à¤¯à¤¾à¤¸, तà¥à¤®à¤šà¥‡ संचयीत पासवरà¥à¤¡ सà¥à¤°à¤•à¥à¤·à¥€à¤¤à¤°à¤¿à¤¤à¥à¤¯à¤¾ à¤à¤‚कà¥à¤°à¥€à¤ªà¥à¤Ÿ केले जाणार "
+"नाही. तà¥à¤®à¤šà¥à¤¯à¤¾ फाइल करीता पà¥à¤°à¤µà¥‡à¤¶ पà¥à¤°à¤¾à¤ªà¥à¤¯ कोणतà¥à¤¯à¤¾à¤¹à¥€ वापरकरà¥à¤¤à¥à¤¯à¤¾à¤¸ पà¥à¤°à¤µà¥‡à¤¶ मिळू शकतो."
-#: ../gp11/gp11-misc.c:261
-msgid "Unknown error"
-msgstr "अपरिचीत तà¥à¤°à¥à¤Ÿà¥€"
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
+msgstr "असà¥à¤°à¤•à¥à¤·à¥€à¤¤ संचयन"
-#: ../library/gnome-keyring-utils.c:168
-msgid "Access Denied"
-msgstr "पà¥à¤°à¤µà¥‡à¤¶ नाही"
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr "परवलीचे शबà¥à¤¦ जà¥à¤³à¤¤ नाहीत."
-#: ../library/gnome-keyring-utils.c:170
-msgid "The gnome-keyring-daemon application is not running."
-msgstr "gnome-keyring-daemon अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— कारà¥à¤¯à¤°à¤¤ नाही."
+#: ../ui/gku-prompt-tool.c:649
+msgid "Password cannot be blank"
+msgstr "पासवरà¥à¤¡ रिकामा असू शकत नाही"
-#: ../library/gnome-keyring-utils.c:172
-msgid "Error communicating with gnome-keyring-daemon"
-msgstr "gnome-keyring-daemon शी संपरà¥à¤• साधतेवेळी तà¥à¤°à¥à¤Ÿà¥€ आढळली"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:174
-msgid "A keyring with that name already exists"
-msgstr "तà¥à¤¯à¤¾ नावाची किरींग आधिपासूनच असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ आहे"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:176
-msgid "Programmer error: The application sent invalid data."
-msgstr "पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤®à¤° तà¥à¤°à¥à¤Ÿà¥€: अनà¥à¤ªà¥à¤°à¥‹à¤¯à¤—ने अवैध माहिती पाठविली."
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
+msgstr "नवीन पासवरà¥à¤¡ कà¥à¤·à¤®à¤¤à¤¾"
-#: ../library/gnome-keyring-utils.c:178
-msgid "No matching results"
-msgstr "जà¥à¤³à¤¤à¥‡ परिणाम नाही"
+#: ../ui/gku-prompt.ui.h:2
+#, fuzzy
+msgid "_Application:"
+msgstr "सà¥à¤¥à¤¾à¤¨ (_L):"
-#: ../library/gnome-keyring-utils.c:180
-msgid "A keyring with that name does not exist."
-msgstr "तà¥à¤¯à¤¾à¤¨à¤¾à¤µà¤¾à¤šà¥€ कीरींग असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ नाही."
+#: ../ui/gku-prompt.ui.h:3
+#, fuzzy
+msgid "_Confirm:"
+msgstr "पासवरà¥à¤¡ पकà¥à¤•à¤¾ करा(_C):"
-#: ../library/gnome-keyring-utils.c:187
-msgid "The keyring has already been unlocked."
-msgstr "किरींग आधिपासूनच विनाकà¥à¤²à¥‚प केले गेले."
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
-#: ../pkcs11/gck/gck-certificate.c:716
-msgid "Unnamed Certificate"
-msgstr "निनावी पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°"
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr ""
-#: ../pkcs11/ssh-store/gck-ssh-private-key.c:328
-msgid "Couldn't parse public SSH key"
-msgstr "सारà¥à¤µà¤œà¤£à¥€à¤• SSH कि वाचणे शकà¥à¤¯ नाही"
+#: ../ui/gku-prompt.ui.h:6
+#, fuzzy
+msgid "_Old Password:"
+msgstr "जà¥à¤¨à¤¾ पासवरà¥à¤¡(_O):"
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "पासवरà¥à¤¡(_P):"
diff --git a/po/ms.po b/po/ms.po
index 5a20c9e9..7fbb3d52 100644
--- a/po/ms.po
+++ b/po/ms.po
@@ -5,119 +5,62 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-keyring&component=general\n"
-"POT-Creation-Date: 2010-02-18 18:02+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2010-05-14 22:56+0800\n"
"Last-Translator: Ahmed Noor Kader Mustajir Md Eusoff <sir.ade@gmail.com>\n"
"Language-Team: Projek Gabai <gabai-penyumbang@lists.sourceforge.net>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../daemon/data/gnome-keyring.schemas.in.h:1
-msgid "This option enables the PKCS#11 component in the gnome-keyring daemon. It only takes effect during startup with gnome-session, (ie: when the user logs in). This setting may be overridden when certain command line arguments are passed to the daemon."
-msgstr ""
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:2
-msgid "This option enables the SSH agent in the gnome-keyring daemon. It only takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). This setting may be overridden when certain command line arguments are passed to the daemon."
-msgstr ""
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:3
-msgid "This option enables the secret service component in the gnome-keyring daemon. It only takes effect during startup with gnome-session, (ie: when the user logs in). This setting may be overridden when certain command line arguments are passed to the daemon."
-msgstr ""
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:4
-msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-msgstr ""
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:5
-msgid "Whether the gnome-keyring SSH agent is enabled."
-msgstr ""
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:6
-msgid "Whether the gnome-keyring secret service is enabled."
-msgstr ""
-
#. TRANSLATORS: This is the label for an keyring created without a label
-#: ../daemon/dbus/gkd-secret-change.c:77
-#: ../daemon/dbus/gkd-secret-create.c:73
-#: ../daemon/dbus/gkd-secret-unlock.c:119
-#: ../daemon/login/gkd-login.c:584
-#: ../pkcs11/secret-store/gck-secret-collection.c:320
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Tidak bernama"
-#: ../daemon/dbus/gkd-secret-change.c:85
+#: ../daemon/dbus/gkd-secret-change.c:86
msgid "Change Keyring Password"
msgstr "Tukar Katalaluan Keyring"
-#: ../daemon/dbus/gkd-secret-change.c:87
+#: ../daemon/dbus/gkd-secret-change.c:88
#, c-format
msgid "Choose a new password for the '%s' keyring"
msgstr "Pilih katalaluan bagi '%s' keyring baru"
-#: ../daemon/dbus/gkd-secret-change.c:91
+#: ../daemon/dbus/gkd-secret-change.c:92
#, c-format
-msgid "An application wants to change the password for the '%s' keyring. Choose the new password you want to use for it."
-msgstr "Aplikasi mahu menukar katalaluan untuk '%s' keyring . Anda hendaklah memilih katalaluan yang anda ingin gunakan untuknya."
+msgid ""
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
+msgstr ""
+"Aplikasi mahu menukar katalaluan untuk '%s' keyring . Anda hendaklah "
+"memilih katalaluan yang anda ingin gunakan untuknya."
-#: ../daemon/dbus/gkd-secret-change.c:110
+#: ../daemon/dbus/gkd-secret-change.c:111
msgid "The original password was incorrect"
msgstr "Katalaluan yang asal tidak betul"
-#: ../daemon/dbus/gkd-secret-create.c:77
+#: ../daemon/dbus/gkd-secret-create.c:83
msgid "New Keyring Password"
msgstr "Katalaluan Keyring Baru"
-#: ../daemon/dbus/gkd-secret-create.c:78
+#: ../daemon/dbus/gkd-secret-create.c:84
msgid "Choose password for new keyring"
msgstr "Pilih katalaluan bagi keyring baru"
-#: ../daemon/dbus/gkd-secret-create.c:80
+#: ../daemon/dbus/gkd-secret-create.c:86
#, c-format
-#| msgid ""
-#| "An unknown application wants to create a new keyring called '%s'. You "
-#| "have to choose the password you want to use for it."
-msgid "An application wants to create a new keyring called '%s'. Choose the password you want to use for it."
-msgstr "Aplikasi mahu mencipta keyring baru dipanggil '%s'. Anda hendaklah memilih katalaluan yang anda ingin gunakan untuknya."
-
-#: ../daemon/dbus/gkd-secret-unlock.c:134
-#| msgid "Unlock Keyring"
-msgid "Unlock Login Keyring"
-msgstr "Buka Keyring Log Masuk"
-
-#: ../daemon/dbus/gkd-secret-unlock.c:136
-#| msgid "Enter password for default keyring to unlock"
-msgid "Enter password for to unlock your login keyring"
-msgstr "Masukkan katalaluan untuk dibuka keyring "
-
-#: ../daemon/dbus/gkd-secret-unlock.c:140
-msgid "The password you use to log in to your computer no longer matches that of your login keyring."
-msgstr ""
-
-#: ../daemon/dbus/gkd-secret-unlock.c:142
-msgid "The login keyring did not get unlocked when you logged into your computer."
+msgid ""
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
-
-#: ../daemon/dbus/gkd-secret-unlock.c:183
-msgid "Unlock Keyring"
-msgstr "Buka Keyring"
-
-#: ../daemon/dbus/gkd-secret-unlock.c:185
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "Masukkan katalaluan bagi keyring '%s' untuk dibuka"
-
-#: ../daemon/dbus/gkd-secret-unlock.c:189
-#, c-format
-#| msgid ""
-#| "An unknown application wants access to the keyring '%s', but it is locked"
-msgid "An application wants access to the keyring '%s', but it is locked"
-msgstr "Aplikasi hendak mengakses keyring '%s', tetapi ianya dikunci"
-
-#: ../daemon/dbus/gkd-secret-unlock.c:219
-msgid "The unlock password was incorrect"
-msgstr "Katalaluan untuk buka tidak betul"
+"Aplikasi mahu mencipta keyring baru dipanggil '%s'. Anda hendaklah memilih "
+"katalaluan yang anda ingin gunakan untuknya."
#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
msgid "Certificate and Key Storage"
@@ -143,168 +86,48 @@ msgstr "GNOME Keyring: Agen SSH"
msgid "SSH Key Agent"
msgstr "Agen Kekunci SSH"
-#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:174
-msgid "Login"
-msgstr "Log masuk"
-
-#: ../daemon/login/gkd-login.c:596
-#, c-format
-msgid "Unlock password for: %s"
-msgstr "Buka katalaluan untu: %s"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:294
-msgid "New Password Required"
-msgstr "Katalaluan Baru Diperlukan"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:295
-msgid "New password required for secure storage"
-msgstr ""
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:297
-#, c-format
-msgid "In order to prepare '%s' for storage of certificates or keys, a password is required"
-msgstr ""
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:360
-msgid "Unlock private key"
-msgstr "Buka kekunci peribadi"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:362
-#| msgid "Unlock Keyring"
-msgid "Unlock certificate"
-msgstr "Buka sijil"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:364
-msgid "Unlock public key"
-msgstr "Buka kekunci awam"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:366
-#| msgid "Unlock Keyring"
-msgid "Unlock"
-msgstr "Membuka"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:375
-#: ../gcr/gcr-importer.c:436
-#| msgid "Enter password for default keyring to unlock"
-msgid "Enter password to unlock the private key"
-msgstr "Masukkan katalaluan untuk dibuka kekunci peribadi"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:377
-#: ../gcr/gcr-importer.c:438
-msgid "Enter password to unlock the certificate"
-msgstr "Masukkan katalaluan untuk membuka sijil"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:379
-#| msgid "Enter password for default keyring to unlock"
-msgid "Enter password to unlock the public key"
-msgstr "Masukkan katalaluan untuk dibuka kekunci umum"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:381
-#: ../gcr/gcr-importer.c:440
-#| msgid "Enter password for keyring '%s' to unlock"
-msgid "Enter password to unlock"
-msgstr "Masukkan katalaluan untuk dibuka"
-
-#. TRANSLATORS: The private key is locked
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:391
-#, c-format
-#| msgid ""
-#| "An unknown application wants access to the keyring '%s', but it is locked"
-msgid "An application wants access to the private key '%s', but it is locked"
-msgstr "Aplikasi hendak mengakses kekunci peribadi '%s', tetapi ianya dikunci"
-
-#. TRANSLATORS: The certificate is locked
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:394
-#, c-format
-#| msgid ""
-#| "An unknown application wants access to the keyring '%s', but it is locked"
-msgid "An application wants access to the certificate '%s', but it is locked"
-msgstr "Aplikasi hendak mengakses sijil '%s', tetapi ianya dikunci"
-
-#. TRANSLATORS: The public key is locked
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:397
-#, c-format
-#| msgid ""
-#| "An unknown application wants access to the keyring '%s', but it is locked"
-msgid "An application wants access to the public key '%s', but it is locked"
-msgstr "Aplikasii hendak mengakses kekunci awam '%s', tetapi ianya dikunci"
-
-#. TRANSLATORS: The object '%s' is locked
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:400
-#, c-format
-#| msgid ""
-#| "An unknown application wants access to the keyring '%s', but it is locked"
-msgid "An application wants access to '%s', but it is locked"
-msgstr "Aplikasi hendak mengakses '%s', tetapi ianya dikunci"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: GPG Agent"
+msgstr "GNOME Keyring: Agen SSH"
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:595
-msgid "Unlock certificate/key storage"
-msgstr "Buka sijil/kekunci penyimpanan"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+#, fuzzy
+msgid "GPG Password Agent"
+msgstr "Kekuatan katalaluan baru"
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:596
-msgid "Enter password to unlock the certificate/key storage"
-msgstr ""
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+#, fuzzy
+msgid "Unknown"
+msgstr "Ralat tidak diketahui"
-#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:599
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-#| msgid ""
-#| "An unknown application wants access to the keyring '%s', but it is locked"
-msgid "An application wants access to the certificate/key storage '%s', but it is locked"
-msgstr "Aplikasii hendak mengakses sijil/kekunci simpanan '%s', tetapi ianya dikunci"
-
-#: ../daemon/prompt/gkd-prompt-tool.c:393
-msgid "Store passwords unencrypted?"
+msgid "PGP Key: %s"
msgstr ""
-#: ../daemon/prompt/gkd-prompt-tool.c:394
-msgid "By choosing to use a blank password, your stored passwords will not be safely encrypted. They will be accessible by anyone with access to your files."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-#: ../daemon/prompt/gkd-prompt-tool.c:401
-msgid "Use Unsafe Storage"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
msgstr ""
-#: ../daemon/prompt/gkd-prompt-tool.c:431
-msgid "Passwords do not match."
-msgstr "Katalaluan tidak sama."
-
-#: ../daemon/prompt/gkd-prompt-tool.c:441
-msgid "Password cannot be blank"
-msgstr "Katalaluan mesti tidak kosong"
-
-#: ../daemon/prompt/gkd-prompt.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-#: ../daemon/prompt/gkd-prompt.ui.h:2
-msgid "New password strength"
-msgstr "Kekuatan katalaluan baru"
-
-#: ../daemon/prompt/gkd-prompt.ui.h:3
-msgid "_Application:"
-msgstr "_Aplikasi:"
-
-#: ../daemon/prompt/gkd-prompt.ui.h:4
-msgid "_Confirm:"
-msgstr ""
-
-#: ../daemon/prompt/gkd-prompt.ui.h:5
-msgid "_Details:"
-msgstr "_Butiran:"
-
-#: ../daemon/prompt/gkd-prompt.ui.h:6
-msgid "_Name:"
-msgstr "_Nama:"
-
-#: ../daemon/prompt/gkd-prompt.ui.h:7
-msgid "_Old Password:"
-msgstr "_Katalaluan lama:"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+#, fuzzy
+msgid "Forget this password when I log out"
+msgstr "Kunci keyring ini bila saya log keluar"
-#: ../daemon/prompt/gkd-prompt.ui.h:8
-msgid "_Password:"
-msgstr "_Katalaluan:"
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
+msgstr "Log masuk"
#: ../egg/egg-oid.c:41
msgid "Domain Component"
@@ -315,8 +138,8 @@ msgid "User ID"
msgstr "ID Pengguna"
#: ../egg/egg-oid.c:46
-msgid "Email"
-msgstr "Email"
+msgid "Email Address"
+msgstr ""
#: ../egg/egg-oid.c:54
msgid "Date of Birth"
@@ -347,8 +170,6 @@ msgid "Surname"
msgstr "Nama keluarga"
#: ../egg/egg-oid.c:69
-#: ../gcr/gcr-certificate-basics-widget.ui.h:18
-#: ../gcr/gcr-certificate-details-widget.c:322
msgid "Serial Number"
msgstr "Nombor Siri"
@@ -408,859 +229,285 @@ msgstr ""
msgid "RSA"
msgstr "RSA"
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "MD2 dengan RSA"
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "MD5 dengan RSA"
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "SHA1 dengan RSA"
-#: ../egg/egg-oid.c:107
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "SHA1 dengan DSA"
-#: ../egg/egg-spawn.c:273
-#, c-format
-msgid "Unexpected error in select() reading data from a child process (%s)"
-msgstr ""
-
-#: ../egg/egg-spawn.c:320
-#, c-format
-msgid "Unexpected error in waitpid() (%s)"
-msgstr ""
-
-#: ../gcr/gcr-certificate-basics-widget.c:59
-msgid "<i>Not Part of Certificate</i>"
-msgstr "<i>Bukan Sebahagian Dari Sijil</i>"
-
-#: ../gcr/gcr-certificate-basics-widget.c:80
-msgid "<i>unknown</i>"
-msgstr "<i>tidak diketahui</i>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:1
-msgid "<Not Part of Certificate>"
-msgstr "<bukan sebahagian dari sijil"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:2
-msgid "<b>Fingerprints</b>"
-msgstr "<b>Fingerprints</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:3
-msgid "<b>Issued By</b>"
-msgstr "<b>Dikeluarkan Oleh</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:4
-msgid "<b>Issued To</b>"
-msgstr "<b>Dikeluarkan Kepada</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:5
-msgid "<b>This certificate has been verified for the following uses:</b>"
-msgstr ""
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:6
-msgid "<b>Validity</b>"
-msgstr "<b>Sah</b>"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:7
-msgid "Common Name (CN)"
-msgstr "Nama Umum (CN)"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:8
-msgid "Email Recipient Certificate"
-msgstr ""
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:9
-msgid "Email Signer Certificate"
-msgstr ""
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:10
-msgid "Expires On"
-msgstr "Luput Pada"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:11
-msgid "Issued On"
-msgstr "Dikeluarkan Pada"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:12
-msgid "MD5 Fingerprint"
-msgstr "MD5 Fingerprint"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:13
-msgid "Organization (O)"
-msgstr "Organisasi (O)"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:14
-msgid "Organizational Unit (OU)"
-msgstr "Unit Organisasi (OU)"
-
-#: ../gcr/gcr-certificate-basics-widget.ui.h:15
-msgid "SHA1 Fingerprint"
-msgstr "SHA1 Fingerprint"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+#, fuzzy
+msgid "Server Authentication"
+msgstr "Sijil SSL Pelayan"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:16
-msgid "SSL Client Certificate"
+#: ../egg/egg-oid.c:108
+#, fuzzy
+msgid "Client Authentication"
msgstr "Sijil SSL Pelanggan"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:17
-msgid "SSL Server Certificate"
-msgstr "Sijil SSL Pelayan"
-
-#: ../gcr/gcr-certificate-details-widget.c:207
-msgid "Extension"
-msgstr "Sambungan"
-
-#: ../gcr/gcr-certificate-details-widget.c:212
-msgid "Identifier"
-msgstr "Pengenalan"
-
-#: ../gcr/gcr-certificate-details-widget.c:222
-msgid "Value"
-msgstr "Nilai"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "Critical"
-msgstr "Kritikal"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "Yes"
-msgstr "Ya"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "No"
-msgstr "Tidak"
-
-#. The subject
-#: ../gcr/gcr-certificate-details-widget.c:303
-msgid "Subject Name"
-msgstr "Nama Subjek"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-details-widget.c:307
-msgid "Issuer Name"
-msgstr "Nama Pengeluar"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-details-widget.c:311
-msgid "Issued Certificate"
-msgstr "Sijil Dikeluarkan"
-
-#: ../gcr/gcr-certificate-details-widget.c:316
-msgid "Version"
-msgstr "Versi"
-
-#: ../gcr/gcr-certificate-details-widget.c:329
-msgid "Not Valid Before"
-msgstr "Tidak Sah Sebelum"
-
-#: ../gcr/gcr-certificate-details-widget.c:334
-msgid "Not Valid After"
-msgstr "Tidak Sah Selepas"
-
-#. Signature
-#: ../gcr/gcr-certificate-details-widget.c:339
-#: ../gcr/gcr-certificate-details-widget.c:355
-msgid "Signature"
-msgstr "Tandatangan"
-
-#: ../gcr/gcr-certificate-details-widget.c:343
-msgid "Signature Algorithm"
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
msgstr ""
-#: ../gcr/gcr-certificate-details-widget.c:348
-msgid "Signature Parameters"
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
msgstr ""
-#. Public Key Info
-#: ../gcr/gcr-certificate-details-widget.c:359
-msgid "Public Key Info"
-msgstr "Info Kekunci Umum"
-
-#: ../gcr/gcr-certificate-details-widget.c:363
-msgid "Key Algorithm"
-msgstr "Algoritma Kekunci"
-
-#: ../gcr/gcr-certificate-details-widget.c:368
-msgid "Key Parameters"
-msgstr "Parameter Kekunci"
-
-#: ../gcr/gcr-certificate-details-widget.c:375
-msgid "Key Size"
-msgstr "Saiz Kekunci"
-
-#: ../gcr/gcr-certificate-details-widget.c:382
-#: ../gcr/gcr-parser.c:202
-msgid "Public Key"
-msgstr "Kekunci Umum"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-details-widget.c:386
-msgid "Fingerprints"
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
msgstr ""
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-msgstr "<span size='large' weight='bold'>Import Sijil dan Kekunci</span>"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Maklumat Import:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Katalaluan:"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Lock this keyring after"
-msgstr "Kunci keyring ini selepas"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring if idle for"
-msgstr ""
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring when I log out"
-msgstr "Kunci keyring ini bila saya log keluar"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "minutes"
-msgstr "minit"
-
-#: ../gcr/gcr-importer.c:163
-#: ../gcr/gcr-parser.c:1573
-#: ../gp11/gp11-misc.c:98
-msgid "The operation was cancelled"
-msgstr "Operasi dibatalkan"
-
-#: ../gcr/gcr-importer.c:255
-#, c-format
-msgid "No location available to import to"
-msgstr "Tiada lokasi untuk import kepada"
-
-#: ../gcr/gcr-importer.c:404
-msgid "Import Certificates/Keys"
-msgstr "Import Sijil/Kekunci"
-
-#: ../gcr/gcr-importer.c:411
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Pilih lokasi untuk menyimpan sijil/kekunci yang diimport."
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:449
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Untuk mengimport kekunci peribadi, ianya mesti dibuka"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:452
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Untuk mengimport sijil, ianya mesti dibuka"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:455
-msgid "In order to import the data, it must be unlocked"
-msgstr "Untuk mengimport data tersebut, ianya mesti dibuka"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:460
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Untuk mengimport kekunci peribadi '%s', ianya mesti dibuka"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:463
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Untuk mengimport sijil '%s', ianya mesti dibuka"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:466
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Untuk mengimport '%s', ianya mesti dibuka"
-
-#: ../gcr/gcr-parser.c:196
-msgid "Private Key"
-msgstr "Kekunci Peribadi"
-
-#: ../gcr/gcr-parser.c:199
-msgid "Certificate"
-msgstr "Sijil"
-
-#: ../gcr/gcr-parser.c:1576
-msgid "Unrecognized or unsupported data."
-msgstr ""
-
-#: ../gcr/gcr-parser.c:1579
-msgid "Could not parse invalid or corrupted data."
-msgstr ""
-
-#: ../gcr/gcr-parser.c:1582
-msgid "The data is locked"
-msgstr "Data dikunci"
-
-#: ../gp11/gp11-misc.c:101
-msgid "Insufficient memory available"
-msgstr "Memori tidak cukup"
-
-#: ../gp11/gp11-misc.c:103
-msgid "The specified slot ID is not valid"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:105
-msgid "Internal error"
-msgstr "Ralat Dalaman"
-
-#: ../gp11/gp11-misc.c:107
-msgid "The operation failed"
-msgstr "Operasi gagal"
-
-#: ../gp11/gp11-misc.c:109
-msgid "Invalid arguments"
-msgstr "Hujah tidak sah"
-
-#: ../gp11/gp11-misc.c:111
-msgid "The module cannot create needed threads"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:113
-msgid "The module cannot lock data properly"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:115
-msgid "The field is read-only"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:117
-msgid "The field is sensitive and cannot be revealed"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:119
-msgid "The field is invalid or does not exist"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:121
-msgid "Invalid value for field"
+msgid "Unexpected error in select() reading data from a child process (%s)"
msgstr ""
-#: ../gp11/gp11-misc.c:123
-msgid "The data is not valid or unrecognized"
-msgstr "Data tidak sah atau tidak dikenali"
-
-#: ../gp11/gp11-misc.c:125
-msgid "The data is too long"
-msgstr "Data terlalu panjang"
-
-#: ../gp11/gp11-misc.c:127
-msgid "An error occurred on the device"
-msgstr "Ralat berlaku pada peranti"
-
-#: ../gp11/gp11-misc.c:129
-msgid "Insufficient memory available on device"
+#: ../egg/egg-spawn.c:320
+#, c-format
+msgid "Unexpected error in waitpid() (%s)"
msgstr ""
-#: ../gp11/gp11-misc.c:131
-msgid "The device was removed or unplugged"
-msgstr ""
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr "Sijil Tidak Bernama"
-#: ../gp11/gp11-misc.c:133
-msgid "The encrypted data is not valid or unrecognized"
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
msgstr ""
-#: ../gp11/gp11-misc.c:135
-msgid "The encrypted data is too long"
-msgstr "Data disulitkan terlalu panjang"
-
-#: ../gp11/gp11-misc.c:137
-msgid "This operation is not supported"
-msgstr "Operasi ini tidak disokong"
-
-#: ../gp11/gp11-misc.c:139
-msgid "The key is missing or invalid"
-msgstr "Kekunci hilang atau tidak sah"
-
-#: ../gp11/gp11-misc.c:141
-msgid "The key is the wrong size"
-msgstr "Saiz kekunci salah"
-
-#: ../gp11/gp11-misc.c:143
-msgid "The key is of the wrong type"
-msgstr "Kekunci adalah salah jenis"
-
-#: ../gp11/gp11-misc.c:145
-msgid "No key is needed"
-msgstr "Tiada kekunci diperlukan"
-
-#: ../gp11/gp11-misc.c:147
-msgid "The key is different than before"
-msgstr "Kekunci berbeza dari sebelumnya"
-
-#: ../gp11/gp11-misc.c:149
-msgid "A key is needed"
-msgstr "Kekunci diperlukan"
-
-#: ../gp11/gp11-misc.c:151
-msgid "Cannot include the key in digest"
-msgstr ""
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, c-format
+msgid "Unlock password for: %s"
+msgstr "Buka katalaluan untu: %s"
-#: ../gp11/gp11-misc.c:153
-msgid "This operation cannot be done with this key"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+msgid "The unlock password was incorrect"
+msgstr "Katalaluan untuk buka tidak betul"
-#: ../gp11/gp11-misc.c:155
-msgid "The key cannot be wrapped"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+msgid "Unlock Login Keyring"
+msgstr "Buka Keyring Log Masuk"
-#: ../gp11/gp11-misc.c:157
-msgid "Cannot export this key"
-msgstr "Tidak dapat import kekunci ini"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
+msgstr "Masukkan katalaluan untuk dibuka keyring "
-#: ../gp11/gp11-misc.c:159
-msgid "The crypto mechanism is invalid or unrecognized"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
msgstr ""
-#: ../gp11/gp11-misc.c:161
-msgid "The crypto mechanism has an invalid argument"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
msgstr ""
-#: ../gp11/gp11-misc.c:163
-msgid "The object is missing or invalid"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "Buka Keyring"
-#: ../gp11/gp11-misc.c:165
-msgid "Another operation is already taking place"
-msgstr "Terdapat operasi lain sedang dijalankan"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
+#, c-format
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "Masukkan katalaluan bagi keyring '%s' untuk dibuka"
-#: ../gp11/gp11-misc.c:167
-msgid "No operation is taking place"
-msgstr "Tiada operasi sedang dijalankan"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr "Aplikasi hendak mengakses keyring '%s', tetapi ianya dikunci"
-#: ../gp11/gp11-misc.c:169
-msgid "The password or PIN is incorrect"
-msgstr "Katalaluan atau PIN tidak betul"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
+msgstr "Buka kekunci peribadi"
-#: ../gp11/gp11-misc.c:171
-msgid "The password or PIN is invalid"
-msgstr "Katalaluan atau PIN tidak sah"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+msgid "Unlock certificate"
+msgstr "Buka sijil"
-#: ../gp11/gp11-misc.c:173
-msgid "The password or PIN is of an invalid length"
-msgstr "Katalaluan atau PIN mempunyai panjang tidak sah"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
+msgstr "Buka kekunci awam"
-#: ../gp11/gp11-misc.c:175
-msgid "The password or PIN has expired"
-msgstr "Katalaluan atau PIN sudah luput"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Membuka"
-#: ../gp11/gp11-misc.c:177
-#| msgid "Enter password for keyring '%s' to unlock"
-msgid "The password or PIN is locked"
-msgstr "Katalaluan atau PIN dikunci"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Masukkan katalaluan untuk dibuka kekunci peribadi"
-#: ../gp11/gp11-misc.c:179
-msgid "The session is closed"
-msgstr "Sesi ditutup"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Masukkan katalaluan untuk membuka sijil"
-#: ../gp11/gp11-misc.c:181
-msgid "Too many sessions are active"
-msgstr "Terlalu banyak sesi sedang aktif"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+msgid "Enter password to unlock the public key"
+msgstr "Masukkan katalaluan untuk dibuka kekunci umum"
-#: ../gp11/gp11-misc.c:183
-msgid "The session is invalid"
-msgstr "Sesi tidak sah"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Masukkan katalaluan untuk dibuka"
-#: ../gp11/gp11-misc.c:185
-msgid "The session is read-only"
-msgstr "Sesi hanya boleh baca sahaja"
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
+#, c-format
+msgid "An application wants access to the private key '%s', but it is locked"
+msgstr "Aplikasi hendak mengakses kekunci peribadi '%s', tetapi ianya dikunci"
-#: ../gp11/gp11-misc.c:187
-msgid "An open session exists"
-msgstr ""
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
+#, c-format
+msgid "An application wants access to the certificate '%s', but it is locked"
+msgstr "Aplikasi hendak mengakses sijil '%s', tetapi ianya dikunci"
-#: ../gp11/gp11-misc.c:189
-msgid "A read-only session exists"
-msgstr ""
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
+#, c-format
+msgid "An application wants access to the public key '%s', but it is locked"
+msgstr "Aplikasii hendak mengakses kekunci awam '%s', tetapi ianya dikunci"
-#: ../gp11/gp11-misc.c:191
-msgid "An administrator session exists"
-msgstr ""
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
+#, c-format
+msgid "An application wants access to '%s', but it is locked"
+msgstr "Aplikasi hendak mengakses '%s', tetapi ianya dikunci"
-#: ../gp11/gp11-misc.c:193
-msgid "The signature is bad or corrupted"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
+msgstr "Buka sijil/kekunci penyimpanan"
-#: ../gp11/gp11-misc.c:195
-msgid "The signature is unrecognized or corrupted"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
msgstr ""
-#: ../gp11/gp11-misc.c:197
-msgid "Certain required fields are missing"
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, c-format
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
msgstr ""
+"Aplikasii hendak mengakses sijil/kekunci simpanan '%s', tetapi ianya dikunci"
-#: ../gp11/gp11-misc.c:199
-msgid "Certain fields have invalid values"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
+msgstr "Katalaluan Baru Diperlukan"
-#: ../gp11/gp11-misc.c:201
-msgid "The device is not present or unplugged"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
msgstr ""
-#: ../gp11/gp11-misc.c:203
-msgid "The device is invalid or unrecognizable"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
+#, c-format
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
msgstr ""
-#: ../gp11/gp11-misc.c:205
-msgid "The device is write protected"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "Tukar Katalaluan Keyring"
-#: ../gp11/gp11-misc.c:207
-msgid "Cannot import because the key is invalid"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "Pilih katalaluan bagi keyring baru"
-#: ../gp11/gp11-misc.c:209
-msgid "Cannot import because the key is of the wrong size"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
+#, c-format
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
msgstr ""
-#: ../gp11/gp11-misc.c:211
-msgid "Cannot import because the key is of the wrong type"
+#: ../tool/gkr-tool.c:102
+#, c-format
+msgid "usage: gnome-keyring command [options]\n"
msgstr ""
-#: ../gp11/gp11-misc.c:213
-msgid "You are already logged in"
-msgstr "Anda telah log masuk"
-
-#: ../gp11/gp11-misc.c:215
-msgid "No user has logged in"
-msgstr "Tiada pengguna telah log masuk"
-
-#: ../gp11/gp11-misc.c:217
-msgid "The user's password or PIN is not set"
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
msgstr ""
-#: ../gp11/gp11-misc.c:219
-msgid "The user is of an invalid type"
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
msgstr ""
-#: ../gp11/gp11-misc.c:221
-msgid "Another user is already logged in"
-msgstr "Terdapat pengguna lain sudah log masuk"
-
-#: ../gp11/gp11-misc.c:223
-msgid "Too many users of different types logged in"
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
msgstr ""
-#: ../gp11/gp11-misc.c:225
-msgid "Cannot import an invalid key"
-msgstr "Tidak dapat mengimport kekunci tidak sah"
-
-#: ../gp11/gp11-misc.c:227
-msgid "Cannot import a key of the wrong size"
-msgstr "Tidak dapat mengimport kekunci mempunyai saiz salah"
-
-#: ../gp11/gp11-misc.c:229
-msgid "Cannot export because the key is invalid"
-msgstr "Tidak dapat export kerana kekunci tidak sah"
-
-#: ../gp11/gp11-misc.c:231
-msgid "Cannot export because the key is of the wrong size"
-msgstr "Tidak dapat export kerana kekunci mempunyai saiz salah"
-
-#: ../gp11/gp11-misc.c:233
-msgid "Cannot export because the key is of the wrong type"
-msgstr "Tidak dapat export kerana kekunci mempunyai jenis salah"
-
-#: ../gp11/gp11-misc.c:235
-msgid "Unable to initialize the random number generator"
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
msgstr ""
-#: ../gp11/gp11-misc.c:237
-msgid "No random number generator available"
-msgstr "Tidak ada logik bilangan rawak tersedia"
-
-#: ../gp11/gp11-misc.c:239
-msgid "The crypto mechanism has an invalid parameter"
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
msgstr ""
-#: ../gp11/gp11-misc.c:241
-msgid "Not enough space to store the result"
-msgstr "Tidak cukup ingatan untuk menyimpan keputusan"
-
-#: ../gp11/gp11-misc.c:243
-msgid "The saved state is invalid"
-msgstr "Keadaan ini tidak sah"
-
-#: ../gp11/gp11-misc.c:245
-msgid "The information is sensitive and cannot be revealed"
-msgstr "Informasi ini sensitif dan tidak boleh didedahkan"
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr "Katalaluan tidak sama."
-#: ../gp11/gp11-misc.c:247
-msgid "The state cannot be saved"
-msgstr "Keadaan tidak dapat simpan"
+#: ../ui/gku-prompt-tool.c:649
+msgid "Password cannot be blank"
+msgstr "Katalaluan mesti tidak kosong"
-#: ../gp11/gp11-misc.c:249
-msgid "The module has not been initialized"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
msgstr ""
-#: ../gp11/gp11-misc.c:251
-msgid "The module has already been initialized"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
msgstr ""
-#: ../gp11/gp11-misc.c:253
-msgid "Cannot lock data"
-msgstr "Tidak dapat kunci data"
-
-#: ../gp11/gp11-misc.c:255
-msgid "The data cannot be locked"
-msgstr "Data tidak dapat dikunci"
-
-#: ../gp11/gp11-misc.c:257
-msgid "The signature request was rejected by the user"
-msgstr ""
-
-#: ../gp11/gp11-misc.c:261
-msgid "Unknown error"
-msgstr "Ralat tidak diketahui"
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
+msgstr "Kekuatan katalaluan baru"
-#: ../pkcs11/gck/gck-certificate.c:740
-msgid "Unnamed Certificate"
-msgstr "Sijil Tidak Bernama"
+#: ../ui/gku-prompt.ui.h:2
+msgid "_Application:"
+msgstr "_Aplikasi:"
-#: ../pkcs11/ssh-store/gck-ssh-private-key.c:339
-msgid "Couldn't parse public SSH key"
+#: ../ui/gku-prompt.ui.h:3
+msgid "_Confirm:"
msgstr ""
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Aplikasi '%s' (%s) hendak mengakses keyring default, tetapi ianya dikunci"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Aplikasi '%s' (%s) hendak mengakses keyring '%s', tetapi ianya dikunci"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Aplikasi '%s' (%s) hendak mengakses keyring tak dikenali, tetapi ianya "
-#~ "dikunci"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-#~ msgstr ""
-#~ "Aplikasi '%s' hendak mengakses keyring default, tetapi ianya dikunci"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-#~ msgstr "Aplikasi '%s' hendak mengakses keyring '%s', tetapi ianya dikunci"
-
-#~ msgid ""
-#~ "The application '%s' wants access to an unknown keyring, but it is locked"
-#~ msgstr ""
-#~ "Aplikasi '%s' hendak mengakses keyring tak dikenali, tetapi ianya dikunci"
-
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Aplikasi tak dikenali mahu mengakses keyring default, tetapi ianya dikunci"
-
-#~ msgid ""
-#~ "An unknown application wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Aplikasi tak dikenali mahu mengakses ke keyring tak dikenali, tetapi ia "
-#~ "dikunci"
-
-#~ msgid "_Deny"
-#~ msgstr "_Nafikan"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplikasi '%s' (%s) mahu mencipta keyring baru dipanggil '%s'. Anda "
-#~ "hendaklah memilih katalaluan yang anda ingin gunakan untuknya."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplikasi '%s' (%s) mahu mencipta keyring default. Anda hendaklah memilih "
-#~ "katalaluan yang anda ingin gunakan untuknya."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplikasi '%s' mahu mencipta keyring baru dipanggil '%s'. Anda hendaklah "
-#~ "memilih katalaluan yang anda ingin gunakan untuknya."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplikasi '%s' mahu mencipta keyring default baru. Anda hendaklah memilih "
-#~ "katalaluan yang anda ingin gunakan untuknya."
-
-#~ msgid ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplikasi tak dikenali mahu mencipta keyring default baru. Anda hendaklah "
-#~ "memilih katalaluan yang anda ingin gunakan untuknya."
-
-#, fuzzy
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplikasi '%s' (%s) mahu mencipta keyring default. Anda hendaklah memilih "
-#~ "katalaluan yang anda ingin gunakan untuknya."
-
-#, fuzzy
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplikasi '%s' (%s) mahu mencipta keyring default. Anda hendaklah memilih "
-#~ "katalaluan yang anda ingin gunakan untuknya."
-
-#, fuzzy
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplikasi '%s' mahu mencipta keyring default baru. Anda hendaklah memilih "
-#~ "katalaluan yang anda ingin gunakan untuknya."
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr "_Butiran:"
-#, fuzzy
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplikasi '%s' mahu mencipta keyring default baru. Anda hendaklah memilih "
-#~ "katalaluan yang anda ingin gunakan untuknya."
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr "_Nama:"
-#, fuzzy
-#~ msgid ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplikasi tak dikenali mahu mencipta keyring default baru. Anda hendaklah "
-#~ "memilih katalaluan yang anda ingin gunakan untuknya."
+#: ../ui/gku-prompt.ui.h:6
+msgid "_Old Password:"
+msgstr "_Katalaluan lama:"
-#, fuzzy
-#~ msgid "Choose a new password for the default keyring. "
-#~ msgstr "Pilih katalaluan bagi keyring default"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-#~ msgstr ""
-#~ "Aplikasi '%s' (%s) mahu menyimpan katalaluan, tapi tiada keyring "
-#~ "default. Untuk menciptanya, anda hendaklah memilih katalaluan yang anda "
-#~ "ingin gunakan untuknya."
-
-#~ msgid ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "Aplikasi '%s' mahu menyimpan katalaluan, tapi tiada keyring default. "
-#~ "Untuk menciptanya, anda hendaklah memilih katalaluan yang anda ingin "
-#~ "gunakan untuknya."
-
-#~ msgid ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "Aplikasi tak dikenali mahu menyimpan katalaluan, tapi tiada keyring "
-#~ "default. Untuk menciptanya, anda hendaklah memilih katalaluan yang anda "
-#~ "ingin gunakan untuknya."
-
-#~ msgid "Create Default Keyring"
-#~ msgstr "Cipta Keyring Default"
-
-#~ msgid "Choose password for default keyring"
-#~ msgstr "Pilih katalaluan bagi keyring default"
-
-#~ msgid "Allow application access to keyring?"
-#~ msgstr "Izinkan aplikasi mengakses keyring?"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '%s' in %s."
-#~ msgstr "Aplikasi '%s' (%s) mahu mengakses katalaluan bagi '%s' pada %s."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '%s' in the "
-#~ "default keyring."
-#~ msgstr ""
-#~ "Aplikasi '%s' (%s) mahu mengakses katalaluan bagi '%s' pada keyring "
-#~ "default."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr ""
-#~ "Aplikasi '%s' (%s) mahu mengakses katalaluan bagi '%s' pada keyring tak "
-#~ "dikenali."
-
-#~ msgid "The application '%s' wants to access the password for '%s' in %s."
-#~ msgstr "Aplikasi '%s' mahu mengakses katalaluan bagi '%s' pada %s."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '%s' in the default "
-#~ "keyring."
-#~ msgstr ""
-#~ "Aplikasi '%s' mahu mengakses katalaluan bagi '%s' pada keyring default."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '%s' in an unknown "
-#~ "keyring."
-#~ msgstr ""
-#~ "Aplikasi '%s' mahu mengakses katalaluan bagi '%s' pada keyring tak "
-#~ "dikenali."
-
-#~ msgid "An unknown application wants to access the password for '%s' in %s."
-#~ msgstr "Aplikasi tak dikenali mahu mengakses katalaluan bagi '%s' pada %s."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '%s' in the "
-#~ "default keyring."
-#~ msgstr ""
-#~ "Aplikasi tak dikenali mahu mengakses katalaluan bagi '%s' pada keyring "
-#~ "default."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr ""
-#~ "Aplikasi tak dikenali mahu mengakses katalaluan bagi '%s' pada keyring "
-#~ "tak dikenali."
-
-#~ msgid "Allow access"
-#~ msgstr "Izin akses"
-
-#~ msgid "Allow _Once"
-#~ msgstr "Izin _Sekali"
-
-#~ msgid "_Always Allow"
-#~ msgstr "Sentiasa _Izin"
-
-#~ msgid "You must specify the type of request to run\n"
-#~ msgstr "Anda mesti nyatakan jenis permintaan untuk dilaksana\n"
-
-#~ msgid "Unknown request type\n"
-#~ msgstr "Jenis permintaan tidak diketahui\n"
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "_Katalaluan:"
diff --git a/po/nb.po b/po/nb.po
index bb17c09d..c02b3705 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring 3.1.x\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-12 20:52+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-12 20:52+0200\n"
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
"Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n"
@@ -22,7 +22,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Uten navn"
@@ -98,35 +98,34 @@ msgstr "GNOME nøkkelring: GPG-agent"
msgid "GPG Password Agent"
msgstr "GPG passordagent"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Ukjent"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP-nøkkel: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Oppgi passord"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Lås denne nøkkelringen hvis inaktiv i"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Glem dette passordet etter"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Glem dette passordet når jeg logger ut"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "PÃ¥logging"
@@ -170,7 +169,7 @@ msgstr "Vanlig navn"
msgid "Surname"
msgstr "Etternavn"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Serienummer"
@@ -226,7 +225,7 @@ msgstr "DN-kvalifikator"
msgid "Pseudonym"
msgstr "Pseudonym"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -242,7 +241,7 @@ msgstr "MD5 med RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 med DSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -281,585 +280,6 @@ msgstr "Uventet feil i select() under lesing av data fra underprosess (%s)"
msgid "Unexpected error in waitpid() (%s)"
msgstr "Uventet feil i waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Feil under lasting av PKCS#11-modul: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Ugyldig PKCS#11-modul: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Kunne ikke sette opp PKCS#11-modul: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "Kunne ikke initiere PKCS#11-modul: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "Kunne ikke initiere registrerte PKCS#11-moduler: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Navn"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Utstedt av"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "Utløper"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "Sertifikat"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>En fil med dette navnet eksisterer allerede.</b>\n"
-"\n"
-"Vil du erstatte denne med en ny fil?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "E_rstatt"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "Operasjonen ble avbrutt."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Eksporter sertifikat"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Sertifikatfiler"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "PEM-filer"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Annet navn"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "XMPP-adresse"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "E-post"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "X400-adresse"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Navn på katalog"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "Navn på EDI-partner"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "IP-adresse"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "Registrert ID"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Grunnleggende begrensninger"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "Sertifikatautoritet"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Ja"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Nei"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Maksimal lengde på sti"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Ubegrenset"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Utvidet bruk av nøkkel"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Tillatte formål"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Identifikator for subjektnøkkel"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Identifikator for nøkkel"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Digital signatur"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Metode for kryptering av nøkkel"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Metode for kryptering av data"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Nøkkelavtale"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Sertifikatsignatur"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Signatur for tilbaketrekkingsliste"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Bruk av nøkkel"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Bruksområder"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Alternative navn på subjekt"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Utvidelse"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Identifikator"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Verdi"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Kritisk"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Klarte ikke å eksportere sertifikatet."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "Identitet"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Verifisert av"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "Utløper"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Navn på subjekt"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Navn på utsteder"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Utstedt sertifikat"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Versjon"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Ikke gyldig før"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Ikke gyldig etter"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Fingeravtrykk for sertifikat"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Signatur"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Algoritme for signatur"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Parametere for signatur"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Informasjon om offentlig nøkkel"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Algoritme for nøkkel"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Nøkkelparametere"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Størrelse på nøkkel"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "SHA1-fingeravtrykk for nøkkel"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "Offentlig nøkkel"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_Detaljer"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "Kunne ikke vise «%s»"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "Kunne ikke vise fil"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Ã…rsak"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Kan ikke vise en fil av denne typen."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Importer sertifikater og nøkler"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Importer til:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Passord:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "PGP-nøkkel"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "Nøkkel-ID"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Gnupg-prosessen avsluttet med kode: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Gnupg-prosessen ble terminert med signal: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919 ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "Operasjonen ble avbrutt"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Oppgi passord for å låse opp privat nøkkel"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Oppgi passord for å låse opp sertifikat"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Oppgi passord for å låse opp"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Den private nøkkelen må låses opp før den importeres"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Sertifikatet må låses opp før det kan importeres"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Data må låses opp før de kan importeres"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Privat nøkkel «%s» må låses opp før den kan importeres"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Sertifikat «%s» må låses opp før det kan importeres"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "«%s» må låses opp før import"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Ingen adresse tilgjengelig for import"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Importer sertifikater/nøkler"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Velg en adresse for å lagre importerte sertifikater og nøkler."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Nøkkel"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Privat RSA-nøkkel"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Privat DSA-nøkkel"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "Privat nøkkel"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Offentlig DSA-nøkkel"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-msgstr[1] "%d bits"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Styrke"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algoritme"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Størrelse"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Fingeravtrykk"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "Ikke gjenkjente eller støttede data."
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "Kunne ikke lese ugyldige eller korrupte data."
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "Data er låst"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Klarte ikke å finne en plass å lagre festet sertifikat"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Lås opp denne nøkkelringen automatisk når jeg er logget inn"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Lås denne nøkkelringen etter"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Lås denne nøkkelringen hvis inaktiv i"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Lås denne nøkkelringen når jeg logger ut"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minutter"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "LÃ¥s opp: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "LÃ¥s opp"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "Passordet var feil"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Passord"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr "Innholdet i «%s» er låst. Du må oppgi korrekt passord for å vise innholdet."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr "Innholdet er låst. Du må oppgi korrekt passord for å vise innholdet."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "Visning av GCR-sertifikat og nøkkel"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Vis programmets versjon"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[fil …]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- Vis sertifikat- og nøkkelfiler"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "Sertifikatvisning"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "URI har ugyldig koding."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "URI har ikke skjema «pkcs11»."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "URI har uygyldig syntaks."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "URI har feil versjonsnummer."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Sertifikat uten navn"
@@ -869,7 +289,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Kunne ikke lese offentlig nøkkel for SSH"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Passord for å låse opp: %s"
@@ -927,10 +347,26 @@ msgstr "LÃ¥s opp sertifikat"
msgid "Unlock public key"
msgstr "Lås opp offentlig nøkkel"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "LÃ¥s opp"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Oppgi passord for å låse opp privat nøkkel"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Oppgi passord for å låse opp sertifikat"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Oppgi passord for å låse opp offentlig nøkkel"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Oppgi passord for å låse opp"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1018,11 +454,11 @@ msgstr "kommandoer: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Lagre passord ukryptert?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1032,15 +468,15 @@ msgstr ""
"krypteres på en trygg måte. De vil være tilgjengelig for alle som har "
"tilgang til dine filer."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Bruk utrygg lagring"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Passordene er ikke like."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Passordet kan ikke være tomt"
diff --git a/po/ne.po b/po/ne.po
index 37b884cb..1deee54e 100644
--- a/po/ne.po
+++ b/po/ne.po
@@ -11,10 +11,11 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.HEAD.ne\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-07-27 04:01+0100\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2007-10-11 14:32+0545\n"
"Last-Translator: Nabin Gautam <nabin@mpp.org.np>\n"
"Language-Team: Nepali <info@mpp.org.np>\n"
+"Language: ne\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -24,372 +25,517 @@ msgstr ""
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=n !=1\n"
-#: ../common/gkr-location.c:288
-#, c-format
-msgid "Removable Disk: %s"
-msgstr "हटाउन सकिने डिसà¥à¤•: %s"
-
-#: ../common/gkr-location.c:290
-msgid "Removable Disk"
-msgstr "हटाउन सकिने डिसà¥à¤•"
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
+msgstr ""
-#: ../common/gkr-location.c:431
-msgid "Home"
-msgstr "गृह"
+#: ../daemon/dbus/gkd-secret-change.c:86
+msgid "Change Keyring Password"
+msgstr "किरिङ पासवरà¥à¤¡ परिवरà¥à¤¤à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
-#. TRANSLATORS: this is the title for an item
-#: ../daemon/gnome-keyring-daemon-ops.c:188
-#, c-format
-msgid "Unlock password for %s keyring"
-msgstr "किरिङ %s का लागि पासवरà¥à¤¡ तालà¥à¤šà¤¾ खोलà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "किरिङ '%s' का लागि नयाठपासवरà¥à¤¡ रोजà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ।"
-#: ../daemon/gnome-keyring-daemon-ops.c:414
-#, c-format
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in the default keyring."
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) ले पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ किरिङमा '<object "
-"prop='name'/>' का लागि पासवरà¥à¤¡ पहà¥à¤à¤š पà¥à¤°à¤¾à¤ªà¥à¤¤ गरà¥à¤¨ चाहनà¥à¤› ।"
+"अजà¥à¤žà¤¾à¤¤ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ले '%s' किरिङका लागि पासवरà¥à¤¡ परिवरà¥à¤¤à¤¨ गरà¥à¤¨ चाहनॠ। तपाईà¤à¤²à¥‡ यसका लागि "
+"पà¥à¤°à¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨ चाहेको पासवरà¥à¤¡ रोजà¥à¤¨à¥ परà¥à¤¦à¤›t."
-#: ../daemon/gnome-keyring-daemon-ops.c:417
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in %s."
+#: ../daemon/dbus/gkd-secret-change.c:111
+msgid "The original password was incorrect"
msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) ले %s को '<object "
-"prop='name'/>' का लागि पासवरà¥à¤¡ पहà¥à¤à¤š पà¥à¤°à¤¾à¤ªà¥à¤¤ गरà¥à¤¨ चाहनà¥à¤› ।"
-#: ../daemon/gnome-keyring-daemon-ops.c:422
-#: ../daemon/gnome-keyring-daemon-ops.c:430
-#, c-format
+#: ../daemon/dbus/gkd-secret-create.c:83
+msgid "New Keyring Password"
+msgstr "नयाठकिरिङ पासवरà¥à¤¡"
+
+#: ../daemon/dbus/gkd-secret-create.c:84
+msgid "Choose password for new keyring"
+msgstr "नयाठकिरिङका लागि पासवरà¥à¤¡ रोजà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
+
+#: ../daemon/dbus/gkd-secret-create.c:86
+#, fuzzy, c-format
msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in the default keyring."
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' ले पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ किरिङमा '<object prop='name'/"
-">' का लागि पासवरà¥à¤¡ पहà¥à¤à¤š पà¥à¤°à¤¾à¤ªà¥à¤¤ गरà¥à¤¨ चाहनà¥à¤› ।"
+"à¤à¤‰à¤Ÿà¤¾ अजà¥à¤žà¤¾à¤¤ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ले '%s' नामको à¤à¤‰à¤Ÿà¤¾ नयाठकिरिङ सिरà¥à¤œà¤¨à¤¾ गरà¥à¤¨ चाहनà¥à¤› । तपाईà¤à¤²à¥‡ यसका "
+"लागिपà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨ चाहेको पासवरà¥à¤¡ रोजà¥à¤¨à¥ परà¥à¤¦à¤› ।"
-#: ../daemon/gnome-keyring-daemon-ops.c:425
-#: ../daemon/gnome-keyring-daemon-ops.c:433
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in %s."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+msgid "Certificate and Key Storage"
msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' ले %s मा '<object prop='name'/"
-">' का लागि पासवरà¥à¤¡ पहà¥à¤à¤š पà¥à¤°à¤¾à¤ªà¥à¤¤ गरà¥à¤¨ चाहनà¥à¤› ।"
-#: ../daemon/gnome-keyring-daemon-ops.c:438
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in the default keyring."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+msgid "GNOME Keyring: PKCS#11 Component"
msgstr ""
-"अजà¥à¤žà¤¾à¤¤ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ले पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ किरिङमा '<object prop='name'/"
-">' का लागि पासवरà¥à¤¡ पहà¥à¤à¤š गरà¥à¤¨ चाहनà¥à¤› ।"
-#: ../daemon/gnome-keyring-daemon-ops.c:440
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in %s."
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+msgid "GNOME Keyring: Secret Service"
msgstr ""
-"अजà¥à¤žà¤¾à¤¤ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ले %s मा '<object prop='name'/"
-">' का लागि पासवरà¥à¤¡ पहà¥à¤à¤š पà¥à¤°à¤¾à¤ªà¥à¤¤ गरà¥à¤¨ चाहनॠ।"
-#. And put together the ask request
-#: ../daemon/gnome-keyring-daemon-ops.c:446
-msgid "Allow access"
-msgstr "पहà¥à¤à¤š अनà¥à¤®à¤¤à¤¿ दिनà¥à¤¹à¥‹à¤¸à¥"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
+msgstr ""
-#: ../daemon/gnome-keyring-daemon-ops.c:446
-msgid "Allow application access to keyring?"
-msgstr "किरिङमा अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— पहà¥à¤à¤šà¤²à¤¾à¤ˆ अनà¥à¤®à¤¤à¤¿ दिनà¥à¤¹à¥à¤¨à¥à¤› ?"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+msgid "GNOME Keyring: SSH Agent"
+msgstr ""
-#: ../daemon/gnome-keyring-daemon-ops.c:544
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) ले पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ किरिङमा पहà¥à¤à¤š पà¥à¤°à¤¾à¤ªà¥à¤¤ गरà¥à¤¨ चाहनà¥à¤›, तर यसलाई तालà¥à¤šà¤¾ लगाइà¤à¤•à¥‹ छ"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
+msgstr ""
-#: ../daemon/gnome-keyring-daemon-ops.c:548
-#, c-format
-msgid "The application '%s' (%s) wants access to the keyring '%s', but it is locked"
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) ले किरिङ '%s' मा पहà¥à¤à¤š पà¥à¤°à¤¾à¤ªà¥à¤¤ गरà¥à¤¨ चाहेको छ, तर यसलाई तालà¥à¤šà¤¾ लगाइà¤à¤•à¥‹ छ"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+msgid "GNOME Keyring: GPG Agent"
+msgstr ""
-#: ../daemon/gnome-keyring-daemon-ops.c:554
-#: ../daemon/gnome-keyring-daemon-ops.c:564
-#, c-format
-msgid "The application '%s' wants access to the default keyring, but it is locked"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+#, fuzzy
+msgid "GPG Password Agent"
+msgstr "नयाठपासवरà¥à¤¡à¤•à¥‹ सकà¥à¤·à¤®à¤¤à¤¾"
+
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+msgid "Unknown"
msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' ले पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ किरिङमा पहà¥à¤à¤š पà¥à¤°à¤¾à¤ªà¥à¤¤ गरà¥à¤¨ चाहेको छ, तर यसलाई तालà¥à¤šà¤¾ "
-"लगाइà¤à¤•à¥‹ छ"
-#: ../daemon/gnome-keyring-daemon-ops.c:558
-#: ../daemon/gnome-keyring-daemon-ops.c:569
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' ले किरिङ '%s' मा पहà¥à¤à¤š पà¥à¤°à¤¾à¤ªà¥à¤¤ गरà¥à¤¨ चाहेको छ, तर यसलाई तालà¥à¤šà¤¾ लगाइà¤à¤•à¥‹ छ"
+msgid "PGP Key: %s"
+msgstr ""
-#: ../daemon/gnome-keyring-daemon-ops.c:575
-msgid "An unknown application wants access to the default keyring, but it is locked"
-msgstr "à¤à¤‰à¤Ÿà¤¾ अजà¥à¤žà¤¾à¤¤ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ले पूरà¥à¤µâ€à¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ किरिङमा पहà¥à¤à¤š पà¥à¤°à¤¾à¤ªà¥à¤¤ गरà¥à¤¨ चाहेको छ, तर यसलाई तालà¥à¤šà¤¾ लगाइà¤à¤•à¥‹ छ"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
+msgstr ""
-#: ../daemon/gnome-keyring-daemon-ops.c:579
-#, c-format
-msgid "An unknown application wants access to the keyring '%s', but it is locked"
-msgstr "à¤à¤‰à¤Ÿà¤¾ अजà¥à¤žà¤¾à¤¤ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ले '%s' किरिङमा पहà¥à¤à¤š पà¥à¤°à¤¾à¤ªà¥à¤¤ गरà¥à¤¨ चाहेको छ, तर यसलाई तालà¥à¤šà¤¾ लगाइà¤à¤•à¥‹ छ"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
+msgstr ""
-#: ../daemon/gnome-keyring-daemon-ops.c:586
-msgid "Enter password for default keyring to unlock"
-msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ किरिङको तालà¥à¤šà¤¾ खोलà¥à¤¨à¤•à¤¾ लागि पासवरà¥à¤¡ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
+msgstr ""
-#: ../daemon/gnome-keyring-daemon-ops.c:588
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "किरिङ '%s'को तालà¥à¤šà¤¾ खोलà¥à¤¨à¤•à¤¾ लागि पासवरà¥à¤¡ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
+msgstr ""
-#. And put together the ask request
-#: ../daemon/gnome-keyring-daemon-ops.c:592
-msgid "Unlock Keyring"
-msgstr "किरिङको तालà¥à¤šà¤¾ खोलà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
+msgstr ""
-#: ../daemon/gnome-keyring-daemon-ops.c:604
-msgid "Automatically unlock this keyring when I log in."
-msgstr "मैले लगइन गरà¥à¤¦à¤¾ यस किरिङको सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ रूपले तालà¥à¤šà¤¾ खोलà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ।"
+#: ../egg/egg-oid.c:41
+msgid "Domain Component"
+msgstr ""
-#: ../daemon/gnome-keyring-daemon-ops.c:640
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:43
+msgid "User ID"
msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) ले '%s' नामको à¤à¤‰à¤Ÿà¤¾ नयाठकिरिङ सिरà¥à¤œà¤¨à¤¾ गरà¥à¤¨ चाहेको छ । तपाईà¤à¤²à¥‡ "
-"यसका लागि पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨ चाहेको पासवरà¥à¤¡ रोजà¥à¤¨à¥ परà¥à¤¦à¤› ।"
-#: ../daemon/gnome-keyring-daemon-ops.c:644
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) ले à¤à¤‰à¤Ÿà¤¾ नयाठपूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ किरिङ सिरà¥à¤œà¤¨à¤¾ गरà¥à¤¨ चाहनà¥à¤› । तपाईà¤à¤²à¥‡ यसका लागि पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨ चाहेको पासवरà¥à¤¡ रोजà¥à¤¨à¥ परà¥à¤¦à¤› ।"
+#: ../egg/egg-oid.c:46
+msgid "Email Address"
+msgstr ""
-#: ../daemon/gnome-keyring-daemon-ops.c:650
-#: ../daemon/gnome-keyring-daemon-ops.c:660
-#, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:54
+msgid "Date of Birth"
+msgstr ""
+
+#: ../egg/egg-oid.c:56
+msgid "Place of Birth"
+msgstr ""
+
+#: ../egg/egg-oid.c:58
+msgid "Gender"
+msgstr ""
+
+#: ../egg/egg-oid.c:60
+msgid "Country of Citizenship"
+msgstr ""
+
+#: ../egg/egg-oid.c:62
+msgid "Country of Residence"
+msgstr ""
+
+#: ../egg/egg-oid.c:65
+msgid "Common Name"
+msgstr ""
+
+#: ../egg/egg-oid.c:67
+msgid "Surname"
+msgstr ""
+
+#: ../egg/egg-oid.c:69
+msgid "Serial Number"
+msgstr ""
+
+#: ../egg/egg-oid.c:71
+msgid "Country"
+msgstr ""
+
+#: ../egg/egg-oid.c:73
+msgid "Locality"
+msgstr ""
+
+#: ../egg/egg-oid.c:75
+msgid "State"
+msgstr ""
+
+#: ../egg/egg-oid.c:77
+msgid "Street"
+msgstr ""
+
+#: ../egg/egg-oid.c:79
+msgid "Organization"
+msgstr ""
+
+#: ../egg/egg-oid.c:81
+msgid "Organizational Unit"
+msgstr ""
+
+#: ../egg/egg-oid.c:83
+msgid "Title"
+msgstr ""
+
+#: ../egg/egg-oid.c:85
+msgid "Telephone Number"
+msgstr ""
+
+#: ../egg/egg-oid.c:87
+msgid "Given Name"
+msgstr ""
+
+#: ../egg/egg-oid.c:89
+msgid "Initials"
+msgstr ""
+
+#: ../egg/egg-oid.c:91
+msgid "Generation Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:93
+msgid "DN Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:95
+msgid "Pseudonym"
+msgstr ""
+
+#: ../egg/egg-oid.c:98
+msgid "RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:99
+msgid "MD2 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:100
+msgid "MD5 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:101
+msgid "SHA1 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:103
+msgid "DSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:104
+msgid "SHA1 with DSA"
+msgstr ""
+
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
+
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
+
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' ले '%s' नामको à¤à¤‰à¤Ÿà¤¾ नयाठकिरिङ सिरà¥à¤œà¤¨à¤¾ गरà¥à¤¨ चाहनà¥à¤› । तपाईà¤à¤²à¥‡ यसका लागि"
-"पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨ चाहेको पासवरà¥à¤¡ रोजà¥à¤¨à¥ परà¥à¤¦à¤› ।"
-#: ../daemon/gnome-keyring-daemon-ops.c:654
-#: ../daemon/gnome-keyring-daemon-ops.c:664
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+msgid "Unexpected error in select() reading data from a child process (%s)"
msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' ले à¤à¤‰à¤Ÿà¤¾ नयाठपूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ किरिङ सिरà¥à¤œà¤¨à¤¾ गरà¥à¤¨ चाहनà¥à¤› । तपाईà¤à¤²à¥‡ यसका लागि"
-"पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨ चाहेको पासवरà¥à¤¡ रोजà¥à¤¨à¥ परà¥à¤¦à¤› ।"
-#: ../daemon/gnome-keyring-daemon-ops.c:670
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
+msgid "Unexpected error in waitpid() (%s)"
msgstr ""
-"à¤à¤‰à¤Ÿà¤¾ अजà¥à¤žà¤¾à¤¤ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ले '%s' नामको à¤à¤‰à¤Ÿà¤¾ नयाठकिरिङ सिरà¥à¤œà¤¨à¤¾ गरà¥à¤¨ चाहनà¥à¤› । तपाईà¤à¤²à¥‡ यसका लागि"
-"पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨ चाहेको पासवरà¥à¤¡ रोजà¥à¤¨à¥ परà¥à¤¦à¤› ।"
-#: ../daemon/gnome-keyring-daemon-ops.c:674
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
msgstr ""
-"à¤à¤‰à¤Ÿà¤¾ अजà¥à¤žà¤¾à¤¤ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ले à¤à¤‰à¤Ÿà¤¾ नयाठपूरà¥à¤µâ€à¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ किरिङ सिरà¥à¤œà¤¨à¤¾ गरà¥à¤¨ चाहनà¥à¤› । तपाईà¤à¤²à¥‡ यसका लागि"
-"पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨ चाहेको पासवरà¥à¤¡ रोजà¥à¤¨à¥ परà¥à¤¦à¤› ।"
-#. And put together the ask request
-#: ../daemon/gnome-keyring-daemon-ops.c:680
-msgid "New Keyring Password"
-msgstr "नयाठकिरिङ पासवरà¥à¤¡"
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
+msgstr ""
-#: ../daemon/gnome-keyring-daemon-ops.c:681
-msgid "Choose password for new keyring"
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, fuzzy, c-format
+msgid "Unlock password for: %s"
+msgstr "किरिङ %s का लागि पासवरà¥à¤¡ तालà¥à¤šà¤¾ खोलà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+#, fuzzy
+msgid "The unlock password was incorrect"
+msgstr "किरिङ %s का लागि पासवरà¥à¤¡ तालà¥à¤šà¤¾ खोलà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+#, fuzzy
+msgid "Unlock Login Keyring"
+msgstr "किरिङको तालà¥à¤šà¤¾ खोलà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
msgstr "नयाठकिरिङका लागि पासवरà¥à¤¡ रोजà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
-#: ../daemon/gnome-keyring-daemon-ops.c:728
-#, c-format
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) ले किरिङ '%s' का लागि पासवरà¥à¤¡ परिवरà¥à¤¤à¤¨ गरà¥à¤¨ चाहनà¥à¤› ।"
-"तपाईà¤à¤²à¥‡ यसका लागि पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨ चाहेको पासवरà¥à¤¡ रोजà¥à¤¨à¥ परà¥à¤¦à¤› ।"
-#: ../daemon/gnome-keyring-daemon-ops.c:732
-#, c-format
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) ले पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ किरिङका लागि पासवरà¥à¤¡ परिवरà¥à¤¤à¤¨ गरà¥à¤¨ चाहनà¥à¤› । तपाईà¤à¤²à¥‡ यसका लागि पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨ चाहेको पासवरà¥à¤¡ रोजà¥à¤¨à¥ परà¥à¤¦à¤› ।"
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr ""
-#: ../daemon/gnome-keyring-daemon-ops.c:738
-#: ../daemon/gnome-keyring-daemon-ops.c:748
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
-msgstr "अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' ले किरिङ '%s' का लागि पासवरà¥à¤¡ परिवरà¥à¤¤à¤¨ गरà¥à¤¨ चाहनà¥à¤› । तपाईà¤à¤²à¥‡ यसका लागि पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨ चाहेको पासवरà¥à¤¡ रोजà¥à¤¨à¥ परà¥à¤¦à¤› ।"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "किरिङको तालà¥à¤šà¤¾ खोलà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
-#: ../daemon/gnome-keyring-daemon-ops.c:742
-#: ../daemon/gnome-keyring-daemon-ops.c:752
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
#, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "किरिङ '%s'को तालà¥à¤šà¤¾ खोलà¥à¤¨à¤•à¤¾ लागि पासवरà¥à¤¡ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, fuzzy, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' ले पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ किरिङका लागि पासवरà¥à¤¡ परिवरà¥à¤¤à¤¨ गरà¥à¤¨ चाहनà¥à¤› । "
-"तपाईà¤à¤²à¥‡ यसका लागि पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨ चाहेको पासवरà¥à¤¡ रोजà¥à¤¨à¥ परà¥à¤¦à¤› ।"
+"à¤à¤‰à¤Ÿà¤¾ अजà¥à¤žà¤¾à¤¤ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ले '%s' किरिङमा पहà¥à¤à¤š पà¥à¤°à¤¾à¤ªà¥à¤¤ गरà¥à¤¨ चाहेको छ, तर यसलाई तालà¥à¤šà¤¾ "
+"लगाइà¤à¤•à¥‹ छ"
-#: ../daemon/gnome-keyring-daemon-ops.c:758
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
-msgstr "अजà¥à¤žà¤¾à¤¤ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ले '%s' किरिङका लागि पासवरà¥à¤¡ परिवरà¥à¤¤à¤¨ गरà¥à¤¨ चाहनॠ। तपाईà¤à¤²à¥‡ यसका लागि पà¥à¤°à¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨ चाहेको पासवरà¥à¤¡ रोजà¥à¤¨à¥ परà¥à¤¦à¤›t."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+#, fuzzy
+msgid "Unlock certificate"
+msgstr "किरिङको तालà¥à¤šà¤¾ खोलà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+#, fuzzy
+msgid "Unlock"
+msgstr "किरिङको तालà¥à¤šà¤¾ खोलà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+#, fuzzy
+msgid "Enter password to unlock the private key"
+msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ किरिङको तालà¥à¤šà¤¾ खोलà¥à¤¨à¤•à¤¾ लागि पासवरà¥à¤¡ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+#, fuzzy
+msgid "Enter password to unlock the public key"
+msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ किरिङको तालà¥à¤šà¤¾ खोलà¥à¤¨à¤•à¤¾ लागि पासवरà¥à¤¡ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+#, fuzzy
+msgid "Enter password to unlock"
+msgstr "किरिङ '%s'को तालà¥à¤šà¤¾ खोलà¥à¤¨à¤•à¤¾ लागि पासवरà¥à¤¡ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
-#: ../daemon/gnome-keyring-daemon-ops.c:762
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
+#, fuzzy, c-format
+msgid "An application wants access to the private key '%s', but it is locked"
+msgstr ""
+"à¤à¤‰à¤Ÿà¤¾ अजà¥à¤žà¤¾à¤¤ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ले '%s' किरिङमा पहà¥à¤à¤š पà¥à¤°à¤¾à¤ªà¥à¤¤ गरà¥à¤¨ चाहेको छ, तर यसलाई तालà¥à¤šà¤¾ "
+"लगाइà¤à¤•à¥‹ छ"
+
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
+#, fuzzy, c-format
+msgid "An application wants access to the certificate '%s', but it is locked"
+msgstr ""
+"à¤à¤‰à¤Ÿà¤¾ अजà¥à¤žà¤¾à¤¤ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ले '%s' किरिङमा पहà¥à¤à¤š पà¥à¤°à¤¾à¤ªà¥à¤¤ गरà¥à¤¨ चाहेको छ, तर यसलाई तालà¥à¤šà¤¾ "
+"लगाइà¤à¤•à¥‹ छ"
+
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
+#, fuzzy, c-format
+msgid "An application wants access to the public key '%s', but it is locked"
+msgstr ""
+"à¤à¤‰à¤Ÿà¤¾ अजà¥à¤žà¤¾à¤¤ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ले '%s' किरिङमा पहà¥à¤à¤š पà¥à¤°à¤¾à¤ªà¥à¤¤ गरà¥à¤¨ चाहेको छ, तर यसलाई तालà¥à¤šà¤¾ "
+"लगाइà¤à¤•à¥‹ छ"
+
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
+#, fuzzy, c-format
+msgid "An application wants access to '%s', but it is locked"
+msgstr ""
+"à¤à¤‰à¤Ÿà¤¾ अजà¥à¤žà¤¾à¤¤ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ले '%s' किरिङमा पहà¥à¤à¤š पà¥à¤°à¤¾à¤ªà¥à¤¤ गरà¥à¤¨ चाहेको छ, तर यसलाई तालà¥à¤šà¤¾ "
+"लगाइà¤à¤•à¥‹ छ"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
+msgstr ""
+
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, fuzzy, c-format
msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
-msgstr "अजà¥à¤žà¤¾à¤¤ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ले पूरà¥à¤µâ€à¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ किरिङका लागि पासवरà¥à¤¡ परिवरà¥à¤¤à¤¨ गरà¥à¤¨ चाहनà¥à¤› । तपाईà¤à¤²à¥‡ यसका लागि पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨ चाहेको पासवरà¥à¤¡ रोजà¥à¤¨à¥ परà¥à¤¦à¤› ।"
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr ""
+"à¤à¤‰à¤Ÿà¤¾ अजà¥à¤žà¤¾à¤¤ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ले '%s' किरिङमा पहà¥à¤à¤š पà¥à¤°à¤¾à¤ªà¥à¤¤ गरà¥à¤¨ चाहेको छ, तर यसलाई तालà¥à¤šà¤¾ "
+"लगाइà¤à¤•à¥‹ छ"
-#: ../daemon/gnome-keyring-daemon-ops.c:772
-#, c-format
-msgid "Choose a new password for the '%s' keyring. "
-msgstr "किरिङ '%s' का लागि नयाठपासवरà¥à¤¡ रोजà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ।"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+#, fuzzy
+msgid "New Password Required"
+msgstr "नयाठपासवरà¥à¤¡à¤•à¥‹ सकà¥à¤·à¤®à¤¤à¤¾"
-#: ../daemon/gnome-keyring-daemon-ops.c:774
-msgid "Choose a new password for the default keyring. "
-msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ किरिङका लागि नयाठपासवरà¥à¤¡ रोजà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ । "
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
+msgstr ""
-#. And put together the ask request
-#: ../daemon/gnome-keyring-daemon-ops.c:778
-msgid "Change Keyring Password"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
+#, c-format
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
msgstr "किरिङ पासवरà¥à¤¡ परिवरà¥à¤¤à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
-#: ../daemon/gnome-keyring-daemon-ops.c:845
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "नयाठकिरिङका लागि पासवरà¥à¤¡ रोजà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+"To change the password for '%s', the original and new passwords are required"
msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' (%s) ले पासवरà¥à¤¡ सङà¥à¤—à¥à¤°à¤¹ गरà¥à¤¨ चाहनà¥à¤›, तर कà¥à¤¨à¥ˆ पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ किरिङ छैन । à¤à¤‰à¤Ÿà¤¾ किरिङ सिरà¥à¤œà¤¨à¤¾ गरà¥à¤¨à¤•à¤¾ लागि, तपाईà¤à¤²à¥‡ यसका लगि पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨ चाहेको पासवरà¥à¤¡ रोजà¥à¤¨à¥ आवशà¥à¤¯à¤• "
-"हà¥à¤¨à¥à¤› ।"
-#: ../daemon/gnome-keyring-daemon-ops.c:849
-#: ../daemon/gnome-keyring-daemon-ops.c:853
+#: ../tool/gkr-tool.c:102
#, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
+
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
+
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
msgstr ""
-"अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— '%s' ले पासवरà¥à¤¡ सङà¥à¤—à¥à¤°à¤¹ गरà¥à¤¨ चाहनà¥à¤›, तर कà¥à¤¨à¥ˆ पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ किरिङ छैन । "
-"à¤à¤‰à¤Ÿà¤¾ किरिङ सिरà¥à¤œà¤¨à¤¾ गरà¥à¤¨à¤•à¤¾ लागि तपाईà¤à¤²à¥‡ यसका लागि पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨ चाहेको पासवरà¥à¤¡ रोजà¥à¤¨à¥ आवशà¥à¤¯à¤• "
-"हà¥à¤¨à¥à¤› ।"
-#: ../daemon/gnome-keyring-daemon-ops.c:857
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:592
msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
-msgstr ""
-"अजà¥à¤žà¤¾à¤¤ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ले पासवरà¥à¤¡ सङà¥à¤—à¥à¤°à¤¹ गरà¥à¤¨ चाहनà¥à¤›, तर कà¥à¤¨à¥ˆ पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ "
-"किरिङ छैन । à¤à¤‰à¤Ÿà¤¾ किरिङ सिरà¥à¤œà¤¨à¤¾ गरà¥à¤¨ तपाईà¤à¤²à¥‡ यसका लागि पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨ चाहेको "
-"पासवरà¥à¤¡ रोजà¥à¤¨ आवशà¥à¤¯à¤• "
-"हà¥à¤¨à¥à¤› ।"
-
-#. And put together the ask request
-#: ../daemon/gnome-keyring-daemon-ops.c:862
-msgid "Create Default Keyring"
-msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ किरिङ सिरà¥à¤œà¤¨à¤¾ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
-
-#: ../daemon/gnome-keyring-daemon-ops.c:862
-msgid "Choose password for default keyring"
-msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ किरिङका लागि पासवरà¥à¤¡ रोजà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
-
-#: ../library/gnome-keyring-utils.c:109
-msgid "Access Denied"
-msgstr "पहà¥à¤à¤š असà¥à¤µà¥€à¤•à¤¾à¤° गरियो"
-
-#: ../library/gnome-keyring-utils.c:111
-msgid "The gnome-keyring-daemon application is not running."
-msgstr "जिनोम किरिङ डेइमोन अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— चलिरहेको छैन ।"
-
-#: ../library/gnome-keyring-utils.c:113 ../library/gnome-keyring-utils.c:126
-msgid "The keyring has already been unlocked."
-msgstr "किरिङको पहिला नै तलà¥à¤šà¤¾ खोलिà¤à¤•à¥‹ छ ।"
-
-#: ../library/gnome-keyring-utils.c:115
-msgid "Error communicating with gnome-keyring-daemon"
-msgstr "जिनोम किरिङ डेइमोनसà¤à¤— सञà¥à¤šà¤¾à¤° गरà¥à¤¦à¤¾ तà¥à¤°à¥à¤Ÿà¤¿"
-
-#: ../library/gnome-keyring-utils.c:117
-msgid "A keyring with that name already exists"
-msgstr "तà¥à¤¯à¤¸ नामको किरिङ पहिला नै अवसà¥à¤¥à¤¿à¤¤ छ"
-
-#: ../library/gnome-keyring-utils.c:119
-msgid "Programmer error: The application sent invalid data."
-msgstr "कारà¥à¤¯à¤•à¥à¤°à¤® तà¥à¤°à¥à¤Ÿà¤¿: अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ले अवैध डेटा पठायो ।"
-
-#: ../ui/gkr-ask-tool.c:267
-msgid "_Location:"
-msgstr "सà¥à¤¥à¤¾à¤¨:"
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
-#: ../ui/gkr-ask-tool.c:280
-msgid "_Old password:"
-msgstr "पà¥à¤°à¤¾à¤¨à¥‹ पासवरà¥à¤¡:"
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
+msgstr ""
-#: ../ui/gkr-ask-tool.c:300
-msgid "_Password:"
-msgstr "पासवरà¥à¤¡:"
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr "पासवरà¥à¤¡ मिलेन ।"
-#: ../ui/gkr-ask-tool.c:322
-msgid "_Confirm password:"
-msgstr "पासवरà¥à¤¡ यकीन गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥:"
+#: ../ui/gku-prompt-tool.c:649
+#, fuzzy
+msgid "Password cannot be blank"
+msgstr "पासवरà¥à¤¡ खाली राखà¥à¤¨ सकिà¤à¤¦à¥ˆà¤¨ ।"
+
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
-#: ../ui/gkr-ask-tool.c:341
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:1
msgid "New password strength"
msgstr "नयाठपासवरà¥à¤¡à¤•à¥‹ सकà¥à¤·à¤®à¤¤à¤¾"
-#: ../ui/gkr-ask-tool.c:378
-msgid "Old password cannot be blank."
-msgstr "पà¥à¤°à¤¾à¤¨à¥‹ पासवरà¥à¤¡ खाली राखà¥à¤¨ सकिà¤à¤¦à¥ˆà¤¨ ।"
-
-#: ../ui/gkr-ask-tool.c:390
-msgid "Password cannot be blank."
-msgstr "पासवरà¥à¤¡ खाली राखà¥à¤¨ सकिà¤à¤¦à¥ˆà¤¨ ।"
+#: ../ui/gku-prompt.ui.h:2
+#, fuzzy
+msgid "_Application:"
+msgstr "सà¥à¤¥à¤¾à¤¨:"
-#: ../ui/gkr-ask-tool.c:399
-msgid "Passwords do not match."
-msgstr "पासवरà¥à¤¡ मिलेन ।"
+#: ../ui/gku-prompt.ui.h:3
+#, fuzzy
+msgid "_Confirm:"
+msgstr "पासवरà¥à¤¡ यकीन गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥:"
-#: ../ui/gkr-ask-tool.c:448
-msgid "Deny"
-msgstr "असà¥à¤µà¥€à¤•à¤¾à¤° गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
-#: ../ui/gkr-ask-tool.c:460
-msgid "Allow _Once"
-msgstr "à¤à¤• पटक अनà¥à¤®à¤¤à¤¿ दिनà¥à¤¹à¥‹à¤¸à¥"
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr ""
-#: ../ui/gkr-ask-tool.c:464
-msgid "_Always Allow"
-msgstr "सधैठअनà¥à¤®à¤¤à¤¿ दिनà¥à¤¹à¥‹à¤¸à¥"
+#: ../ui/gku-prompt.ui.h:6
+#, fuzzy
+msgid "_Old Password:"
+msgstr "पà¥à¤°à¤¾à¤¨à¥‹ पासवरà¥à¤¡:"
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "पासवरà¥à¤¡:"
diff --git a/po/nl.po b/po/nl.po
index 89a75be2..a61de995 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-08-18 21:49+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-08-18 21:54+0200\n"
"Last-Translator: Wouter Bolsterlee <wbolster@gnome.org>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -29,7 +29,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Naamloos"
@@ -106,36 +106,35 @@ msgstr "Gnome-sleutelbos: GPG-agent"
msgid "GPG Password Agent"
msgstr "GPG-wachtwoordagent"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:311
-#: ../gcr/gcr-key-renderer.c:316
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Onbekend"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP-sleutel: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Voer wachtwoordzin in"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Dit wachtwoord vergeten na inactiviteit van"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Dit wachtwoord vergeten na"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Dit wachtwoord vergeten bij afmelden"
# Onvertaald gelaten (Wouter Bolsterlee)
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Login"
@@ -179,7 +178,7 @@ msgstr "Algemene naam"
msgid "Surname"
msgstr "Achternaam"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:650
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Serienummer"
@@ -237,7 +236,7 @@ msgstr "DN Qualifier"
msgid "Pseudonym"
msgstr "Pseudoniem"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:307
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -253,7 +252,7 @@ msgstr "MD5 met RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 met RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:309
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -294,493 +293,6 @@ msgstr ""
msgid "Unexpected error in waitpid() (%s)"
msgstr "Onverwachte fout in waitpid(): %s"
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Naam"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Uitgegeven door"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "Verloopt op"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:254
-msgid "Certificate"
-msgstr "Certificaat"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Er bestaat al een bestand met deze naam.</b>\n"
-"\n"
-"Wilt u het overschrijven met een nieuw bestand?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_Vervangen"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "De bewerking is geannuleerd."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Certificaat exporteren"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Certificaatbestanden"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "PEM-bestanden"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Andere naam"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "XMPP-adres"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "E-mail"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "X400-adres"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Mapnaam"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "EDI-partijnaam"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "IP-adres"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "Geregistreerd ID"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Basisbeperkingen"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "Certificaatauthoriteit"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Ja"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Nee"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Maximale padlengte"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Onbeperkt"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Uitgebreid sleutelgebruik"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Toegestane doeleinden"
-
-# Subject Key Identifier is jargon en dus niet iets als "onderwerpsleutel" (Wouter Bolsterlee)
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Identificatie van ‘subject key’"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Sleutel-identificatie"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Digitale handtekening"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Sleutelcodering"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Gegevensversleuteling"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Sleutelovereenkomst"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Certificaatondertekening"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Intrekkingslijstondertekening"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Sleutelgebruik"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Gebruik"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Alternatieve namen voor subject"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Extensie"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Identificatie"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Waarde"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Kritiek"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Kon het certificaat niet exporteren."
-
-#: ../gcr/gcr-certificate-renderer.c:611
-msgid "Identity"
-msgstr "Identiteit"
-
-#: ../gcr/gcr-certificate-renderer.c:615
-msgid "Verified by"
-msgstr "Geverifieerd door"
-
-#: ../gcr/gcr-certificate-renderer.c:622
-msgid "Expires"
-msgstr "Verloopt op"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:632
-msgid "Subject Name"
-msgstr "Subject Name"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:636
-msgid "Issuer Name"
-msgstr "Naam uitgever"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:640
-msgid "Issued Certificate"
-msgstr "Uitgegeven certificaat"
-
-#: ../gcr/gcr-certificate-renderer.c:645
-msgid "Version"
-msgstr "Versie"
-
-#: ../gcr/gcr-certificate-renderer.c:657
-msgid "Not Valid Before"
-msgstr "Niet geldig voor"
-
-#: ../gcr/gcr-certificate-renderer.c:662
-msgid "Not Valid After"
-msgstr "Niet geldig na"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:667
-msgid "Certificate Fingerprints"
-msgstr "Vingerafdrukken van certificaat"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:673 ../gcr/gcr-certificate-renderer.c:685
-msgid "Signature"
-msgstr "Ondertekening"
-
-#: ../gcr/gcr-certificate-renderer.c:677
-msgid "Signature Algorithm"
-msgstr "Algoritme voor ondertekening"
-
-#: ../gcr/gcr-certificate-renderer.c:681
-msgid "Signature Parameters"
-msgstr "Parameters voor ondertekening"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:689
-msgid "Public Key Info"
-msgstr "Publieke sleutelinformatie"
-
-#: ../gcr/gcr-certificate-renderer.c:694
-msgid "Key Algorithm"
-msgstr "Sleutelalgoritme"
-
-#: ../gcr/gcr-certificate-renderer.c:699
-msgid "Key Parameters"
-msgstr "Sleutelparameters"
-
-#: ../gcr/gcr-certificate-renderer.c:704
-msgid "Key Size"
-msgstr "Sleutelgrootte"
-
-#: ../gcr/gcr-certificate-renderer.c:711
-msgid "Key SHA1 Fingerprint"
-msgstr "SHA1-vingerafdruk van sleutel"
-
-#: ../gcr/gcr-certificate-renderer.c:717 ../gcr/gcr-key-renderer.c:291
-#: ../gcr/gcr-parser.c:257
-msgid "Public Key"
-msgstr "Publieke sleutel"
-
-#: ../gcr/gcr-display-view.c:270
-msgid "_Details"
-msgstr "_Details"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Certificaten en sleutels importeren"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Importeren naar:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Wachtwoord:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "PGP-sleutel"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "Sleutel-ID"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Gnupg-proces is beëindigd met code: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Gnupg-proces is beëindigd met signaal:%d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1698 ../gcr/gcr-parser.c:1937
-msgid "The operation was cancelled"
-msgstr "De bewerking werd geannuleerd."
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Voer uw wachtwoord in voor ontgrendelen van de privé-sleutel"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Voer uw wachtwoord in voor ontgrendelen van het certificaat"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Voer wachtwoord in voor ontgrendelen"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Om de privé-sleutel te importeren, moet deze ontgrendeld worden"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Om het certificaat te importeren, moet deze ontgrendeld worden"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Om de gegevens te importeren, moet deze ontgrendeld worden"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Om de privé-sleutel ‘%s’ te importeren, moet deze ontgrendeld worden"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Om het certificaat ‘%s’ te importeren, moet deze ontgrendeld worden"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Om de ‘%s’ te importeren, moet deze ontgrendeld worden"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Geen locatie beschikbaar om naartoe te importeren"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Certificaten of sleutels importeren"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr ""
-"Kies een locatie om de geïmporteerde certificaten of sleutels op te slaan"
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Sleutel"
-
-#: ../gcr/gcr-key-renderer.c:280
-msgid "Private RSA Key"
-msgstr "Privé-sleutel (RSA)"
-
-#: ../gcr/gcr-key-renderer.c:282
-msgid "Private DSA Key"
-msgstr "Privé-sleutel (DSA)"
-
-#: ../gcr/gcr-key-renderer.c:284 ../gcr/gcr-parser.c:251
-msgid "Private Key"
-msgstr "Privé-sleutel"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-key-renderer.c:289
-msgid "Public DSA Key"
-msgstr "Publieke DSA-sleutel"
-
-#: ../gcr/gcr-key-renderer.c:298
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-msgstr[1] "%d bits"
-
-#: ../gcr/gcr-key-renderer.c:299
-msgid "Strength"
-msgstr "Sterkte"
-
-#: ../gcr/gcr-key-renderer.c:312
-msgid "Algorithm"
-msgstr "Algoritme"
-
-#: ../gcr/gcr-key-renderer.c:319
-msgid "Size"
-msgstr "Grootte"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:323
-msgid "Fingerprints"
-msgstr "Vingerafdrukken"
-
-#: ../gcr/gcr-key-renderer.c:328
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:334
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1701
-msgid "Unrecognized or unsupported data."
-msgstr "Onherkenbare of niet ondersteunde gegevens."
-
-#: ../gcr/gcr-parser.c:1704
-msgid "Could not parse invalid or corrupted data."
-msgstr "Kon ongeldige of kapotte gegevens niet verwerken."
-
-#: ../gcr/gcr-parser.c:1707
-msgid "The data is locked"
-msgstr "De gegevens zijn vergrendeld"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:420
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Kon geen locatie vinden om het ‘pinned’ certificaat op te slaan"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Deze sleutelbos automatisch ontgrendelen bij aanmelden"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Deze sleutelbos vergrendelen na"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Deze sleutelbos vergrendelen na inactiviteit van"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Deze sleutelbos automatisch vergrendelen bij afmelden"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minuten"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "De URI heeft ongeldige codering."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI has does not have the 'pkcs11' scheme."
-msgstr "De URI heeft niet het ‘pkcs11’-schema."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "De URI heeft ongeldige syntaxis."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "De URI heeft een ongeldig versienummer."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Onbenoemd certificaat"
@@ -790,7 +302,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Kon de publieke sleutel voor Secure Shell niet verwerken"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Wachtwoord voor ontgrendelen van ‘%s’"
@@ -854,10 +366,22 @@ msgstr "Publieke sleutel ontgrendelen"
msgid "Unlock"
msgstr "Ontgrendelen"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Voer uw wachtwoord in voor ontgrendelen van de privé-sleutel"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Voer uw wachtwoord in voor ontgrendelen van het certificaat"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Voer wachtwoord in voor ontgrendelen van de publieke sleutel"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Voer wachtwoord in voor ontgrendelen"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -952,11 +476,11 @@ msgstr "opdrachten: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Wachtwoorden zonder versleuteling opslaan?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -966,15 +490,15 @@ msgstr ""
"veilig bewaard. Iedereen met toegang tot uw bestanden kan deze wachtwoorden "
"achterhalen."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Onveilige opslag gebruiken"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Wachtwoorden komen niet overeen."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Wachtwoord mag niet leeg zijn"
@@ -1013,308 +537,3 @@ msgstr "_Oud wachtwoord:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Wachtwoord:"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "Kon de ‘random number generator’ niet initialiseren"
-
-#~ msgid "Unknown error"
-#~ msgstr "Onbekende fout"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "De ondertekening is door de gebruiker geweigerd"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "Kan gegevens niet vergrendelen"
-
-#~ msgid "Cannot lock data"
-#~ msgstr "Kan gegevens niet vergrendelen"
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "De module is reeds geïnitialiseerd"
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "De module is niet geïnitialiseerd"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "De status kan niet opgeslagen worden"
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "De informatie is gevoelig en kan niet getoond worden"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "De opgeslagen status is ongeldig"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "Het crypto-mechanisme heeft een ongeldige parameter"
-
-#~ msgid "No random number generator available"
-#~ msgstr "Geen ‘random number generator’ beschikbaar"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "Kan niet exporteren want de sleutel is ongeldig"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "Kan geen sleutels van de onjuiste grootte importeren"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "Kan geen ongeldige sleutels importeren"
-
-#~ msgid "Too many users of different types logged in"
-#~ msgstr "Er zijn teveel verschillende gebruikerstypes ingelogd"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "Het type gebruiker is ongeldig"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "Het wachtwoord of de PIN is niet ingesteld"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "Importeren mislukt, want de sleutel heeft een onjuiste lengte"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "Importeren mislukt, want de sleutel is ongeldig"
-
-#~ msgid "The device is write protected"
-#~ msgstr "Het apparaat is beveiligd tegen schrijven"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "Het apparaat is ongeldig of kan niet herkend worden"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "Het apparaat is niet aanwezig of losgekoppeld"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "Bepaalde velden hebben een ongeldige waarde"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "Bepaalde verplichte velden ontbreken"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "De ondertekening wordt niet herkend of is ongeldig"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "De ondertekening is onjuist of ongeldig"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "Er is een beheerderssessie"
-
-#~ msgid "An open session exists"
-#~ msgstr "Er is een open sessie"
-
-#~ msgid "The session is invalid"
-#~ msgstr "De sessie is ongeldig"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "Er zijn teveel actieve sessies"
-
-#~ msgid "The session is closed"
-#~ msgstr "De sessie is gesloten"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "Het wachtwoord of de PIN is vergrendeld"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "Het wachtwoord of de PIN is verlopen"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "Het wachtwoord of de PIN heeft een ongeldig lengte"
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "Het wachtwoord of de PIN is ongeldig"
-
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "Het wachtwoord of de PIN is onjuist"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "Er is geen actieve bewerking"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "Een andere bewerking is reeds bezig"
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "Het crypto-mechanisme heeft een ongeldig argument"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "Het crypto-mechanisme is ongeldig of wordt niet herkend"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "Kan deze sleutel niet exporteren"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "De sleutel kan niet ingepakt worden"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "Deze bewerking kan niet zonder deze sleutel uitgevoerd worden"
-
-#~ msgid "Cannot include the key in digest"
-#~ msgstr "Kan sleutel niet in ‘digest’ opnemen"
-
-#~ msgid "A key is needed"
-#~ msgstr "Er is een sleutel nodig"
-
-#~ msgid "The key is different than before"
-#~ msgstr "De sleutel is anders dan voorheen"
-
-#~ msgid "No key is needed"
-#~ msgstr "Er is geen sleutel nodig"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "De sleutel heeft een onjuiste grootte"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "De sleutel ontbreekt of is ongeldig"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "Deze bewerking wordt niet ondersteund"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "De versleutelde gegevens zijn te groot"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "De versleutelde gegevens zijn ongeldig of worden niet herkend"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "Het apparaat is verwijderd of losgekoppeld"
-
-#~ msgid "Insufficient memory available on device"
-#~ msgstr "Onvoldoende geheugen beschikbaar op apparaat"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "Er is een fout op het apparaat opgetreden"
-
-#~ msgid "The data is too long"
-#~ msgstr "De gegevens zijn te groot"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "De gegevens zijn ongeldig of worden niet herkend"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "Ongeldige waarde voor veld"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "Het veld is ongeldig of bestaat niet"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "Het veld bevat gevoelige informatie en kan niet getoond worden"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "De module kan gegevens niet op een juiste manier vergrendelen"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "Ongeldige argumenten"
-
-#~ msgid "The operation failed"
-#~ msgstr "De bewerking is mislukt"
-
-#~ msgid "Internal error"
-#~ msgstr "Interne fout"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "Het opgegeven slot-ID is ongeldig"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "Onvoldoende geheugen beschikbaar"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>Geen onderdeel van certificaat</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>onbekend</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<Geen onderdeel van certificaat>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>Vingeradrukken</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Uitgegeven door</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Uitgegeven aan</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>Dit certificaat is geverifieerd voor het volgende gebruik:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>Geldigheid</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "Common Name (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "E-mailontvangst-certificaat"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "E-mailondertekening-certificaat"
-
-#~ msgid "Expires On"
-#~ msgstr "Verloopt op"
-
-#~ msgid "Issued On"
-#~ msgstr "Uitgegeven op"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "MD5-vingerafdruk"
-
-#~ msgid "Organization (O)"
-#~ msgstr "Organisatie (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "Organisatieonderdeel (OU)"
-
-#~ msgid "SHA1 Fingerprint"
-#~ msgstr "SHA1-vingerafdruk"
-
-#~ msgid "SSL Client Certificate"
-#~ msgstr "SSL-client-certificaat"
-
-#~ msgid "SSL Server Certificate"
-#~ msgstr "SSL-server-certificaat"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr ""
-#~ "<span size='large' weight='bold'>Certificaten en sleutels importeren</"
-#~ "span>"
-
-#~ msgid "The key is different from before"
-#~ msgstr "De sleutel is anders dan voorheen"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "De module kan de benodigde threads niet aanmaken"
-
-#~ msgid "The field is read-only"
-#~ msgstr "Het veld is ‘alleen lezen’"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "Het type van de sleutel is onjuist"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "Het object ontbreekt of is ongeldig"
-
-#~ msgid "The session is read-only"
-#~ msgstr "De sessie is ‘alleen lezen’"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "Er is een ‘alleen-lezen’-sessie"
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "Importeren mislukt, want het type sleutel is onjuist"
-
-#~ msgid "You are already logged in"
-#~ msgstr "U bent al aangemeld"
-
-#~ msgid "No user has logged in"
-#~ msgstr "Er is geen gebruiker aangemeld"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "Er is al een andere gebruiker aangemeld"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "Kan niet exporteren want de grootte van de sleutel is onjuist"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "Kan niet exporteren want het type sleutel is onjuist"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "Niet genoeg ruimte om het resultaat op te slaan"
diff --git a/po/nn.po b/po/nn.po
index 797454ea..26c13204 100644
--- a/po/nn.po
+++ b/po/nn.po
@@ -7,9 +7,8 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring 0.4.6\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&component=general\n"
-"POT-Creation-Date: 2010-10-16 18:28+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2010-12-05 17:32+0200\n"
"Last-Translator: Torstein Adolf Winterseth <kvikende@fsfe.org>\n"
"Language-Team: Norwegian Nynorsk <i18n-nn@lister.ping.uio.no>\n"
@@ -21,10 +20,10 @@ msgstr ""
"X-Generator: Virtaal 0.6.1\n"
#. TRANSLATORS: This is the label for an keyring created without a label
-#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:74
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:317
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:782
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Utan namn"
@@ -34,15 +33,11 @@ msgstr "Endra passord for nøkkelring"
#: ../daemon/dbus/gkd-secret-change.c:88
#, c-format
-#| msgid "Choose a new password for the '%s' keyring. "
msgid "Choose a new password for the '%s' keyring"
msgstr "Vel nytt passord for nøkkelring «%s»"
#: ../daemon/dbus/gkd-secret-change.c:92
#, c-format
-#| msgid ""
-#| "An unknown application wants to change the password for the '%s' keyring. "
-#| "You have to choose the password you want to use for it."
msgid ""
"An application wants to change the password for the '%s' keyring. Choose the "
"new password you want to use for it."
@@ -54,19 +49,16 @@ msgstr ""
msgid "The original password was incorrect"
msgstr "Det originale passordet var ikkje korrekt"
-#: ../daemon/dbus/gkd-secret-create.c:78
+#: ../daemon/dbus/gkd-secret-create.c:83
msgid "New Keyring Password"
msgstr "Nytt passord for nøkkelring"
-#: ../daemon/dbus/gkd-secret-create.c:79
+#: ../daemon/dbus/gkd-secret-create.c:84
msgid "Choose password for new keyring"
msgstr "Oppgje passord for ny nøkkelring"
-#: ../daemon/dbus/gkd-secret-create.c:81
+#: ../daemon/dbus/gkd-secret-create.c:86
#, c-format
-#| msgid ""
-#| "An unknown application wants to create a new keyring called '%s'. You "
-#| "have to choose the password you want to use for it."
msgid ""
"An application wants to create a new keyring called '%s'. Choose the "
"password you want to use for it."
@@ -103,39 +95,37 @@ msgid "GNOME Keyring: GPG Agent"
msgstr "GNOME Nøkkelring: GPG-agent"
#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
-#| msgid "New password strength"
msgid "GPG Password Agent"
msgstr "Passordagent for GPG"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:291
-#: ../gcr/gcr-key-renderer.c:296
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Ukjend"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:199
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP-nøkkel: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:348
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:349
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Skriv inn passfrase"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:383
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Gløym dette passordet viss inaktiv for"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:384
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Gløym dette passordet etter"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:385
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Gløym dette passordet når du loggar ut"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Innlogging"
@@ -179,7 +169,7 @@ msgstr "Trivialnamn"
msgid "Surname"
msgstr "Etternamn"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:379
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Serienummer"
@@ -235,30 +225,51 @@ msgstr "DN-kvalifikator"
msgid "Pseudonym"
msgstr "Pseudonym"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:287
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "MD2 med RSA"
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "MD5 med RSA"
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "SHA1 med RSA"
-#: ../egg/egg-oid.c:107 ../gcr/gcr-key-renderer.c:289
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "SHA1 med DSA"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
+
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
+
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
+
#: ../egg/egg-spawn.c:273
#, c-format
msgid "Unexpected error in select() reading data from a child process (%s)"
@@ -270,616 +281,7 @@ msgid "Unexpected error in waitpid() (%s)"
msgstr "Uventa feil i waitpid() (%s)"
#
-#: ../gcr/gcr-certificate-renderer.c:82 ../gcr/gcr-parser.c:200
-#| msgid "Unlock certificate"
-msgid "Certificate"
-msgstr "Sertifikat"
-
-#: ../gcr/gcr-certificate-renderer.c:107
-msgid "Extension"
-msgstr "Utviding"
-
-#: ../gcr/gcr-certificate-renderer.c:112
-msgid "Identifier"
-msgstr "Identifikator"
-
-#: ../gcr/gcr-certificate-renderer.c:120
-msgid "Value"
-msgstr "Verdi"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "Critical"
-msgstr "Kritisk"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "Yes"
-msgstr "Ja"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "No"
-msgstr "Nei"
-
-#: ../gcr/gcr-certificate-renderer.c:339
-msgid "Identity"
-msgstr "Identitet"
-
-#: ../gcr/gcr-certificate-renderer.c:343
-msgid "Verified by"
-msgstr "Verifisert av"
-
-#: ../gcr/gcr-certificate-renderer.c:350
-msgid "Expires"
-msgstr "GÃ¥r ut"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:360
-msgid "Subject Name"
-msgstr "Namn på subjekt"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:364
-msgid "Issuer Name"
-msgstr "Namn på utgjevar"
-
-#
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:368
-#| msgid "Unlock certificate"
-msgid "Issued Certificate"
-msgstr "Utgjeve sertifikat"
-
-#: ../gcr/gcr-certificate-renderer.c:373
-msgid "Version"
-msgstr "Versjon"
-
-#: ../gcr/gcr-certificate-renderer.c:387
-msgid "Not Valid Before"
-msgstr "Ikkje gyldig før"
-
-#: ../gcr/gcr-certificate-renderer.c:392
-msgid "Not Valid After"
-msgstr "Ikkje gyldig etter"
-
-#: ../gcr/gcr-certificate-renderer.c:401
-msgid "Signature Algorithm"
-msgstr "Signaturalgoritme"
-
-#: ../gcr/gcr-certificate-renderer.c:406
-msgid "Signature Parameters"
-msgstr "Signaturparameter"
-
-#: ../gcr/gcr-certificate-renderer.c:413
-msgid "Signature"
-msgstr "Signatur"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:418
-msgid "Public Key Info"
-msgstr "Info om offentleg nøkkel"
-
-#: ../gcr/gcr-certificate-renderer.c:423
-msgid "Key Algorithm"
-msgstr "Nøkkelalgoritme"
-
-#: ../gcr/gcr-certificate-renderer.c:429
-msgid "Key Parameters"
-msgstr "Nøkkelparameter"
-
-#: ../gcr/gcr-certificate-renderer.c:436
-msgid "Key Size"
-msgstr "Nøkkelstorleik"
-
-#: ../gcr/gcr-certificate-renderer.c:444 ../gcr/gcr-key-renderer.c:271
-#: ../gcr/gcr-parser.c:203
-msgid "Public Key"
-msgstr "Offentleg nøkkel"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:449
-msgid "Fingerprints"
-msgstr "Fingeravtrykk"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Importer sertifikat og nøklar"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Info om import:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-#| msgid "_Password:"
-msgid "Password:"
-msgstr "Passord:"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-#| msgid "Automatically unlock this keyring when I log in."
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Lås opp denne nøkkelringa automatisk når eg loggar inn"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Lås denne nøkkelringen etter"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Lås denne nøkkelringen viss inaktiv for"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-#| msgid "Automatically unlock this keyring when I log in."
-msgid "Lock this keyring when I log out"
-msgstr "Lås denne nøkkelringen når du loggar ut"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minutt"
-
-#
-#: ../gcr/gcr-importer.c:133 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:693
-msgid "Enter password to unlock the private key"
-msgstr "Oppgje passord for for å låsa opp privat nøkkel"
-
-#
-#: ../gcr/gcr-importer.c:135 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:695
-msgid "Enter password to unlock the certificate"
-msgstr "Oppgje passord for for å låsa opp sertifikat"
-
-#
-#: ../gcr/gcr-importer.c:137 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:699
-msgid "Enter password to unlock"
-msgstr "Oppgje passord for for å låsa opp"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:146
-#| msgid "The system wants to import the private key '%s', but it is locked"
-msgid "In order to import the private key, it must be unlocked"
-msgstr "For å importera den private nøkkelen må han låsast opp"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:149
-#| msgid "The system wants to import the certificate '%s', but it is locked"
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "For å importera dette sertifikatet må det låsast opp"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:152
-msgid "In order to import the data, it must be unlocked"
-msgstr "For å importera dataa må dei låsast opp"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:157
-#, c-format
-#| msgid "The system wants to import the private key '%s', but it is locked"
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "For å importera den private nøkkelen «%s» må han låsast opp"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:160
-#, c-format
-#| msgid "The system wants to import the certificate '%s', but it is locked"
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "For å importera sertifikatet «%s» må det låsast opp"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:163
-#, c-format
-#| msgid "The system wants to import '%s', but it is locked"
-msgid "In order to import '%s', it must be unlocked"
-msgstr "For å importera «%s» må det låsast opp"
-
-#: ../gcr/gcr-importer.c:254 ../gcr/gcr-parser.c:1565 ../gcr/gcr-parser.c:1756
-#: ../gck/gck-misc.c:98
-msgid "The operation was cancelled"
-msgstr "Operasjonen var avbroten"
-
-#: ../gcr/gcr-importer.c:346
-#, c-format
-msgid "No location available to import to"
-msgstr "Ingen adresse tilgjengeleg for å importerast til"
-
-#: ../gcr/gcr-importer.c:495
-msgid "Import Certificates/Keys"
-msgstr "Importer sertifikat/nøklar"
-
-#: ../gcr/gcr-importer.c:502
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Vel adresse for å lagra dei importerte sertifikata/nøklane."
-
-#: ../gcr/gcr-key-renderer.c:69
-#| msgid "key"
-msgid "Key"
-msgstr "Nøkkel"
-
-#: ../gcr/gcr-key-renderer.c:260
-msgid "Private RSA Key"
-msgstr "Privat RSA-nøkkel"
-
-#: ../gcr/gcr-key-renderer.c:262
-msgid "Private DSA Key"
-msgstr "Privat DSA-nøkkel"
-
-#
-#: ../gcr/gcr-key-renderer.c:264 ../gcr/gcr-parser.c:197
-#| msgid "Unlock private key"
-msgid "Private Key"
-msgstr "Privat nøkkel"
-
-#: ../gcr/gcr-key-renderer.c:267 ../gcr/gcr-key-renderer.c:269
-msgid "Public DSA Key"
-msgstr "Offentleg DSA-nøkkel"
-
-#: ../gcr/gcr-key-renderer.c:278
-#, c-format
-msgid "%d bits"
-msgstr "%d bitar"
-
-#: ../gcr/gcr-key-renderer.c:279
-msgid "Strength"
-msgstr "Styrke"
-
-#: ../gcr/gcr-key-renderer.c:292
-msgid "Algorithm"
-msgstr "Algoritme"
-
-#: ../gcr/gcr-key-renderer.c:299
-msgid "Size"
-msgstr "Storleik"
-
-#. TODO: We need to have consistent key fingerprints.
-#: ../gcr/gcr-key-renderer.c:303
-msgid "Fingerprint"
-msgstr "Fingeravtrykk"
-
-#: ../gcr/gcr-parser.c:1568
-#| msgid "Unrecognized or unsupported file."
-msgid "Unrecognized or unsupported data."
-msgstr "Ikkje gjenkjent eller støtta data."
-
-#: ../gcr/gcr-parser.c:1571
-#| msgid "Could not parse invalid or corrupted file."
-msgid "Could not parse invalid or corrupted data."
-msgstr "Klarte ikkje lesa ugyldig eller korrupt data."
-
-#: ../gcr/gcr-parser.c:1574
-msgid "The data is locked"
-msgstr "Dataa er låst"
-
-#: ../gck/gck-uri.c:78 ../gck/gck-uri.c:135 ../gck/gck-uri.c:170
-#, c-format
-msgid "The URI has invalid syntax. The '%s' field encoding is invalid."
-msgstr "URI-en har ugyldig syntaks. Feltet «%s» har ugyldig teiknkoding"
-
-#: ../gck/gck-uri.c:195
-msgid "The URI has does not have the 'pkcs11' scheme."
-msgstr "URI-en har ikkje «pkcs11»-teiknkoding"
-
-#: ../gck/gck-misc.c:101
-msgid "Insufficient memory available"
-msgstr "Ikkje nok minne tilgjengeleg"
-
-#: ../gck/gck-misc.c:103
-msgid "The specified slot ID is not valid"
-msgstr "Oppgjevne kortplass-ID-en er ikkje gyldig"
-
-#: ../gck/gck-misc.c:105
-msgid "Internal error"
-msgstr "Intern feil"
-
-#: ../gck/gck-misc.c:107
-msgid "The operation failed"
-msgstr "Operasjonen feila"
-
-#: ../gck/gck-misc.c:109
-msgid "Invalid arguments"
-msgstr "Ugyldige argument"
-
-#: ../gck/gck-misc.c:111
-msgid "The module cannot create needed threads"
-msgstr "Modulen kan ikkje laga dei nødvendige tråane"
-
-#: ../gck/gck-misc.c:113
-msgid "The module cannot lock data properly"
-msgstr "Modulen kan ikkje låsa dataa riktig"
-
-#: ../gck/gck-misc.c:115
-msgid "The field is read-only"
-msgstr "Feltet er berre lesbart"
-
-#: ../gck/gck-misc.c:117
-msgid "The field is sensitive and cannot be revealed"
-msgstr "Feltet er sensitivt og kan ikkje openberrast"
-
-#: ../gck/gck-misc.c:119
-msgid "The field is invalid or does not exist"
-msgstr "Feltet er ugyldig eller finst ikkje"
-
-#: ../gck/gck-misc.c:121
-msgid "Invalid value for field"
-msgstr "Ugyldig verdi for felt"
-
-#: ../gck/gck-misc.c:123
-msgid "The data is not valid or unrecognized"
-msgstr "Dataa er ikkje gyldige eller ikkje gjenkjende"
-
-#: ../gck/gck-misc.c:125
-msgid "The data is too long"
-msgstr "Dataa er for lange"
-
-#: ../gck/gck-misc.c:127
-msgid "An error occurred on the device"
-msgstr "Feil oppstod på eininga"
-
-#: ../gck/gck-misc.c:129
-msgid "Insufficient memory available on the device"
-msgstr "Ikkje nok minne tilgjengeleg på eininga"
-
-#: ../gck/gck-misc.c:131
-msgid "The device was removed or unplugged"
-msgstr "Eininga var fjerna eller kopla frå"
-
-#: ../gck/gck-misc.c:133
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "Dei krypterte dataa er ikkje gyldige eller ikkje gjenkjende"
-
-#: ../gck/gck-misc.c:135
-msgid "The encrypted data is too long"
-msgstr "Dei krypterte dataa er for lange"
-
-#: ../gck/gck-misc.c:137
-msgid "This operation is not supported"
-msgstr "Denne operasjonen er ikkje støtta"
-
-#: ../gck/gck-misc.c:139
-msgid "The key is missing or invalid"
-msgstr "Nøkkel manglar eller er ugyldig"
-
-#: ../gck/gck-misc.c:141
-msgid "The key is the wrong size"
-msgstr "Nøkkelen er av feil storleik"
-
-#: ../gck/gck-misc.c:143
-msgid "The key is of the wrong type"
-msgstr "Nøkkelen er av feil type"
-
-#: ../gck/gck-misc.c:145
-msgid "No key is needed"
-msgstr "Ingen nøkkel krevst"
-
-#: ../gck/gck-misc.c:147
-msgid "The key is different than before"
-msgstr "Nøkkelen er forskjellig frå tidlegare"
-
-#: ../gck/gck-misc.c:149
-msgid "A key is needed"
-msgstr "Nøkkel krevst"
-
-#: ../gck/gck-misc.c:151
-msgid "Cannot include the key in the digest"
-msgstr "Kan ikkje inkludera nøkkelen i samandraget"
-
-#: ../gck/gck-misc.c:153
-msgid "This operation cannot be done with this key"
-msgstr "Denne operasjonen kan ikkje utførast utan nøkkelen"
-
-#: ../gck/gck-misc.c:155
-msgid "The key cannot be wrapped"
-msgstr "Nøkkelen kan ikkje innpakkast"
-
-#: ../gck/gck-misc.c:157
-msgid "Cannot export this key"
-msgstr "Klarte ikkje eksportera denne nøkkelen"
-
-#: ../gck/gck-misc.c:159
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "Krypteringsmekanismen er ugyldig eller ikkje gjenkjend"
-
-#: ../gck/gck-misc.c:161
-msgid "The crypto mechanism has an invalid argument"
-msgstr "Krypteringsmekanismen har eit ugyldig argument"
-
-#: ../gck/gck-misc.c:163
-msgid "The object is missing or invalid"
-msgstr "Objektet manglar eller er ugyldig"
-
-#: ../gck/gck-misc.c:165
-msgid "Another operation is already taking place"
-msgstr "Ein annan operasjon finst alt stad"
-
-#: ../gck/gck-misc.c:167
-msgid "No operation is taking place"
-msgstr "Ingen operasjon finn stad"
-
-#: ../gck/gck-misc.c:169
-msgid "The password or PIN is incorrect"
-msgstr "Passordet eller PIN er feil"
-
-#: ../gck/gck-misc.c:171
-msgid "The password or PIN is invalid"
-msgstr "Passord eller PIN er ugyldig"
-
-#: ../gck/gck-misc.c:173
-msgid "The password or PIN is of an invalid length"
-msgstr "Passordet eller PIN er av ugyldig storleik"
-
-#: ../gck/gck-misc.c:175
-msgid "The password or PIN has expired"
-msgstr "Passordet eller PIN har gått ut på dato"
-
-#
-#: ../gck/gck-misc.c:177
-#| msgid "Enter password to unlock"
-msgid "The password or PIN is locked"
-msgstr "Passordet eller PIN er låst"
-
-#: ../gck/gck-misc.c:179
-msgid "The session is closed"
-msgstr "Økta er lukka"
-
-#: ../gck/gck-misc.c:181
-msgid "Too many sessions are active"
-msgstr "For mange økter er aktive"
-
-#: ../gck/gck-misc.c:183
-msgid "The session is invalid"
-msgstr "Økta er ugyldig"
-
-#: ../gck/gck-misc.c:185
-msgid "The session is read-only"
-msgstr "Økta er berre lesbar"
-
-#: ../gck/gck-misc.c:187
-msgid "An open session exists"
-msgstr "Ein open økt finst"
-
-#: ../gck/gck-misc.c:189
-msgid "A read-only session exists"
-msgstr "Ein økt som berre er lesbar finst"
-
-#: ../gck/gck-misc.c:191
-msgid "An administrator session exists"
-msgstr "Ein administratorøkt finst"
-
-#: ../gck/gck-misc.c:193
-msgid "The signature is bad or corrupted"
-msgstr "Signaturen er dårleg eller øydelagd"
-
-#: ../gck/gck-misc.c:195
-msgid "The signature is unrecognized or corrupted"
-msgstr "Signaturen er ikkje gjenkjend eller øydelagd"
-
-#: ../gck/gck-misc.c:197
-msgid "Certain required fields are missing"
-msgstr "Nokre nødvendige felt manglar"
-
-#: ../gck/gck-misc.c:199
-msgid "Certain fields have invalid values"
-msgstr "Nokre felt har ugyldige verdiar"
-
-#: ../gck/gck-misc.c:201
-msgid "The device is not present or unplugged"
-msgstr "Eininga er ikkje til stades eller kopla frå"
-
-#: ../gck/gck-misc.c:203
-msgid "The device is invalid or unrecognizable"
-msgstr "Eininga er ugyldig eller ikkje gjenkjenbar"
-
-#: ../gck/gck-misc.c:205
-msgid "The device is write protected"
-msgstr "Eininga er skrivebeskytta"
-
-#: ../gck/gck-misc.c:207
-msgid "Cannot import because the key is invalid"
-msgstr "Klarte ikkje importera fordi nøkkelen er ugyldig"
-
-#: ../gck/gck-misc.c:209
-msgid "Cannot import because the key is of the wrong size"
-msgstr "Klarte ikkje importera fordi nøkkelen er av feil storleik"
-
-#: ../gck/gck-misc.c:211
-msgid "Cannot import because the key is of the wrong type"
-msgstr "Klarte ikkje importera fordi nøkkelen er av feil type"
-
-#: ../gck/gck-misc.c:213
-msgid "You are already logged in"
-msgstr "Du er alt innlogga"
-
-#: ../gck/gck-misc.c:215
-msgid "No user has logged in"
-msgstr "Ingen brukarar har logga inn"
-
-#: ../gck/gck-misc.c:217
-msgid "The user's password or PIN is not set"
-msgstr "Passordet eller PIN til brukaren er ikkje sete"
-
-#: ../gck/gck-misc.c:219
-msgid "The user is of an invalid type"
-msgstr "Brukaren er av ugyldig type"
-
-#: ../gck/gck-misc.c:221
-msgid "Another user is already logged in"
-msgstr "Ein annan brukar er alt logga inn"
-
-#: ../gck/gck-misc.c:223
-msgid "Too many users of different types are logged in"
-msgstr "For mange brukarar av forskjellege typar er logga inn"
-
-#: ../gck/gck-misc.c:225
-msgid "Cannot import an invalid key"
-msgstr "Klarte ikkje importera ugyldig nøkkel"
-
-#: ../gck/gck-misc.c:227
-msgid "Cannot import a key of the wrong size"
-msgstr "Klarte ikkje importera nøkkel av feil storleik"
-
-#: ../gck/gck-misc.c:229
-msgid "Cannot export because the key is invalid"
-msgstr "Klarte ikkje eksportera fordi nøkkelen er ugyldig"
-
-#: ../gck/gck-misc.c:231
-msgid "Cannot export because the key is of the wrong size"
-msgstr "Klarte ikkje eksportera fordi nøkkelen er av feil storleik"
-
-#: ../gck/gck-misc.c:233
-msgid "Cannot export because the key is of the wrong type"
-msgstr "Klarte ikkje eksportera fordi nøkkelen er av feil type"
-
-#: ../gck/gck-misc.c:235
-msgid "Unable to initialize the random number generator"
-msgstr "Klarte ikkje starta generatoren for tilfeldige tal"
-
-#: ../gck/gck-misc.c:237
-msgid "No random number generator available"
-msgstr "Ingen generator for tilfeldige tal er tilgjengeleg"
-
-#: ../gck/gck-misc.c:239
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "Krypteringsmekanismen har eit ugyldig parameter"
-
-#: ../gck/gck-misc.c:241
-msgid "Not enough space to store the result"
-msgstr "Ikkje nok plass til å lagra resultatet"
-
-#: ../gck/gck-misc.c:243
-msgid "The saved state is invalid"
-msgstr "Lagra tilstand er ugyldig"
-
-#: ../gck/gck-misc.c:245
-msgid "The information is sensitive and cannot be revealed"
-msgstr "Informasjonen er sensitiv og kan ikkje openberrast"
-
-#: ../gck/gck-misc.c:247
-msgid "The state cannot be saved"
-msgstr "Tilstanden kan ikkje lagrast"
-
-#: ../gck/gck-misc.c:249
-msgid "The module has not been initialized"
-msgstr "Modulen har ikkje vorte starta"
-
-#: ../gck/gck-misc.c:251
-#| msgid "The keyring has already been unlocked."
-msgid "The module has already been initialized"
-msgstr "Modulen har alt vorte starta"
-
-#: ../gck/gck-misc.c:253
-msgid "Cannot lock data"
-msgstr "Klarte ikkje låsa data"
-
-#: ../gck/gck-misc.c:255
-msgid "The data cannot be locked"
-msgstr "Dataa kan ikkje låsast"
-
-#: ../gck/gck-misc.c:257
-msgid "The signature request was rejected by the user"
-msgstr "Førespurnad for signatur vart avvist av brukaren"
-
-#: ../gck/gck-misc.c:261
-msgid "Unknown error"
-msgstr "Ukjend feil"
-
-#
-#: ../pkcs11/gkm/gkm-certificate.c:725
-#| msgid "Unlock certificate"
+#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Sertifikat utan namn"
@@ -888,28 +290,25 @@ msgid "Couldn't parse public SSH key"
msgstr "Klarte ikkje lesa offentleg SSH-nøkkel"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:317
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
-#| msgid "Unlock password for '%s'"
msgid "Unlock password for: %s"
msgstr "LÃ¥s opp passord for: %s"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:794
-#| msgid "Unlock password for %s keyring"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
msgid "The unlock password was incorrect"
msgstr "Passord for å låsa opp var ikkje korrekt"
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:626
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
msgid "Unlock Login Keyring"
msgstr "Lås opp innloggingsnøkkelring"
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:628
-#| msgid "Enter login password to unlock keyring"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
msgid "Enter password to unlock your login keyring"
msgstr "Skriv inn passord for å låsa opp innloggingsnøkkelringen din"
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:632
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
msgid ""
"The password you use to log in to your computer no longer matches that of "
"your login keyring."
@@ -917,58 +316,68 @@ msgstr ""
"Passordet du brukar for å logga inn til datamaskina er ikkje lenger lik det "
"i innloggingsnøkkelringen din."
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
-#| msgid ""
-#| "Your login keyring was not automatically unlocked when you logged into "
-#| "this computer."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
msgid ""
"The login keyring did not get unlocked when you logged into your computer."
msgstr ""
"Innloggingsnøkkelringen vart ikkje låst opp når du logga inn på datamaskina"
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:652
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
msgid "Unlock Keyring"
msgstr "Lås opp nøkkelring"
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:654
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
#, c-format
msgid "Enter password for keyring '%s' to unlock"
msgstr "Oppgje passord for nøkkelring «%s» for å låsa opp"
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:658
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
#, c-format
-#| msgid ""
-#| "An unknown application wants access to the keyring '%s', but it is locked"
msgid "An application wants access to the keyring '%s', but it is locked"
msgstr "Eit program ønskjer å få tilgang til nøkkelring «%s», men han er låst"
#
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:678
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
msgid "Unlock private key"
msgstr "Lås opp privat nøkkel"
#
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:680
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
msgid "Unlock certificate"
msgstr "LÃ¥s opp sertifikat"
#
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:682
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
msgid "Unlock public key"
msgstr "Lås opp offentleg nøkkel"
#
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:684
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
msgid "Unlock"
msgstr "LÃ¥s opp"
#
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:697
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Oppgje passord for for å låsa opp privat nøkkel"
+
+#
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Oppgje passord for for å låsa opp sertifikat"
+
+#
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Oppgje passord for for å låsa opp offentleg nøkkel"
+#
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Oppgje passord for for å låsa opp"
+
#. TRANSLATORS: The private key is locked
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:709
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
msgid "An application wants access to the private key '%s', but it is locked"
msgstr ""
@@ -976,40 +385,36 @@ msgstr ""
"låst"
#. TRANSLATORS: The certificate is locked
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:712
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
#, c-format
msgid "An application wants access to the certificate '%s', but it is locked"
msgstr "Eit program ønskjer tilgang til sertifikat «%s», men det er låst"
#. TRANSLATORS: The public key is locked
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:715
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
#, c-format
msgid "An application wants access to the public key '%s', but it is locked"
msgstr "Eit program ønskjer tilgang til offentleg nøkkel «%s», men han er låst"
#. TRANSLATORS: The object '%s' is locked
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:718
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
#, c-format
msgid "An application wants access to '%s', but it is locked"
msgstr "Eit program ønskjer tilgang til «%s», men det er låst"
#
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:815
-#| msgid "Unlock certificate"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
msgid "Unlock certificate/key storage"
msgstr "Lås opp sertifikat-/nøkkellageret"
#
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:816
-#| msgid "Enter password to unlock the certificate"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
msgid "Enter password to unlock the certificate/key storage"
msgstr "Oppgje passord for å låsa opp sertifikat-/nøkkellageret"
#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:819
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
#, c-format
-#| msgid ""
-#| "An application wants access to the certificate '%s', but it is locked"
msgid ""
"An application wants access to the certificate/key storage '%s', but it is "
"locked"
@@ -1017,16 +422,15 @@ msgstr ""
"Eit program øsnkjer tilgang til sertifikat-/nøkkellageret «%s», men det er "
"låst'"
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1057
-#| msgid "New password strength"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
msgid "New Password Required"
msgstr "Nytt passord krevst"
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1058
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
msgid "New password required for secure storage"
msgstr "Nytt passord krevst for trygg lagring"
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1060
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
#, c-format
msgid ""
"In order to prepare '%s' for storage of certificates or keys, a password is "
@@ -1034,29 +438,41 @@ msgid ""
msgstr ""
"For å førebu «%s» for lagring av sertifikat eller nøklar krevst eit passord"
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1183
-#| msgid "Change Keyring Password"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
msgid "Change Password"
msgstr "Endra passord"
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1184
-#| msgid "Choose password for new keyring"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
msgid "Change password for secure storage"
msgstr "Endra passord for trygg lagring"
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1186
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
msgid ""
"To change the password for '%s', the original and new passwords are required"
msgstr "For å endra passordet til «%s» krevst originalt og nytt passord."
+#: ../tool/gkr-tool.c:102
+#, c-format
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
+
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
+
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
+
#
-#: ../ui/gku-prompt-tool.c:538
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Lagra passord ukryptert?"
#
-#: ../ui/gku-prompt-tool.c:539
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1067,30 +483,36 @@ msgstr ""
"tilgang til filene dine."
#
-#: ../ui/gku-prompt-tool.c:546
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Bruk utrygg lagring"
-#: ../ui/gku-prompt-tool.c:584
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Passorda er ikkje like."
#
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Passordet kan ikkje vera tomt"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
+
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
+
#: ../ui/gku-prompt.ui.h:1
msgid "New password strength"
msgstr "Styrke for nytt passord"
#: ../ui/gku-prompt.ui.h:2
-#| msgid "_Location:"
msgid "_Application:"
msgstr "_Program:"
#: ../ui/gku-prompt.ui.h:3
-#| msgid "_Confirm password:"
msgid "_Confirm:"
msgstr "_Stadfest:"
@@ -1103,305 +525,9 @@ msgid "_Name:"
msgstr "_Namn"
#: ../ui/gku-prompt.ui.h:6
-#| msgid "_Old password:"
msgid "_Old Password:"
msgstr "_Gammalt passord:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Passord:"
-
-#~ msgid "Removable Disk: %s"
-#~ msgstr "Avtagbar disk: %s"
-
-#~ msgid "Removable Disk"
-#~ msgstr "Avtagbar disk"
-
-#~ msgid "Home"
-#~ msgstr "Heim"
-
-#~ msgid "The disk or drive this file is located on is not present"
-#~ msgstr "Disken eller stasjonen denne fila er plassert på er ikkje tilstades"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "Programmet «%s» (%s) ynskjer tilgang til passordet for «<object prop='name'/"
-#~ ">» på forvald nøkkelring."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "Programmet «%s» (%s) ynskjer tilgang til passordet for «<object prop='name'/"
-#~ ">» i %s."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "Programmet «%s» ynskjer tilgang til passordet for «<object prop='name'/>» "
-#~ "på forvald nøkkelring."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "Programmet «%s» ynskjer tilgang til passordet for «<object prop='name'/>» "
-#~ "på %s."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "Eit ukjent program ynskjer tilgang til passordet for «<object prop='name'/"
-#~ ">» på forvald nøkkelring."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "Eit ukjent program ynskjer tilgang til passordet for «<object prop='name'» "
-#~ "på %s."
-
-#~ msgid "Allow access"
-#~ msgstr "Gje tilgang"
-
-#~ msgid "Allow application access to keyring?"
-#~ msgstr "Gje program tilgang til nøkkelring?"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Programmet «%s» (%s) ynskjer tilgang til forvald nøkkelring, men den er "
-#~ "låst"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Programmet «%s» (%s) ynskjer tilgang til nøkkelring «%s», men den er låst"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-#~ msgstr ""
-#~ "Programmet «%s» ynskjer tilgang til forvald nøkkelring, men den er låst"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-#~ msgstr "Programmet «%s» ynskjer tilgang til nøkkelring «%s», men den er låst"
-
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Eit ukjent program ynskjer tilgang til forvald nøkkelring, men den er låst"
-
-#~ msgid "Enter password for default keyring to unlock"
-#~ msgstr "Oppgje passord for forvald nøkkelring for å låse opp"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Programmet «%s» (%s) ynskjer å oppretta ein ny nøkkelring kalla «%s». Du må "
-#~ "velja passordet du ynskjer å bruka for denne."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Programmet «%s» (%s) ynskjer å oppretta ein ny forvald nøkkelring. Du må "
-#~ "velja passordet du ynskjer å bruka for denne."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Programmet «%s» ynskjer å oppretta ein ny nøkkelring kalla «%s». Du må "
-#~ "velja passordet du ynskjer å bruka for denne."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "Programmet «%s» ynskjer å oppretta ein ny forvald nøkkelring. Du må velja "
-#~ "passordet du ynskjer å bruka for denne."
-
-#~ msgid ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "Eit ukjent program ynskjer å oppretta ein ny forvald nøkkelring. Du må "
-#~ "velja passordet du ynskjer å bruka for denne."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Programmet «%s» (%s) ynskjer å byte passord for nøkkelring «%s». Du må "
-#~ "velja passordet du ynskjer å bruka for denne."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Programmet «%s» (%s) ynskjer å byte passord for forvald nøkkelring. Du må "
-#~ "velja passordet du ynskjer å bruka for denne."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Programmet «%s» ynskjer å byte passord for nøkkelring «%s». Du må velja "
-#~ "passordet du ynskjer å bruka for denne."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Programmet «%s» ynskjer å byte passord for forvald nøkkelring. Du må velja "
-#~ "passordet du ynskjer å bruka for denne."
-
-#~ msgid ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Eit ukjent program ynskjer å byte passord for forvald nøkkelring. Du må "
-#~ "velja passordet du ynskjer å bruka for denne."
-
-#~ msgid "Choose a new password for the default keyring. "
-#~ msgstr "Vel eit nytt passord for forvald nøkkelring. "
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-#~ msgstr ""
-#~ "Programmet «%s» (%s) ynskjer å lagra eit passord, men det finst inga "
-#~ "forvald nøkkelring. For å oppretta ein må du lagra passordet du ynskjer å "
-#~ "bruka for den."
-
-#~ msgid ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "Programmet «%s» ynskjer å lagra eit passord, men det finst inga forvald "
-#~ "nøkkelring. For å oppretta ein må du lagra passordet du ynskjer å bruka "
-#~ "for den."
-
-#~ msgid ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "Eit ukjent program ynskjer å lagra eit passord, men det finst inga "
-#~ "forvald nøkkelring. For å oppretta ein må du lagra passordet du ynskjer å "
-#~ "bruka for den."
-
-#~ msgid "Create Default Keyring"
-#~ msgstr "Opprett forvald nøkkelring"
-
-#~ msgid "Choose password for default keyring"
-#~ msgstr "Oppgje passord for forvald nøkkelring"
-
-#
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect as gnome-keyring-daemon starts, (ie: when the user logs "
-#~ "in). This setting may be overridden when certain command line arguments "
-#~ "are passed to the daemon."
-#~ msgstr ""
-#~ "Dette alternativet slår på PKCS#11-delen av gnome-keyring-tenesten. Dette "
-#~ "trer berre i kraft når gnome-keyring-daemon startar. Altså når brukaren "
-#~ "loggar inn. Denne innstillinga kan overstyrast med spesifikke "
-#~ "kommandolinjeargumenter givast til tenesten."
-
-#
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "Dette alternativet slår på SSH-delen av gnome-keyring-tenesten. Dette "
-#~ "trer berre i kraft når gnome-keyring-daemon startar. Altså når brukaren "
-#~ "loggar inn. Denne innstillinga kan overstyrast med spesifikke "
-#~ "kommandolinjeargumenter givast til tenesten."
-
-#
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "Om PKCS#11-delen av gnome-keyring er slått på."
-
-#
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "Om SSH-agenten for gnome-keyring er slått på."
-
-#~ msgid "Access Denied"
-#~ msgstr "Tilgang nekta"
-
-#~ msgid "The gnome-keyring-daemon application is not running."
-#~ msgstr "Programmet gnome-keyring-daemon køyrer ikkje."
-
-#~ msgid "Error communicating with gnome-keyring-daemon"
-#~ msgstr "Feil ved kommunikasjon med gnome-keyring-daemon"
-
-#~ msgid "A keyring with that name already exists"
-#~ msgstr "Ein nøkkelring med dette namnet eksisterer allereie"
-
-#~ msgid "Programmer error: The application sent invalid data."
-#~ msgstr "Programfeil: Programmet sendte ugyldige data."
-
-#~ msgid "No matching results"
-#~ msgstr "Inga treff"
-
-#~ msgid "A keyring with that name does not exist."
-#~ msgstr "Det finst inga nøkkelring med dette namnet."
-
-#~ msgid "Create Login Keyring"
-#~ msgstr "Opprett nøkkelring for pålogging"
-
-#~ msgid "Enter your login password"
-#~ msgstr "Oppgje påloggingspassord"
-
-#~ msgid ""
-#~ "Your login keyring was not automatically created when you logged into "
-#~ "this computer. It will now be created."
-#~ msgstr ""
-#~ "Din påloggingsnøkkelring vart ikkje oppretta automatisk når du logga på "
-#~ "denne datamaskinen. Den vil verta oppretta no."
-
-#
-#~ msgid "Automatically unlock this private key when I log in."
-#~ msgstr "Lås opp denne private nøkkelringa automatisk når eg loggar inn."
-
-#
-#~ msgid "Automatically unlock this certificate when I log in."
-#~ msgstr "Lås opp dette sertifikatet automatisk når eg loggar inn."
-
-#
-#~ msgid "Automatically unlock this public key when I log in."
-#~ msgstr "Lås opp denne offentlige nøkkelringa automatisk når eg loggar inn."
-
-#
-#~ msgid "Automatically unlock this when I log in"
-#~ msgstr "Lås denne opp automatisk når eg loggar inn."
-
-#~ msgid "The system wants to import the public key '%s', but it is locked"
-#~ msgstr "Systemet ynskjer å importere offentlig nøkkel «%s», men den er låst."
-
-#~ msgid "Deny"
-#~ msgstr "Nekt"
-
-#~ msgid "Allow _Once"
-#~ msgstr "Tillat éin gong"
-
-#
-#~ msgid "_Always Allow"
-#~ msgstr "Tillat _alltid"
-
-#~ msgid "Old password cannot be blank."
-#~ msgstr "Gammalt passord kan ikkje vera tomt."
diff --git a/po/oc.po b/po/oc.po
index 968080a6..62d750ca 100644
--- a/po/oc.po
+++ b/po/oc.po
@@ -8,527 +8,498 @@ msgid ""
msgstr ""
"Project-Id-Version: oc\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-07-02 08:58+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2007-12-27 01:08+0100\n"
"Last-Translator: Yannig Marchegay (Kokoyaya) <yannig@marchegay.org>\n"
"Language-Team: Occitan <ubuntu-l10n-oci@lists.ubuntu.com>\n"
+"Language: oc\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: ../common/gkr-location.c:317
-#, c-format
-msgid "Removable Disk: %s"
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
msgstr ""
-#: ../common/gkr-location.c:319
-msgid "Removable Disk"
+#: ../daemon/dbus/gkd-secret-change.c:86
+msgid "Change Keyring Password"
msgstr ""
-#: ../common/gkr-location.c:534 ../common/gkr-location.c:546
-msgid "Home"
-msgstr "Repertòri personal"
-
-#: ../common/gkr-location.c:1074 ../common/gkr-location.c:1097
-#: ../pkix/gkr-pkix-parser.c:514 ../pkix/gkr-pkix-serialize.c:58
-msgid "The disk or drive this file is located on is not present"
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, c-format
+msgid "Choose a new password for the '%s' keyring"
msgstr ""
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:222
+#: ../daemon/dbus/gkd-secret-change.c:92
#, c-format
msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in the default keyring."
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
msgstr ""
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:226
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in %s."
+#: ../daemon/dbus/gkd-secret-change.c:111
+msgid "The original password was incorrect"
msgstr ""
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:232 ../daemon/gkr-daemon-ops.c:242
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in the default keyring."
+#: ../daemon/dbus/gkd-secret-create.c:83
+msgid "New Keyring Password"
msgstr ""
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:236 ../daemon/gkr-daemon-ops.c:246
+#: ../daemon/dbus/gkd-secret-create.c:84
+msgid "Choose password for new keyring"
+msgstr ""
+
+#: ../daemon/dbus/gkd-secret-create.c:86
#, c-format
msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in %s."
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:252
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in the default keyring."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+msgid "Certificate and Key Storage"
msgstr ""
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:255
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in %s."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+msgid "GNOME Keyring: PKCS#11 Component"
msgstr ""
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:261
-msgid "Allow access"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+msgid "GNOME Keyring: Secret Service"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:261
-msgid "Allow application access to keyring?"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:311
-#, c-format
-msgid "Unlock password for %s keyring"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+msgid "GNOME Keyring: SSH Agent"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:368
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:372
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the keyring '%s', but it is locked"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+msgid "GNOME Keyring: GPG Agent"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:378 ../daemon/gkr-daemon-ops.c:388
-#, c-format
-msgid ""
-"The application '%s' wants access to the default keyring, but it is locked"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+msgid "GPG Password Agent"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:382 ../daemon/gkr-daemon-ops.c:393
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+msgid "Unknown"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid ""
-"An unknown application wants access to the default keyring, but it is locked"
+msgid "PGP Key: %s"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:403
-#, c-format
-msgid ""
-"An unknown application wants access to the keyring '%s', but it is locked"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:410
-msgid "Enter password for default keyring to unlock"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:412
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:416
-msgid "Unlock Keyring"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:428
-msgid "Automatically unlock this keyring when I log in."
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:464
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:41
+msgid "Domain Component"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:468
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:43
+msgid "User ID"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:474 ../daemon/gkr-daemon-ops.c:484
-#, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:46
+msgid "Email Address"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:478 ../daemon/gkr-daemon-ops.c:488
-#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:54
+msgid "Date of Birth"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:494
-#, c-format
-msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
+#: ../egg/egg-oid.c:56
+msgid "Place of Birth"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:498
-#, c-format
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:58
+msgid "Gender"
msgstr ""
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:504
-msgid "New Keyring Password"
+#: ../egg/egg-oid.c:60
+msgid "Country of Citizenship"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:505
-msgid "Choose password for new keyring"
+#: ../egg/egg-oid.c:62
+msgid "Country of Residence"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:552
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:65
+msgid "Common Name"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:556
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:67
+msgid "Surname"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:562 ../daemon/gkr-daemon-ops.c:572
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:69
+msgid "Serial Number"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:566 ../daemon/gkr-daemon-ops.c:576
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:71
+msgid "Country"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:582
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:73
+msgid "Locality"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:586
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:75
+msgid "State"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:596
-#, c-format
-msgid "Choose a new password for the '%s' keyring. "
+#: ../egg/egg-oid.c:77
+msgid "Street"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:598
-#, c-format
-msgid "Choose a new password for the default keyring. "
+#: ../egg/egg-oid.c:79
+msgid "Organization"
msgstr ""
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:602
-msgid "Change Keyring Password"
+#: ../egg/egg-oid.c:81
+msgid "Organizational Unit"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:672
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../egg/egg-oid.c:83
+msgid "Title"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:676 ../daemon/gkr-daemon-ops.c:680
-#, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../egg/egg-oid.c:85
+msgid "Telephone Number"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:684
-#, c-format
-msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../egg/egg-oid.c:87
+msgid "Given Name"
msgstr ""
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:689
-msgid "Create Default Keyring"
+#: ../egg/egg-oid.c:89
+msgid "Initials"
msgstr ""
-#: ../daemon/gkr-daemon-ops.c:689
-msgid "Choose password for default keyring"
+#: ../egg/egg-oid.c:91
+msgid "Generation Qualifier"
msgstr ""
-#: ../data/gnome-keyring.schemas.in.h:1
-msgid ""
-"This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-"only takes effect as gnome-keyring-daemon starts, (ie: when the user logs "
-"in). This setting may be overridden when certain command line arguments are "
-"passed to the daemon."
+#: ../egg/egg-oid.c:93
+msgid "DN Qualifier"
msgstr ""
-#: ../data/gnome-keyring.schemas.in.h:2
-msgid ""
-"This option enables the SSH agent in the gnome-keyring daemon. It only takes "
-"effect as gnome-keyring-daemon starts, (ie: when the user logs in). This "
-"setting may be overridden when certain command line arguments are passed to "
-"the daemon."
+#: ../egg/egg-oid.c:95
+msgid "Pseudonym"
msgstr ""
-#: ../data/gnome-keyring.schemas.in.h:3
-msgid "Whether the gnome-keyring PKCS#11 component is enabled."
+#: ../egg/egg-oid.c:98
+msgid "RSA"
msgstr ""
-#: ../data/gnome-keyring.schemas.in.h:4
-msgid "Whether the gnome-keyring SSH agent is enabled."
+#: ../egg/egg-oid.c:99
+msgid "MD2 with RSA"
msgstr ""
-#: ../library/gnome-keyring-utils.c:91
-msgid "Access Denied"
+#: ../egg/egg-oid.c:100
+msgid "MD5 with RSA"
msgstr ""
-#: ../library/gnome-keyring-utils.c:93
-msgid "The gnome-keyring-daemon application is not running."
+#: ../egg/egg-oid.c:101
+msgid "SHA1 with RSA"
msgstr ""
-#: ../library/gnome-keyring-utils.c:95
-msgid "Error communicating with gnome-keyring-daemon"
+#: ../egg/egg-oid.c:103
+msgid "DSA"
msgstr ""
-#: ../library/gnome-keyring-utils.c:97
-msgid "A keyring with that name already exists"
+#: ../egg/egg-oid.c:104
+msgid "SHA1 with DSA"
msgstr ""
-#: ../library/gnome-keyring-utils.c:99
-msgid "Programmer error: The application sent invalid data."
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
msgstr ""
-#: ../library/gnome-keyring-utils.c:101
-msgid "No matching results"
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
msgstr ""
-#: ../library/gnome-keyring-utils.c:103
-msgid "A keyring with that name does not exist."
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
msgstr ""
-#: ../library/gnome-keyring-utils.c:110
-msgid "The keyring has already been unlocked."
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
msgstr ""
-#. And put together the ask request
-#: ../keyrings/gkr-keyring-login.c:98
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
+
+#: ../egg/egg-spawn.c:273
+#, c-format
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr ""
+
+#: ../egg/egg-spawn.c:320
+#, c-format
+msgid "Unexpected error in waitpid() (%s)"
+msgstr ""
+
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr ""
+
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
+msgstr ""
+
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, c-format
+msgid "Unlock password for: %s"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+msgid "The unlock password was incorrect"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
msgid "Unlock Login Keyring"
msgstr ""
-#: ../keyrings/gkr-keyring-login.c:98
-msgid "Enter login password to unlock keyring"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+msgid "Enter password to unlock your login keyring"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
msgstr ""
-#: ../keyrings/gkr-keyring-login.c:100
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
msgid ""
-"Your login keyring was not automatically unlocked when you logged into this "
-"computer."
+"The login keyring did not get unlocked when you logged into your computer."
msgstr ""
-#. And put together the ask request
-#: ../keyrings/gkr-keyring-login.c:124
-msgid "Create Login Keyring"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
msgstr ""
-#: ../keyrings/gkr-keyring-login.c:124
-msgid "Enter your login password"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
+#, c-format
+msgid "Enter password for keyring '%s' to unlock"
msgstr ""
-#: ../keyrings/gkr-keyring-login.c:126
-msgid ""
-"Your login keyring was not automatically created when you logged into this "
-"computer. It will now be created."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
msgstr ""
-#: ../pk/gkr-pk-object-storage.c:100
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
msgid "Unlock private key"
msgstr ""
-#: ../pk/gkr-pk-object-storage.c:102
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
msgid "Unlock certificate"
msgstr ""
-#: ../pk/gkr-pk-object-storage.c:104
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
msgid "Unlock public key"
msgstr ""
-#: ../pk/gkr-pk-object-storage.c:106
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
msgid "Unlock"
msgstr ""
-#: ../pk/gkr-pk-object-storage.c:117
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
msgid "Enter password to unlock the private key"
msgstr ""
-#: ../pk/gkr-pk-object-storage.c:119
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
msgid "Enter password to unlock the certificate"
msgstr ""
-#: ../pk/gkr-pk-object-storage.c:121
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr ""
-#: ../pk/gkr-pk-object-storage.c:123
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
msgid "Enter password to unlock"
msgstr ""
-#: ../pk/gkr-pk-object-storage.c:134
-msgid "Automatically unlock this private key when I log in."
-msgstr ""
-
-#: ../pk/gkr-pk-object-storage.c:136
-msgid "Automatically unlock this certificate when I log in."
-msgstr ""
-
-#: ../pk/gkr-pk-object-storage.c:138
-msgid "Automatically unlock this public key when I log in."
-msgstr ""
-
-#: ../pk/gkr-pk-object-storage.c:140
-msgid "Automatically unlock this when I log in"
-msgstr ""
-
-#: ../pk/gkr-pk-object-storage.c:155
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
msgid "An application wants access to the private key '%s', but it is locked"
msgstr ""
-#: ../pk/gkr-pk-object-storage.c:157
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
#, c-format
msgid "An application wants access to the certificate '%s', but it is locked"
msgstr ""
-#: ../pk/gkr-pk-object-storage.c:159
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
#, c-format
msgid "An application wants access to the public key '%s', but it is locked"
msgstr ""
-#: ../pk/gkr-pk-object-storage.c:161
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
#, c-format
msgid "An application wants access to '%s', but it is locked"
msgstr ""
-#: ../pk/gkr-pk-object-storage.c:167
-#, c-format
-msgid "The system wants to import the private key '%s', but it is locked"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
msgstr ""
-#: ../pk/gkr-pk-object-storage.c:169
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
+msgstr ""
+
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
#, c-format
-msgid "The system wants to import the certificate '%s', but it is locked"
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
msgstr ""
-#: ../pk/gkr-pk-object-storage.c:171
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
#, c-format
-msgid "The system wants to import the public key '%s', but it is locked"
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
msgstr ""
-#: ../pk/gkr-pk-object-storage.c:173
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "Mot de _pas :"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+msgid "Change password for secure storage"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
-msgid "The system wants to import '%s', but it is locked"
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
msgstr ""
-#: ../pk/gkr-pk-object-storage.c:289
+#: ../tool/gkr-tool.c:102
#, c-format
-msgid "Unlock password for '%s'"
+msgid "usage: gnome-keyring command [options]\n"
msgstr ""
-#: ../pkix/gkr-pkix-parser.c:445
-msgid "Unrecognized or unsupported file."
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
msgstr ""
-#: ../pkix/gkr-pkix-parser.c:449
-msgid "Could not parse invalid or corrupted file."
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
msgstr ""
-#: ../ui/gkr-ask-tool.c:182
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr ""
-#: ../ui/gkr-ask-tool.c:183
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
"files."
msgstr ""
-#: ../ui/gkr-ask-tool.c:190
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr ""
-#: ../ui/gkr-ask-tool.c:413
-msgid "_Location:"
-msgstr "_Emplaçament :"
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr "Los mots de pas son pas los meteisses."
-#: ../ui/gkr-ask-tool.c:426
-msgid "_Old password:"
-msgstr ""
+#: ../ui/gku-prompt-tool.c:649
+msgid "Password cannot be blank"
+msgstr "Lo mot de pas pòt pas èsser void"
-#: ../ui/gkr-ask-tool.c:446
-msgid "_Password:"
-msgstr "Mot de _pas :"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
-#: ../ui/gkr-ask-tool.c:468
-msgid "_Confirm password:"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
msgstr ""
-#: ../ui/gkr-ask-tool.c:488
+#: ../ui/gku-prompt.ui.h:1
msgid "New password strength"
msgstr ""
-#: ../ui/gkr-ask-tool.c:546
-msgid "Passwords do not match."
-msgstr "Los mots de pas son pas los meteisses."
-
-#: ../ui/gkr-ask-tool.c:562
-msgid "Password cannot be blank"
-msgstr "Lo mot de pas pòt pas èsser void"
+#: ../ui/gku-prompt.ui.h:2
+#, fuzzy
+msgid "_Application:"
+msgstr "_Emplaçament :"
-#: ../ui/gkr-ask-tool.c:613
-msgid "Deny"
+#: ../ui/gku-prompt.ui.h:3
+msgid "_Confirm:"
msgstr ""
-#: ../ui/gkr-ask-tool.c:625
-msgid "Allow _Once"
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
msgstr ""
-#: ../ui/gkr-ask-tool.c:629
-msgid "_Always Allow"
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
msgstr ""
+
+#: ../ui/gku-prompt.ui.h:6
+#, fuzzy
+msgid "_Old Password:"
+msgstr "Mot de _pas :"
+
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "Mot de _pas :"
diff --git a/po/or.po b/po/or.po
index d359084c..447b9646 100644
--- a/po/or.po
+++ b/po/or.po
@@ -7,11 +7,12 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.master.or\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-keyring&component=general\n"
-"POT-Creation-Date: 2010-02-18 18:02+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2010-05-12 12:41+0530\n"
"Last-Translator: Manoj Kumar Giri <mgiri@redhat.com>\n"
"Language-Team: Oriya <Translation-team-or@lists.sourceforge.net>\n"
+"Language: or\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -27,86 +28,25 @@ msgstr ""
"\n"
"\n"
-#: ../daemon/data/gnome-keyring.schemas.in.h:1
-#, fuzzy
-#| msgid ""
-#| "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#| "only takes effect as gnome-keyring-daemon starts, (ie: when the user logs "
-#| "in). This setting may be overridden when certain command line arguments "
-#| "are passed to the daemon."
-msgid ""
-"This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-"only takes effect during startup with gnome-session, (ie: when the user logs "
-"in). This setting may be overridden when certain command line arguments are "
-"passed to the daemon."
-msgstr ""
-"à¬à¬¹à¬¿ ବିକଳà­à¬ª PKCS#11 ସଦସà­à­Ÿà¬•à­ gnome-keyring ଡେମନରେ ସକà­à¬°à¬¿à­Ÿ କରିଥାà¬à¥¤ gnome-keyring-daemon "
-"ଆରମà­à¬­ ହେଲେ à¬à¬¹à¬¾ ଘଟିଥାà¬, (ie: ଯେତେବେଳେ ଚାଳକମାନେ ଲଗଇନ କରନà­à¬¤à¬¿). à¬à¬¹à¬¿ ବିନà­à­Ÿà¬¾à¬¸à¬•à­ ନବଲିଖନ "
-"କରିହେବ।"
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:2
-msgid ""
-"This option enables the SSH agent in the gnome-keyring daemon. It only takes "
-"effect as gnome-keyring-daemon starts, (ie: when the user logs in). This "
-"setting may be overridden when certain command line arguments are passed to "
-"the daemon."
-msgstr ""
-"à¬à¬¹à¬¿ ବିକଳà­à¬ª SSH ସଦସà­à­Ÿà¬•à­ gnome-keyring ଡେମନରେ ସକà­à¬°à¬¿à­Ÿ କରିଥାà¬à¥¤ gnome-keyring-daemon ଆରମà­à¬­ "
-"ହେଲେ à¬à¬¹à¬¾ ଘଟିଥାà¬, (ie: ଯେତେବେଳେ ଚାଳକମାନେ ଲଗଇନ କରନà­à¬¤à¬¿). à¬à¬¹à¬¿ ବିନà­à­Ÿà¬¾à¬¸à¬•à­ ନବଲିଖନ କରିହେବ।"
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:3
-#, fuzzy
-#| msgid ""
-#| "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#| "only takes effect as gnome-keyring-daemon starts, (ie: when the user logs "
-#| "in). This setting may be overridden when certain command line arguments "
-#| "are passed to the daemon."
-msgid ""
-"This option enables the secret service component in the gnome-keyring "
-"daemon. It only takes effect during startup with gnome-session, (ie: when "
-"the user logs in). This setting may be overridden when certain command line "
-"arguments are passed to the daemon."
-msgstr ""
-"à¬à¬¹à¬¿ ବିକଳà­à¬ª PKCS#11 ସଦସà­à­Ÿà¬•à­ gnome-keyring ଡେମନରେ ସକà­à¬°à¬¿à­Ÿ କରିଥାà¬à¥¤ gnome-keyring-daemon "
-"ଆରମà­à¬­ ହେଲେ à¬à¬¹à¬¾ ଘଟିଥାà¬, (ie: ଯେତେବେଳେ ଚାଳକମାନେ ଲଗଇନ କରନà­à¬¤à¬¿). à¬à¬¹à¬¿ ବିନà­à­Ÿà¬¾à¬¸à¬•à­ ନବଲିଖନ "
-"କରିହେବ।"
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:4
-msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-msgstr "gnome-କିରିଙà­à¬— PKCS#11 ଉପାଦାନଟି ସକà­à¬°à¬¿à­Ÿ ହୋଇଛି କି ନାହିà¬à¥¤"
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:5
-msgid "Whether the gnome-keyring SSH agent is enabled."
-msgstr "gnome-କିରିଙà­à¬— SSH ସଦସà­à­Ÿà¬Ÿà¬¿ ସକà­à¬°à¬¿à­Ÿ ହୋଇଛି କି ନାହିà¬à¥¤"
-
-#: ../daemon/data/gnome-keyring.schemas.in.h:6
-#, fuzzy
-#| msgid "Whether the gnome-keyring SSH agent is enabled."
-msgid "Whether the gnome-keyring secret service is enabled."
-msgstr "gnome-କିରିଙà­à¬— SSH ସଦସà­à­Ÿà¬Ÿà¬¿ ସକà­à¬°à¬¿à­Ÿ ହୋଇଛି କି ନାହିà¬à¥¤"
-
#. TRANSLATORS: This is the label for an keyring created without a label
-#: ../daemon/dbus/gkd-secret-change.c:77 ../daemon/dbus/gkd-secret-create.c:73
-#: ../daemon/dbus/gkd-secret-unlock.c:119 ../daemon/login/gkd-login.c:584
-#: ../pkcs11/secret-store/gck-secret-collection.c:320
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "ନାମହୀନ"
-#: ../daemon/dbus/gkd-secret-change.c:85
+#: ../daemon/dbus/gkd-secret-change.c:86
msgid "Change Keyring Password"
msgstr "କି-ରିଙà­à¬— ପà­à¬°à¬¬à¬¶ ସଙà­à¬•à­‡à¬¤à¬•à­ ବଦଳାନà­à¬¤à­"
-#: ../daemon/dbus/gkd-secret-change.c:87
+#: ../daemon/dbus/gkd-secret-change.c:88
#, fuzzy, c-format
-#| msgid "Choose a new password for the '%s' keyring."
msgid "Choose a new password for the '%s' keyring"
msgstr "'%s' କି-ରିଙà­à¬— ପାଇଠଗୋଟିଠନୂତନ ପà­à¬°à¬¬à­‡à¬¶ ସଙà­à¬•à­‡à¬¤à¬•à­ ଚୟନ କରନà­à¬¤à­à¥¤"
-#: ../daemon/dbus/gkd-secret-change.c:91
+#: ../daemon/dbus/gkd-secret-change.c:92
#, fuzzy, c-format
-#| msgid ""
-#| "An unknown application wants to change the password for the '%s' keyring. "
-#| "You have to choose the password you want to use for it."
msgid ""
"An application wants to change the password for the '%s' keyring. Choose the "
"new password you want to use for it."
@@ -114,25 +54,21 @@ msgstr ""
"ଗୋଟିଠଅଜଣା ପà­à¬°à­Ÿà­‹à¬— '%s' କି-ରିଙà­à¬— ପାଇଠପà­à¬°à¬¬à­‡à¬¶ ସଙà­à¬•à­‡à¬¤à¬•à­ ବଦଳାଇ ପାଇଠଚାହà­à¬à¬…ଛି। à¬à¬¥à¬¿à¬°à­‡ ବà­à¬¯à¬¬à¬¹à¬¾à¬° "
"କରିବା ପାଇଠଚାହà­à¬à¬¥à¬¿à¬¬à¬¾ ପà­à¬°à¬¬à­‡à¬¶ ସଙà­à¬•à­‡à¬¤à¬•à­ ଆପଣ ଚୟନ କରିବା ଉଚିତ।"
-#: ../daemon/dbus/gkd-secret-change.c:110
+#: ../daemon/dbus/gkd-secret-change.c:111
#, fuzzy
-#| msgid "The password or PIN is incorrect"
msgid "The original password was incorrect"
msgstr "ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ କିମà­à¬¬à¬¾ PIN ଟି ଭà­à¬² ଅଛି"
-#: ../daemon/dbus/gkd-secret-create.c:77
+#: ../daemon/dbus/gkd-secret-create.c:83
msgid "New Keyring Password"
msgstr "ନୂତନ କି-ରିଙà­à¬— ପà­à¬°à¬¬à­‡à¬¶ ସଙà­à¬•à­‡à¬¤"
-#: ../daemon/dbus/gkd-secret-create.c:78
+#: ../daemon/dbus/gkd-secret-create.c:84
msgid "Choose password for new keyring"
msgstr "ନୂତନ କି-ରିଙà­à¬— ପାଇଠପà­à¬°à¬¬à­‡à¬¶ ସଙà­à¬•à­‡à¬¤ ଚୟନ କରନà­à¬¤à­"
-#: ../daemon/dbus/gkd-secret-create.c:80
+#: ../daemon/dbus/gkd-secret-create.c:86
#, fuzzy, c-format
-#| msgid ""
-#| "An unknown application wants to create a new keyring called '%s'. You "
-#| "have to choose the password you want to use for it."
msgid ""
"An application wants to create a new keyring called '%s'. Choose the "
"password you want to use for it."
@@ -140,69 +76,18 @@ msgstr ""
"ଗୋଟିଠଅଜଣା ପà­à¬°à­Ÿà­‹à¬— %s ନାମ ବିଶିଷà­à¬Ÿ ଗୋଟିଠନୂତନ କି-ରିଙà­à¬—କୠସà­à¬°à­à¬·à­à¬Ÿà¬¿ କରିବା ପାଇଠଚାହà­à¬à¬…ଛି। à¬à¬¥à¬¿à¬°à­‡ ବà­à¬¯à¬¬à¬¹à¬¾à¬° "
"କରିବା ପାଇଠଚାହà­à¬à¬¥à¬¿à¬¬à¬¾ ପà­à¬°à¬¬à­‡à¬¶ ସଙà­à¬•à­‡à¬¤à¬•à­ ଆପଣ ଚୟନ କରିବା ଉଚିତ।"
-#: ../daemon/dbus/gkd-secret-unlock.c:134
-msgid "Unlock Login Keyring"
-msgstr "ଲଗଇନ କି-ରିଙà­à¬—କୠପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରନà­à¬¤à­"
-
-#: ../daemon/dbus/gkd-secret-unlock.c:136
-#, fuzzy
-#| msgid "Enter login password to unlock keyring"
-msgid "Enter password for to unlock your login keyring"
-msgstr "କି-ରିଙà­à¬—କୠଖୋଲିବା ପାଇଠଗୋଟିଠପà­à¬°à¬¬à¬¶ ସଙà­à¬•à­‡à¬¤ ଭରଣ କରନà­à¬¤à­"
-
-#: ../daemon/dbus/gkd-secret-unlock.c:140
-msgid ""
-"The password you use to log in to your computer no longer matches that of "
-"your login keyring."
-msgstr ""
-
-#: ../daemon/dbus/gkd-secret-unlock.c:142
-#, fuzzy
-#| msgid ""
-#| "Your login keyring was not automatically unlocked when you logged into "
-#| "this computer."
-msgid "The login keyring did not get unlocked when you logged into your computer."
-msgstr ""
-"ଆପଣଙà­à¬•à¬° ଲଗଇନ କିରିଙà­à¬—ଟି ସà­à­±à­Ÿà¬‚ଚାଳିତ ଭାବରେ ଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ ହୋଇନଥିଲା ଯେତେବେଳେ ଆପଣ à¬à¬¹à¬¿ କମà­à¬ªà­à¬Ÿà¬° "
-"ମଧà­à¬¯à¬°à­‡ ଲଗଇନ ହୋଇଥିଲେ।"
-
-#: ../daemon/dbus/gkd-secret-unlock.c:183
-msgid "Unlock Keyring"
-msgstr "କି-ରିଙà­à¬—କୠଅାନଲକ କରନà­à¬¤à­"
-
-#: ../daemon/dbus/gkd-secret-unlock.c:185
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "'%s' କି-ରିଙà­à¬—କୠଅାନଲକ କରିବା ପାଇଠଗୋଟିଠପà­à¬°à¬¬à¬¶ ସଙà­à¬•à­‡à¬¤ ଭରଣ କରନà­à¬¤à­"
-
-#: ../daemon/dbus/gkd-secret-unlock.c:189
-#, fuzzy, c-format
-#| msgid ""
-#| "An unknown application wants access to the keyring '%s', but it is locked"
-msgid "An application wants access to the keyring '%s', but it is locked"
-msgstr "ଗୋଟିଠଅଜଣା ପà­à¬°à­Ÿà­‹à¬—, '%s' କି-ରିଙà­à¬—କୠଅଭିଗମ କରିବା ପାଇଠଚାହà­à¬à¬…ଛି, କିନà­à¬¤à­ à¬à¬¹à¬¾ ତାଳକିତ ଅଟେ"
-
-#: ../daemon/dbus/gkd-secret-unlock.c:219
-#, fuzzy
-#| msgid "The password or PIN is incorrect"
-msgid "The unlock password was incorrect"
-msgstr "ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ କିମà­à¬¬à¬¾ PIN ଟି ଭà­à¬² ଅଛି"
-
#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
#, fuzzy
-#| msgid "Unlock certificate/key storage"
msgid "Certificate and Key Storage"
msgstr "ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬°/କି ସଂଗà­à¬°à¬¹à¬¾à¬³à­Ÿà¬•à­ ପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରନà­à¬¤à­"
#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
#, fuzzy
-#| msgid "GNOME Keyring Daemon"
msgid "GNOME Keyring: PKCS#11 Component"
msgstr "GNOME କି-ରିଙà­à¬— ଡେମନ"
#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
#, fuzzy
-#| msgid "GNOME Keyring Daemon"
msgid "GNOME Keyring: Secret Service"
msgstr "GNOME କି-ରିଙà­à¬— ଡେମନ"
@@ -212,7 +97,6 @@ msgstr ""
#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
#, fuzzy
-#| msgid "GNOME Keyring Daemon"
msgid "GNOME Keyring: SSH Agent"
msgstr "GNOME କି-ରିଙà­à¬— ଡେମନ"
@@ -220,171 +104,48 @@ msgstr "GNOME କି-ରିଙà­à¬— ଡେମନ"
msgid "SSH Key Agent"
msgstr ""
-#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:174
-msgid "Login"
-msgstr "ଲଗଇନ"
-
-#: ../daemon/login/gkd-login.c:596
-#, fuzzy, c-format
-#| msgid "Unlock password for %s keyring"
-msgid "Unlock password for: %s"
-msgstr "%s କି-ରିଙà­à¬— ପାଇଠପà­à¬°à¬¬à­‡à¬¶ ସଙà­à¬•à­‡à¬¤à¬•à­ ପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରନà­à¬¤à­"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:294
-msgid "New Password Required"
-msgstr "ନୂତନ ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ ଆବଶà­à­Ÿà¬•"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:295
-msgid "New password required for secure storage"
-msgstr "ସà­à¬°à¬•à­à¬·à¬¿à¬¤ ସଂଗà­à¬°à¬¹à¬¾à¬³à­Ÿ ପାଇଠନୂତନ ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ ଆବଶà­à­Ÿà¬•"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:297
-#, c-format
-msgid ""
-"In order to prepare '%s' for storage of certificates or keys, a password is "
-"required"
-msgstr "ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬° କିମà­à¬¬à¬¾ କିଗà­à¬¡à¬¼à¬¿à¬•à¬° ସଂଗà­à¬°à¬¹à¬¾à¬³à­Ÿ ପାଇଠ'%s' କୠପà­à¬°à¬¸à­à¬¤à­à¬¤ କରିବାକୠ, ଗୋଟିଠପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ ଆବଶà­à­Ÿà¬•"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:360
-msgid "Unlock private key"
-msgstr "ବà­à­Ÿà¬•à­à¬¤à¬¿à¬—ତ କି କୠପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରନà­à¬¤à­"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:362
-msgid "Unlock certificate"
-msgstr "ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬°à¬•à­ ପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରନà­à¬¤à­"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:364
-msgid "Unlock public key"
-msgstr "ସାରà­à¬¬à¬œà¬¨à¬¿à¬• କିକୠଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରନà­à¬¤à­"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:366
-msgid "Unlock"
-msgstr "ପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରନà­à¬¤à­"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:375 ../gcr/gcr-importer.c:436
-msgid "Enter password to unlock the private key"
-msgstr "ବà­à­Ÿà¬•à­à¬¤à¬¿à¬—ତ କି କୠଖୋଲିବା ପାଇଠଗୋଟିଠପà­à¬°à¬¬à¬¶ ସଙà­à¬•à­‡à¬¤ ଭରଣ କରନà­à¬¤à­"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:377 ../gcr/gcr-importer.c:438
-msgid "Enter password to unlock the certificate"
-msgstr "ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬°à¬•à­ ପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରିବା ପାଇଠପà­à¬°à¬¬à­‡à¬¶à¬¸à¬‚କେତ ଭରଣ କରନà­à¬¤à­"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:379
-msgid "Enter password to unlock the public key"
-msgstr "ଜାଗତିକ କି କୠପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରିବା ପାଇଠପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ ଭରଣ କରନà­à¬¤à­"
-
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:381 ../gcr/gcr-importer.c:440
-msgid "Enter password to unlock"
-msgstr "ପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରିବା ପାଇଠପà­à¬°à¬¬à­‡à¬¶ ସଙà­à¬•à­‡à¬¤ ଭରଣ କରନà­à¬¤à­"
-
-#. TRANSLATORS: The private key is locked
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:391
-#, c-format
-msgid "An application wants access to the private key '%s', but it is locked"
-msgstr "ଗୋଟିଠପà­à¬°à­Ÿà­‹à¬—, ବà­à­Ÿà¬•à­à¬¤à¬¿à¬—ତ କି '%s' କୠଅଭିଗମà­à­Ÿ କରିବା ପାଇଠଚାହà­à¬à¬…ଛି, କିନà­à¬¤à­ à¬à¬¹à¬¾ ଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ ଅଛି"
-
-#. TRANSLATORS: The certificate is locked
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:394
-#, c-format
-msgid "An application wants access to the certificate '%s', but it is locked"
-msgstr "ଗୋଟିଠପà­à¬°à­Ÿà­‹à¬— ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬° '%s' କୠଅଭିଗମà­à­Ÿ କରିବା ପାଇଠଚାହà­à¬à¬…ଛି, କିନà­à¬¤à­ à¬à¬¹à¬¾ ଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ ଅଛି"
-
-#. TRANSLATORS: The public key is locked
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:397
-#, c-format
-msgid "An application wants access to the public key '%s', but it is locked"
-msgstr "ଗୋଟିଠପà­à¬°à­Ÿà­‹à¬— ସାରà­à¬¬à¬œà¬¨à¬¿à¬• କି '%s' କୠଅଭିଗମà­à­Ÿ କରିବା ପାଇଠଚାହà­à¬à¬…ଛି, କିନà­à¬¤à­ à¬à¬¹à¬¾ ଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ ଅଛି"
-
-#. TRANSLATORS: The object '%s' is locked
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:400
-#, c-format
-msgid "An application wants access to '%s', but it is locked"
-msgstr "ଗୋଟିଠପà­à¬°à­Ÿà­‹à¬— '%s' କୠଅଭିଗମà­à­Ÿ କରିବା ପାଇଠଚାହà­à¬à¬…ଛି, କିନà­à¬¤à­ à¬à¬¹à¬¾ ଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ ଅଛି"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+#, fuzzy
+msgid "GNOME Keyring: GPG Agent"
+msgstr "GNOME କି-ରିଙà­à¬— ଡେମନ"
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:595
-msgid "Unlock certificate/key storage"
-msgstr "ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬°/କି ସଂଗà­à¬°à¬¹à¬¾à¬³à­Ÿà¬•à­ ପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରନà­à¬¤à­"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+#, fuzzy
+msgid "GPG Password Agent"
+msgstr "ନୂତନ ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ ଶକà­à¬¤à¬¿"
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:596
-msgid "Enter password to unlock the certificate/key storage"
-msgstr "ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬°/କି ସଂଗà­à¬°à¬¹à¬¾à¬³à­Ÿà¬•à­ ପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରିବା ପାଇଠପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ ଭରଣ କରନà­à¬¤à­"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+#, fuzzy
+msgid "Unknown"
+msgstr "ଅଜଣା ତà­à¬°à­à¬Ÿà¬¿"
-#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
-#: ../daemon/pkcs11/gkd-pkcs11-auth.c:599
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid ""
-"An application wants access to the certificate/key storage '%s', but it is "
-"locked"
+msgid "PGP Key: %s"
msgstr ""
-"ଗୋଟିଠପà­à¬°à­Ÿà­‹à¬— ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬°/କି ସଂଗà­à¬°à¬¹à¬¾à¬³à­Ÿ '%s' କୠଅଭିଗମà­à­Ÿ କରିବା ପାଇଠଚାହà­à¬à¬…ଛି, କିନà­à¬¤à­ à¬à¬¹à¬¾ "
-"ଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ ଅଛି"
-#: ../daemon/prompt/gkd-prompt-tool.c:393
-msgid "Store passwords unencrypted?"
-msgstr "ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତକୠଅସଂଗà­à¬ªà­à¬¤ ଭାବରେ ସଞà­à¬šà­Ÿ କରିବେ କି?"
-
-#: ../daemon/prompt/gkd-prompt-tool.c:394
-msgid ""
-"By choosing to use a blank password, your stored passwords will not be "
-"safely encrypted. They will be accessible by anyone with access to your "
-"files."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-"ଗୋଟିଠଖାଲି ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତକୠବà­à­Ÿà¬¬à¬¹à¬¾à¬° କରିବା ପାଇଠବାଛିବା ଦà­à­±à¬¾à¬°à¬¾, ଆପଣଙà­à¬•à¬° ସଂରକà­à¬·à¬¿à¬¤ ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ "
-"ସà­à¬°à¬•à­à¬·à¬¿à¬¤ ଭାବରେ ସଂଗà­à¬ªà­à¬¤ ହେବ ନାହିà¬à¥¤ ସେଗà­à¬¡à¬¼à¬¿à¬•à­ ଆପଣଙà­à¬• ଫାଇଲଗà­à¬¡à¬¼à¬¿à¬•à­ ପà­à¬°à¬¬à­‡à¬¶à¬¾à¬¨à­à¬®à¬¤à¬¿ ଥିବା ଯେକୌଣସି ବà­à­Ÿà¬•à­à¬¤à¬¿ "
-"ଦà­à­±à¬¾à¬°à¬¾ ଅଭିଗମà­à­Ÿ ହୋଇପାରିବ।"
-
-#: ../daemon/prompt/gkd-prompt-tool.c:401
-msgid "Use Unsafe Storage"
-msgstr "ଅସà­à¬°à¬•à­à¬·à¬¿à¬¤ ସଂଗà­à¬°à¬¹à¬¾à¬³à­Ÿ ବà­à­Ÿà¬¬à¬¹à¬¾à¬° କରନà­à¬¤à­"
-
-#: ../daemon/prompt/gkd-prompt-tool.c:431
-msgid "Passwords do not match."
-msgstr "ପà­à¬°à¬¬à­‡à¬¶ ସଙà­à¬•à­‡à¬¤ ଦà­à¬¬à­Ÿ ମିଶୠନାହାà¬à¬¨à­à¬¤à¬¿à¥¤"
-
-#: ../daemon/prompt/gkd-prompt-tool.c:441
-msgid "Password cannot be blank"
-msgstr "ପà­à¬°à¬¬à­‡à¬¶ ସଙà­à¬•à­‡à¬¤à¬Ÿà¬¿ ଖାଲି ହୋଇ ପାରିବ ନାହିà¬"
-
-#: ../daemon/prompt/gkd-prompt.ui.h:1
-#, fuzzy
-#| msgid "Automatically unlock this keyring when I log in."
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "ମà­à¬ ଲଗଇନ ହେବା ସମୟରେ à¬à¬¹à¬¿ କିରିଙà­à¬—କୠସà­à­±à­Ÿà¬‚ଚାଳିତ ଭାବରେ ଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରନà­à¬¤à­à¥¤"
-
-#: ../daemon/prompt/gkd-prompt.ui.h:2
-msgid "New password strength"
-msgstr "ନୂତନ ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ ଶକà­à¬¤à¬¿"
-#: ../daemon/prompt/gkd-prompt.ui.h:3
-#, fuzzy
-#| msgid "_Location:"
-msgid "_Application:"
-msgstr "ଅବସà­à¬¥à¬¾à¬¨ (_L):"
-
-#: ../daemon/prompt/gkd-prompt.ui.h:4
-#, fuzzy
-#| msgid "_Confirm password:"
-msgid "_Confirm:"
-msgstr "ପà­à¬°à¬¬à¬¶ ସଙà­à¬•à­‡à¬¤à¬•à­ ନିଶà­à¬šà¬¿à¬¤ କରନà­à¬¤à­ (_C):"
-
-#: ../daemon/prompt/gkd-prompt.ui.h:5
-msgid "_Details:"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
msgstr ""
-#: ../daemon/prompt/gkd-prompt.ui.h:6
-msgid "_Name:"
-msgstr "ନାମ (_N):"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
+msgstr ""
-#: ../daemon/prompt/gkd-prompt.ui.h:7
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
#, fuzzy
-#| msgid "_Old password:"
-msgid "_Old Password:"
-msgstr "ପà­à¬°à­à¬£à¬¾ ପà­à¬°à¬¬à¬¶ ସଙà­à¬•à­‡à¬¤ (_O):"
+msgid "Forget this password when I log out"
+msgstr "ମà­à¬ ଲଗଇନ ହେବା ସମୟରେ à¬à¬¹à¬¿ କିରିଙà­à¬—କୠସà­à­±à­Ÿà¬‚ଚାଳିତ ଭାବରେ ଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରନà­à¬¤à­à¥¤"
-#: ../daemon/prompt/gkd-prompt.ui.h:8
-msgid "_Password:"
-msgstr "ପà­à¬°à¬¬à­‡à¬¶ ସଂଙà­à¬•à­‡à¬¤ (_P):"
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
+msgstr "ଲଗଇନ"
#: ../egg/egg-oid.c:41
msgid "Domain Component"
@@ -395,8 +156,8 @@ msgid "User ID"
msgstr "ଉପୟୋଗକରà­à¬¤à­à¬¤à¬¾ ID"
#: ../egg/egg-oid.c:46
-msgid "Email"
-msgstr "ଇ-ଡାକ"
+msgid "Email Address"
+msgstr ""
#: ../egg/egg-oid.c:54
msgid "Date of Birth"
@@ -426,8 +187,7 @@ msgstr "ସାଧାରଣ ନାମ"
msgid "Surname"
msgstr "କà­à¬³ ନାମ"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-basics-widget.ui.h:18
-#: ../gcr/gcr-certificate-details-widget.c:322
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "କà­à¬°à¬®à¬¿à¬• ସଂଖà­à¬¯à¬¾"
@@ -487,26 +247,49 @@ msgstr "Pseudonym"
msgid "RSA"
msgstr "RSA"
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "RSA ସହିତ MD2"
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "RSA ସହିତ MD5"
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "RSA ସହିତ SHA1"
-#: ../egg/egg-oid.c:107
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "DSA ସହିତ SHA1"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+#, fuzzy
+msgid "Server Authentication"
+msgstr "SSL ସେବକ"
+
+#: ../egg/egg-oid.c:108
+#, fuzzy
+msgid "Client Authentication"
+msgstr "SSL ଗà­à¬°à¬¾à¬¹à¬•"
+
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
+
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
+
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
+
#: ../egg/egg-spawn.c:273
#, c-format
msgid "Unexpected error in select() reading data from a child process (%s)"
@@ -517,598 +300,246 @@ msgstr ""
msgid "Unexpected error in waitpid() (%s)"
msgstr ""
-#: ../gcr/gcr-certificate-basics-widget.c:59
-msgid "<i>Not Part of Certificate</i>"
-msgstr "<i>ପà­à¬°à¬®à¬¾à¬£ ପତà­à¬°à¬° କୌଣସି ଅଂଶ ନାହିà¬</i>"
-
-#: ../gcr/gcr-certificate-basics-widget.c:80
-msgid "<i>unknown</i>"
-msgstr "<i>ଅଜଣା</i>"
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr "ବେନାମୀ ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬°"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:1
-msgid "<Not Part of Certificate>"
-msgstr "<ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬°à¬° କୌଣସି ଅଂଶ ନାହିà¬>"
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
+msgstr "ସାରà­à¬¬à¬œà¬¨à­€à¬• SSH କି କୠବିଶà­à¬³à­‡à¬·à¬£ କରିପାରିଲା ନାହିà¬"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:2
-msgid "<b>Fingerprints</b>"
-msgstr "<b>ଅଙà­à¬—à­à¬³à¬¿ ଚିହà­à¬¨</b>"
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, fuzzy, c-format
+msgid "Unlock password for: %s"
+msgstr "%s କି-ରିଙà­à¬— ପାଇଠପà­à¬°à¬¬à­‡à¬¶ ସଙà­à¬•à­‡à¬¤à¬•à­ ପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରନà­à¬¤à­"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:3
-msgid "<b>Issued By</b>"
-msgstr "<b>ଦà­à­±à¬¾à¬°à¬¾ ପà­à¬°à¬¦à¬¤à­à¬¤</b>"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+#, fuzzy
+msgid "The unlock password was incorrect"
+msgstr "ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ କିମà­à¬¬à¬¾ PIN ଟି ଭà­à¬² ଅଛି"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:4
-msgid "<b>Issued To</b>"
-msgstr "<b>କୠପà­à¬°à¬¦à¬¤à­à¬¤</b>"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+msgid "Unlock Login Keyring"
+msgstr "ଲଗଇନ କି-ରିଙà­à¬—କୠପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରନà­à¬¤à­"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:5
-msgid "<b>This certificate has been verified for the following uses:</b>"
-msgstr "<b> ପାଇଠନିମà­à¬¨à¬²à¬¿à¬–ିତ</b>"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
+msgstr "କି-ରିଙà­à¬—କୠଖୋଲିବା ପାଇଠଗୋଟିଠପà­à¬°à¬¬à¬¶ ସଙà­à¬•à­‡à¬¤ ଭରଣ କରନà­à¬¤à­"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:6
-msgid "<b>Validity</b>"
-msgstr "<b>ବୈଧତା ତାରିଖ</b>"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
+msgstr ""
-#: ../gcr/gcr-certificate-basics-widget.ui.h:7
-msgid "Common Name (CN)"
-msgstr "ସାଧାରଣ ନାମ (CN)"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
+#, fuzzy
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr ""
+"ଆପଣଙà­à¬•à¬° ଲଗଇନ କିରିଙà­à¬—ଟି ସà­à­±à­Ÿà¬‚ଚାଳିତ ଭାବରେ ଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ ହୋଇନଥିଲା ଯେତେବେଳେ ଆପଣ à¬à¬¹à¬¿ କମà­à¬ªà­à¬Ÿà¬° "
+"ମଧà­à¬¯à¬°à­‡ ଲଗଇନ ହୋଇଥିଲେ।"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:8
-msgid "Email Recipient Certificate"
-msgstr "ଇ-ଡାକ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "କି-ରିଙà­à¬—କୠଅାନଲକ କରନà­à¬¤à­"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:9
-msgid "Email Signer Certificate"
-msgstr "ଇ-ଡାକ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
+#, c-format
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "'%s' କି-ରିଙà­à¬—କୠଅାନଲକ କରିବା ପାଇଠଗୋଟିଠପà­à¬°à¬¬à¬¶ ସଙà­à¬•à­‡à¬¤ ଭରଣ କରନà­à¬¤à­"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:10
-msgid "Expires On"
-msgstr "ରେ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, fuzzy, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr "ଗୋଟିଠଅଜଣା ପà­à¬°à­Ÿà­‹à¬—, '%s' କି-ରିଙà­à¬—କୠଅଭିଗମ କରିବା ପାଇଠଚାହà­à¬à¬…ଛି, କିନà­à¬¤à­ à¬à¬¹à¬¾ ତାଳକିତ ଅଟେ"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:11
-msgid "Issued On"
-msgstr "ରେ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
+msgstr "ବà­à­Ÿà¬•à­à¬¤à¬¿à¬—ତ କି କୠପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରନà­à¬¤à­"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:12
-msgid "MD5 Fingerprint"
-msgstr "MD5 ଅଙà­à¬—à­à¬³à¬¿ ଚିହà­à¬¨"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+msgid "Unlock certificate"
+msgstr "ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬°à¬•à­ ପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରନà­à¬¤à­"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:13
-msgid "Organization (O)"
-msgstr "ସଙà­à¬—ଠନ O"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
+msgstr "ସାରà­à¬¬à¬œà¬¨à¬¿à¬• କିକୠଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରନà­à¬¤à­"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:14
-msgid "Organizational Unit (OU)"
-msgstr "à¬à¬•à¬•"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "ପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରନà­à¬¤à­"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:15
-msgid "SHA1 Fingerprint"
-msgstr "SHA1 ଅଙà­à¬—à­à¬³à¬¿à¬›à¬¬à¬¿ "
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "ବà­à­Ÿà¬•à­à¬¤à¬¿à¬—ତ କି କୠଖୋଲିବା ପାଇଠଗୋଟିଠପà­à¬°à¬¬à¬¶ ସଙà­à¬•à­‡à¬¤ ଭରଣ କରନà­à¬¤à­"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:16
-msgid "SSL Client Certificate"
-msgstr "SSL ଗà­à¬°à¬¾à¬¹à¬•"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬°à¬•à­ ପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରିବା ପାଇଠପà­à¬°à¬¬à­‡à¬¶à¬¸à¬‚କେତ ଭରଣ କରନà­à¬¤à­"
-#: ../gcr/gcr-certificate-basics-widget.ui.h:17
-msgid "SSL Server Certificate"
-msgstr "SSL ସେବକ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+msgid "Enter password to unlock the public key"
+msgstr "ଜାଗତିକ କି କୠପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରିବା ପାଇଠପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ ଭରଣ କରନà­à¬¤à­"
-#: ../gcr/gcr-certificate-details-widget.c:207
-msgid "Extension"
-msgstr "ବିସà­à¬¤à¬¾à¬°"
-
-#: ../gcr/gcr-certificate-details-widget.c:212
-msgid "Identifier"
-msgstr "ପରିଚାୟକ"
-
-#: ../gcr/gcr-certificate-details-widget.c:222
-msgid "Value"
-msgstr "ମୂଲà­à¬¯"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "Critical"
-msgstr "ଗà­à¬°à­à¬¤à¬°"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "Yes"
-msgstr "ହà¬"
-
-#: ../gcr/gcr-certificate-details-widget.c:229
-msgid "No"
-msgstr "ନାà¬"
-
-#. The subject
-#: ../gcr/gcr-certificate-details-widget.c:303
-msgid "Subject Name"
-msgstr "ବିଷୟ ନାମ"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-details-widget.c:307
-msgid "Issuer Name"
-msgstr "ପà­à¬°à¬¦à¬¾à¬¨à¬•à¬¾à¬°à­€à¬™à­à¬• ନାମ"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-details-widget.c:311
-msgid "Issued Certificate"
-msgstr "ପà­à¬°à¬¦à¬¤à­à¬¤ ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬°"
-
-#: ../gcr/gcr-certificate-details-widget.c:316
-msgid "Version"
-msgstr "ସଂସà­à¬•à¬°à¬£"
-
-#: ../gcr/gcr-certificate-details-widget.c:329
-msgid "Not Valid Before"
-msgstr "ପୂରà­à¬¬à¬°à­ ବୈଧ ନଥିଲା"
-
-#: ../gcr/gcr-certificate-details-widget.c:334
-msgid "Not Valid After"
-msgstr "ପରେ ବୈଧ ନଥିଲା"
-
-#. Signature
-#: ../gcr/gcr-certificate-details-widget.c:339
-#: ../gcr/gcr-certificate-details-widget.c:355
-msgid "Signature"
-msgstr "ହସà­à¬¤à¬¾à¬•à­à¬·à¬°"
-
-#: ../gcr/gcr-certificate-details-widget.c:343
-msgid "Signature Algorithm"
-msgstr "ହସà­à¬¤à¬¾à¬•à­à¬·à¬° ଆଲଗୋରିଦମ"
-
-#: ../gcr/gcr-certificate-details-widget.c:348
-msgid "Signature Parameters"
-msgstr "ହସà­à¬¤à¬•à­à¬·à¬° ପà­à¬°à¬¾à¬šà¬³à¬—à­à¬¡à¬¼à¬¿à¬•"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-details-widget.c:359
-msgid "Public Key Info"
-msgstr "ସାରà­à¬¬à¬œà¬¨à¬¿à¬• କି ସୂଚନା"
-
-#: ../gcr/gcr-certificate-details-widget.c:363
-msgid "Key Algorithm"
-msgstr "କି ଆଲଗୋରିଦମ"
-
-#: ../gcr/gcr-certificate-details-widget.c:368
-msgid "Key Parameters"
-msgstr "କି ପà­à¬°à¬¾à¬šà¬³à¬—à­à¬¡à¬¼à¬¿à¬•"
-
-#: ../gcr/gcr-certificate-details-widget.c:375
-msgid "Key Size"
-msgstr "କି ଆକାର"
-
-#: ../gcr/gcr-certificate-details-widget.c:382 ../gcr/gcr-parser.c:202
-msgid "Public Key"
-msgstr "ସରà­à¬¬à¬¸à¬¾à¬§à¬¾à¬°à¬£ କି "
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-details-widget.c:386
-msgid "Fingerprints"
-msgstr "ଅଙà­à¬—à­à¬³à¬¿ ଚିହà­à¬¨"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-msgstr "<span size='large' weight='bold'>ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬° à¬à¬¬à¬‚ କିଗà­à¬¡à¬¼à¬¿à¬•à­ ଆମଦାନି କରନà­à¬¤à­</span>"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "à¬à¬¹à¬¾ ଭିତରକୠଆମଦାନି କରନà­à¬¤à­:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "ପà­à¬°à¬¬à­‡à¬¶ ସଙà­à¬•à­‡à¬¤:"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Lock this keyring after"
-msgstr ""
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "ପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରିବା ପାଇଠପà­à¬°à¬¬à­‡à¬¶ ସଙà­à¬•à­‡à¬¤ ଭରଣ କରନà­à¬¤à­"
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring if idle for"
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
+#, c-format
+msgid "An application wants access to the private key '%s', but it is locked"
msgstr ""
+"ଗୋଟିଠପà­à¬°à­Ÿà­‹à¬—, ବà­à­Ÿà¬•à­à¬¤à¬¿à¬—ତ କି '%s' କୠଅଭିଗମà­à­Ÿ କରିବା ପାଇଠଚାହà­à¬à¬…ଛି, କିନà­à¬¤à­ à¬à¬¹à¬¾ ଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ ଅଛି"
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-#, fuzzy
-#| msgid "Automatically unlock this keyring when I log in."
-msgid "Lock this keyring when I log out"
-msgstr "ମà­à¬ ଲଗଇନ ହେବା ସମୟରେ à¬à¬¹à¬¿ କିରିଙà­à¬—କୠସà­à­±à­Ÿà¬‚ଚାଳିତ ଭାବରେ ଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରନà­à¬¤à­à¥¤"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "minutes"
-msgstr "ମିନିଟ"
-
-#: ../gcr/gcr-importer.c:163 ../gcr/gcr-parser.c:1573 ../gp11/gp11-misc.c:98
-msgid "The operation was cancelled"
-msgstr "ପà­à¬°à­Ÿà­‹à¬—ଟି ବାତିଲ ହୋଇଥିଲା"
-
-#: ../gcr/gcr-importer.c:255
-#, c-format
-msgid "No location available to import to"
-msgstr "କୠଆମଦାନି କରିବା ପାଇଠକୌଣସି ସà­à¬¥à¬¾à¬¨ ଉପଲବà­à¬§ ନାହିà¬"
-
-#: ../gcr/gcr-importer.c:404
-msgid "Import Certificates/Keys"
-msgstr "ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬°/କିଗà­à¬¡à¬¼à¬¿à¬•à­ ଆମଦାନି କରନà­à¬¤à­"
-
-#: ../gcr/gcr-importer.c:411
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "ଆମଦାନି ହୋଇଥିବା ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬°/କିଗà­à¬¡à¬¼à¬¿à¬•à­ ସଞà­à¬šà­Ÿà¬•à¬°à¬¿à¬¬à¬¾ ପାଇଠଗୋଟିଠସà­à¬¥à¬¾à¬¨ ବାଛନà­à¬¤à­à¥¤"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:449
-msgid "In order to import the private key, it must be unlocked"
-msgstr "ବà­à­Ÿà¬•à­à¬¤à¬¿à¬—ତ କିକୠଆମଦାନି କରିବା ପାଇà¬, à¬à¬¹à¬¾à¬•à­ ପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରିବା ଉଚିତ"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:452
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬°à¬•à­ ଆମଦାନି କରିବା ପାଇà¬, à¬à¬¹à¬¾à¬•à­ ପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରିବା ଉଚିତ"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:455
-msgid "In order to import the data, it must be unlocked"
-msgstr "ତଥà­à­Ÿà¬•à­ ଆମଦାନି କରିବା ପାଇà¬, à¬à¬¹à¬¾à¬•à­ ପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରିବା ଉଚିତ"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:460
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "ବà­à­Ÿà¬•à­à¬¤à¬¿à¬—ତ କି '%s'କୠଆମଦାନି କରିବା ପାଇà¬, à¬à¬¹à¬¾à¬•à­ ପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରିବା ଉଚିତ"
+msgid "An application wants access to the certificate '%s', but it is locked"
+msgstr "ଗୋଟିଠପà­à¬°à­Ÿà­‹à¬— ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬° '%s' କୠଅଭିଗମà­à­Ÿ କରିବା ପାଇଠଚାହà­à¬à¬…ଛି, କିନà­à¬¤à­ à¬à¬¹à¬¾ ଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ ଅଛି"
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:463
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬° '%s'କୠଆମଦାନି କରିବା ପାଇà¬, à¬à¬¹à¬¾à¬•à­ ପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରିବା ଉଚିତ"
+msgid "An application wants access to the public key '%s', but it is locked"
+msgstr ""
+"ଗୋଟିଠପà­à¬°à­Ÿà­‹à¬— ସାରà­à¬¬à¬œà¬¨à¬¿à¬• କି '%s' କୠଅଭିଗମà­à­Ÿ କରିବା ପାଇଠଚାହà­à¬à¬…ଛି, କିନà­à¬¤à­ à¬à¬¹à¬¾ ଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ ଅଛି"
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:466
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "'%s'କୠଆମଦାନି କରିବା ପାଇà¬, à¬à¬¹à¬¾à¬•à­ ପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରିବା ଉଚିତ"
-
-#: ../gcr/gcr-parser.c:196
-msgid "Private Key"
-msgstr "ବà­à­Ÿà¬•à­à¬¤à¬¿à¬—ତ କି"
-
-#: ../gcr/gcr-parser.c:199
-msgid "Certificate"
-msgstr "ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬°"
-
-#: ../gcr/gcr-parser.c:1576
-msgid "Unrecognized or unsupported data."
-msgstr "ଅଚିହà­à¬¨à¬¾ ଅଥବା ଅସମରà­à¬¥à¬¿à¬¤ ତଥà­à­Ÿà¥¤"
-
-#: ../gcr/gcr-parser.c:1579
-msgid "Could not parse invalid or corrupted data."
-msgstr "ଅବୈଧ କିମà­à¬¬à¬¾ ତà­à¬°à­à¬Ÿà¬¿à¬¯à­à¬•à­à¬¤ ତଥà­à­Ÿà¬•à­ ବିଶà­à¬³à­‡à¬·à¬£ କରିପାରିଲା ନାହିà¬à¥¤"
-
-#: ../gcr/gcr-parser.c:1582
-msgid "The data is locked"
-msgstr "ତଥà­à­Ÿà¬Ÿà¬¿ ଅପରିବରà­à¬¤à­à¬¤à¬¨à¬¿à­Ÿ ଅଛି"
-
-#: ../gp11/gp11-misc.c:101
-msgid "Insufficient memory available"
-msgstr "ଯଥେଷà­à¬Ÿ ସà­à¬®à­ƒà¬¤à¬¿à¬¸à­à¬¥à¬¾à¬¨ ଉପଲବà­à¬§ ନାହିà¬"
-
-#: ../gp11/gp11-misc.c:103
-msgid "The specified slot ID is not valid"
-msgstr "ଉଲà­à¬²à¬¿à¬–ିତ ସà­à¬²à¬Ÿ ID ଟି ବୈଧ ନà­à¬¹à¬"
-
-#: ../gp11/gp11-misc.c:105
-msgid "Internal error"
-msgstr "ଆଭà­à¬¯à¬¨à­à¬¤à¬°à­€à¬£ ତà­à¬°à­à¬Ÿà¬¿"
-
-#: ../gp11/gp11-misc.c:107
-msgid "The operation failed"
-msgstr "ପà­à¬°à­Ÿà­‹à¬— ବିଫଳ ହୋଇଛି"
-
-#: ../gp11/gp11-misc.c:109
-msgid "Invalid arguments"
-msgstr "ଅବୈଧ ସà­à­±à¬¤à¬¨à­à¬¤à­à¬°à¬šà¬°"
-
-#: ../gp11/gp11-misc.c:111
-msgid "The module cannot create needed threads"
-msgstr "à¬à¬•à¬•à¬¾à¬‚ଶଟି ଆବଶà­à­Ÿà¬•à­€à­Ÿ ସୂତà­à¬° ନିରà­à¬®à¬¾à¬£ କରିପାରିବ ନାହିà¬"
-
-#: ../gp11/gp11-misc.c:113
-msgid "The module cannot lock data properly"
-msgstr "à¬à¬•à¬•à¬¾à¬‚ଶଟି ତଥà­à­Ÿà¬•à­ ସଠିକ ଭାବରେ ଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରିପାରିବ ନାହିà¬"
-
-#: ../gp11/gp11-misc.c:115
-msgid "The field is read-only"
-msgstr "କà­à¬·à­‡à¬¤à­à¬°à¬Ÿà¬¿ କେବଳ ପଠନୀୟ"
-
-#: ../gp11/gp11-misc.c:117
-msgid "The field is sensitive and cannot be revealed"
-msgstr "କà­à¬·à­‡à¬¤à­à¬°à¬Ÿà¬¿ ସà­à¬ªà¬°à­à¬·à¬•à¬¾à¬¤à¬° à¬à¬¬à¬‚ ପà­à¬°à¬•à¬¾à¬¶ କରାଯାଇପାରିବ ନାହିà¬"
-
-#: ../gp11/gp11-misc.c:119
-msgid "The field is invalid or does not exist"
-msgstr "କà­à¬·à­‡à¬¤à­à¬°à¬Ÿà¬¿ ଅବୈଧ à¬à¬¬à¬‚ ଅବସà­à¬¥à¬¿à¬¤ ନାହିà¬"
-
-#: ../gp11/gp11-misc.c:121
-msgid "Invalid value for field"
-msgstr "କà­à¬·à­‡à¬¤à­à¬° ପାଇଠଅବୈଧ ମୂଲà­à­Ÿ"
-
-#: ../gp11/gp11-misc.c:123
-msgid "The data is not valid or unrecognized"
-msgstr "ତଥà­à­Ÿà¬Ÿà¬¿ ଅବୈଧ ନà­à¬¹à¬ କିମà­à¬¬à¬¾ ଅଚିହà­à¬¨à¬¾"
-
-#: ../gp11/gp11-misc.c:125
-msgid "The data is too long"
-msgstr "ତଥà­à­Ÿà¬Ÿà¬¿ ଅତà­à­Ÿà¬§à¬¿à¬• ଲମà­à¬¬à¬¾"
-
-#: ../gp11/gp11-misc.c:127
-msgid "An error occurred on the device"
-msgstr "ଉପକରଣରେ ଗୋଟିଠତà­à¬°à­à¬Ÿà¬¿ ଘଟିଛି"
-
-#: ../gp11/gp11-misc.c:129
-msgid "Insufficient memory available on device"
-msgstr "ଯନà­à¬¤à­à¬°à¬°à­‡ ଯଥେଷà­à¬Ÿ ସà­à¬®à­ƒà¬¤à¬¿à¬¸à­à¬¥à¬¾à¬¨ ଉପଲବà­à¬§ ନାହିà¬"
-
-#: ../gp11/gp11-misc.c:131
-msgid "The device was removed or unplugged"
-msgstr "ଯନà­à¬¤à­à¬°à¬Ÿà¬¿à¬•à­ କଢ଼ାଯାଇଛି କିମà­à¬¬à¬¾ ପà­à¬²à¬— ହୋଇନାହିà¬"
-
-#: ../gp11/gp11-misc.c:133
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "ସଂଗà­à¬ªà­à¬¤ ତଥà­à­Ÿà¬Ÿà¬¿ ବୈଧ ନà­à¬¹à¬ କିମà­à¬¬à¬¾ ଚିହà­à¬¨à¬¿à¬¹à­‡à¬‰à¬¨à¬¾à¬¹à¬¿à¬"
-
-#: ../gp11/gp11-misc.c:135
-msgid "The encrypted data is too long"
-msgstr "ସଂଗà­à¬ªà­à¬¤ ତଥà­à­Ÿà¬Ÿà¬¿ ବହà­à¬¤ ଲମà­à¬¬à¬¾"
-
-#: ../gp11/gp11-misc.c:137
-msgid "This operation is not supported"
-msgstr "à¬à¬¹à¬¿ ପà­à¬°à­Ÿà­‹à¬—ଟି ସମରà­à¬¥à¬¿à¬¤ ନà­à¬¹à¬"
-
-#: ../gp11/gp11-misc.c:139
-msgid "The key is missing or invalid"
-msgstr "କି ଟି ଅନà­à¬ªà¬¸à­à¬¥à¬¿à¬¤ କିମà­à¬¬à¬¾ ଅବୈଧ"
-
-#: ../gp11/gp11-misc.c:141
-msgid "The key is the wrong size"
-msgstr "କି ର ଆକାର ଭà­à¬² ଅଛି"
-
-#: ../gp11/gp11-misc.c:143
-msgid "The key is of the wrong type"
-msgstr "କି ଟି ଭà­à¬² ପà­à¬°à¬•à¬¾à¬°à¬°"
-
-#: ../gp11/gp11-misc.c:145
-msgid "No key is needed"
-msgstr "କୌଣସି କି ଆବଶà­à­Ÿà¬• ନାହିà¬"
-
-#: ../gp11/gp11-misc.c:147
-msgid "The key is different than before"
-msgstr "କି ଟି ପୂରà­à¬¬ ଅପେକà­à¬·à¬¾ ଭିନà­à¬¨"
-
-#: ../gp11/gp11-misc.c:149
-msgid "A key is needed"
-msgstr "କି ଟି ଆବଶà­à­Ÿà¬•"
-
-#: ../gp11/gp11-misc.c:151
-msgid "Cannot include the key in digest"
-msgstr "କି କୠଡାଇଜେଷà­à¬Ÿà¬°à­‡ ଅନà­à¬¤à¬°à­à¬­à­à¬•à­à¬¤ କରିହେବ ନାହିà¬"
-
-#: ../gp11/gp11-misc.c:153
-msgid "This operation cannot be done with this key"
-msgstr "à¬à¬¹à¬¿ କି ଦà­à­±à¬¾à¬°à¬¾ ପà­à¬°à­Ÿà­‹à¬—ଟିକୠକରିହେବ ନାହିà¬"
-
-#: ../gp11/gp11-misc.c:155
-msgid "The key cannot be wrapped"
-msgstr "କିକୠଆବୃତ କରିହେବ ନାହିà¬"
-
-#: ../gp11/gp11-misc.c:157
-msgid "Cannot export this key"
-msgstr "à¬à¬¹à¬¿ କି କୠରପà­à¬¤à¬¾à¬¨à­€ କରିହେବ ନାହିà¬"
-
-#: ../gp11/gp11-misc.c:159
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "କà­à¬°à¬¿à¬ªà­à¬Ÿà­‹ କାରà­à¬¯à­à­Ÿà¬•à¬¾à¬°à¬¿à¬¤à¬¾à¬Ÿà¬¿ ଅବୈଧ ଅଟେ କିମà­à¬¬à¬¾ ଅଚିହà­à¬¨à¬¾"
-
-#: ../gp11/gp11-misc.c:161
-msgid "The crypto mechanism has an invalid argument"
-msgstr "କà­à¬°à¬¿à¬ªà­à¬Ÿà­‹ କାରà­à¬¯à­à­Ÿà¬•à¬¾à¬°à¬¿à¬¤à¬¾à¬°à­‡ ଅବୈଧ ସà­à­±à¬¤à¬¨à­à¬¤à­à¬°à¬šà¬° ଅଛି"
-
-#: ../gp11/gp11-misc.c:163
-msgid "The object is missing or invalid"
-msgstr "ବସà­à¬¤à­à¬Ÿà¬¿ ଅନà­à¬ªà¬¸à­à¬¥à¬¿à¬¤ ଅଛି କିମà­à¬¬à¬¾ ଅବୈଧ ଅଟେ"
-
-#: ../gp11/gp11-misc.c:165
-msgid "Another operation is already taking place"
-msgstr "ଅନà­à­Ÿ à¬à¬• ପà­à¬°à­Ÿà­‹à¬— ପୂରà­à¬¬à¬°à­ ଘଟିଛି"
-
-#: ../gp11/gp11-misc.c:167
-msgid "No operation is taking place"
-msgstr "କୌଣସି ପà­à¬°à­Ÿà­‹à¬— ଘଟିନାହିà¬"
-
-#: ../gp11/gp11-misc.c:169
-msgid "The password or PIN is incorrect"
-msgstr "ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ କିମà­à¬¬à¬¾ PIN ଟି ଭà­à¬² ଅଛି"
-
-#: ../gp11/gp11-misc.c:171
-msgid "The password or PIN is invalid"
-msgstr "ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ କିମà­à¬¬à¬¾ PIN ଟି ଅବୈଧ ଅଛି"
-
-#: ../gp11/gp11-misc.c:173
-msgid "The password or PIN is of an invalid length"
-msgstr "ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ କିମà­à¬¬à¬¾ PIN ଲମà­à¬¬à¬¾ ଭà­à¬² ଅଛି"
-
-#: ../gp11/gp11-misc.c:175
-msgid "The password or PIN has expired"
-msgstr "ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ କିମà­à¬¬à¬¾ PIN ର ସମୟ ସମାପà­à¬¤ ହୋଇଛି"
-
-#: ../gp11/gp11-misc.c:177
-msgid "The password or PIN is locked"
-msgstr "ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ କିମà­à¬¬à¬¾ PIN ଟି ଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ ହୋଇଛି"
-
-#: ../gp11/gp11-misc.c:179
-msgid "The session is closed"
-msgstr "ଅଧିବେଶନ ବନà­à¬¦ ହୋଇଛି"
-
-#: ../gp11/gp11-misc.c:181
-msgid "Too many sessions are active"
-msgstr "ଅତà­à­Ÿà¬§à¬¿à¬• ଅଧିବେଶନଗà­à¬¡à¬¼à¬¿à¬• ସକà­à¬°à¬¿à­Ÿ ଅଛି"
-
-#: ../gp11/gp11-misc.c:183
-msgid "The session is invalid"
-msgstr "ଅଧିବେଶନ ଅବୈଧ ଅଟେ"
-
-#: ../gp11/gp11-misc.c:185
-msgid "The session is read-only"
-msgstr "ଅଧିବେଶନଟି କେବଳ ପଠନୀୟ"
-
-#: ../gp11/gp11-misc.c:187
-msgid "An open session exists"
-msgstr "ଗୋଟିଠଖୋଲା ଅଧିବେଶନ ଅବସà­à¬¥à¬¿à¬¤"
-
-#: ../gp11/gp11-misc.c:189
-msgid "A read-only session exists"
-msgstr "ଗୋଟିଠକେବଳ-ପଠନୀୟ ଅଧିବେଶନ ଅବସà­à¬¥à¬¿à¬¤ ଅଛି"
-
-#: ../gp11/gp11-misc.c:191
-msgid "An administrator session exists"
-msgstr "ପà­à¬°à¬¶à¬¾à¬¸à¬• ଅଧିବେଶନ ଅବସà­à¬¥à¬¿à¬¤ ଅଛି"
-
-#: ../gp11/gp11-misc.c:193
-msgid "The signature is bad or corrupted"
-msgstr "ହସà­à¬¤à¬¾à¬•à­à¬·à¬°à¬Ÿà¬¿ ଖରାପ କିମà­à¬¬à¬¾ ତà­à¬°à­à¬Ÿà¬¿à¬¯à­à¬•à­à¬¤"
-
-#: ../gp11/gp11-misc.c:195
-msgid "The signature is unrecognized or corrupted"
-msgstr "ହସà­à¬¤à¬¾à¬•à­à¬·à¬°à¬Ÿà¬¿ ଅଚିହà­à¬¨à¬¾ ଅଥବା ତà­à¬°à­à¬Ÿà¬¿à¬¯à­à¬•à­à¬¤"
-
-#: ../gp11/gp11-misc.c:197
-msgid "Certain required fields are missing"
-msgstr "କିଛି ଆବଶà­à­Ÿà¬•à­€à­Ÿ କà­à¬·à­‡à¬¤à­à¬°à¬—à­à¬¡à¬¼à¬¿à¬• ଅନà­à¬ªà¬¸à­à¬¥à¬¿à¬¤ ଅଛି"
-
-#: ../gp11/gp11-misc.c:199
-msgid "Certain fields have invalid values"
-msgstr "କିଛି କà­à¬·à­‡à¬¤à­à¬°à¬°à­‡ ଅବୈଧ ମୂଲà­à­Ÿ ଅଛି"
-
-#: ../gp11/gp11-misc.c:201
-msgid "The device is not present or unplugged"
-msgstr "ଉପକରଣଟି ଉପସà­à¬¥à¬¿à¬¤ ନାହିଠକିମà­à¬¬à¬¾ ପà­à¬²à¬— ହୋଇନାହିà¬"
-
-#: ../gp11/gp11-misc.c:203
-msgid "The device is invalid or unrecognizable"
-msgstr "ଉପକରଣଟି ଅବୈଧ କିମà­à¬¬à¬¾ ଚିହà­à¬¨à¬¿à¬¬à¬¾à¬¯à­‹à¬—à­à­Ÿ ନà­à¬¹à¬"
-
-#: ../gp11/gp11-misc.c:205
-msgid "The device is write protected"
-msgstr "ଉପକରଣଟି ଲେଖାପà­à¬°à¬¤à¬¿à¬°à­‹à¬§à¬¿à¬¤"
-
-#: ../gp11/gp11-misc.c:207
-msgid "Cannot import because the key is invalid"
-msgstr "ଆମଦାନି କରିପାରିବ ନାହିଠକାରଣ କି ଟି ଅବୈଧ ଅଟେ"
-
-#: ../gp11/gp11-misc.c:209
-msgid "Cannot import because the key is of the wrong size"
-msgstr "ଆମଦାନି କରିପାରିବ ନାହିଠକାରଣ କି ଟି ଭà­à¬² ଆକାରର ଅଟେ"
-
-#: ../gp11/gp11-misc.c:211
-msgid "Cannot import because the key is of the wrong type"
-msgstr "ଆମଦାନି କରିପାରିବ ନାହିଠକାରଣ କି ଟି ଭà­à¬² ପà­à¬°à¬•à¬¾à¬°à¬° ଅଟେ"
-
-#: ../gp11/gp11-misc.c:213
-msgid "You are already logged in"
-msgstr "ଆପଣ ପୂରà­à¬¬à¬°à­ ଲଗଇନ ଅଛନà­à¬¤à¬¿"
+msgid "An application wants access to '%s', but it is locked"
+msgstr "ଗୋଟିଠପà­à¬°à­Ÿà­‹à¬— '%s' କୠଅଭିଗମà­à­Ÿ କରିବା ପାଇଠଚାହà­à¬à¬…ଛି, କିନà­à¬¤à­ à¬à¬¹à¬¾ ଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ ଅଛି"
-#: ../gp11/gp11-misc.c:215
-msgid "No user has logged in"
-msgstr "କୌଣସି ଚାଳକ ଲଗଇନ ହୋଇନାହାନà­à¬¤à¬¿"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
+msgstr "ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬°/କି ସଂଗà­à¬°à¬¹à¬¾à¬³à­Ÿà¬•à­ ପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରନà­à¬¤à­"
-#: ../gp11/gp11-misc.c:217
-msgid "The user's password or PIN is not set"
-msgstr "ଚାଳକଙà­à¬•à¬° ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ କିମà­à¬¬à¬¾ PIN ସେଟ ହୋଇନାହିà¬"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
+msgstr "ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬°/କି ସଂଗà­à¬°à¬¹à¬¾à¬³à­Ÿà¬•à­ ପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରିବା ପାଇଠପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ ଭରଣ କରନà­à¬¤à­"
-#: ../gp11/gp11-misc.c:219
-msgid "The user is of an invalid type"
-msgstr "ଚାଳକଟି ଗୋଟିଠଅବୈଧ ପà­à¬°à¬•à¬¾à¬°à¬°"
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, c-format
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr ""
+"ଗୋଟିଠପà­à¬°à­Ÿà­‹à¬— ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬°/କି ସଂଗà­à¬°à¬¹à¬¾à¬³à­Ÿ '%s' କୠଅଭିଗମà­à­Ÿ କରିବା ପାଇଠଚାହà­à¬à¬…ଛି, କିନà­à¬¤à­ à¬à¬¹à¬¾ "
+"ଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ ଅଛି"
-#: ../gp11/gp11-misc.c:221
-msgid "Another user is already logged in"
-msgstr "ଅନà­à­Ÿ à¬à¬• ଚାଳକ ପୂରà­à¬¬à¬°à­ ଲଗଇନ ଅଛନà­à¬¤à¬¿"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
+msgstr "ନୂତନ ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ ଆବଶà­à­Ÿà¬•"
-#: ../gp11/gp11-misc.c:223
-msgid "Too many users of different types logged in"
-msgstr "ବିଭିନà­à¬¨ ପà­à¬°à¬•à¬¾à¬°à¬° ଅନେକ ଚାଳକ ଲଗଇନ ଅଛିନà­à¬¤à¬¿"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
+msgstr "ସà­à¬°à¬•à­à¬·à¬¿à¬¤ ସଂଗà­à¬°à¬¹à¬¾à¬³à­Ÿ ପାଇଠନୂତନ ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ ଆବଶà­à­Ÿà¬•"
-#: ../gp11/gp11-misc.c:225
-msgid "Cannot import an invalid key"
-msgstr "ଗୋଟିଠଅବୈଧ କିକୠଆମଦାନି କରିପାରିବେ ନାହିà¬"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
+#, c-format
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
+"ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬° କିମà­à¬¬à¬¾ କିଗà­à¬¡à¬¼à¬¿à¬•à¬° ସଂଗà­à¬°à¬¹à¬¾à¬³à­Ÿ ପାଇଠ'%s' କୠପà­à¬°à¬¸à­à¬¤à­à¬¤ କରିବାକୠ, ଗୋଟିଠପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ ଆବଶà­à­Ÿà¬•"
-#: ../gp11/gp11-misc.c:227
-msgid "Cannot import a key of the wrong size"
-msgstr "ଭà­à¬² ଆକାରର ଗୋଟିଠକିକୠଆମଦାନି କରିପାରିବେ ନାହିà¬"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "କି-ରିଙà­à¬— ପà­à¬°à¬¬à¬¶ ସଙà­à¬•à­‡à¬¤à¬•à­ ବଦଳାନà­à¬¤à­"
-#: ../gp11/gp11-misc.c:229
-msgid "Cannot export because the key is invalid"
-msgstr "କି ଟି ଅବୈଧ ଥିବା ହେତୠରପà­à¬¤à¬¾à¬¨à¬¿ କରିପାରିବେ ନାହିà¬"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "ସà­à¬°à¬•à­à¬·à¬¿à¬¤ ସଂଗà­à¬°à¬¹à¬¾à¬³à­Ÿ ପାଇଠନୂତନ ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ ଆବଶà­à­Ÿà¬•"
-#: ../gp11/gp11-misc.c:231
-msgid "Cannot export because the key is of the wrong size"
-msgstr "କି ଟି ଭà­à¬² ଆକାରର ହୋଇଥିବା ହେତୠରପà­à¬¤à¬¾à¬¨à¬¿ କରିପାରିବେ ନାହିà¬"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
+#, c-format
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
+msgstr ""
-#: ../gp11/gp11-misc.c:233
-msgid "Cannot export because the key is of the wrong type"
-msgstr "କି ଟି ଭà­à¬² ପà­à¬°à¬•à¬¾à¬°à¬° ହୋଇଥିବା ହେତୠରପà­à¬¤à¬¾à¬¨à¬¿ କରିପାରିବେ ନାହିà¬"
+#: ../tool/gkr-tool.c:102
+#, c-format
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
-#: ../gp11/gp11-misc.c:235
-msgid "Unable to initialize the random number generator"
-msgstr "କà­à¬°à¬®à¬®à­à¬•à­à¬¤ ସଂଖà­à­Ÿà¬¾ ସୃଷà­à¬Ÿà¬¿à¬•à¬°à­à¬¤à­à¬¤à¬¾à¬•à­ ଆରମà­à¬­ କରିବାରେ ଅସମରà­à¬¥"
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
-#: ../gp11/gp11-misc.c:237
-msgid "No random number generator available"
-msgstr "କୌଣସି କà­à¬°à¬®à¬®à­à¬•à­à¬¤ ସଂଖà­à­Ÿà¬¾ ସୃଷà­à¬Ÿà¬¿à¬•à¬°à­à¬¤à­à¬¤à¬¾ ଉପଲବà­à¬§ ନାହିà¬"
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
-#: ../gp11/gp11-misc.c:239
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "କà­à¬°à¬¿à¬ªà­à¬Ÿà­‹ କà­à¬°à¬¿à­Ÿà¬¾à¬¬à¬³à­€à¬°à­‡ ଗୋଟିଠଅବୈଧ ପà­à¬°à¬¾à¬šà¬³ ଅଛି"
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
+msgstr "ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତକୠଅସଂଗà­à¬ªà­à¬¤ ଭାବରେ ସଞà­à¬šà­Ÿ କରିବେ କି?"
-#: ../gp11/gp11-misc.c:241
-msgid "Not enough space to store the result"
-msgstr "ଫଳାଫଳକୠସଂରକà­à¬·à¬£ କରିବା ପାଇଠଯଥେଷà­à¬Ÿ ସà­à¬¥à¬¾à¬¨ ନାହିà¬"
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
+"ଗୋଟିଠଖାଲି ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତକୠବà­à­Ÿà¬¬à¬¹à¬¾à¬° କରିବା ପାଇଠବାଛିବା ଦà­à­±à¬¾à¬°à¬¾, ଆପଣଙà­à¬•à¬° ସଂରକà­à¬·à¬¿à¬¤ ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ "
+"ସà­à¬°à¬•à­à¬·à¬¿à¬¤ ଭାବରେ ସଂଗà­à¬ªà­à¬¤ ହେବ ନାହିà¬à¥¤ ସେଗà­à¬¡à¬¼à¬¿à¬•à­ ଆପଣଙà­à¬• ଫାଇଲଗà­à¬¡à¬¼à¬¿à¬•à­ ପà­à¬°à¬¬à­‡à¬¶à¬¾à¬¨à­à¬®à¬¤à¬¿ ଥିବା ଯେକୌଣସି ବà­à­Ÿà¬•à­à¬¤à¬¿ "
+"ଦà­à­±à¬¾à¬°à¬¾ ଅଭିଗମà­à­Ÿ ହୋଇପାରିବ।"
-#: ../gp11/gp11-misc.c:243
-msgid "The saved state is invalid"
-msgstr "ସଂରକà­à¬·à¬¿à¬¤ ସà­à¬¥à¬¿à¬¤à¬¿à¬Ÿà¬¿ ଅବୈଧ"
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
+msgstr "ଅସà­à¬°à¬•à­à¬·à¬¿à¬¤ ସଂଗà­à¬°à¬¹à¬¾à¬³à­Ÿ ବà­à­Ÿà¬¬à¬¹à¬¾à¬° କରନà­à¬¤à­"
-#: ../gp11/gp11-misc.c:245
-msgid "The information is sensitive and cannot be revealed"
-msgstr "ସୂଚନାଟି ସମà­à¬¬à­‡à¬¦à¬¨à¬¶à­€à¬³ ଅଟେ à¬à¬¬à¬‚ à¬à¬¹à¬¾à¬•à­ ପà­à¬°à¬•à¬¾à¬¶ କରିହେବ ନାହିà¬"
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr "ପà­à¬°à¬¬à­‡à¬¶ ସଙà­à¬•à­‡à¬¤ ଦà­à¬¬à­Ÿ ମିଶୠନାହାà¬à¬¨à­à¬¤à¬¿à¥¤"
-#: ../gp11/gp11-misc.c:247
-msgid "The state cannot be saved"
-msgstr "à¬à¬¹à¬¿ ସà­à¬¥à¬¿à¬¤à¬¿à¬•à­ ସଂରକà­à¬·à¬£ କରିହେବ ନାହିà¬"
+#: ../ui/gku-prompt-tool.c:649
+msgid "Password cannot be blank"
+msgstr "ପà­à¬°à¬¬à­‡à¬¶ ସଙà­à¬•à­‡à¬¤à¬Ÿà¬¿ ଖାଲି ହୋଇ ପାରିବ ନାହିà¬"
-#: ../gp11/gp11-misc.c:249
-msgid "The module has not been initialized"
-msgstr "à¬à¬•à¬•à¬¾à¬‚ଶଟିକୠଆରମà­à¬­ କରିହେବ ନାହିà¬"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
-#: ../gp11/gp11-misc.c:251
-msgid "The module has already been initialized"
-msgstr "à¬à¬•à¬•à¬¾à¬‚ଶଟିକୠପୂରà­à¬¬à¬°à­ ଆରମà­à¬­ କରିହେବ ନାହିà¬"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
-#: ../gp11/gp11-misc.c:253
-msgid "Cannot lock data"
-msgstr "ତଥà­à­Ÿà¬•à­ ଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରିହେବ ନାହିà¬"
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
+msgstr "ନୂତନ ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ ଶକà­à¬¤à¬¿"
-#: ../gp11/gp11-misc.c:255
-msgid "The data cannot be locked"
-msgstr "ତଥà­à­Ÿà¬•à­ ଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ କରିହେବ ନାହିà¬"
+#: ../ui/gku-prompt.ui.h:2
+#, fuzzy
+msgid "_Application:"
+msgstr "ଅବସà­à¬¥à¬¾à¬¨ (_L):"
-#: ../gp11/gp11-misc.c:257
-msgid "The signature request was rejected by the user"
-msgstr "ହସà­à¬¤à¬¾à¬•à­à¬·à¬° ଅନà­à¬°à­‹à¬§à¬•à­ ଚାଳକ ଦà­à­±à¬¾à¬°à¬¾ ପà­à¬°à¬¤à­à­Ÿà¬¾à¬–ାନ କରାଯାଇଛି"
+#: ../ui/gku-prompt.ui.h:3
+#, fuzzy
+msgid "_Confirm:"
+msgstr "ପà­à¬°à¬¬à¬¶ ସଙà­à¬•à­‡à¬¤à¬•à­ ନିଶà­à¬šà¬¿à¬¤ କରନà­à¬¤à­ (_C):"
-#: ../gp11/gp11-misc.c:261
-msgid "Unknown error"
-msgstr "ଅଜଣା ତà­à¬°à­à¬Ÿà¬¿"
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
-#: ../pkcs11/gck/gck-certificate.c:740
-msgid "Unnamed Certificate"
-msgstr "ବେନାମୀ ପà­à¬°à¬®à¬¾à¬£à¬ªà¬¤à­à¬°"
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr "ନାମ (_N):"
-#: ../pkcs11/ssh-store/gck-ssh-private-key.c:339
-msgid "Couldn't parse public SSH key"
-msgstr "ସାରà­à¬¬à¬œà¬¨à­€à¬• SSH କି କୠବିଶà­à¬³à­‡à¬·à¬£ କରିପାରିଲା ନାହିà¬"
+#: ../ui/gku-prompt.ui.h:6
+#, fuzzy
+msgid "_Old Password:"
+msgstr "ପà­à¬°à­à¬£à¬¾ ପà­à¬°à¬¬à¬¶ ସଙà­à¬•à­‡à¬¤ (_O):"
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "ପà­à¬°à¬¬à­‡à¬¶ ସଂଙà­à¬•à­‡à¬¤ (_P):"
diff --git a/po/pa.po b/po/pa.po
index 47c3c70d..b50bb37f 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -7,23 +7,22 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.HEAD\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-09-15 09:51+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-18 01:14+0530\n"
"Last-Translator: A S Alam <aalam@users.sf.net>\n"
"Language-Team: Punjabi/Panjabi <punjabi-users@lists.sf.net>\n"
+"Language: pa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 1.2\n"
-"Language: pa\n"
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "ਬਿਨ-ਨਾਂ"
@@ -43,8 +42,7 @@ msgid ""
"An application wants to change the password for the '%s' keyring. Choose the "
"new password you want to use for it."
msgstr ""
-"ਕਾਰਜ ਕੀਰਿੰਗ '%s' ਲਈ ਪਾਸਵਰਡ ਬਦਲਣਾ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ। ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇਸ ਲਈ ਵਰਤਣ ਵਾਸਤੇ ਪਾਸਵਰਡ "
-"ਦੀ ਚੋਣ "
+"ਕਾਰਜ ਕੀਰਿੰਗ '%s' ਲਈ ਪਾਸਵਰਡ ਬਦਲਣਾ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ। ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇਸ ਲਈ ਵਰਤਣ ਵਾਸਤੇ ਪਾਸਵਰਡ ਦੀ ਚੋਣ "
"ਕਰਨੀ ਪਵੇਗੀ।"
#: ../daemon/dbus/gkd-secret-change.c:111
@@ -65,8 +63,7 @@ msgid ""
"An application wants to create a new keyring called '%s'. Choose the "
"password you want to use for it."
msgstr ""
-"ਕਾਰਜ ਇੱਕ ਨਵੀਂ ਕੀਰਿੰਗ, ਜਿਸ ਨੂੰ '%s' ਕਿਹਾ ਹੈ, ਬਣਾਉਣੀ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ। ਤà©à¨¸à©€à¨‚ ਇਸ ਦੀ "
-"ਵਰਤੋਂ ਸਮੇਂ "
+"ਕਾਰਜ ਇੱਕ ਨਵੀਂ ਕੀਰਿੰਗ, ਜਿਸ ਨੂੰ '%s' ਕਿਹਾ ਹੈ, ਬਣਾਉਣੀ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ। ਤà©à¨¸à©€à¨‚ ਇਸ ਦੀ ਵਰਤੋਂ ਸਮੇਂ "
"ਇਸਤੇਮਾਲ ਹੋਣ ਵਾਲੇ ਪਾਸਵਰਡ ਦੀ ਚੋਣ ਕਰਨੀ ਹੈ।"
#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
@@ -101,35 +98,34 @@ msgstr "ਗਨੋਮ ਕੀਰਿੰਗ: GPG à¨à¨œà©°à¨Ÿ"
msgid "GPG Password Agent"
msgstr "GPG ਪਾਸਵਰਡ à¨à¨œà©°à¨Ÿ"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "ਅਣਜਾਣ"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP ਕà©à©°à¨œà©€: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "ਸ਼ਬਦ ਦਿਓ"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "ਜੇ ਵੇਹਲਾ ਹੋਵੇ ਤਾਂ ਇਹ ਪਾਸਵਰਡ ਭà©à©±à¨² ਜਾਉ"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "ਇਹ ਪਾਸਵਰਡ ਭà©à©±à¨² ਜਾਉ, ਇੰਨੇ ਸਮੇਂ ਬਾਅਦ"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "ਜੇ ਮੈਂ ਲਾਗਆਉਟ ਕਰਾਂ ਤਾਂ ਇਹ ਪਾਸਵਰਡ ਭà©à©±à¨² ਜਾਉ"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "ਲਾਗਇਨ"
@@ -173,7 +169,7 @@ msgstr "ਆਮ ਨਾਂ"
msgid "Surname"
msgstr "ਗੋਤ"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "ਸੀਰੀਅਲ ਨੰਬਰ"
@@ -229,7 +225,7 @@ msgstr "DN ਕà©à¨†à¨²à©€à¨«à¨¾à¨‡à¨°"
msgid "Pseudonym"
msgstr "Pseudonym"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -245,7 +241,7 @@ msgstr "RSA ਨਾਲ MD5"
msgid "SHA1 with RSA"
msgstr "RSA ਨਾਲ SHA1"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -284,591 +280,6 @@ msgstr "ਚਲਾਈਡ ਪਰੋਸੈਸ (%s) ਤੋਂ ਡਾਟਾ ਪੜà©
msgid "Unexpected error in waitpid() (%s)"
msgstr " waitpid() (%s) ਵਿੱਚ ਅਣਜਾਣ ਗਲਤੀ"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "PKCS#11 ਮੋਡੀਊਲ ਲੋਡ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "ਗਲਤ PKCS#11 ਮੋਡੀਊਲ: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "PKCS#11 ਮੋਡੀਊਲ ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "PKCS#11 ਮੋਡੀਊਲ ਸ਼à©à¨°à©‚ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "ਰਜਿਸਟਰ ਹੋਠPKCS#11 ਮੋਡੀਊਲ ਸ਼à©à¨°à©‚ ਨਹੀਂ ਕੀਤੇ ਜਾ ਸਕੇ: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "ਨਾਂ"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "ਜਾਰੀ ਕਰਤਾ"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "ਮਿਆਦ"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "ਸਰਟੀਫਿਕੇਟ"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>ਇਸ ਨਾਂ ਨਾਲ ਫਾਇਲ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ।</b>\n"
-"\n"
-"ਕੀ ਤà©à¨¸à©€à¨‚ ਇਸ ਨੂੰ ਨਵੀਂ ਫਾਇਲ ਨਾਲ ਬਦਲਣਾ ਚਾਹà©à©°à¨¦à©‡ ਹੋ?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "ਬਦਲੋ(_R)"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "ਕਾਰਵਾਈ ਰੱਦ ਕੀਤੀ ਗਈ ਹੈ।"
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "ਸਰਟੀਫਿਕੇਟ à¨à¨•à¨¸à¨ªà¨°à©‹à¨Ÿ"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "ਸਰਟੀਫਿਕੇਟ ਫਾਇਲਾਂ"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "PEM ਫਾਇਲਾਂ"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "ਹੋਰ ਨਾਂ"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "XMPP à¨à¨¡à¨°à©ˆà¨¸"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "ਈਮੇਲ"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "X400 à¨à¨¡à¨°à©ˆà¨¸"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "ਡਾਇਰੈਕਟਰੀ ਨਾਂ"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "EDI ਪਾਰਟੀ ਨਾਂ"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "IP à¨à¨¡à¨°à©ˆà©±à¨¸"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "ਰਜਿਸਟਰ ਕੀਤਾ ID"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "ਮà©à©±à¨¢à¨²à©€à¨†à¨‚ ਸ਼ਰਤਾਂ"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "ਸਰਟੀਫਿਕੇਟ ਅਥਾਰਟੀ"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "ਹਾਂ"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "ਨਹੀਂ"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "ਵੱਧੋ-ਵੱਧ ਪਾਥ ਲੰਬਾਈ"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "ਬੇਅੰਤ"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "à¨à¨•à¨¸à¨Ÿà©ˆà¨‚ਡਡ ਕà©à©°à¨œà©€ ਵਰਤੋਂ"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "ਮਨਜ਼ੂਰ ਕੀਤੇ ਮਕਸਦ"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "ਵਿਸ਼ਾ ਕà©à©°à¨œà©€ ਪਛਾਣਕਰਤਾ"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "ਕà©à©°à¨œà©€ ਪਛਾਣਕਰਤਾ"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "ਡਿਜ਼ਿਟਲ ਦਸਤਖਤ"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "ਕà©à©°à¨œà©€ ਇਨਸੀਫੀਰਮੈਂਟ"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "ਡਾਟਾ ਇਨਸੀਫੀਰਮੈਂਟ"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "ਕà©à©°à¨œà©€ ਇਕਰਾਰਨਾਮਾ"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "ਸਰਟੀਫਿਕੇਟ ਦਸਤਖਤ"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "ਮਨਸੂਖ ਲਿਸਟ ਦਸਤਖਤ"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "ਕà©à©°à¨œà©€ ਵਰਤੋਂ"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "ਵਰਤੋਂ"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "ਵਿਸ਼ਾ ਬਦਲਵੇਂ ਨਾਂ"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "ਇਕਸਟੈਨਸ਼ਨ"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "ਪਛਾਣਕਰਤਾ"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "ਮà©à©±à¨²"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "ਨਾਜ਼à©à¨•"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "ਸਰਟੀਫਿਕੇਟ à¨à¨•à¨¸à¨ªà©‹à¨°à¨Ÿ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।"
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "ਪਛਾਣ"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "ਜਾਂਚ ਕਰਤਾ"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "ਮਿਆਦ"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "ਵਿਸ਼ਾ ਨਾਂ"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "ਜਾਰੀ ਕਰਤਾ ਨਾਂ"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "ਜਾਰੀ ਕੀਤਾ ਸਰਟੀਫਿਕੇਟ"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "ਵਰਜਨ"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "ਇਸ ਤੋਂ ਪਹਿਲਾਂ ਢà©à©±à¨•à¨µà¨¾à¨‚ ਨਹੀਂ"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "ਇਸ ਤੋਂ ਬਾਅਦ ਢà©à©±à¨•à¨µà©€à¨‚ ਨਹੀਂ"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "ਸਰਟੀਫਿਕੇਟ ਫਿੰਗਰ-ਪਰਿੰਟ"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "ਦਸਤਖਤ"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "ਦਸਤਖਤ à¨à¨²à©‹à¨—ਰਿਥਮ"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "ਦਸਤਖਤ ਪੈਰਾਮੀਟਰ"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "ਪਬਲਿਕ ਕà©à©°à¨œà©€ ਜਾਣਕਾਰੀ"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "ਕà©à©°à¨œà©€ à¨à¨²à©‹à¨—ਰਿਥਮ"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "ਕà©à©°à¨œà©€ ਪੈਰਾਮੀਟਰ"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "ਕà©à©°à¨œà©€ ਆਕਾਰ"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "ਕà©à©°à¨œà©€ SHA1 ਫਿੰਗਰਪਰਿੰਟ"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "ਪਬਲਿਕ ਕà©à©°à¨œà©€"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "ਵੇਰਵਾ(_D)"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "\"'%s\" ਵੇਖਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "ਫਾਇਲ ਵੇਖਾਈ ਨਹੀਂ ਜਾ ਸਕੀ"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "ਕਾਰਨ"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "ਇਸ ਕਿਸਮ ਦੀ ਫਾਇਲ ਨਹੀਂ ਵੇਖਾਈ ਜਾ ਸਕਦੀ"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "ਸਰਟੀਫਿਕੇਟ ਤੇ ਕà©à©°à¨œà©€à¨†à¨‚ ਇੰਪੋਰਟ ਕਰੋ"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "ਆਯਾਤ ਜਾਣਕਾਰੀ:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "ਪਾਸਵਰਡ:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "PGP ਕà©à©°à¨œà©€"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "ਕà©à©°à¨œà©€ ID"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Gnupg ਕਾਰਵਾਈ ਅੱਗੇ ਦਿੱਤੇ ਕੋਡ ਨਾਲ ਬੰਦ ਹੋਇਆ: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Gnupg ਕਾਰਵਾਈ ਸਿਗਨਲ ਨਾਲ ਖਤਮ ਹੋ ਗਿਆ: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919 ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "ਕਾਰਵਾਈ ਰੱਦ ਕੀਤੀ ਗਈ"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "ਪà©à¨°à¨¾à¨ˆà¨µà©‡à¨Ÿ ਕà©à©°à¨œà©€ ਦਾ ਤਾਲਾ ਖੋਲà©à¨¹à¨£ ਲਈ ਪਾਸਵਰਡ ਦਿਓ"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "ਸਰਟੀਫਿਕੇਟ ਤਾਲਾ ਖੋਲà©à¨¹à¨£ ਵਾਸਤੇ ਪਾਸਵਰਡ ਦਿਓ"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "ਤਾਲਾ ਖੋਲà©à¨¹à¨£ ਵਾਸਤੇ ਪਾਸਵਰਡ ਦਿਓ"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "ਪà©à¨°à¨¾à¨ˆà¨µà©‡à¨Ÿ ਕà©à©°à¨œà©€ ਲਿਆਉਣ ਲਈ ਇਸ ਦਾ ਤਾਲਾ ਖੋਲà©à¨¹à¨£à¨¾ ਲਾਜ਼ਮੀ ਹੈ"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "ਸਰਟੀਫਿਕੇਟ ਲਿਆਉਣ ਲਈ ਇਸ ਦਾ ਤਾਲਾ ਖੋਲà©à¨¹à¨£à¨¾ ਲਾਜ਼ਮੀ ਹੈ"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "ਡਾਟਾ ਲਿਆਉਣ ਲਈ ਇਸ ਦਾ ਤਾਲਾ ਖੋਲà©à¨¹à¨£à¨¾ ਲਾਜ਼ਮੀ ਹੈ"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "ਪà©à¨°à¨¾à¨ˆà¨µà©‡à¨Ÿ ਕà©à©°à¨œà©€ '%s' ਲਿਆਉਣ ਲਈ ਇਸ ਦਾ ਤਾਲਾ ਖੋਲà©à¨¹à¨£à¨¾ ਲਾਜ਼ਮੀ ਹੈ"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "ਸਰਟੀਫਿਕੇਟ '%s' ਲਿਆਉਣ ਲਈ ਇਸ ਦਾ ਤਾਲਾ ਖੋਲà©à¨¹à¨£à¨¾ ਲਾਜ਼ਮੀ ਹੈ"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "'%s' ਲਿਆਉਣ ਲਈ, ਇਸ ਦਾ ਤਾਲਾ ਖੋਲà©à¨¹à¨£à¨¾ ਲਾਜ਼ਮੀ ਹੈ"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "ਲੈਣ ਲਈ ਕੋਈ ਟਿਕਾਣਾ ਉਪਲੱਬਧ ਨਹੀਂ ਹੈ"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "ਸਰਟੀਫਿਕੇਟ/ਕà©à©°à¨œà©€à¨†à¨‚ ਲਵੋ"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "ਲਠਗਠਸਰਟੀਫਿਕੇਟ/ਕà©à©°à¨œà©€à¨†à¨‚ ਸੰਭਾਲਣ ਲਈ ਟਿਕਾਣਾ ਚà©à¨£à©‹à¥¤"
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "ਕà©à©°à¨œà©€"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "ਪà©à¨°à¨¾à¨ˆà¨µà©‡à¨Ÿ RSA ਕà©à©°à¨œà©€"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "ਪà©à¨°à¨¾à¨ˆà¨µà©‡à¨Ÿ DSA ਕà©à©°à¨œà©€"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "ਪà©à¨°à¨¾à¨ˆà¨µà©‡à¨Ÿ ਕà©à©°à¨œà©€"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "ਪਬਲਿਕ DSA ਕà©à©°à¨œà©€"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d ਬਿੱਟ"
-msgstr[1] "%d ਬਿੱਟ"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "ਤਾਕਤ"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "à¨à¨²à©‹à¨—ਰਿਥਮ"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "ਆਕਾਰ"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "ਫਿੰਗਰ-ਪਰਿੰਟ"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "ਗ਼ੈਰ-ਪਛਾਣ ਜਾਂ ਗ਼ੈਰ-ਸਹਾਇਕ ਡਾਟਾ ਹੈ।"
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਜਾਂ ਨਿਕਾਰਾ ਹੋਇਆ ਡਾਟਾ ਪਾਰਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।"
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "ਡਾਟਾ ਲਾਕ ਹੈ"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "ਪਿੰਨ ਕੀਤਾ ਸਰਟੀਫਿਕੇਟ ਸੰਭਾਲਣ ਲਈ ਟਿਕਾਣਾ ਲੱਭਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "ਜਦੋਂ ਮੈਂ ਲਾਗਇਨ ਕਰਾਂ ਤਾਂ ਇਹ ਕੀਰਿੰਗ ਆਟੋਮੈਟਿਕ ਹੀ ਅਣ-ਲਾਕ ਕਰੋ।"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "ਇਸ ਦੇ ਬਾਅਦ ਇਹ ਕੀਰਿੰਗ ਲਾਕ ਕਰੋ"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "ਜੇ ਵੇਹਲਾ ਹੋਵੇ ਤਾਂ ਇਹ ਕੀਰਿੰਗ ਲਾਗ ਕਰੋ"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "ਜਦੋਂ ਮੈਂ ਲਾਗਆਉਟ ਕਰਾਂ ਤਾਂ ਇਹ ਕੀਰਿੰਗ ਲਾਕ ਕਰੋ"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "ਮਿੰਟ"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "ਅਣ-ਲਾਕ: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "ਅਣ-ਲਾਕ"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "ਪਾਸਵਰਡ ਗਲਤ ਹੈ"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "ਪਾਸਵਰਡ"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-#| msgid ""
-#| "The contents of '%s' are locked. In order to view the contents, enter a "
-#| "the correct password."
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr "'%s' ਦੀ ਸਮੱਗਰੀ ਲਾਕ ਕੀਤੀ ਹੈ। ਸਮੱਗਰੀ ਵੇਖਣ ਲਈ, ਠੀਕ ਪਾਸਵਰਡ ਦਿਉ ਜੀ।"
-
-#: ../gcr/gcr-unlock-renderer.c:327
-#| msgid ""
-#| "The contents are locked. In order to view the contents, enter a the "
-#| "correct password."
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr "ਸਮੱਗਰੀ ਲਾਕ ਕੀਤੀ ਹੋਈ ਹੈ। ਸਮੱਗਰੀ ਵੇਖਣ ਲਈ, ਠੀਕ ਪਾਸਵਰਡ ਦਿਉ ਜੀ।"
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "GCR ਸਰਟੀਫਿਕੇਟ ਅਤੇ ਕà©à©°à¨œà©€ ਦਰਸ਼ਕ"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "à¨à¨ªà¨²à©€à¨•à©‡à¨¸à¨¼à¨¨ ਦਾ ਵਰਜਨ ਵੇਖੋ"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[file...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- ਸਰਟੀਫਿਕੇਟ ਅਤੇ ਕà©à©°à¨œà©€ ਫਾਇਲਾਂ ਵੇਖੋ"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "ਸਰਟੀਫਿਕੇਟ ਦਰਸ਼ਕ"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "URI ਲਈ ਗਲਤ ਇੰਕੋਡਿੰਗ ਹੈ।"
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "URI 'pkcs11' ਸਕੀਮ ਨਹੀਂ ਹੈ।"
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "URI ਦਾ ਗਲਤ ਸੰਟੈਕਸ ਹੈ।"
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "URI ਦਾ ਗਲਤ ਵਰਜਨ ਨੰਬਰ ਹੈ।"
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "ਬਿਨ-ਨਾਂ ਸਰਟੀਫਿਕੇਟ"
@@ -878,7 +289,7 @@ msgid "Couldn't parse public SSH key"
msgstr "ਪਬਲਿਕ SSH ਕà©à©°à¨œà©€ ਪਾਰਸ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "%s: ਲਈ ਅਣ-ਲਾਕ ਪਾਸਵਰਡ"
@@ -901,16 +312,14 @@ msgid ""
"The password you use to log in to your computer no longer matches that of "
"your login keyring."
msgstr ""
-"ਪਾਸਵਰਡ, ਜੋ ਤà©à¨¸à©€à¨‚ ਆਪਣੇ ਕੰਪਿਊਟਰ 'ਚ ਲਾਗਇਨ ਕਰਨ ਲਈ ਵਰਤਿਆ ਸੀ, ਤà©à¨¹à¨¾à¨¡à©‡ ਲਾਗਇਨ ਕੀਰਿੰਗ "
-"ਨਾਲ ਨਹੀਂ "
+"ਪਾਸਵਰਡ, ਜੋ ਤà©à¨¸à©€à¨‚ ਆਪਣੇ ਕੰਪਿਊਟਰ 'ਚ ਲਾਗਇਨ ਕਰਨ ਲਈ ਵਰਤਿਆ ਸੀ, ਤà©à¨¹à¨¾à¨¡à©‡ ਲਾਗਇਨ ਕੀਰਿੰਗ ਨਾਲ ਨਹੀਂ "
"ਮਿਲਦਾ ਹੈ।"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
msgid ""
"The login keyring did not get unlocked when you logged into your computer."
msgstr ""
-"ਜਦੋਂ ਤà©à¨¸à©€à¨‚ ਕੰਪਿਊਟਰ ਉੱਤੇ ਲਾਗਇਨ ਕੀਤਾ ਤਾਂ ਤà©à¨¹à¨¾à¨¡à©€ ਲਾਗਇਨ ਕੀਰਿੰਗ ਆਟੋਮੈਟਿਕ ਅਣ-ਲਾਕ "
-"ਨਹੀਂ ਹੋਈ ਸੀ।"
+"ਜਦੋਂ ਤà©à¨¸à©€à¨‚ ਕੰਪਿਊਟਰ ਉੱਤੇ ਲਾਗਇਨ ਕੀਤਾ ਤਾਂ ਤà©à¨¹à¨¾à¨¡à©€ ਲਾਗਇਨ ਕੀਰਿੰਗ ਆਟੋਮੈਟਿਕ ਅਣ-ਲਾਕ ਨਹੀਂ ਹੋਈ ਸੀ।"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
msgid "Unlock Keyring"
@@ -938,16 +347,31 @@ msgstr "ਅਣ-ਲਾਕ ਸਰਟੀਫਿਕੇਟ"
msgid "Unlock public key"
msgstr "ਅਣ-ਲਾਕ ਪਬਲਿਕ ਕà©à©°à¨œà©€"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "ਅਣ-ਲਾਕ"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "ਪà©à¨°à¨¾à¨ˆà¨µà©‡à¨Ÿ ਕà©à©°à¨œà©€ ਦਾ ਤਾਲਾ ਖੋਲà©à¨¹à¨£ ਲਈ ਪਾਸਵਰਡ ਦਿਓ"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "ਸਰਟੀਫਿਕੇਟ ਤਾਲਾ ਖੋਲà©à¨¹à¨£ ਵਾਸਤੇ ਪਾਸਵਰਡ ਦਿਓ"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "ਸਰਵਜਨਕ ਕà©à©°à¨œà©€ ਦਾ ਤਾਲਾ ਖੋਲà©à¨¹à¨£ ਲਈ ਪਾਸਵਰਡ ਦਿਓ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "ਤਾਲਾ ਖੋਲà©à¨¹à¨£ ਵਾਸਤੇ ਪਾਸਵਰਡ ਦਿਓ"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
msgid "An application wants access to the private key '%s', but it is locked"
-msgstr ""
-"ਇੱਕ ਕਾਰਜ ਪà©à¨°à¨¾à¨ˆà¨µà©‡à¨Ÿ ਕà©à©°à¨œà©€ '%s' ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ, ਪਰ ਇਹ ਤਾਲਾਬੰਦ ਹੈ"
+msgstr "ਇੱਕ ਕਾਰਜ ਪà©à¨°à¨¾à¨ˆà¨µà©‡à¨Ÿ ਕà©à©°à¨œà©€ '%s' ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ, ਪਰ ਇਹ ਤਾਲਾਬੰਦ ਹੈ"
#. TRANSLATORS: The certificate is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
@@ -981,9 +405,7 @@ msgstr "ਸਰਟੀਫਿਕੇਟ/ਕà©à©°à¨œà©€ ਸਟੋਰੇਜ਼ ਦਾ
msgid ""
"An application wants access to the certificate/key storage '%s', but it is "
"locked"
-msgstr ""
-"ਇੱਕ ਕਾਰਜ ਸਰਟੀਫਿਕੇਟ/ਕà©à©°à¨œà©€ ਸਟੋਰੇਜ਼ '%s' ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ, ਪਰ ਇਹ ਤਾਲਾਬੰਦ "
-"ਹੈ"
+msgstr "ਇੱਕ ਕਾਰਜ ਸਰਟੀਫਿਕੇਟ/ਕà©à©°à¨œà©€ ਸਟੋਰੇਜ਼ '%s' ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ, ਪਰ ਇਹ ਤਾਲਾਬੰਦ ਹੈ"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
msgid "New Password Required"
@@ -998,8 +420,7 @@ msgstr "ਸà©à¨°à©±à¨–ਿਅਤ ਸਟੋਰੇਜ਼ ਲਈ ਨਵਾਂ ਪà¨
msgid ""
"In order to prepare '%s' for storage of certificates or keys, a password is "
"required"
-msgstr ""
-"ਸਰਟੀਫਿਕੇਟ ਜਾਂ ਕà©à©°à¨œà©€à¨†à¨‚ ਨੂੰ ਸੰਭਾਲਣ ਵਾਸਤੇ '%s' ਤਿਆਰ ਕਰਨ ਲਈ, ਇੱਕ ਪਾਸਵਰਡ ਲੋੜੀਦਾ ਹੈ"
+msgstr "ਸਰਟੀਫਿਕੇਟ ਜਾਂ ਕà©à©°à¨œà©€à¨†à¨‚ ਨੂੰ ਸੰਭਾਲਣ ਵਾਸਤੇ '%s' ਤਿਆਰ ਕਰਨ ਲਈ, ਇੱਕ ਪਾਸਵਰਡ ਲੋੜੀਦਾ ਹੈ"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
msgid "Change Password"
@@ -1029,29 +450,28 @@ msgstr "ਕਮਾਂਡਾਂ: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "ਕੀ ਪਾਸਵਰਡ ਅਣ-ਇੰਕà©à¨°à¨¿à¨ªà¨Ÿà¨¡ ਸੰਭਾਲਣਾ?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
"files."
msgstr ""
-"ਇੱਕ ਖਾਲੀ ਪਾਸਵਰਡ ਚà©à¨£à¨¨ ਨਾਲ, ਤà©à¨¹à¨¾à¨¡à©‡ ਸਟੋਰ ਕੀਤੇ ਪਾਸਵਰਡ ਸà©à¨°à©±à¨–ਿਅਤ ਢੰਗ ਨਾਲ ਇੰਕà©à¨°à¨¿à¨ªà¨Ÿ "
-"ਨਹੀਂ ਕੀਤੇ "
+"ਇੱਕ ਖਾਲੀ ਪਾਸਵਰਡ ਚà©à¨£à¨¨ ਨਾਲ, ਤà©à¨¹à¨¾à¨¡à©‡ ਸਟੋਰ ਕੀਤੇ ਪਾਸਵਰਡ ਸà©à¨°à©±à¨–ਿਅਤ ਢੰਗ ਨਾਲ ਇੰਕà©à¨°à¨¿à¨ªà¨Ÿ ਨਹੀਂ ਕੀਤੇ "
"ਜਾਣਗੇ। ਇਹ ਕਿਸੇ ਵੀ ਵਿਅਕਤੀ ਵਲੋਂ ਵਰਤੇ ਜਾ ਸਕਦੇ ਹਨ, ਜੋ ਇਹ ਫਾਇਲ ਤੱਕ ਅੱਪੜ ਸਕਦਾ ਹੈ।"
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "ਅਸà©à¨°à©±à¨–ਿਅਤ ਸਟੋਰੇਜ਼ ਵਰਤੋਂ"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "ਪਾਸਵਰਡ ਮਿਲਦਾ ਨਹੀਂ ਹੈ।"
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "ਪਾਸਵਰਡ ਖਾਲੀ ਨਹੀਂ ਹੋ ਸਕਦਾ ਹੈ।"
@@ -1090,632 +510,3 @@ msgstr "ਪà©à¨°à¨¾à¨£à¨¾ ਪਾਸਵਰਡ(_O):"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "ਪਾਸਵਰਡ(_P):"
-
-#~| msgid "Fingerprints"
-#~ msgid "Fingerprint"
-#~ msgstr "ਫਿੰਗਰ-ਪਰਿੰਟ"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "ਲੋੜੀਦੀ ਮੈਮੋਰੀ ਉਪਲੱਬਧ ਨਹੀਂ ਹੈ"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "ਦਿੱਤਾ ਸਲਾਟ ID ਢà©à©±à¨•à¨µà¨¾à¨‚ ਨਹੀਂ"
-
-#~ msgid "Internal error"
-#~ msgstr "ਅੰਦਰੂਨੀ ਗਲਤੀ"
-
-#~ msgid "The operation failed"
-#~ msgstr "ਕਾਰਵਾਈ ਫੇਲà©à¨¹ ਹੋਈ"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "ਅਢà©à©±à¨•à¨µà©‡à¨‚ ਆਰਗੂਮੈਂਟ"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "ਮੋਡੀਊਲ ਲੋੜੀਦੇ ਥਰਿੱਡ ਨਹੀਂ ਬਣਾ ਸਕਦਾ"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "ਮੋਡੀਊਲ ਡਾਟੇ ਨੂੰ ਠੀਕ ਤਰà©à¨¹à¨¾à¨‚ ਤਾਲਾਬੰਦ ਨਹੀਂ ਕਰ ਸਕਦਾ"
-
-#~ msgid "The field is read-only"
-#~ msgstr "ਖੇਤਰ ਕੇਵਲ ਪੜà©à¨¹à¨¨ ਲਈ ਹੈ"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "ਖੇਤਰ ਅੱਖਰ ਅਕਾਰ ਉੱਤੇ ਨਿਰਭਰ ਹੈ ਅਤੇ ਬਦਲਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "ਖੇਤਰ ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਹੈ ਜਾਂ ਮੌਜੂਦ ਨਹੀਂ"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "ਖੇਤਰ ਲਈ ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਮà©à©±à¨²"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "ਡਾਟਾ ਢà©à©±à¨•à¨µà¨¾à¨‚ ਨਹੀਂ ਜਾਂ ਬੇਪਛਾਣ ਹੈ"
-
-#~ msgid "The data is too long"
-#~ msgstr "ਡਾਟਾ ਬਹà©à¨¤ ਲੰਮਾ ਹੈ"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "ਜੰਤਰ ਉੱਤੇ ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ"
-
-#~ msgid "Insufficient memory available on device"
-#~ msgstr "ਜੰਤਰ ਉੱਤੇ ਲੋੜੀਦੀ ਮੈਮੋਰੀ ਉਪਲੱਬਧ ਨਹੀਂ"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "ਜੰਤਰ ਹਟਾਇਆ ਗਿਆ ਜਾਂ ਪਲੱਗ ਕੱਢਿਆ"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "ਇੰਕà©à¨°à¨¿à¨ªà¨Ÿ ਕੀਤਾ ਡਾਟਾ ਢà©à©±à¨•à¨µà¨¾à¨‚ ਨਹੀਂ ਜਾਂ ਬੇਪਛਾਣ ਹੈ"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "ਇੰਕà©à¨°à¨¿à¨ªà¨Ÿ ਕੀਤਾ ਡਾਟਾ ਬਹà©à¨¤ ਲੰਮਾ ਹੈ"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "ਇਹ ਕਾਰਵਾਈ ਸਹਾਇਕ ਨਹੀਂ"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "ਕà©à©°à¨œà©€ ਗà©à©°à¨® ਹੈ ਜਾਂ ਅਢà©à©±à¨•à¨µà©€à¨‚ ਹੈ"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "ਕà©à©°à¨œà©€ ਦਾ ਆਕਾਰ ਗਲਤ ਹੈ"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "ਕà©à©°à¨œà©€ ਗਲਤ ਕਿਸਮ ਦੀ ਹੈ"
-
-#~ msgid "No key is needed"
-#~ msgstr "ਕੋਈ ਕà©à©°à¨œà©€ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ"
-
-#~ msgid "The key is different from before"
-#~ msgstr "ਕà©à©°à¨œà©€ ਪਹਿਲਾਂ ਤੋਂ ਵੱਖਰੀ ਹੈ"
-
-#~ msgid "A key is needed"
-#~ msgstr "ਕà©à©°à¨œà©€ ਚਾਹੀਦੀ ਹੈ"
-
-#~ msgid "Cannot include the key in digest"
-#~ msgstr "ਕà©à©°à¨œà©€ ਨੂੰ ਡਿਜਿਟ ਵਿੱਚ ਸ਼ਾਮਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "ਇਹ ਓਪਰੇਸ਼ਨ ਇਸ ਕà©à©°à¨œà©€ ਨਾਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "ਇਹ ਕà©à©°à¨œà©€ ਸਮੇਟੀ ਨਹੀਂ ਜਾ ਸਕਦੀ"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "ਇਹ ਕà©à©°à¨œà©€ à¨à¨•à¨¸à¨ªà©‹à¨°à¨Ÿ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "ਕà©à¨°à¨¿à¨ªà¨Ÿà©‚ ਢੰਗ ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਜਾਂ ਅਣਜਾਣ "
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "ਕà©à¨°à¨¿à¨ªà¨Ÿà©‚ ਢੰਗ ਲਈ ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਆਰਗੂਮੈਂਟ ਹੈ"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "ਆਬਜੈਕਟ ਗà©à©°à¨® ਹੈ ਜਾਂ ਢà©à©±à¨•à¨µà¨¾à¨‚ ਨਹੀਂ ਹੈ"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "ਇੱਕ ਕਾਰਵਾਈ ਪਹਿਲਾਂ ਹੀ ਜਾਰੀ ਹੈ"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "ਕੋਈ ਕਾਰਵਾਈ ਨਹੀਂ ਹੋ ਰਹੀ ਹੈ"
-
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "ਪਾਸਵਰਡ ਜਾਂ ਪਿੰਨ ਗਲਤ ਹੈ"
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "ਪਾਸਵਰਡ ਜਾਂ ਪਿੰਨ ਢà©à©±à¨•à¨µà¨¾à¨‚ ਨਹੀਂ ਹੈ"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "ਪਾਸਵਰਡ ਜਾਂ ਪਿੰਨ ਦੀ ਲੰਬਾਈ ਗਲਤ ਹੈ"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "ਪਾਸਵਰਡ ਜਾਂ ਪਿੰਨ ਦੀ ਮਿਆਦ ਪà©à©±à¨—à©€"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "ਪਾਸਵਰਡ ਜਾਂ ਪਿੰਨ ਤਾਲਾਬੰਦ ਹੈ"
-
-#~ msgid "The session is closed"
-#~ msgstr "ਸ਼ੈਸ਼ਨ ਲਾਕ ਹੈ"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "ਬਹà©à¨¤ ਸਾਰੇ ਸ਼ੈਸ਼ਨ à¨à¨•à¨Ÿà¨¿à¨µ ਹਨ"
-
-#~ msgid "The session is invalid"
-#~ msgstr "ਸ਼ੈਸ਼ਨ ਗਲਤ ਹੈ"
-
-#~ msgid "The session is read-only"
-#~ msgstr "ਸ਼ੈਸ਼ਨ ਕੇਵਲ ਪੜà©à¨¹à¨¨ ਲਈ ਹੈ"
-
-#~ msgid "An open session exists"
-#~ msgstr "ਇੱਕ ਖà©à©±à¨²à©à¨¹à¨¾ ਸ਼ੈਸ਼ਨ ਮੌਜੂਦ ਹੈ"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "ਇੱਕ ਪੜà©à¨¹à¨¨-ਲਈ ਸ਼ੈਸ਼ਨ ਮੌਜੂਦ ਹੈ"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "ਇੱਕ ਪਰਸ਼ਾਸ਼ਕੀ ਸ਼ੈਸ਼ਨ ਮੌਜੂਦ ਹੈ"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "ਦਸਤਖਤ ਖਰਾਬ ਜਾਂ ਨਿਕਾਰਾ ਹਨ"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "ਦਸਤਖਤ ਬੇਪਛਾਣ ਜਾਂ ਨਿਕਾਰਾ ਹਨ"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "ਕà©à¨ ਲੋੜੀਦੇ ਖੇਤਰ ਮੌਜੂਦ ਨਹੀਂ ਹਨ"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "ਕà©à¨ ਖੇਤਰਾਂ ਲਈ ਅਧੂਰੇ ਮà©à©±à¨² ਹਨ"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "ਜੰਤਰ ਮੌਜੂਦ ਨਹੀਂ ਹੈ ਜਾਂ ਪਲੱਗ ਕੱਢਿਆ ਗਿਆ"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "ਜੰਤਰ ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਹੈ ਜਾਂ ਬੇਪਛਾਣ ਹੈ"
-
-#~ msgid "The device is write protected"
-#~ msgstr "ਜੰਤਰ ਲਿਖਣ ਸà©à¨°à©±à¨–ਿਅਤ ਹੈ"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "ਆਯਾਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ, ਕਿਉਂਕਿ ਕà©à©°à¨œà©€ ਗਲਤ ਹੈ"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "ਲਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ, ਕਿਉਂਕਿ ਕà©à©°à¨œà©€ ਦਾ ਅਕਾਰ ਗਲਤ ਹੈ"
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "ਲਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ, ਕਿਉਂਕਿ ਕà©à©°à¨œà©€ ਦੀ ਕਿਸਮ ਗਲਤ ਹੈ"
-
-#~ msgid "You are already logged in"
-#~ msgstr "ਤà©à¨¸à©€à¨‚ ਪਹਿਲਾਂ ਹੀ ਲਾਗਇਨ ਹੋ"
-
-#~ msgid "No user has logged in"
-#~ msgstr "ਕੋਈ ਯੂਜ਼ਰ ਲਾਗਇਨ ਨਹੀਂ ਹੈ"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "ਯੂਜ਼ਰ ਦਾ ਪਾਸਵਰਡ ਜਾਂ ਪਿੰਨ ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "ਯੂਜ਼ਰ ਦੀ ਕਿਸਮ ਅਢà©à©±à¨•à¨µà©€à¨‚ ਹੈ"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "ਹੋਰ ਯੂਜ਼ਰ ਪਹਿਲਾਂ ਹੀ ਲਾਗਇਨ ਹੈ"
-
-#~ msgid "Too many users of different types logged in"
-#~ msgstr "ਬਹà©à¨¤ ਸਾਰੇ ਵੱਖ ਵੱਖ ਕਿਸਮ ਦੇ ਯੂਜ਼ਰ ਲਾਗਇਨ ਹਨ"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "ਇੱਕ ਗਲਤ ਕà©à©°à¨œà©€ ਆਯਾਤ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "ਗਲਤ ਅਕਾਰ ਦੀ ਕà©à©°à¨œà©€ ਲਈ ਨਹੀਂ ਜਾ ਸਕਦੀ ਹੈ"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "ਕà©à©°à¨œà©€ ਅਢà©à©±à¨•à¨µà©€à¨‚ ਹੋਣ ਕਰਕੇ ਭੇਜੀ ਨਹੀਂ ਜਾ ਸਕਦੀ"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "ਕà©à©°à¨œà©€ ਦੇ ਗਲਤ ਅਕਾਰ ਕਰਕੇ ਭੇਜੀ ਨਹੀਂ ਜਾ ਸਕਦੀ"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "ਕà©à©°à¨œà©€ ਦੀ ਗਲਤ ਕਿਸਮ ਕਰਕੇ ਭੇਜੀ ਨਹੀਂ ਜਾ ਸਕਦੀ"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "ਰਲਵੇਂ ਅੰਕ ਤਿਆਰ ਕਰਨ ਵਾਲਾ ਜਰਨੇਟਰ ਸ਼à©à¨°à©‚ ਕਰਨ ਲਈ ਅਸਮਰੱਥ"
-
-#~ msgid "No random number generator available"
-#~ msgstr "ਰਲਵਾਂ ਨੰਬਰ ਤਿਆਰ ਕਰਤਾ ਉਪਲੱਬਧ ਨਹੀਂ"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "ਕà©à¨°à¨¿à¨ªà¨Ÿà©‚ ਢੰਗ ਲਈ ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਪੈਰਾਮੀਟਰ"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "ਨਤੀਜੇ ਸੰਭਾਲਣ ਲਈ ਲੋੜੀਦੀ ਥਾਂ ਨਹੀਂ ਹੈ"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "ਸੰਭਾਲੀ ਹਾਲਤ ਅਵੈਧ ਹੈ"
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "ਜਾਣਕਾਰੀ ਸ਼ੰਵੇਦਨਸ਼ੀਲ ਹੈ ਅਤੇ ਖੋਲà©à¨¹à©€ ਨਹੀਂ ਜਾ ਸਕਦੀ"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "ਹਾਲਤ ਸੰਭਾਲੀ ਨਹੀਂ ਜਾ ਸਕਦੀ"
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "ਮੋਡੀਊਲ ਸ਼à©à¨°à©‚ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "ਮੋਡੀਊਲ ਪਹਿਲਾਂ ਹੀ ਚਾਲੂ ਹੈ"
-
-#~ msgid "Cannot lock data"
-#~ msgstr "ਡਾਟਾ ਲਾਕ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "ਡਾਟਾ ਲਾਕ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "ਯੂਜ਼ਰ ਵਲੋਂ ਦਸਤਖਤਾਂ ਦੀ ਮੰਗ ਰੱਦ ਕਰ ਦਿੱਤੀ ਗਈ ਸੀ"
-
-#~ msgid "Unknown error"
-#~ msgstr "ਅਣਜਾਣ ਗਲਤੀ"
-
-#~| msgid "Insufficient memory available on device"
-#~ msgid "Insufficient memory available on the device"
-#~ msgstr "ਜੰਤਰ ਉੱਤੇ ਲੋੜੀਦੀ ਮੈਮੋਰੀ ਉਪਲੱਬਧ ਨਹੀਂ"
-
-#~| msgid "The key is different from before"
-#~ msgid "The key is different than before"
-#~ msgstr "ਕà©à©°à¨œà©€ ਪਹਿਲਾਂ ਤੋਂ ਵੱਖਰੀ ਹੈ"
-
-#~| msgid "Cannot include the key in digest"
-#~ msgid "Cannot include the key in the digest"
-#~ msgstr "ਕà©à©°à¨œà©€ ਨੂੰ ਡਿਜਿਟ ਵਿੱਚ ਸ਼ਾਮਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
-
-#~| msgid "Too many users of different types logged in"
-#~ msgid "Too many users of different types are logged in"
-#~ msgstr "ਬਹà©à¨¤ ਸਾਰੇ ਵੱਖ ਵੱਖ ਕਿਸਮ ਦੇ ਯੂਜ਼ਰ ਲਾਗਇਨ ਹਨ"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>ਸਰਟੀਫਿਕੇਟ ਦਾ ਭਾਗ ਨਹੀਂ</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>ਅਣਜਾਣ</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<ਸਰਟੀਫਿਕੇਟ ਦਾ ਭਾਗ ਨਹੀਂ>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>ਫਿੰਗਰਪਰਿੰਟ</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>ਜਾਰੀ ਕਰਤਾ</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>ਇਸ ਨੂੰ ਜਾਰੀ ਕੀਤਾ</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>ਇਹ ਸਰਟੀਫਿਕੇਟ ਹੇਠ ਦਿੱਤੀ ਵਰਤੋਂ ਲਈ ਜਾਂਚਿਆ ਗਿਆ ਹੈ:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>ਵੈਧਤਾ</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "ਆਮ ਨਾਂ (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "ਈਮੇਲ ਪà©à¨°à¨¾à¨ªà¨¤à©€ ਸਰਟੀਫਿਕੇਟ"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "ਈਮੇਲ ਦਸਤਖਤੀ ਸਰਟੀਫਿਕੇਟ"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "MD5 ਫਿੰਗਰਪਰਿੰਟ"
-
-#~ msgid "Organization (O)"
-#~ msgstr "ਸੰਗਠਨ (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "ਸੰਗਠਨ ਇਕਾਈ (OU)"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr "<span size='large' weight='bold'>ਸਰਟੀਫਿਕੇਟ ਅਤੇ ਕà©à©°à¨œà©€à¨†à¨‚ ਲਵੋ</span>"
-
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "ਇਹ ਚੋਣ ਚਾਲੂ ਕਰਨ ਨਾਲ PKCS#11 à¨à¨œà©°à¨Ÿ ਗਨੋਮ-ਕੀਰਿੰਗ ਡੈਮਨ ਵਿੱਚ ਚੱਲੇਗਾ। ਇਹ ਤਾਂ ਹੀ ਚਾਲੂ ਹੋਵੇਗਾ "
-#~ "ਜਦੋਂ ਗਨੋਮ-ਕੀਰਿੰਗ-ਡੈਮਨ ਸ਼à©à¨°à©‚ ਹੋਵੇਗੀ (ਜਿਵੇਂ ਯੂਜ਼ਰ ਲਾਗਇਨ ਕਰੇਗਾ)। ਇਹ ਸੈਟਿੰਗ ਨੂੰ ਡੈਮਨ ਨੂੰ ਕà©à¨ ਕਮਾਂਡ "
-#~ "ਲਾਈਨ ਆਰਗੂਮੈਂਟ ਦੇਣ ਦੌਰਾਨ ਅਣਡਿੱਠਾ ਕੀਤਾ ਜਾ ਸਕੇਗਾ ਹੈ।"
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "ਇਹ ਚੋਣ ਚਾਲੂ ਕਰਨ ਨਾਲ SSH à¨à¨œà©°à¨Ÿ ਗਨੋਮ-ਕੀਰਿੰਗ ਡੈਮਨ ਵਿੱਚ ਚੱਲੇਗਾ। ਇਹ ਤਾਂ ਹੀ ਚਾਲੂ ਹੋਵੇਗਾ ਜਦੋਂ "
-#~ "ਗਨੋਮ-ਕੀਰਿੰਗ-ਡੈਮਨ ਸ਼à©à¨°à©‚ ਹੋਵੇਗੀ (ਜਿਵੇਂ ਯੂਜ਼ਰ ਲਾਗਇਨ ਕਰੇਗਾ)। ਇਹ ਸੈਟਿੰਗ ਨੂੰ ਡੈਮਨ ਨੂੰ ਕà©à¨ ਕਮਾਂਡ ਲਾਈਨ "
-#~ "ਆਰਗੂਮੈਂਟ ਦੇਣ ਦੌਰਾਨ ਅਣਡਿੱਠਾ ਕੀਤਾ ਜਾ ਸਕਗਾ ਹੈ।"
-
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "ਇਹ ਚੋਣ ਚਾਲੂ ਕਰਨ ਨਾਲ ਗਨੋਮ-ਕੀਰਿੰਗ ਡੈਮਨ ਵਿੱਚ ਗà©à¨ªà¨¤ ਸਰਵਿਸ ਭਾਗ ਚੱਲੇਗਾ। ਇਹ ਗਨੋਮ-ਸ਼ੈਸ਼ਨ ਚਾਲੂ ਹੋਣ "
-#~ "ਦੇ ਨਾਲ ਹੀ ਪà©à¨°à¨­à¨¾à¨µà©€ ਹੋਵੇਗੀ (ਜਿਵੇਂ ਯੂਜ਼ਰ ਲਾਗਇਨ ਕਰੇਗਾ)। ਇਹ ਸੈਟਿੰਗ ਨੂੰ ਡੈਮਨ ਨੂੰ ਕà©à¨ ਕਮਾਂਡ ਲਾਈਨ "
-#~ "ਆਰਗੂਮੈਂਟ ਦੇਣ ਦੌਰਾਨ ਅਣਡਿੱਠਾ ਕੀਤਾ ਜਾ ਸਕਗਾ ਹੈ।"
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "ਕੀ ਗਨੋਮ-ਕੀਰਿੰਗ PKCS#11 ਭਾਗ ਚਾਲੂ ਕਰਨਾ ਹੈ।"
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "ਕੀ ਗਨੋਮ-ਕੀਰਿੰਗ SSH à¨à¨œà©°à¨Ÿ ਯੋਗ ਕਰਨਾ ਹੈ।"
-
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr "ਕੀ ਗਨੋਮ-ਕੀਰਿੰਗ ਗà©à¨ªà¨¤ ਸਰਵਿਸ ਯੋਗ ਕਰਨੀ ਹੈ।"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "ਕਾਰਜ '%s' (%s) ਮੂਲ ਕੀਰਿੰਗ ਵਿੱਚ '<object prop='name'/> ਲਈ ਪਾਸਵਰਡ ਵਰਤਣਾ ਚਾਹà©à©°à¨¦à¨¾à¨¹à©ˆà¥¤"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "ਕਾਰਜ '%s' (%s) %s ਵਿੱਚ ' ਲਈ <object prop='nam'e'/>ਪਾਸਵਰਡ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹà©à©°à¨¦à¨¾ "
-#~ "ਹੈ।"
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "ਕਾਰਜ '%s' ਮੂਲ ਕੀਰਿੰਗ ਵਿੱਚੋਂ '<object prop='name'/>' ਲਈ ਪਾਸਵਰਡ ਦੀ ਵਰਤੋਂ ਕਰਨੀ "
-#~ "ਚਾਹà©à©°à¨¦à¨¾ ਹੈ।"
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "ਕਾਰਜ '%s' %s ਵਿੱਚੋਂ '' <object prop='name'/>ਲਈ ਪਾਸਵਰਡ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ।"
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "ਇੱਕ ਅਣਜਾਣ ਕਾਰਜ ਮੂਲ ਕੀਰਿੰਗ ਵਿੱਚੋਂ '<object prop='name'/>' ਲਈ ਪਾਸਵਰਡ ਦੀ ਵਰਤੋਂ ਕਰਨੀ "
-#~ "ਚਾਹà©à©°à¨¦à¨¾ ਹੈ।"
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "ਇੱਕ ਅਣਜਾਣ ਕਾਰਜ %s ਵਿੱਚ '' <object prop='name'/>ਲਈ ਪਾਸਵਰਡ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹà©à©°à¨¦à¨¾ "
-#~ "ਹੈ।"
-
-#~ msgid "Allow access"
-#~ msgstr "ਪਹà©à©°à¨š ਮਨਜ਼ੂਰ"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr "ਕਾਰਜ '%s' (%s) ਮੂਲ ਕੀਰਿੰਗ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ, ਪਰ ਇਹ ਤਾਲਾਬੰਦ ਹੈ।"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-#~ msgstr "ਕਾਰਜ '%s' (%s) ਕੀਰਿੰਗ '%s'ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ, ਪਰ ਇਹ ਤਾਲਾਬੰਦ ਹੈ।"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-#~ msgstr "ਕਾਰਜ '%s' ਮੂਲ ਕੀਰਿੰਗ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ, ਪਰ ਇਹ ਤਾਲਾਬੰਦ ਹੈ।"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-#~ msgstr "ਕਾਰਜ '%s' ਕੀਰਿੰਗ '%s'ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ, ਪਰ ਇਹ ਤਾਲਾਬੰਦ ਹੈ।"
-
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr "ਮੂਲ ਕੀਰਿੰਗ ਨੂੰ ਅਣਜਾਣ ਕਾਰਜ ਵਰਤਣ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ, ਪਰ ਇਹ ਤਾਲਾਬੰਦ ਹੈ"
-
-#~ msgid "Enter password for default keyring to unlock"
-#~ msgstr "ਮੂਲ ਕੀਰਿੰਗ ਦਾ ਤਾਲਾ ਖੋਲਣ ਲਈ ਪਾਸਵਰਡ ਦਿਓ"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "ਕਾਰਜ '%s' (%s) ਇੱਕ ਨਵੀਂ ਕੀਰਿੰਗ, ਜਿਸ ਨੂੰ '%s' ਕਿਹਾ ਹੈ, ਬਣਾਉਣੀ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ। ਤà©à¨¸à©€à¨‚ ਇਸ ਦੀ "
-#~ "ਵਰਤੋਂ ਸਮੇਂ ਇਸਤੇਮਾਲ ਹੋਣ ਵਾਲੇ ਪਾਸਵਰਡ ਦੀ ਚੋਣ ਕਰਨੀ ਹੈ।"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "ਕਾਰਜ '%s' (%s) ਇੱਕ ਨਵੀਂ ਮੂਲ ਕੀਰਿੰਗ ਬਣਾਉਣੀ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ। ਤà©à¨¸à©€à¨‚ ਇਸ ਦੀ ਵਰਤੋਂ ਸਮੇਂ ਇਸਤੇਮਾਲ ਹੋਣ "
-#~ "ਵਾਲੇ ਪਾਸਵਰਡ ਦੀ ਚੋਣ ਕਰਨੀ ਹੈ।"
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "ਕਾਰਜ '%s' ਇੱਕ ਨਵੀਂ ਕੀਰਿੰਗ, ਜਿਸ ਨੂੰ '%s' ਕਿਹਾ ਹੈ, ਬਣਾਉਣੀ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ। ਤà©à¨¸à©€à¨‚ ਇਸ ਦੀ ਵਰਤੋਂ "
-#~ "ਸਮੇਂ ਇਸਤੇਮਾਲ ਹੋਣ ਵਾਲੇ ਪਾਸਵਰਡ ਦੀ ਚੋਣ ਕਰਨੀ ਹੈ।"
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "ਕਾਰਜ '%s' ਇੱਕ ਨਵੀਂ ਮੂਲ ਕੀਰਿੰਗ ਬਣਾਉਣੀ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ। ਤà©à¨¸à©€à¨‚ ਇਸ ਦੀ ਵਰਤੋਂ ਸਮੇਂ ਇਸਤੇਮਾਲ ਹੋਣ ਵਾਲੇ "
-#~ "ਗà©à¨ªà¨¤-ਕੋਡ ਦੀ ਚੋਣ ਕਰਨੀ ਹੈ।"
-
-#~ msgid ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "ਇੱਕ ਅਣਜਾਣ ਕਾਰਜ ਇੱਕ ਨਵੀਂ ਮੂਲ ਕੀਰਿੰਗ ਬਣਾਉਣੀ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ। ਤà©à¨¸à©€à¨‚ ਇਸ ਦੀ ਵਰਤੋਂ ਸਮੇਂ ਇਸਤੇਮਾਲ ਹੋਣ "
-#~ "ਵਾਲੇ ਪਾਸਵਰਡ ਦੀ ਚੋਣ ਕਰਨੀ ਹੈ।"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "ਕਾਰਜ '%s' (%s) ਕੀਰਿੰਗ '%s' ਲਈ ਪਾਸਵਰਡ ਬਦਲਣਾ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ। ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇਸ ਲਈ ਵਰਤਣ ਵਾਸਤੇ "
-#~ "ਗà©à¨ªà¨¤-ਕੋਡ ਦੀ ਚੋਣ ਕਰਨੀ ਪਵੇਗੀ।"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "ਕਾਰਜ '%s' (%s) ਮੂਲ ਕੀਰਿੰਗ ਲਈ ਪਾਸਵਰਡ ਬਦਲਣਾ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ। ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇਸ ਲਈ ਵਰਤਣ ਵਾਸਤੇ "
-#~ "ਪਾਸਵਰਡ ਦੀ ਚੋਣ ਕਰਨੀ ਪਵੇਗੀ।"
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "ਕਾਰਜ '%s' ਕੀਰਿੰਗ '%s' ਲਈ ਪਾਸਵਰਡ ਬਦਲਣਾ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ। ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇਸ ਲਈ ਵਰਤਣ ਵਾਸਤੇ ਪਾਸਵਰਡ "
-#~ "ਦੀ ਚੋਣ ਕਰਨੀ ਪਵੇਗੀ।"
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "ਕਾਰਜ '%s' ਮੂਲ ਕੀਰਿੰਗ ਲਈ ਪਾਸਵਰਡ ਬਦਲਣਾ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ। ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇਸ ਲਈ ਵਰਤਣ ਵਾਸਤੇ ਪਾਸਵਰਡ "
-#~ "ਦੀ ਚੋਣ ਕਰਨੀ ਪਵੇਗੀ"
-
-#~ msgid ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "ਇੱਕ ਅਣਜਾਣ ਕਾਰਜ ਮੂਲ ਕੀਰਿੰਗ ਲਈ ਪਾਸਵਰਡ ਬਦਲਣਾ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ। ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇਸ ਲਈ ਵਰਤਣ ਵਾਸਤੇ "
-#~ "ਪਾਸਵਰਡ ਦੀ ਚੋਣ ਕਰਨੀ ਪਵੇਗੀ"
-
-#~| msgid "Choose a new password for the default keyring. "
-#~ msgid "Choose a new password for the default keyring."
-#~ msgstr "ਡਿਫਾਲਟ ਕੀਰਿੰਗ ਲਈ ਇੱਕ ਨਵਾਂ ਪਾਸਵਰਡ ਚà©à¨£à©‹à¥¤"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-#~ msgstr ""
-#~ "ਕਾਰਜ '%s' (%s) ਇੱਕ ਪਾਸਵਰਡ ਸੰਭਾਲਣਾ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ, ਕੋਈ ਮੂਲ ਕੀਰਿੰਗ ਨਹੀਂ ਹੈ। ਇੱਕ ਨਵਾਂ ਬਣਾਉਣ "
-#~ "ਲਈ ਤà©à¨¹à¨¾à¨¨à©‚à©° ਉਸ ਦੀ ਵਰਤੋਂ ਸਮੇਂ ਇਸਤੇਮਾਲ ਹੋਣ ਵਾਲੇ ਪਾਸਵਰਡ ਦੀ ਚੋਣ ਕਰਨੀ ਪਵੇਗੀ।"
-
-#~ msgid ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "à¨à¨ªà¨²à©€à¨•à©‡à¨¸à¨¼à¨¨ '%s' ਇੱਕ ਪਾਸਵਰਡ ਸੰਭਾਲਣਾ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ, ਕੋਈ ਮੂਲ ਕੀਰਿੰਗ ਨਹੀਂ ਹੈ। ਇੱਕ ਨਵਾਂ ਬਣਾਉਣ ਲਈ "
-#~ "ਤà©à¨¹à¨¾à¨¨à©‚à©° ਉਸ ਦੀ ਵਰਤੋਂ ਸਮੇਂ ਇਸਤੇਮਾਲ ਹੋਣ ਵਾਲੇ ਪਾਸਵਰਡ ਦੀ ਚੋਣ ਕਰਨੀ ਪਵੇਗੀ।"
-
-#~ msgid ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "ਇੱਕ ਅਣਜਾਣ ਕਾਰਜ ਇੱਕ ਪਾਸਵਰਡ ਸੰਭਾਲਣਾ ਚਾਹà©à©°à¨¦à¨¾ ਹੈ, ਕੋਈ ਮੂਲ ਕੀਰਿੰਗ ਨਹੀਂ ਹੈ। ਇੱਕ ਨਵਾਂ ਬਣਾਉਣ "
-#~ "ਲਈ ਤà©à¨¹à¨¾à¨¨à©‚à©° ਉਸ ਦੀ ਵਰਤੋਂ ਸਮੇਂ ਇਸਤੇਮਾਲ ਹੋਣ ਵਾਲੇ ਪਾਸਵਰਡ ਦੀ ਚੋਣ ਕਰਨੀ ਪਵੇਗੀ।"
-
-#~ msgid "Create Default Keyring"
-#~ msgstr "ਡਿਫਾਲਟ ਕੀਰਿੰਗ ਬਣਾਓ"
-
-#~ msgid "Choose password for default keyring"
-#~ msgstr "ਡਿਫਾਲਟ ਕੀਰਿੰਗ ਲਈ ਪਾਸਵਰਡ ਚà©à¨£à©‹"
-
-#~ msgid "Create Login Keyring"
-#~ msgstr "ਲਾਗਇਨ ਕੀਰਿੰਗ ਬਣਾਓ"
-
-#~ msgid "Enter your login password"
-#~ msgstr "ਆਪਣਾ ਲਾਗਇਨ ਪਾਸਵਰਡ ਦਿਓ"
-
-#~ msgid ""
-#~ "Your login keyring was not automatically created when you logged into "
-#~ "this computer. It will now be created."
-#~ msgstr ""
-#~ "ਜਦੋਂ ਤà©à¨¸à©€à¨‚ ਕੰਪਿਊਟਰ ਉੱਤੇ ਲਾਗਇਨ ਕੀਤਾ ਤਾਂ ਤà©à¨¹à¨¾à¨¡à©€ ਲਾਗਇਨ ਕੀਰਿੰਗ ਆਟੋਮੈਟਿਕ ਨਹੀਂ ਬਣਾਈ ਗਈ ਸੀ। "
-#~ "ਇਸ ਨੂੰ ਹà©à¨£ ਬਣਾਇਆ ਜਾਵੇਗਾ।"
-
-#~ msgid "Automatically unlock this private key when I log in."
-#~ msgstr "ਜਦ ਮੈਂ ਲਾਗਇਨ ਕਰਾਂ ਤਾਂ ਇਹ ਪà©à¨°à¨¾à¨ˆà¨µà©‡à¨Ÿ ਕà©à©°à¨œà©€ ਆਟੋਮੈਟਿਕ ਅਣ-ਲਾਕ ਕਰੋ।"
-
-#~ msgid "Automatically unlock this certificate when I log in."
-#~ msgstr "ਜਦ ਮੈਂ ਲਾਗਇਨ ਕਰਾਂ ਤਾਂ ਇਹ ਸਰਟੀਫਿਕੇਟ ਆਟੋਮੈਟਿਕ ਅਣ-ਲਾਕ ਕਰੋ।"
-
-#~ msgid "Automatically unlock this public key when I log in."
-#~ msgstr "ਜਦ ਮੈਂ ਲਾਗਇਨ ਕਰਾਂ ਤਾਂ ਇਹ ਸਵਰਜਨਕ ਕà©à©°à¨œà©€ ਆਟੋਮੈਟਿਕ ਅਣ-ਲਾਕ ਕਰੋ।"
-
-#~ msgid "Automatically unlock this when I log in"
-#~ msgstr "ਜਦ ਮੈਂ ਲਾਗਇਨ ਕਰਾਂ ਤਾਂ ਆਟੋਮੈਟਿਕ ਅਣ-ਲਾਕ ਕਰੋ।"
-
-#~ msgid "Automatically unlock secure storage when I log in."
-#~ msgstr "ਜਦੋਂ ਮੈਂ ਲਾਗਇਨ ਕਰਾਂ ਤਾਂ ਆਟੋਮੈਟਿਕ ਹੀ ਸà©à¨°à©±à¨–ਿਅਤ ਸਟੋਰੇਜ਼ ਤਾਲਾ ਖੋਲà©à¨¹à©‹à¥¤"
-
-#~ msgid ""
-#~ "<b><big>Could not grab your mouse.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>ਤà©à¨¹à¨¾à¨¡à¨¾ ਮਾਊਂਸ ਫੜਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ।</big></b>\n"
-#~ "\n"
-#~ "ਇੱਕ ਖਰਾਬ ਕਲਾਇਟ ਨੇ ਤà©à¨¹à¨¾à¨¡à©‡ ਸ਼ੈਸ਼ਨ ਵਿੱਚ ਦਖਲ ਦਿੱਤਾ ਹੈ ਜਾਂ ਤà©à¨¸à©€à¨‚ ਇੱਕ ਮੇਨੂ ਜਾਂ ਹੋਰ à¨à¨ªà¨²à©€à¨•à©‡à¨¸à¨¼à¨¨ ਨੂੰ ਫੋਕਸ "
-#~ "ਦੇਣ ਲਈ ਕਲਿੱਕ ਕਰ ਦਿੱਤਾ ਹੈ।\n"
-#~ "\n"
-#~ "ਫੇਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
-
-#~ msgid ""
-#~ "<b><big>Could not grab your keyboard.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>ਤà©à¨¹à¨¾à¨¡à¨¾ ਕੀਬੋਰਡ ਫੜਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ।</big></b>\n"
-#~ "\n"
-#~ "ਇੱਕ ਖਰਾਬ ਕਲਾਇਟ ਨੇ ਤà©à¨¹à¨¾à¨¡à©‡ ਸ਼ੈਸ਼ਨ ਵਿੱਚ ਦਖਲ ਦਿੱਤਾ ਹੈ ਜਾਂ ਤà©à¨¸à©€à¨‚ ਇੱਕ ਮੇਨੂ ਜਾਂ ਹੋਰ à¨à¨ªà¨²à©€à¨•à©‡à¨¸à¨¼à¨¨ ਨੂੰ ਫੋਕਸ "
-#~ "ਦੇਣ ਲਈ ਕਲਿੱਕ ਕਰ ਦਿੱਤਾ ਹੈ।\n"
-#~ "\n"
-#~ "ਫੇਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
-
-#~ msgid "_Deny"
-#~ msgstr "ਪਾਬੰਦੀ(_D)"
-
-#~ msgid "C_reate"
-#~ msgstr "ਬਣਾਓ(_r)"
-
-#~ msgid "C_hange"
-#~ msgstr "ਬਦਲੋ(_h)"
-
-#~ msgid "Allow _Once"
-#~ msgstr "ਇੱਕ ਵਾਰ ਪਹà©à©°à¨š(_O)"
-
-#~ msgid "_Always Allow"
-#~ msgstr "ਹਮੇਸ਼ਾ ਪਹà©à©°à¨š(_A)"
-
-#~ msgid "Removable Disk: %s"
-#~ msgstr "ਹਟਾਉਣਯੋਗ ਡਿਸਕ: %s"
-
-#~ msgid "Removable Disk"
-#~ msgstr "ਹਟਾਉਣਯੋਗ ਡਿਸਕ"
-
-#~ msgid "Home"
-#~ msgstr "ਘਰ"
-
-#~ msgid "The disk or drive this file is located on is not present"
-#~ msgstr "ਡਿਸਕ ਜਾਂ ਡਰਾਇਵ, ਜਿਸ ਉੱਤੇ ਇਹ ਫਾਇਲ ਸੀ, ਮੌਜੂਦ ਨਹੀਂ ਹੈ"
-
-#~ msgid "Couldn't create directory: %s"
-#~ msgstr "ਡਾਇਰੈਕਟਰੀ ਬਣਾਈ ਨਹੀਂ ਜਾ ਸਕੀ: %s"
-
-#~ msgid "Access Denied"
-#~ msgstr "ਅਸੈੱਸ ਪਾਬੰਦੀ"
-
-#~ msgid "The gnome-keyring-daemon application is not running."
-#~ msgstr "ਗਨੋਮ-ਕੀਰਿੰਗ-ਡੈਮਨ ਕਾਰਜ ਚੱਲਦਾ ਨਹੀਂ ਹੈ।"
-
-#~ msgid "Error communicating with gnome-keyring-daemon"
-#~ msgstr "ਗਨੋਮ-ਕੀਰਿੰਗ-ਡੈਮਨ ਨਾਲ ਸੰਚਾਰ ਗਲਤੀ"
-
-#~ msgid "A keyring with that name already exists"
-#~ msgstr "ਉਸ ਨਾਂ ਨਾਲ ਕੀਰਿੰਗ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ"
-
-#~ msgid "Programmer error: The application sent invalid data."
-#~ msgstr "ਪਰੋਗਰਾਮਰ ਗਲਤੀ: ਕਾਰਜ ਨੇ ਅਢà©à©±à¨•à¨µà¨¾à¨‚ ਡਾਟਾ ਭੇਜਿਆ।"
-
-#~ msgid "No matching results"
-#~ msgstr "ਕੋਈ ਮਿਲਦਾ ਨਤੀਜਾ ਨਹੀਂ"
-
-#~ msgid "A keyring with that name does not exist."
-#~ msgstr "ਉਸ ਨਾਂ ਨਾਲ ਇੱਕ ਕੀਰਿੰਗ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ।"
-
-#~ msgid "The keyring has already been unlocked."
-#~ msgstr "ਕੀਰਿੰਗ ਪਹਿਲਾਂ ਹੀ ਅਣ-ਲਾਕ ਹੈ।"
diff --git a/po/pl.po b/po/pl.po
index 64f7e8fd..23bf0288 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-10 11:54+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-10 11:55+0200\n"
"Last-Translator: Piotr DrÄ…g <piotrdrag@gmail.com>\n"
"Language-Team: Polish <gnomepl@aviary.pl>\n"
@@ -24,7 +24,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Bez nazwy"
@@ -100,35 +100,34 @@ msgstr "Baza kluczy dla środowiska GNOME: agent GPG"
msgid "GPG Password Agent"
msgstr "Agent hasła GPG"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Nieznany"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "Klucz PGP: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Proszę wprowadzić hasło"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Zapomnienie tego hasła w razie bezczynności przez"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Zapomnienie tego hasła po"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Zapomnienie tego hasła po wylogowaniu"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Baza kluczy konta"
@@ -172,7 +171,7 @@ msgstr "Nazwa powszechna"
msgid "Surname"
msgstr "Nazwisko"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Numer seryjny"
@@ -228,7 +227,7 @@ msgstr "Kwalifikator DN"
msgid "Pseudonym"
msgstr "Pseudonim"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -244,7 +243,7 @@ msgstr "MD5 z RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 z RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -285,592 +284,6 @@ msgstr ""
msgid "Unexpected error in waitpid() (%s)"
msgstr "Nieoczekiwany błąd w waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Błąd podczas wczytywania modułu PKCS#11: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Nieprawidłowy moduł PKCS#11: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Nie można ustawić modułu PKCS#11: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "Nie można zainicjować modułu PKCS#11: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "Nie można zainicjować zarejestrowanych modułów PKCS#11: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Nazwa"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Wydane przez"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "Wygasa"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "Certyfikat"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Plik o tej nazwie już istnieje.</b>\n"
-"\n"
-"Zastąpić go nowym plikiem?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_ZastÄ…p"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "Działanie zostało anulowane."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Eksport certyfikatu"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Pliki certyfikatu"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "Pliki PEM"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Inna nazwa"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "Adres XMPP"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "Serwer DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "E-mail"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "Adres X400"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Nazwa katalogu"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "Nazwa partii EDI"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "Adres URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "Adres IP"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "Zarejestrowany identyfikator"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Podstawowe ograniczenia"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "Ośrodek certyfikacji"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Tak"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Nie"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Maksymalna długość ścieżki"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Bez ograniczenia"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Rozszerzone użycie klucza"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Dozwolone zastosowania"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Identyfikator klucza tematu"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Identyfikator klucza"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Podpis cyfrowy"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Szyfrowanie klucza"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Szyfrowanie danych"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Umowa klucza"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Podpis certyfikatu"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Podpis listy unieważnień"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Użycie klucza"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Zastosowania"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Alternatywne nazwy tematu"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Rozszerzenie"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Identyfikator"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Wartość"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Krytyczne"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Nie można wyeksportować certyfikatu."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "Tożsamość"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Sprawdzone przez"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "Wygasa"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Nazwa podmiotu"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Nazwa wydawcy"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Wydany certyfikat"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Wersja"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Nieważny przed"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Nieważny po"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Odciski palców certyfikatu"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Podpis"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Algorytm podpisu"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Parametry podpisu"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Informacje o kluczu publicznym"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Algorytm klucza"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Parametry klucza"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Rozmiar klucza"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "Odcisk palca klucza SHA1"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "Klucz publiczny"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_Szczegóły"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "Nie można wyświetlić \"%s\""
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "Nie można wyświetlić pliku"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Przyczyna"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Nie można wyświetlić pliku tego typu."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Importowanie certyfikatów i kluczy"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Zaimportowanie do:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Hasło:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "Klucz PGP"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "Identyfikator klucza"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Proces gnupg został zakończony z kodem: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Proces gnupg został zakończony za pomocą sygnału: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1786 ../gcr/gcr-parser.c:2044
-msgid "The operation was cancelled"
-msgstr "Działanie zostało anulowane"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Proszę wprowadzić hasło, aby odblokować klucz prywatny"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Proszę wprowadzić hasło, aby odblokować certyfikat"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Proszę wprowadzić hasło, aby odblokować"
-
-# Baza/przechowalnia do odblokowania, nie klucz, patrz http://bugzilla.gnome.org/show_bug.cgi?id=570529
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Aby zaimportować klucz prywatny, musi zostać odblokowana"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Aby zaimportować certyfikat, musi zostać odblokowana"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Aby zaimportować dane, musi zostać odblokowana"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Aby zaimportować klucz prywatny \"%s\", musi zostać odblokowana"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Aby zaimportować certyfikat \"%s\", musi zostać odblokowana"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Aby zaimportować \"%s\", musi zostać odblokowana"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Brak położenia do importowania"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Importowanie certyfikatów/kluczy"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr ""
-"Proszę wybrać położenie do przechowywania zaimportowanych certyfikatów/"
-"kluczy."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Klucz"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Klucz prywatny RSA"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Klucz prywatny DSA"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "Klucz prywatny"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Klucz publiczny DSA"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-msgstr[1] "%d bity"
-msgstr[2] "%d bitów"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Siła"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algorytm"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Rozmiar"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Odciski palców"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1789
-msgid "Unrecognized or unsupported data."
-msgstr "Nierozpoznane lub nieobsługiwane dane."
-
-#: ../gcr/gcr-parser.c:1792
-msgid "Could not parse invalid or corrupted data."
-msgstr "Nie można przetworzyć nieprawidłowych lub uszkodzonych danych."
-
-#: ../gcr/gcr-parser.c:1795
-msgid "The data is locked"
-msgstr "Dane sÄ… zablokowane"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Nie można odnaleźć położenie do przechowywania przypiętego certyfikatu"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Automatyczne odblokowanie tej bazy kluczy po zalogowaniu"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Zablokowanie tej bazy kluczy po"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Zablokowanie tej bazy kluczy w razie bezczynności przez"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Zablokowanie tej bazy kluczy po wylogowaniu"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minut"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "Odblokowanie: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Odblokuj"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "Hasło jest niepoprawne"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Hasło"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr ""
-"Treść pliku \"%s\" jest zablokowana. Aby ją wyświetlić, należy wprowadzić "
-"poprawne hasło."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr ""
-"Treść jest zablokowana. Aby ją wyświetlić, należy wprowadzić poprawne hasło."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "Przeglądarka certyfikatów i kluczy"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Wyświetla wersję programu"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[plik...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- wyświetla pliki certyfikatów i kluczy"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "Przeglądarka certyfikatów"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "Adres URI posiada nieprawidłową kodowanie."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "Adres URI nie posiada schematu \"pkcs11\"."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "Adres URI posiada błędną składnię."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "Adres URI posiada błędny numer wersji."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Certyfikat bez nazwy"
@@ -880,7 +293,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Nie można przetworzyć klucza publicznego SSH"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Odblokowanie hasła dla: %s"
@@ -940,10 +353,26 @@ msgstr "Odblokowanie certyfikatu"
msgid "Unlock public key"
msgstr "Odblokowanie klucza publicznego"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Odblokuj"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Proszę wprowadzić hasło, aby odblokować klucz prywatny"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Proszę wprowadzić hasło, aby odblokować certyfikat"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Proszę wprowadzić hasło, aby odblokować klucz publiczny"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Proszę wprowadzić hasło, aby odblokować"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1034,11 +463,11 @@ msgstr "polecenia: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Przechowywać hasła bez szyfrowania?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1047,15 +476,15 @@ msgstr ""
"Puste hasło oznacza niechronione przechowywanie haseł. Będą one dostępne dla "
"każdego, kto będzie miał dostęp do plików tego konta."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Użycie niechronionej przechowalni"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Hasła nie są zgodne."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Hasło nie może być puste"
diff --git a/po/pt.po b/po/pt.po
index 9ae3105b..ed5c2a8c 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 3.2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-11 08:29+0100\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-11 08:50+0000\n"
"Last-Translator: Duarte Loreto <happyguy_pt@hotmail.com>\n"
"Language-Team: Portuguese <gnome_pt@yahoogroups.com>\n"
@@ -20,7 +20,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Sem nome"
@@ -96,35 +96,34 @@ msgstr "GNOME Keyring: Agente GPG"
msgid "GPG Password Agent"
msgstr "Agente de Senha GPG"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Desconhecido"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "Chave PGP: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Introduza a Frase-Senha"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Esquecer esta senha se inactivo por"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Esquecer esta senha após"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Esquecer esta senha ao terminar a sessão"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Início de Sessão"
@@ -168,7 +167,7 @@ msgstr "Nome Comum"
msgid "Surname"
msgstr "Sobrenome"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Número de Série"
@@ -224,7 +223,7 @@ msgstr "Qualificador DN"
msgid "Pseudonym"
msgstr "Pseudónimo"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -240,7 +239,7 @@ msgstr "MD5 com RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 com RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -279,592 +278,6 @@ msgstr "Erro inesperado no select() ao ler dados de um processo filho (%s)"
msgid "Unexpected error in waitpid() (%s)"
msgstr "Erro inesperado em waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Erro ao ler o módulo PKCS#11: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Módulo PKCS#11 inválido: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Incapaz de configurar o módulo PKCS#11: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "Incapaz de inicializar o módulo PKCS#11: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "Incapaz de inicializar os módulos PKCS#11 registados: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Nome"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Emitido Por"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "Expira Em"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "Certificado"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Já existe um ficheiro com este nome.</b>\n"
-"\n"
-"Deseja sobrepô-lo com um novo ficheiro?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_Sobrepor"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "A operação foi cancelada."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Exportar o certificado"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Ficheiros do certificado"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "Ficheiros PEM"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Outro Nome"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "Endereço XMPP"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "Servidor DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "Email"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "Endereço X400"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Nome do Directório (DN)"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "Nome da Parte EDI"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "Endereço IP"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "ID Registado"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Restrições Básicas"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "Autoridade de Certificação (CA)"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Sim"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Não"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Comprimento Máximo do Caminho"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Ilimitado"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Utilização Estendida da Chave"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Propósitos Permitidos"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Identificador da Chave de Sujeito"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Identificador da Chave"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Assinatura digital"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Encriptação da chave"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Encriptação dos dados"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Acordo da chave"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Assinatura do certificado"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Assinatura da lista de revogação"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Utilização da Chave"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Utilizações"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Nomes Alternativos do Sujeito"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Extensão"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Identificador"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Valor"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Crítico"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Incapaz de exportar o certificado."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "Identidade"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Verificado por"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "Expira a"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Nome do Assunto"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Nome do Emissor"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Certificado Emitido"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Versão"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Inválido Antes de"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Inválido Após"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Impressões Digitais do Certificado"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Assinatura"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Algorítmo de Assinatura"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Parâmetros da Assinatura"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Info de Chave Pública"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Algorítmo da Chave"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Parâmetros da Chave"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Tamanho da Chave"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "Impressão Digital SHA1 da Chave"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "Chave Pública"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_Detalhes"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "Incapaz de apresentar '%s'"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "Incapaz de apresentar o ficheiro"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Motivo"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Incapaz de apresentar um ficheiro deste tipo."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Importar Certificados e Chaves"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Importar Para:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Senha:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "Chave PGP"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "ID de Chave"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Processo gnupg terminou com o código: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Processo gnupg foi terminado com o sinal: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1786 ../gcr/gcr-parser.c:2044
-msgid "The operation was cancelled"
-msgstr "A operação foi cancelada"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Introduza a senha para destrancar a chave privada"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Introduza a senha para destrancar o certificado"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Introduza a senha para destrancar"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "De forma a importar a chave privada, esta tem de ser destrancada"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "De forma a importar o certificado, este tem de ser destrancado"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "De forma a importar os dados, estes têm de ser destrancados"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "De forma a importar a chave privada '%s', esta tem de ser destrancada"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "De forma a importar o certificado '%s', este tem de ser destrancado"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "De forma a importar '%s', esta tem de ser destrancada"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Nenhuma localização disponível para onde importar"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Importar Certificados/Chaves"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr ""
-"Seleccione uma localização para armazenar os certificados/chaves importados."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Chave"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Chave RSA Privada"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Chave DSA Privada"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "Chave Privada"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Chave DSA Pública"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-msgstr[1] "%d bits"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Tamanho"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algorítmo"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Tamanho"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Impressões Digitais"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1789
-msgid "Unrecognized or unsupported data."
-msgstr "Dados desconhecidos ou não suportados."
-
-#: ../gcr/gcr-parser.c:1792
-msgid "Could not parse invalid or corrupted data."
-msgstr "Incapaz de processar dados inválidos ou corrompidos."
-
-#: ../gcr/gcr-parser.c:1795
-msgid "The data is locked"
-msgstr "Os dados estão trancados"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr ""
-"Incapaz de encontrar uma localização onde armazenar o certificado marcado"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr ""
-"Destrancar automaticamente este chaveiro sempre que existir uma sessão minha"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Trancar este chaveiro após"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Trancar este chaveiro se inactivo por"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Trancar este chaveiro ao terminar a sessão"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minutos"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "Destrancar: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Destrancar"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "A senha está incorrecta"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Senha"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr ""
-"O conteúdo de '%s' está trancado. Para poder ver o conteúdo, introduza a "
-"senha correcta."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr ""
-"O conteúdo está trancado. Para poder ver o conteúdo, introduza a "
-"senha correcta."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "Certificado GCR e Visualizador de Chaves"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Apresentar a versão da aplicação"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[ficheiro...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- Visualizar os ficheiros de certificados e chaves"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "Visualizador de Certificado"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "O URI tem uma codificação inválida."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "O URI não tem o esquema 'pkcs11'."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "O URI tem uma sintaxe inválida."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "O URI tem um número de versão inválido."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Certificado Sem Nome"
@@ -874,7 +287,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Incapaz de processar a chave pública SSH"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Senha para destrancar: %s"
@@ -933,10 +346,26 @@ msgstr "Destrancar o certificado"
msgid "Unlock public key"
msgstr "Destrancar a chave pública"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Destrancar"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Introduza a senha para destrancar a chave privada"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Introduza a senha para destrancar o certificado"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Introduza a senha para destrancar a chave pública"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Introduza a senha para destrancar"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1029,11 +458,11 @@ msgstr "comandos: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Armazenar as senhas sem encriptação?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1043,15 +472,15 @@ msgstr ""
"serão encriptadas com segurança. Poderão ser acedidas por qualquer pessoa "
"com acesso aos seus ficheiros."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Utilizar Armazenamento Inseguro"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Senhas não coincidem."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "A senha não pode ser vazia"
@@ -1090,783 +519,3 @@ msgstr "Senha _Antiga:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Senha:"
-
-#~ msgid "Fingerprint"
-#~ msgstr "Impressão Digital"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "Memória disponível insuficiente"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "O ID de espaço especificado não é válido"
-
-#~ msgid "Internal error"
-#~ msgstr "Erro interno"
-
-#~ msgid "The operation failed"
-#~ msgstr "A operação falhou"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "Argumentos inválidos"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "O módulo é incapaz de criar as threads necessárias"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "O módulo é incapaz de trancar os dados adequadamente"
-
-#~ msgid "The field is read-only"
-#~ msgstr "O campo é apenas de leitura"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "O campo é sensível e não pode ser revelado"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "O campo é inválido ou não existe"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "Valor inválido para o campo"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "Os dados não são válidos ou reconhecidos"
-
-#~ msgid "The data is too long"
-#~ msgstr "Os dados são demasiado extensos"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "Ocorreu um erro no dispositivo"
-
-#~ msgid "Insufficient memory available on the device"
-#~ msgstr "Memória disponível insuficiente no dispositivo"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "O dispositivo foi removido ou desligado"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "Os dados encriptados não são válidos ou reconhecidos"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "Os dados encriptados são demasiado extensos"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "Esta operação não é suportada"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "A chave não foi encontrada ou é inválida"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "A chave é do tamanho errado"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "A chave é do tipo errado"
-
-#~ msgid "No key is needed"
-#~ msgstr "Nenhuma chave é necessária"
-
-#~ msgid "The key is different than before"
-#~ msgstr "A chave é diferente da anterior"
-
-#~ msgid "A key is needed"
-#~ msgstr "É necessária uma chave"
-
-#~ msgid "Cannot include the key in the digest"
-#~ msgstr "Incapaz de incluir a chave no digest"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "Esta operação não pode ser realizada com esta chave"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "A chave não pode ser quebrada"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "Incapaz de exportar esta chave"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "O mecanismo de encriptação é inválido ou desconhecido"
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "O mecanismo de encriptação tem um argumento inválido"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "O objecto não existe ou é inválido"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "Já está em curso outra operação"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "Não há nenhuma operação a decorrer"
-
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "A senha ou PIN é incorrecta"
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "A senha ou PIN é inválida"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "A senha ou PIN é de uma dimensão inválida"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "A senha ou PIN expirou"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "A senha ou PIN está trancada"
-
-#~ msgid "The session is closed"
-#~ msgstr "A sessão está fechada"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "Existem demasiadas sessões activas"
-
-#~ msgid "The session is invalid"
-#~ msgstr "A sessão é inválida"
-
-#~ msgid "The session is read-only"
-#~ msgstr "A sessão é apenas de leitura"
-
-#~ msgid "An open session exists"
-#~ msgstr "Já existe uma sessão aberta"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "Já existe uma sessão apenas de leitura"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "Já existe uma sessão de administrador"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "A assinatura é inválida ou está corrompida"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "A assinatura é desconhecida ou está corrompida"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "Faltam alguns campos necessários"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "Alguns campos contêm valores inválidos"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "O dispositivo não está presente ou está desligado"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "O dispositivo é inválido ou desconhecido"
-
-#~ msgid "The device is write protected"
-#~ msgstr "O dispositivo está protegido contra a escrita"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "Incapaz de importar pois a chave é inválida"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "Incapaz de importar porque a chave é do tamanho errado"
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "Incapaz de importar porque a chave é do tipo errado"
-
-#~ msgid "You are already logged in"
-#~ msgstr "Já iniciou uma sessão"
-
-#~ msgid "No user has logged in"
-#~ msgstr "Nenhum utilizador iniciou uma sessão"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "A senha ou PIN do utilizador não foi definida"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "O utilizador é de um tipo inválido"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "Outro utilizador já iniciou uma sessão"
-
-#~ msgid "Too many users of different types are logged in"
-#~ msgstr ""
-#~ "Demasiados utilizadores de tipos diferentes já têm uma sessão aberta"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "Incapaz de importar uma chave inválida"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "Incapaz de importar uma chave do tamanho errado"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "Incapaz de exportar porque a chave é inválida"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "Incapaz de exportar porque a chave é do tamanho errado"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "Incapaz de exportar porque a chave é do tipo errado"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "Incapaz de inicializar o gerador de números aleatórios"
-
-#~ msgid "No random number generator available"
-#~ msgstr "Nenhum gerador de números aleatórios disponível"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "O mecanismo de encriptação tem um parâmetro inválido"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "Espaço disponível insuficiente para armazenar o resultado"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "O estado gravado é inválido"
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "A informação é sensível e não pode ser revelada"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "O estado não pode ser gravado"
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "O módulo não foi inicializado"
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "O módulo já foi inicializado"
-
-#~ msgid "Cannot lock data"
-#~ msgstr "Incapaz de trancar os dados"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "Os dados não podem ser trancados"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "O pedido de assinatura foi rejeitado pelo utilizador"
-
-#~ msgid "Unknown error"
-#~ msgstr "Erro desconhecido"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>Não Faz Parte do Certificado</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>desconhecido</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<Não Faz Parte do Certificado>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>Impressões Digitais</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Emitido Por</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Emitido Para</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>Este certificado foi validado para as seguintes utilizações:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>Validade</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "Nome Comum (NC)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "Certificado de Destinatário da Mensagem"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "Certificado do Assinante da Mensagem"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "Impressão Digital MD5"
-
-#~ msgid "Organization (O)"
-#~ msgstr "Organização (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "Unidade Organizacional (UO)"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr ""
-#~ "<span size='large' weight='bold'>Importar Certificados e Chaves</span>"
-
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Esta opção activa o componente PKCS#11 no daemon gnome-keyring. Apenas "
-#~ "tem efeito num arranque com o gnome-session, (por ex: quando o utilizador "
-#~ "inicia uma sessão). Esta definição pode ser sobreposta quando "
-#~ "determinados argumentos de linha de comando forem passados para o daemon."
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "Esta opção activa o agente SSH no daemon gnome-keyring. Apenas tem efeito "
-#~ "quando o gnome-keyring-daemon é iniciado, (por ex: quando o utilizador "
-#~ "inicia uma sessão). Esta definição pode ser sobreposta quando "
-#~ "determinados argumentos de linha de comando forem passados para o daemon."
-
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Esta opção activa o componente de serviço secreto no daemon do gnome-"
-#~ "keyring. Apenas tem durante o arranque com o gnome-session, (por ex: "
-#~ "quando o utilizador inicia uma sessão). Esta definição pode ser "
-#~ "sobreposta quando determinados argumentos de linha de comando forem "
-#~ "passados ao daemon."
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "Se o componente PKCS#11 do gnome-keyring está ou não activo."
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "Se o agente SSH do gnome-keyring está ou não activo."
-
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr "Se o serviço secreto do gnome-keyring está ou não activo."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "A aplicação '%s' (%s) deseja aceder à senha de '<object prop='name'/>' no "
-#~ "chaveiro por omissão."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "A aplicação '%s' (%s) deseja aceder à senha de '<object prop='name'/>' em "
-#~ "%s."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "A aplicação '%s' deseja aceder à senha de '<object prop='name'/>' no "
-#~ "chaveiro por omissão."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "A aplicação '%s' deseja aceder à senha de '<object prop='name'/>' em %s."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "Uma aplicação desconhecida deseja aceder à senha de '<object prop='name'/"
-#~ ">' no chaveiro por omissão."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "Uma aplicação desconhecida deseja aceder à senha de '<object prop='name'/"
-#~ ">' em %s."
-
-#~ msgid "Allow access"
-#~ msgstr "Permitir o acesso"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "A aplicação '%s' (%s) deseja aceder ao chaveiro por omissão, mas este "
-#~ "está trancado."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "A aplicação '%s' (%s) deseja aceder ao chaveiro '%s', mas este está "
-#~ "trancado."
-
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-#~ msgstr ""
-#~ "A aplicação '%s' deseja aceder ao chaveiro por omissão, mas este está "
-#~ "trancado"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-#~ msgstr ""
-#~ "A aplicação '%s' deseja aceder ao chaveiro '%s', mas este está trancado"
-
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Uma aplicação desconhecida deseja aceder ao chaveiro por omissão, mas "
-#~ "este está trancado"
-
-#~ msgid "Enter password for default keyring to unlock"
-#~ msgstr "Introduza a senha para destrancar o chaveiro por omissão"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "A aplicação '%s' (%s) deseja criar um novo chaveiro denominado '%s'. Terá "
-#~ "de seleccionar a senha que deseja utilizar no chaveiro."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "A aplicação '%s' (%s) deseja criar um novo chaveiro por omissão. Terá de "
-#~ "seleccionar a senha que deseja utilizar no chaveiro."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "A aplicação '%s' deseja criar um novo chaveiro denominado '%s'. Terá de "
-#~ "seleccionar a senha que deseja utilizar no chaveiro."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "A aplicação '%s' deseja criar um novo chaveiro por omissão. Terá de "
-#~ "seleccionar a senha que deseja utilizar no chaveiro."
-
-#~ msgid ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "Uma aplicação desconhecida deseja criar um novo chaveiro por omissão. "
-#~ "Terá de seleccionar a senha que deseja utilizar no chaveiro."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "A aplicação '%s' (%s) deseja alterar a senha do chaveiro '%s'. Terá de "
-#~ "seleccionar a senha que deseja utilizar no chaveiro."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "A aplicação '%s' (%s) deseja alterar a senha do chaveiro por omissão. "
-#~ "Terá de seleccionar a senha que deseja utilizar no chaveiro."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "A aplicação '%s' deseja alterar a senha do chaveiro '%s'. Terá de "
-#~ "seleccionar a senha que deseja utilizar no chaveiro."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "A aplicação '%s' deseja alterar a senha do chaveiro por omissão. Terá de "
-#~ "seleccionar a senha que deseja utilizar no chaveiro."
-
-#~ msgid ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Uma aplicação desconhecida deseja alterar a senha do chaveiro por "
-#~ "omissão. Terá de seleccionar a senha que deseja utilizar no chaveiro."
-
-#~ msgid "Choose a new password for the default keyring."
-#~ msgstr "Seleccione uma nova senha para o chaveiro por omissão."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-#~ msgstr ""
-#~ "A aplicação '%s' (%s) deseja armazenar uma senha mas não existe chaveiro "
-#~ "por omissão. Para criar um, tem de seleccionar a senha que deseja "
-#~ "utilizar no chaveiro."
-
-#~ msgid ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "A aplicação '%s' deseja armazenar uma senha mas não existe chaveiro por "
-#~ "omissão. Para criar um, tem de seleccionar a senha que deseja utilizar no "
-#~ "chaveiro."
-
-#~ msgid ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "Uma aplicação desconhecida deseja armazenar uma senha mas não existe "
-#~ "chaveiro por omissão. Para criar um, tem de seleccionar a senha que "
-#~ "deseja utilizar no chaveiro."
-
-#~ msgid "Create Default Keyring"
-#~ msgstr "Criar um Chaveiro por Omissão"
-
-#~ msgid "Choose password for default keyring"
-#~ msgstr "Seleccione a senha para o chaveiro por omissão"
-
-#~ msgid "Create Login Keyring"
-#~ msgstr "Criar um Chaveiro de Início de Sessão"
-
-#~ msgid "Enter your login password"
-#~ msgstr "Introduza a sua senha de início de sessão"
-
-#~ msgid ""
-#~ "Your login keyring was not automatically created when you logged into "
-#~ "this computer. It will now be created."
-#~ msgstr ""
-#~ "O seu chaveiro de início de sessão não foi criado automaticamente quando "
-#~ "iniciou a sua sessão neste computador. Irá agora ser criado."
-
-#~ msgid "Unlock password for %s keyring"
-#~ msgstr "Senha de destranque para o chaveiro %s"
-
-#~ msgid "Automatically unlock this private key when I log in."
-#~ msgstr "Destrancar automaticamente esta chave privada ao iniciar sessão."
-
-#~ msgid "Automatically unlock this certificate when I log in."
-#~ msgstr "Destrancar automaticamente este certificado ao iniciar sessão."
-
-#~ msgid "Automatically unlock this public key when I log in."
-#~ msgstr "Destrancar automaticamente esta chave pública ao iniciar sessão."
-
-#~ msgid "Automatically unlock this when I log in"
-#~ msgstr "Destrancar este item automaticamente ao iniciar sessão"
-
-#~ msgid "Automatically unlock secure storage when I log in."
-#~ msgstr ""
-#~ "Destrancar automaticamente o armazenamento seguro ao iniciar sessão."
-
-#~ msgid ""
-#~ "<b><big>Could not grab your mouse.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>Incapaz de capturar o seu rato.</big></b>\n"
-#~ "\n"
-#~ "Um cliente malicioso poderá estar a observar a sua sessão ou pode ter "
-#~ "clicado num menu ou outra aplicação ter decidido obter o foco.\n"
-#~ "\n"
-#~ "Tente novamente."
-
-#~ msgid ""
-#~ "<b><big>Could not grab your keyboard.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>Incapaz de capturar o seu teclado.</big></b>\n"
-#~ "\n"
-#~ "Um cliente malicioso poderá estar a observar a sua sessão ou pode ter "
-#~ "clicado num menu ou outra aplicação ter decidido obter o foco.\n"
-#~ "\n"
-#~ "Tente novamente."
-
-#~ msgid "_Deny"
-#~ msgstr "_Negar"
-
-#~ msgid "C_reate"
-#~ msgstr "C_riar"
-
-#~ msgid "C_hange"
-#~ msgstr "_Alterar"
-
-#~ msgid "Allow _Once"
-#~ msgstr "Permitir _Uma Vez"
-
-#~ msgid "_Always Allow"
-#~ msgstr "Permitir _Sempre"
-
-#~ msgid "Removable Disk: %s"
-#~ msgstr "Disco Removível: %s"
-
-#~ msgid "Removable Disk"
-#~ msgstr "Disco Removível"
-
-#~ msgid "Home"
-#~ msgstr "Pasta Pessoal"
-
-#~ msgid "The disk or drive this file is located on is not present"
-#~ msgstr ""
-#~ "O disco ou dispositivo onde este ficheiro se encontra já não está presente"
-
-#~ msgid "Couldn't create directory: %s"
-#~ msgstr "Incapaz de criar o directório: %s"
-
-#~ msgid "Access Denied"
-#~ msgstr "Acesso Negado"
-
-#~ msgid "The gnome-keyring-daemon application is not running."
-#~ msgstr "A aplicação gnome-keyring-daemon não se encontra em execução."
-
-#~ msgid "Error communicating with gnome-keyring-daemon"
-#~ msgstr "Erro ao comunicar com o gnome-keyring-daemon"
-
-#~ msgid "A keyring with that name already exists"
-#~ msgstr "Já existe um chaveiro com esse nome"
-
-#~ msgid "Programmer error: The application sent invalid data."
-#~ msgstr "Erro de programação: A aplicação enviou dados inválidos."
-
-#~ msgid "No matching results"
-#~ msgstr "Nenhum resultado coincidente"
-
-#~ msgid "A keyring with that name does not exist."
-#~ msgstr "Não existe um chaveiro com esse nome"
-
-#~ msgid "The keyring has already been unlocked."
-#~ msgstr "O chaveiro já foi destrancado."
-
-#~ msgid ""
-#~ "A list of paths to PKCS#11 modules to load. No modules are currently "
-#~ "listed by default, as this is still an experimental feature. This is used "
-#~ "by seahorse and other PKCS#11 aware applications."
-#~ msgstr ""
-#~ "Uma lista de caminhos para módulos PKCS#11 a ler. Nenhum módulo está "
-#~ "actualmente listado por omissão já que esta é uma funcionalidade "
-#~ "experimental. É utilizada pelo seahorse e outras aplicações compatíveis "
-#~ "com o PKCS#11."
-
-#~ msgid "Import private key"
-#~ msgstr "Importar a chave privada"
-
-#~ msgid "Import public key"
-#~ msgstr "Importar a chave pública"
-
-#~ msgid "The system wants to import the public key '%s', but it is locked"
-#~ msgstr ""
-#~ "O sistema deseja importar a chave pública '%s', mas esta está trancada"
-
-#~ msgid "Create Storage for Key Information"
-#~ msgstr "Criar Armazenamento para Informação de Chave"
-
-#~ msgid "Choose password to protect storage"
-#~ msgstr "Seleccione a senha para proteger o armazenamento"
-
-#~ msgid ""
-#~ "The system wants to store information about your keys and certificates. "
-#~ "In order to protect this information, choose a password with which it "
-#~ "will be locked."
-#~ msgstr ""
-#~ "Este sistema deseja armazenar informação sobre as suas chaves e "
-#~ "certificados. Por forma a proteger esta informação, seleccione a senha "
-#~ "com a qual esta será trancada."
-
-#~ msgid "Unlock Storage for Key Information"
-#~ msgstr "Destrancar Armazenamento de Informação de Chave"
-
-#~ msgid "Enter password to unlock storage"
-#~ msgstr "Introduza a senha para destrancar o armazenamento"
-
-#~ msgid ""
-#~ "The system wants to access information about your keys and certificates, "
-#~ "but it is locked."
-#~ msgstr ""
-#~ "O sistema deseja aceder a informação sobre as suas chaves e certificados, "
-#~ "mas esta está trancada."
-
-#~ msgid "Trust Association"
-#~ msgstr "Associação de Confiança"
-
-#~ msgid "Cannot delete '%s' because it is tied to other objects."
-#~ msgstr "Incapaz de apagar '%s' pois está ligado a outros objectos."
-
-#~ msgid "Lock private key"
-#~ msgstr "Trancar a chave privada"
-
-#~ msgid "Lock"
-#~ msgstr "Trancar"
-
-#~ msgid "Enter password to protect the private key"
-#~ msgstr "Introduza a senha para proteger a chave privada"
-
-#~ msgid ""
-#~ "The system wants to store the private key '%s' on your disk. Please enter "
-#~ "a password to lock it with."
-#~ msgstr ""
-#~ "O sistema deseja armazenar a chave privada '%s' no seu disco. Introduza "
-#~ "uma senha com a qual a trancar."
-
-#~ msgid ""
-#~ "The system wants to store '%s' on your disk. Please enter a password to "
-#~ "lock it with."
-#~ msgstr ""
-#~ "O sistema deseja armazenar '%s' no seu disco. Introduza uma senha com a "
-#~ "qual a trancar."
-
-#~ msgid "Couldn't read secure shell private key: %s"
-#~ msgstr "Incapaz de ler a chave privada de consola segura: %s"
-
-#~ msgid "Invalid secure shell private key at: %s"
-#~ msgstr "Chave privada de consola segura inválida em: %s"
-
-#~ msgid "Couldn't encrypt the SSH key to store it."
-#~ msgstr "Incapaz de encriptar a chave SSH para a armazenar."
-
-#~ msgid "Couldn't encode the SSH key to store it."
-#~ msgstr "Incapaz de codificar a chave SSH para a armazenar."
-
-#~ msgid "Cannot set a random seed"
-#~ msgstr "Incapaz de definir uma semente aleatória"
-
-#~ msgid "Old password cannot be blank."
-#~ msgstr "A senha antiga não pode ser vazia."
-
-#~ msgid "<span weight=\"bold\">Password strength meter:</span>"
-#~ msgstr "<span weight=\"bold\">Medidor de resistência da senha:</span>"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "A aplicação '%s' (%s) deseja aceder a um chaveiro desconhecido, mas este "
-#~ "está trancado"
-
-#~ msgid ""
-#~ "The application '%s' wants access to an unknown keyring, but it is locked"
-#~ msgstr ""
-#~ "A aplicação '%s' deseja aceder a um chaveiro desconhecido, mas este está "
-#~ "trancado"
-
-#~ msgid ""
-#~ "An unknown application wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Uma aplicação desconhecida deseja aceder a um chaveiro desconhecido, mas "
-#~ "este está trancado"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr ""
-#~ "A aplicação '%s' (%s) deseja aceder à senha para '%s' num chaveiro "
-#~ "desconhecido."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '%s' in an unknown "
-#~ "keyring."
-#~ msgstr ""
-#~ "A aplicação '%s' deseja aceder à senha para '%s' num chaveiro "
-#~ "desconhecido."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr ""
-#~ "Uma aplicação desconhecida deseja aceder à senha para '%s' num chaveiro "
-#~ "desconhecido."
-
-#~ msgid "You must specify the type of request to run\n"
-#~ msgstr "Tem de especificar o tipo de pedido a executar\n"
-
-#~ msgid "Unknown request type\n"
-#~ msgstr "Tipo de pedido desconhecido\n"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index a6bf6c2b..e011bae7 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -16,16 +16,15 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-09-19 07:40+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-18 16:37-0200\n"
"Last-Translator: Gabriel Speckhahn <gabspeck@gmail.com>\n"
"Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n"
+"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Virtaal 0.7.0\n"
"X-Poedit-Language: Portuguese\n"
@@ -111,8 +110,7 @@ msgstr "Chaveiro do GNOME: Agente GPG"
msgid "GPG Password Agent"
msgstr "Agente de senha GPG"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Desconhecido"
@@ -139,7 +137,7 @@ msgid "Forget this password when I log out"
msgstr "Esquecer esta senha quando eu encerrar minha sessão"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Login"
@@ -183,7 +181,7 @@ msgstr "Nome completo"
msgid "Surname"
msgstr "Sobrenome"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Número de série"
@@ -239,7 +237,7 @@ msgstr "Qualificador DN"
msgid "Pseudonym"
msgstr "Pseudônimo"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -255,7 +253,7 @@ msgstr "MD5 com RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 com RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -294,594 +292,6 @@ msgstr "Erro inesperado no select() ao ler dados de processo filho (%s)"
msgid "Unexpected error in waitpid() (%s)"
msgstr "Erro inesperado em waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Erro ao carregar o módulo PKCS#11: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Módulo PKCS#11 inválido: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Não foi possível configurar o módulo PKCS#11: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "Não foi possível inicializar o módulo PKCS#11: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "Não foi possível inicializar os módulos PKCS#11 registrados: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Nome"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Emitido por"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "Válido até"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:262
-msgid "Certificate"
-msgstr "Certificado"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Já existe um arquivo com esse nome.</b>\n"
-"\n"
-"Deseja substituí-lo por um novo arquivo?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_Substituir"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "A operação foi cancelada."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Exportar certificado"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Arquivos do certificado"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "Arquivos PEM"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Outro nome"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "End XMPP"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "E-mail"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "Endereço X400"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Nome do diretório"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "Nome da parte EDI"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "Endereço IP"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "ID registrado"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Restrições básicas"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "Autoridade do certificado"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Sim"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Não"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Comp máx do caminho"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Ilimitado"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Usos estendidos da chave"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Fins permitidos"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Identificador da chave do sujeito"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Identificador da chave"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Assinatura digital"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Codificação da chave"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Codificação de dados"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Acordo de chaves"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Assinatura do certificado"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Assinatura da lista de revogações"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Uso da chave"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Usos"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Nomes alternativos do portador"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Ramal"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Identificador"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Valor"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Crítico"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Não foi possível exportar o certificado."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "Identidade"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Verificado por"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "Expira"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Nome do portador"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Nome do emissor"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Certificado emitido"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Versão"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Não é válido antes de"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Não é válido após"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Impressões digitais do certificado"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Assinatura"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Algoritmo da assinatura"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Parâmetros da assinatura"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Informações da chave pública"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Algoritmo da chave"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Parâmetros da chave"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Tamanho da chave"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "Impressão digital SHA1 da chave"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:265
-msgid "Public Key"
-msgstr "Chave pública"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_Detalhes"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "Não foi possível exibir \"%s\""
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "Não foi possível exibir o arquivo"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Motivo"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Não é possível exibir um arquivo desse tipo."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Importar certificados e chaves"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Importar em:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Senha:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "Chave PGP"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "ID da chave"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "O processo do Gnupg saiu com o código %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "O processo do Gnupg foi finalizado com o sinal %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1921 ../gcr/gcr-parser.c:2179
-msgid "The operation was cancelled"
-msgstr "A operação foi cancelada"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Digite a senha para desbloquear a chave privada"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Digite a senha para desbloquear o certificado"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Digite a senha para desbloquear"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr ""
-"Para que a chave privada possa ser importada, ela deve ser desbloqueada"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Para que o certificado possa ser importado, ele deve ser desbloqueado"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Para que os dados possam ser importados, eles devem ser desbloqueados"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr ""
-"Para que a chave privada \"%s\" possa ser importada, ela deve ser "
-"desbloqueada"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr ""
-"Para que o certificado \"%s\" possa ser importado, ele deve ser desbloqueado"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "\"%s\" deve ser desbloqueado para que possa ser importado"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Nenhum local disponível para importação"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Importar certificados/chaves"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Escolha um local para armazenar os certificados e chaves importados."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Chave"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Chave privada RSA"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Chave privada DSA"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:259
-msgid "Private Key"
-msgstr "Chave privada"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Chave pública DSA"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-msgstr[1] "%d bits"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Força"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algoritmo"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Tamanho"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Impressões digitais"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1924
-msgid "Unrecognized or unsupported data."
-msgstr "Dados não reconhecidos ou sem suporte."
-
-#: ../gcr/gcr-parser.c:1927
-msgid "Could not parse invalid or corrupted data."
-msgstr "Não foi possível analisar dados inválidos ou corrompidos."
-
-#: ../gcr/gcr-parser.c:1930
-msgid "The data is locked"
-msgstr "Os dados estão bloqueados"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr ""
-"Não foi possível encontrar um lugar para armazenar o certificado marcado"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Desbloquear este chaveiro automaticamente quando eu iniciar a sessão"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Bloquear este chaveiro após"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Bloquear este chaveiro se ocioso por"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Bloquear este chaveiro quando eu encerrar minha sessão"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minutos"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "Desbloquear: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Desbloquear"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "A senha estava incorreta"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Senha"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr ""
-"O conteúdo de \"%s\" está bloqueado. Para que o conteúdo possa ser "
-"visualizado, digite a senha correta."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr ""
-"O conteúdo está bloqueado. Para possibilitar a visualização do conteúdo, "
-"digite a senha correta."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "Visualizador de chaves e certificados GCR"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Mostra a versão do aplicativo"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[arquivo…]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- Exibe arquivos de certificado e chave"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "Visualizador de certificados"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "A codificação do URI é inválida."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "O URI não possui o esquema 'pkcs11'."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "A sintaxe do URI é inválida."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "O número de versão do URI é inválido."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Certificado sem nome"
@@ -950,10 +360,26 @@ msgstr "Desbloquear certificado"
msgid "Unlock public key"
msgstr "Desbloquear chave pública"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Desbloquear"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Digite a senha para desbloquear a chave privada"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Digite a senha para desbloquear o certificado"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Digite a senha para desbloquear a chave pública"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Digite a senha para desbloquear"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1046,11 +472,11 @@ msgstr "comandos: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:596
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Armazenar senhas sem criptografia?"
-#: ../ui/gku-prompt-tool.c:597
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1060,15 +486,15 @@ msgstr ""
"seguramente criptografadas. Elas estarão acessíveis para qualquer pessoa com "
"acesso a seus arquivos."
-#: ../ui/gku-prompt-tool.c:604
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Usar armazenamento não seguro"
-#: ../ui/gku-prompt-tool.c:644
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "As senhas são diferentes."
-#: ../ui/gku-prompt-tool.c:654
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "A senha não pode ser vazia"
@@ -1107,754 +533,3 @@ msgstr "Senha an_tiga:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Senha:"
-
-#~ msgid "Fingerprint"
-#~ msgstr "Impressão digital"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "Memória disponível insuficiente"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "O ID de slot especificado não é válido"
-
-#~ msgid "Internal error"
-#~ msgstr "Erro interno"
-
-#~ msgid "The operation failed"
-#~ msgstr "A operação falhou"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "Argumentos inválidos"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "O módulo não pôde criar as linhas necessárias"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "O módulo não pôde bloquear os dados adequadamente"
-
-#~ msgid "The field is read-only"
-#~ msgstr "O campo é somente leitura"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "O campo é sensível e não será revelado"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "O campo é inválido ou não existe"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "Valor inválido para campo"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "Os dados são inválidos ou não reconhecidos"
-
-#~ msgid "The data is too long"
-#~ msgstr "Os dados são demasiadamente extensos"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "Um erro ocorreu no dispositivo"
-
-#~ msgid "Insufficient memory available on the device"
-#~ msgstr "Memória insuficiente disponível no dispositivo"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "O dispositivo foi removido ou desconectado"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "Os dados criptografados não são válidos ou não foram reconhecidos"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "Os dados criptografados são demasiadamente extensos"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "Não há suporte a esta operação"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "A chave está faltando ou é inválida"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "O tamanho da chave é errado"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "O tipo da chave é errado"
-
-#~ msgid "No key is needed"
-#~ msgstr "Nenhuma chave é necessária"
-
-#~ msgid "The key is different than before"
-#~ msgstr "A chave é diferente de antes"
-
-#~ msgid "A key is needed"
-#~ msgstr "É necessária uma chave"
-
-#~ msgid "Cannot include the key in the digest"
-#~ msgstr "A chave não pôde ser incluída no digest"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "A operação não pôde ser realizada com esta chave"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "A chave não pode ser quebrada"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "Não foi possível exportar esta chave"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "O mecanismo de criptografia é inválido ou não reconhecido"
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "O mecanismo de criptografia possui um argumento inválido"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "O objeto está faltando ou é inválido"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "Outra operação está sendo executada"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "Nenhuma operação está sendo executada"
-
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "A senha ou o PIN está incorreto"
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "A senha ou o PIN é inválido"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "A senha ou o PIN tem um comprimento inválido"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "A senha ou o PIN expirou"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "A senha ou o PIN está bloqueado"
-
-#~ msgid "The session is closed"
-#~ msgstr "A sessão está fechada"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "Muitas sessões estão ativas"
-
-#~ msgid "The session is invalid"
-#~ msgstr "A sessão é inválida"
-
-#~ msgid "The session is read-only"
-#~ msgstr "A sessão é somente leitura"
-
-#~ msgid "An open session exists"
-#~ msgstr "Já existe uma sessão aberta"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "Já existe uma sessão somente leitura aberta"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "Já existe uma sessão administrativa aberta"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "A assinatura é ruim ou está corrompida"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "A assinatura não foi reconhecida ou está corrompida"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "Certos campos requeridos estão faltando"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "Certos campos possuem valores inválidos"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "O dispositivo não está presente ou está desconectado"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "O dispositivo é inválido ou não reconhecido"
-
-#~ msgid "The device is write protected"
-#~ msgstr "O dispositivo é protegido contra escrita"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "Não foi possível importar pois a chave é inválida"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "Não foi possível importar pois a chave é de tamanho incorreto"
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "Não foi possível importar pois a chave é do tipo incorreto"
-
-#~ msgid "You are already logged in"
-#~ msgstr "Você já iniciou a sessão"
-
-#~ msgid "No user has logged in"
-#~ msgstr "Nenhum usuário iniciou a sessão"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "A senha do usuário ou o PIN não está definido"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "O usuário é de um tipo inválido"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "Outro usuário já iniciou a sessão"
-
-#~ msgid "Too many users of different types are logged in"
-#~ msgstr "Muitos usuários de diferentes tipos estão com sessão aberta"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "Não é possível importar uma chave inválida"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "Não é possível importar uma chave de tamanho incorreto"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "Não foi possível exportar pois a chave é inválida"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "Não foi possível exportar pois a chave é de tamanho incorreto"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "Não foi possível exportar pois a chave é do tipo incorreto"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "Não foi possível inicializar o gerador de números aleatórios"
-
-#~ msgid "No random number generator available"
-#~ msgstr "Nenhum gerador de números aleatórios disponível"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "O mecanismo de criptografia tem um parâmetro inválido"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "Não há espaço suficiente para armazenar o resultado"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "O estado gravado é inválido"
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "A informação é sensível e não pode ser revelada"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "O estado não pôde ser salvo"
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "O módulo não foi inicializado"
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "O módulo já foi inicializado"
-
-#~ msgid "Cannot lock data"
-#~ msgstr "Não foi possível bloquear os dados"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "Os dados não puderam ser bloqueados"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "O pedido de assinatura foi rejeitado pelo usuário"
-
-#~ msgid "Unknown error"
-#~ msgstr "Erro desconhecido"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>Não é parte do certificado</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>desconhecido</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<Não é parte do certificado>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>Impressões digitais</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Emitido por</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Emitido para</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>Este certificado foi verificado para os seguintes usos:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>Validade</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "Nome completo (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "Certificado do destinatário do email"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "Certificado do signatário do email"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "Impressão digital MD5"
-
-#~ msgid "Organization (O)"
-#~ msgstr "Organização (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "Unidade organizacional (OU)"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr ""
-#~ "<span size='large' weight='bold'>Importar certificados e chaves</span>"
-
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Esta opção habilita o componente PKCS#11 no daemon do chaveiro do GNOME. "
-#~ "Ela só tem efeito durante o início da sessão do GNOME (i.e.: quando o "
-#~ "usuário faz o login). Esta configuração pode ser ignorada quando certos "
-#~ "argumentos de linha de comando são passados ao daemon."
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "Esta opção habilita o agente SSH no daemon do gnome-keyring. Ela só tem "
-#~ "efeito quando o gnome-keyring-daemon inicia, ou seja, quando o usuário "
-#~ "inicia uma sessão. Esta configuração pode ser substituída quando certos "
-#~ "argumentos de linha de comando são passados para o daemon."
-
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Esta opção habilita o componente de serviço secreto no daemon do chaveiro "
-#~ "do GNOME. Ela só tem efeito durante o inicio da sessão do GNOME, (ie: "
-#~ "quando o usuário faz login). Esta configuração pode ser substituída "
-#~ "quando certos argumentos de linha de comando são passados para o daemon. "
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "Habilitar o componente PKCS#11 do chaveiro do GNOME."
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "Habilitar o agente SSH do chaveiro do GNOME."
-
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr "Habilitar o serviço secreto do chaveiro do GNOME."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "O aplicativo \"%s\" (%s) quer acessar a senha de \"<object prop='name'/>"
-#~ "\" no chaveiro padrão."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "O aplicativo \"%s\" (%s) quer acessar a senha de \"<object prop='name'/>"
-#~ "\" em %s."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "O aplicativo \"%s\" quer acessar a senha de \"<object prop='name'/>\" no "
-#~ "chaveiro padrão."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "O aplicativo \"%s\" quer acessar a senha de \"<object prop='name'/>\" em %"
-#~ "s."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "Um aplicativo desconhecido quer acessar a senha de \"<object prop='name'/>"
-#~ "\" no chaveiro padrão."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "Um aplicativo desconhecido quer acessar a senha de \"<object prop='name'/>"
-#~ "\" em %s."
-
-#~ msgid "Allow access"
-#~ msgstr "Autorizar acesso"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "O aplicativo \"%s\" (%s) quer acesso ao chaveiro padrão, mas ele está "
-#~ "bloqueado"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "O aplicativo \"%s\" (%s) quer acesso ao chaveiro \"%s\", mas ele está "
-#~ "bloqueado"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-#~ msgstr ""
-#~ "O aplicativo \"%s\" quer acesso ao chaveiro padrão, mas ele está bloqueado"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-#~ msgstr ""
-#~ "O aplicativo \"%s\" quer acesso ao chaveiro \"%s\", mas ele está bloqueado"
-
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Um aplicativo desconhecido quer acesso ao chaveiro padrão, mas ele está "
-#~ "bloqueado"
-
-#~ msgid "Enter password for default keyring to unlock"
-#~ msgstr "Digite a senha do chaveiro padrão para desbloqueá-lo"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "O aplicativo \"%s\" (%s) quer criar um novo chaveiro chamado \"%s\". Você "
-#~ "deve escolher uma senha para ele."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "O aplicativo \"%s\" (%s) quer criar um novo chaveiro padrão. Você deve "
-#~ "escolher uma senha para ele."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "O aplicativo \"%s\" quer criar um novo chaveiro chamado \"%s\". Você deve "
-#~ "escolher uma senha para ele."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "O aplicativo \"%s\" quer criar um novo chaveiro padrão. Você deve "
-#~ "escolher uma senha para ele."
-
-#~ msgid ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "Um aplicativo desconhecido quer criar um novo chaveiro padrão. Você deve "
-#~ "escolher uma senha para ele."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "O aplicativo \"%s\" (%s) quer alterar a senha para o chaveiro \"%s\". "
-#~ "Você deve escolher uma senha para ele."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "O aplicativo \"%s\" (%s) quer alterar a senha para o chaveiro padrão. "
-#~ "Você deve escolher uma senha para ele."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "O aplicativo \"%s\" quer alterar a senha para o chaveiro \"%s\". Você "
-#~ "deve escolher uma senha para ele."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "O aplicativo \"%s\" quer alterar a senha para o chaveiro padrão. Você "
-#~ "deve escolher uma senha para ele."
-
-#~ msgid ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Um aplicativo desconhecido quer alterar a senha para o chaveiro padrão. "
-#~ "Você deve escolher uma senha para ele."
-
-#~ msgid "Choose a new password for the default keyring."
-#~ msgstr "Escolha uma nova senha para o chaveiro padrão."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-#~ msgstr ""
-#~ "O aplicativo \"%s\" (%s) quer gravar uma senha, mas não existe um "
-#~ "chaveiro padrão. Para criar um você precisa escolher uma senha para ele."
-
-#~ msgid ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "O aplicativo \"%s\" quer gravar uma senha, mas não existe um chaveiro "
-#~ "padrão. Para criar um você precisa escolher uma senha para ele."
-
-#~ msgid ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "Um aplicativo desconhecido quer gravar uma senha, mas não existe um "
-#~ "chaveiro padrão. Para criar um você precisa escolher uma senha para ele."
-
-#~ msgid "Create Default Keyring"
-#~ msgstr "Criar chaveiro padrão"
-
-#~ msgid "Choose password for default keyring"
-#~ msgstr "Escolha a senha para o chaveiro padrão"
-
-#~ msgid "Create Login Keyring"
-#~ msgstr "Criar o chaveiro de sessão"
-
-#~ msgid "Enter your login password"
-#~ msgstr "Digite sua senha de usuário"
-
-#~ msgid ""
-#~ "Your login keyring was not automatically created when you logged into "
-#~ "this computer. It will now be created."
-#~ msgstr ""
-#~ "Seu chaveiro de sessão não foi criado automaticamente quando você iniciou "
-#~ "a sessão neste computador. Ele será criado agora."
-
-#~ msgid "Unlock password for %s keyring"
-#~ msgstr "Senha para desbloquear o chaveiro %s"
-
-#~ msgid "Automatically unlock this private key when I log in."
-#~ msgstr ""
-#~ "Desbloquear esta chave privada automaticamente quando eu iniciar a sessão."
-
-#~ msgid "Automatically unlock this certificate when I log in."
-#~ msgstr ""
-#~ "Desbloquear este certificado automaticamente quando eu iniciar a sessão."
-
-#~ msgid "Automatically unlock this public key when I log in."
-#~ msgstr ""
-#~ "Desbloquear esta chave pública automaticamente quando eu iniciar a sessão."
-
-#~ msgid "Automatically unlock this when I log in"
-#~ msgstr "Automaticamente desbloquear isto quando eu iniciar a sessão"
-
-#~ msgid "Automatically unlock secure storage when I log in."
-#~ msgstr ""
-#~ "Desbloquear o armazenamento seguro automaticamente quando eu iniciar a "
-#~ "sessão."
-
-#~ msgid ""
-#~ "<b><big>Could not grab your mouse.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>Não foi possível capturar seu mouse.</big></b>\n"
-#~ "\n"
-#~ "Um cliente malicioso pode estar bisbilhotando na sua sessão ou você pode "
-#~ "ter apenas clicado em um menu ou algum aplicativo que decidiu receber o "
-#~ "foco.\n"
-#~ "\n"
-#~ "Tente novamente."
-
-#~ msgid ""
-#~ "<b><big>Could not grab your keyboard.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>Não foi possível capturar seu teclado.</big></b>\n"
-#~ "\n"
-#~ "Um cliente malicioso pode estar bisbilhotando na sua sessão ou você pode "
-#~ "ter apenas clicado em um menu ou algum aplicativo que decidiu receber o "
-#~ "foco.\n"
-#~ "\n"
-#~ "Tente novamente."
-
-#~ msgid "_Deny"
-#~ msgstr "_Negar"
-
-#~ msgid "C_reate"
-#~ msgstr "_Criar"
-
-#~ msgid "C_hange"
-#~ msgstr "_Alterar"
-
-#~ msgid "Allow _Once"
-#~ msgstr "Autorizar _uma vez"
-
-#~ msgid "_Always Allow"
-#~ msgstr "Sempre _autorizar"
-
-#~ msgid "Removable Disk: %s"
-#~ msgstr "Disco removível: %s"
-
-#~ msgid "Removable Disk"
-#~ msgstr "Disco removível"
-
-#~ msgid "Home"
-#~ msgstr "Início"
-
-#~ msgid "The disk or drive this file is located on is not present"
-#~ msgstr ""
-#~ "O disco ou dispositivo onde este arquivo está localizado não está presente"
-
-#~ msgid "Couldn't create directory: %s"
-#~ msgstr "Não foi possível criar o diretório: %s"
-
-#~ msgid "Access Denied"
-#~ msgstr "Acesso negado"
-
-#~ msgid "The gnome-keyring-daemon application is not running."
-#~ msgstr "O aplicativo gnome-keyring-daemon não está sendo executado."
-
-#~ msgid "Error communicating with gnome-keyring-daemon"
-#~ msgstr "Erro de comunicação com gnome-keyring-daemon"
-
-#~ msgid "A keyring with that name already exists"
-#~ msgstr "Um chaveiro com este nome já existe"
-
-#~ msgid "Programmer error: The application sent invalid data."
-#~ msgstr "Erro de programador: O aplicativo enviou dados inválidos."
-
-#~ msgid "No matching results"
-#~ msgstr "Nenhum resultado encontrado"
-
-#~ msgid "A keyring with that name does not exist."
-#~ msgstr "Um chaveiro com este nome não existe."
-
-#~ msgid "The keyring has already been unlocked."
-#~ msgstr "O chaveiro já foi desbloqueado."
-
-#~ msgid ""
-#~ "A list of paths to PKCS#11 modules to load. No modules are currently "
-#~ "listed by default, as this is still an experimental feature. This is used "
-#~ "by seahorse and other PKCS#11 aware applications."
-#~ msgstr ""
-#~ "Uma lista de caminhos para os módulos PKCS#11 a carregar. Nenhum módulo "
-#~ "está atualmente listado por padrão, já que esta é uma funcionalidade "
-#~ "experimental. Isto é usado pelo seahorse e outros aplicativos compatíveis "
-#~ "com o PKCS#11."
-
-#~ msgid "Import private key"
-#~ msgstr "Importar chave privada"
-
-#~ msgid "Import public key"
-#~ msgstr "Importar chave pública"
-
-#~ msgid "Import"
-#~ msgstr "Importar"
-
-#~ msgid "The system wants to import the private key '%s', but it is locked"
-#~ msgstr ""
-#~ "O sistema deseja importar a chave privada \"%s\", mas ela está bloqueada"
-
-#~ msgid "The system wants to import the certificate '%s', but it is locked"
-#~ msgstr ""
-#~ "O sistema deseja importar o certificado \"%s\", mas ele está bloqueado"
-
-#~ msgid "The system wants to import the public key '%s', but it is locked"
-#~ msgstr ""
-#~ "O sistema deseja importar a chave pública \"%s\", mas ela está bloqueada"
-
-#~ msgid "The system wants to import '%s', but it is locked"
-#~ msgstr "O sistema deseja importar \"%s\", mas ele está bloqueado"
-
-#~ msgid "Create Storage for Key Information"
-#~ msgstr "Criar armazenamento para informações de chave"
-
-#~ msgid "Choose password to protect storage"
-#~ msgstr "Escolha uma senha para proteger o armazenamento"
-
-#~ msgid ""
-#~ "The system wants to store information about your keys and certificates. "
-#~ "In order to protect this information, choose a password with which it "
-#~ "will be locked."
-#~ msgstr ""
-#~ "O sistema deseja armazenar informações sobre suas chaves e certificados. "
-#~ "Para proteger esta informação, escolha uma senha com a qual será "
-#~ "bloqueada."
-
-#~ msgid "Unlock Storage for Key Information"
-#~ msgstr "Desbloquear o armazenamento de informações de chave"
-
-#~ msgid "Enter password to unlock storage"
-#~ msgstr "Digite a senha para desbloquear o armazenamento"
-
-#~ msgid ""
-#~ "The system wants to access information about your keys and certificates, "
-#~ "but it is locked."
-#~ msgstr ""
-#~ "O sistema deseja acessar informações sobre suas chaves e certificados, "
-#~ "mas ele está bloqueado."
-
-#~ msgid "Trust Association"
-#~ msgstr "Associação de confiança"
-
-#~ msgid "Cannot delete '%s' because it is tied to other objects."
-#~ msgstr "Não foi possível excluir \"%s\" pois está ligado a outros objetos."
-
-#~ msgid "Lock private key"
-#~ msgstr "Bloquear chave privada"
-
-#~ msgid "Lock"
-#~ msgstr "Bloquear"
-
-#~ msgid "Enter password to protect the private key"
-#~ msgstr "Digite a senha para proteger a chave privada"
-
-#~ msgid "Enter password to protect storage"
-#~ msgstr "Digite a senha para proteger o armazenamento"
-
-#~ msgid ""
-#~ "The system wants to store the private key '%s' on your disk. Please enter "
-#~ "a password to lock it with."
-#~ msgstr ""
-#~ "O sistema deseja armazenar a chave privada \"%s\" no seu disco. Por "
-#~ "gentileza insira uma senha para bloqueá-la."
-
-#~ msgid ""
-#~ "The system wants to store '%s' on your disk. Please enter a password to "
-#~ "lock it with."
-#~ msgstr ""
-#~ "O sistema deseja armazenar \"%s\" no seu disco. Por gentileza insira uma "
-#~ "senha para bloqueá-lo."
-
-#~ msgid "Unrecognized or unsupported file."
-#~ msgstr "Arquivo não reconhecido ou sem suporte."
-
-#~ msgid "Could not parse invalid or corrupted file."
-#~ msgstr "Não possível analisar o arquivo inválido ou corrompido."
-
-#~ msgid "Couldn't read secure shell private key: %s"
-#~ msgstr "Não foi possível a leitura da chave privada de SSH: %s"
-
-#~ msgid "Invalid secure shell private key at: %s"
-#~ msgstr "Chave privada de SSH inválida em: %s"
-
-#~ msgid "Couldn't encrypt the SSH key to store it."
-#~ msgstr "Não foi possível criptografar a chave SSH para armazená-la."
-
-#~ msgid "Couldn't encode the SSH key to store it."
-#~ msgstr "Não foi possível codificar a chave SSH para armazená-la."
-
-#~ msgid "Cannot set a random seed"
-#~ msgstr "Não foi possível definir uma semente aleatória"
diff --git a/po/ro.po b/po/ro.po
index 956092c0..89522c9d 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -9,9 +9,8 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.HEAD.ro\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&component=general\n"
-"POT-Creation-Date: 2011-03-10 08:08+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-03-14 13:06+0200\n"
"Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
"Language-Team: Romanian Gnome Team <gnomero-list@lists.sourceforge.net>\n"
@@ -26,7 +25,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Fără nume"
@@ -102,35 +101,34 @@ msgstr "Inelul de chei GNOME: Agent GPG"
msgid "GPG Password Agent"
msgstr "Agent parole GPG"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:291
-#: ../gcr/gcr-key-renderer.c:296
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Necunoscut"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:199
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "Cheie PGP: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:348
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:349
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Introduceți parola"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:383
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Uită această parolă în cazul unei activități de"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:384
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Uită această parolă după"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:385
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Uită această parolă la ieșire"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Autentificare"
@@ -174,7 +172,7 @@ msgstr "Nume comun"
msgid "Surname"
msgstr "Nume familie"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:379
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Număr serial"
@@ -230,30 +228,53 @@ msgstr "Caracteristică DN"
msgid "Pseudonym"
msgstr "Pseudonim"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:287
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "MD2 cu RSA"
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "MD5 cu RSA"
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "SHA1 cu RSA"
-#: ../egg/egg-oid.c:107 ../gcr/gcr-key-renderer.c:289
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "SHA1 cu DSA"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+#, fuzzy
+msgid "Server Authentication"
+msgstr "Certificat server SSL"
+
+#: ../egg/egg-oid.c:108
+#, fuzzy
+msgid "Client Authentication"
+msgstr "Certificat client SSL"
+
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
+
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
+
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
+
#: ../egg/egg-spawn.c:273
#, c-format
msgid "Unexpected error in select() reading data from a child process (%s)"
@@ -266,619 +287,6 @@ msgstr ""
msgid "Unexpected error in waitpid() (%s)"
msgstr "Eroare neașteptată în waitpid() (%s)"
-#: ../gcr/gcr-certificate-renderer.c:82 ../gcr/gcr-parser.c:201
-msgid "Certificate"
-msgstr "Certificat"
-
-#: ../gcr/gcr-certificate-renderer.c:107
-msgid "Extension"
-msgstr "Extensie"
-
-#: ../gcr/gcr-certificate-renderer.c:112
-msgid "Identifier"
-msgstr "Identificator"
-
-#: ../gcr/gcr-certificate-renderer.c:120
-msgid "Value"
-msgstr "Valoare"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "Critical"
-msgstr "Critic"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "Yes"
-msgstr "Da"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "No"
-msgstr "Nu"
-
-#: ../gcr/gcr-certificate-renderer.c:339
-#| msgid "Identifier"
-msgid "Identity"
-msgstr "Identitate"
-
-#: ../gcr/gcr-certificate-renderer.c:343
-msgid "Verified by"
-msgstr "Verificat de"
-
-#: ../gcr/gcr-certificate-renderer.c:350
-#| msgid "Expires On"
-msgid "Expires"
-msgstr "Expiră la"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:360
-msgid "Subject Name"
-msgstr "Nume subiect"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:364
-msgid "Issuer Name"
-msgstr "Nume emitent"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:368
-msgid "Issued Certificate"
-msgstr "Certificat emis"
-
-#: ../gcr/gcr-certificate-renderer.c:373
-msgid "Version"
-msgstr "Versiune"
-
-#: ../gcr/gcr-certificate-renderer.c:387
-msgid "Not Valid Before"
-msgstr "Nu este valid înainte"
-
-#: ../gcr/gcr-certificate-renderer.c:392
-msgid "Not Valid After"
-msgstr "Nu este valid după"
-
-#: ../gcr/gcr-certificate-renderer.c:401
-msgid "Signature Algorithm"
-msgstr "Algoritm semnătură"
-
-#: ../gcr/gcr-certificate-renderer.c:406
-msgid "Signature Parameters"
-msgstr "Parametrii semnătură"
-
-#: ../gcr/gcr-certificate-renderer.c:413
-msgid "Signature"
-msgstr "Semnătură"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:418
-msgid "Public Key Info"
-msgstr "Informații cheie publică"
-
-#: ../gcr/gcr-certificate-renderer.c:423
-msgid "Key Algorithm"
-msgstr "Algoritm cheie"
-
-#: ../gcr/gcr-certificate-renderer.c:429
-msgid "Key Parameters"
-msgstr "Parametrii cheie"
-
-#: ../gcr/gcr-certificate-renderer.c:436
-msgid "Key Size"
-msgstr "Dimensiune cheie"
-
-#: ../gcr/gcr-certificate-renderer.c:444 ../gcr/gcr-key-renderer.c:271
-#: ../gcr/gcr-parser.c:204
-msgid "Public Key"
-msgstr "Cheie publică"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:449
-msgid "Fingerprints"
-msgstr "Amprente"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-#| msgid "Import Certificates/Keys"
-msgid "Import Certificates and Keys"
-msgstr "Importă certificate și chei"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Importă în:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Parolă:"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "La autentificare deblochează automat acest inel de chei"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Blochează acest inel de chei după"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Blochează acest inel de chei după o lipsă de activitate de"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Blochează acest inel de chei la ieșirea din sesiune"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minute"
-
-#: ../gcr/gcr-importer.c:133 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Introduceți parola pentru a debloca cheia privată"
-
-#: ../gcr/gcr-importer.c:135 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Introduceți parola pentru a debloca certificatul"
-
-#: ../gcr/gcr-importer.c:137 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Introduceți parola pentru deblocare"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:146
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Pentru a importa cheia privată, aceasta trebuie deblocată"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:149
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Pentru a importa certificatul, acesta trebuie deblocat"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:152
-msgid "In order to import the data, it must be unlocked"
-msgstr "Pentru a importa datele, acestea trebuie deblocate"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:157
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Pentru a importa cheia privată „%sâ€, aceasta trebuie deblocată"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:160
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Pentru a importa certificatul „%sâ€, acesta trebuie deblocat"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:163
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Pentru a importa „%sâ€, trebuie deblocat"
-
-#: ../gcr/gcr-importer.c:254 ../gcr/gcr-parser.c:1566 ../gcr/gcr-parser.c:1757
-#: ../gck/gck-misc.c:98
-msgid "The operation was cancelled"
-msgstr "Operația a fost anulată"
-
-#: ../gcr/gcr-importer.c:346
-#, c-format
-msgid "No location available to import to"
-msgstr "Nici o locație disponibilă pentru importare"
-
-#: ../gcr/gcr-importer.c:495
-msgid "Import Certificates/Keys"
-msgstr "Importă certificate/chei"
-
-#: ../gcr/gcr-importer.c:502
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Alege o locație pentru a stoca certificatele/cheile importate."
-
-#: ../gcr/gcr-key-renderer.c:69
-msgid "Key"
-msgstr "Cheie"
-
-#: ../gcr/gcr-key-renderer.c:260
-#| msgid "Private Key"
-msgid "Private RSA Key"
-msgstr "Cheie privată RSA"
-
-#: ../gcr/gcr-key-renderer.c:262
-#| msgid "Private Key"
-msgid "Private DSA Key"
-msgstr "Cheie privată DSA"
-
-#: ../gcr/gcr-key-renderer.c:264 ../gcr/gcr-parser.c:198
-msgid "Private Key"
-msgstr "Cheie privată"
-
-#: ../gcr/gcr-key-renderer.c:267 ../gcr/gcr-key-renderer.c:269
-#| msgid "Public Key"
-msgid "Public DSA Key"
-msgstr "Cheie publică DSA"
-
-#: ../gcr/gcr-key-renderer.c:278
-#, c-format,
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-msgstr[1] "%d biți"
-msgstr[2] "%d de biți"
-
-#: ../gcr/gcr-key-renderer.c:279
-#| msgid "Street"
-msgid "Strength"
-msgstr "Putere"
-
-#: ../gcr/gcr-key-renderer.c:292
-#| msgid "Key Algorithm"
-msgid "Algorithm"
-msgstr "Algoritm"
-
-#: ../gcr/gcr-key-renderer.c:299
-#| msgid "Key Size"
-msgid "Size"
-msgstr "Dimensiune"
-
-#. TODO: We need to have consistent key fingerprints.
-#: ../gcr/gcr-key-renderer.c:303
-#| msgid "Fingerprints"
-msgid "Fingerprint"
-msgstr "Amprentă"
-
-#: ../gcr/gcr-parser.c:1569
-msgid "Unrecognized or unsupported data."
-msgstr "Date nerecunoscute sau nesuportate"
-
-#: ../gcr/gcr-parser.c:1572
-msgid "Could not parse invalid or corrupted data."
-msgstr "Nu s-au putut analiza date nevalide sau nesuportate."
-
-#: ../gcr/gcr-parser.c:1575
-msgid "The data is locked"
-msgstr "Datele sunt blocate"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:420
-#, c-format
-#| msgid "Choose a location to store the imported certificates/keys."
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr ""
-"Nu s-a putut găsi o locație în care să se stocheze certificatele fixate."
-
-#: ../gck/gck-uri.c:124 ../gck/gck-uri.c:181 ../gck/gck-uri.c:216
-#: ../gck/gck-uri.c:248
-#, c-format
-msgid "The URI has invalid syntax. The '%s' field encoding is invalid."
-msgstr "URI-ul are sintaxă nevalidă. Codificarea câmpului „%s†nu este validă."
-
-#: ../gck/gck-uri.c:287
-msgid "The URI has does not have the 'pkcs11' scheme."
-msgstr "URI-ul nu are schema „pkcs11â€."
-
-#: ../gck/gck-misc.c:101
-msgid "Insufficient memory available"
-msgstr "Memorie disponibilă insuficientă"
-
-#: ../gck/gck-misc.c:103
-msgid "The specified slot ID is not valid"
-msgstr "ID-ul de slot specificat nu este valid"
-
-#: ../gck/gck-misc.c:105
-msgid "Internal error"
-msgstr "Eroare internă"
-
-#: ../gck/gck-misc.c:107
-msgid "The operation failed"
-msgstr "Operația a eșuat"
-
-#: ../gck/gck-misc.c:109
-msgid "Invalid arguments"
-msgstr "Argument nevalid"
-
-#: ../gck/gck-misc.c:111
-msgid "The module cannot create needed threads"
-msgstr "Modulul nu poate crea firele de execuție necesare"
-
-#: ../gck/gck-misc.c:113
-msgid "The module cannot lock data properly"
-msgstr "Modulul nu poate bloca corespunzător datele"
-
-#: ../gck/gck-misc.c:115
-msgid "The field is read-only"
-msgstr "Acest câmp este doar pentru citire"
-
-#: ../gck/gck-misc.c:117
-msgid "The field is sensitive and cannot be revealed"
-msgstr "Acest câmp este sensibil și nu poate fi afișat"
-
-#: ../gck/gck-misc.c:119
-msgid "The field is invalid or does not exist"
-msgstr "Acest câmp nu este valid sau nu există"
-
-#: ../gck/gck-misc.c:121
-msgid "Invalid value for field"
-msgstr "Valoare nevalidă pentru câmp"
-
-#: ../gck/gck-misc.c:123
-msgid "The data is not valid or unrecognized"
-msgstr "Datele nu sunt valide sau nu sunt recunoscute"
-
-#: ../gck/gck-misc.c:125
-msgid "The data is too long"
-msgstr "Datele sunt prea lungi"
-
-#: ../gck/gck-misc.c:127
-msgid "An error occurred on the device"
-msgstr "S-a produs o eroare pe dispozitiv"
-
-#: ../gck/gck-misc.c:129
-#| msgid "Insufficient memory available on device"
-msgid "Insufficient memory available on the device"
-msgstr "Memorie insuficientă pe dispozitiv"
-
-#: ../gck/gck-misc.c:131
-msgid "The device was removed or unplugged"
-msgstr "Dispozitivul a fost scos sau deconectat"
-
-#: ../gck/gck-misc.c:133
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "Datele criptate nu sunt valide sau nu sunt recunoscute"
-
-#: ../gck/gck-misc.c:135
-msgid "The encrypted data is too long"
-msgstr "Datele criptate sunt prea lungi"
-
-#: ../gck/gck-misc.c:137
-msgid "This operation is not supported"
-msgstr "Operația nu este suportată"
-
-#: ../gck/gck-misc.c:139
-msgid "The key is missing or invalid"
-msgstr "Cheia lipsește sau nu este validă"
-
-#: ../gck/gck-misc.c:141
-msgid "The key is the wrong size"
-msgstr "Cheia este de dimensiune greșită"
-
-#: ../gck/gck-misc.c:143
-msgid "The key is of the wrong type"
-msgstr "Cheia este de tip greșit"
-
-#: ../gck/gck-misc.c:145
-msgid "No key is needed"
-msgstr "Nu este nevoie de cheie"
-
-#: ../gck/gck-misc.c:147
-#| msgid "The key is different from before"
-msgid "The key is different than before"
-msgstr "Cheia diferă de cea de dinainte"
-
-#: ../gck/gck-misc.c:149
-msgid "A key is needed"
-msgstr "Este necesară o cheie"
-
-#: ../gck/gck-misc.c:151
-#| msgid "Cannot include the key in digest"
-msgid "Cannot include the key in the digest"
-msgstr "Nu se poate include cheia în rezumat"
-
-#: ../gck/gck-misc.c:153
-msgid "This operation cannot be done with this key"
-msgstr "Operația nu poate fi efectuată cu această cheie"
-
-#: ../gck/gck-misc.c:155
-msgid "The key cannot be wrapped"
-msgstr "Cheia nu poate fi înfășurată"
-
-#: ../gck/gck-misc.c:157
-msgid "Cannot export this key"
-msgstr "Nu se poate exporta această cheie"
-
-#: ../gck/gck-misc.c:159
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "Mecanismul cripto nu este valid sau nu este recunoscut"
-
-#: ../gck/gck-misc.c:161
-msgid "The crypto mechanism has an invalid argument"
-msgstr "Mecanismul cripto are un argument nevalid"
-
-#: ../gck/gck-misc.c:163
-msgid "The object is missing or invalid"
-msgstr "Obiectul lipsește sau nu este valid"
-
-#: ../gck/gck-misc.c:165
-msgid "Another operation is already taking place"
-msgstr "O altă operație are deja loc"
-
-#: ../gck/gck-misc.c:167
-msgid "No operation is taking place"
-msgstr "Nu se efectuează nici o operație"
-
-#: ../gck/gck-misc.c:169
-msgid "The password or PIN is incorrect"
-msgstr "Parola sau PIN-ul sunt incorecte"
-
-#: ../gck/gck-misc.c:171
-msgid "The password or PIN is invalid"
-msgstr "Parola sau PIN-ul nu sunt valide"
-
-#: ../gck/gck-misc.c:173
-msgid "The password or PIN is of an invalid length"
-msgstr "Parola sau PIN-ul au o lungime nevalidă"
-
-#: ../gck/gck-misc.c:175
-msgid "The password or PIN has expired"
-msgstr "Parola sau PIN-ul au expirat"
-
-#: ../gck/gck-misc.c:177
-msgid "The password or PIN is locked"
-msgstr "Parola sau PIN-ul sunt blocate"
-
-#: ../gck/gck-misc.c:179
-msgid "The session is closed"
-msgstr "Sesiunea este închisă"
-
-#: ../gck/gck-misc.c:181
-msgid "Too many sessions are active"
-msgstr "Prea multe sesiuni active"
-
-#: ../gck/gck-misc.c:183
-msgid "The session is invalid"
-msgstr "Sesiunea nu este validă"
-
-#: ../gck/gck-misc.c:185
-msgid "The session is read-only"
-msgstr "Sesiunea este doar pentru citire"
-
-#: ../gck/gck-misc.c:187
-msgid "An open session exists"
-msgstr "Există o sesiune deschisă"
-
-#: ../gck/gck-misc.c:189
-msgid "A read-only session exists"
-msgstr "Există o sesiune doar pentru citire"
-
-#: ../gck/gck-misc.c:191
-msgid "An administrator session exists"
-msgstr "Există o sesiune de administrare"
-
-#: ../gck/gck-misc.c:193
-msgid "The signature is bad or corrupted"
-msgstr "Semnătura este greșită sau coruptă"
-
-#: ../gck/gck-misc.c:195
-msgid "The signature is unrecognized or corrupted"
-msgstr "Semnătura nu este recunoscută sau este coruptă"
-
-#: ../gck/gck-misc.c:197
-msgid "Certain required fields are missing"
-msgstr "Unele câmpuri necesare lipsesc"
-
-#: ../gck/gck-misc.c:199
-msgid "Certain fields have invalid values"
-msgstr "Unele câmpuri au valori nevalide"
-
-#: ../gck/gck-misc.c:201
-msgid "The device is not present or unplugged"
-msgstr "Dispozitivul nu este prezent sau este deconectat"
-
-#: ../gck/gck-misc.c:203
-msgid "The device is invalid or unrecognizable"
-msgstr "Dispozitivul nu este valid sau nu este recunoscut"
-
-#: ../gck/gck-misc.c:205
-msgid "The device is write protected"
-msgstr "Dispozitivul este protejat la scriere"
-
-#: ../gck/gck-misc.c:207
-msgid "Cannot import because the key is invalid"
-msgstr "Nu se poate importa deoarece cheia nu este validă"
-
-#: ../gck/gck-misc.c:209
-msgid "Cannot import because the key is of the wrong size"
-msgstr "Nu se poate importa deoarece cheia are dimensiune greșită"
-
-#: ../gck/gck-misc.c:211
-msgid "Cannot import because the key is of the wrong type"
-msgstr "Nu se poate importa deoarece cheia este de tip greșit"
-
-#: ../gck/gck-misc.c:213
-msgid "You are already logged in"
-msgstr "Sunteți deja autentificat"
-
-#: ../gck/gck-misc.c:215
-msgid "No user has logged in"
-msgstr "Nu s-a autentificat nici un utilizator"
-
-#: ../gck/gck-misc.c:217
-msgid "The user's password or PIN is not set"
-msgstr "Parola utilizatorului sau PIN-ul nu sunt definite"
-
-#: ../gck/gck-misc.c:219
-msgid "The user is of an invalid type"
-msgstr "Utilizatorul este de tip nevalid"
-
-#: ../gck/gck-misc.c:221
-msgid "Another user is already logged in"
-msgstr "Un alt utilizator este deja autentificat"
-
-#: ../gck/gck-misc.c:223
-#| msgid "Too many users of different types logged in"
-msgid "Too many users of different types are logged in"
-msgstr "Prea mulți utilizatori de tipuri diferite sunt autentificați"
-
-#: ../gck/gck-misc.c:225
-msgid "Cannot import an invalid key"
-msgstr "Nu se poate importa o cheie de tip nevalid"
-
-#: ../gck/gck-misc.c:227
-msgid "Cannot import a key of the wrong size"
-msgstr "Nu se poate importa o cheie de dimensiune greșită"
-
-#: ../gck/gck-misc.c:229
-msgid "Cannot export because the key is invalid"
-msgstr "Nu se poate exporta cheia deoarece nu este validă"
-
-#: ../gck/gck-misc.c:231
-msgid "Cannot export because the key is of the wrong size"
-msgstr "Nu se poate exporta cheia deoarece are o dimensiune greșită"
-
-#: ../gck/gck-misc.c:233
-msgid "Cannot export because the key is of the wrong type"
-msgstr "Nu se poate exporta cheia deoarece are un tip greșit"
-
-#: ../gck/gck-misc.c:235
-msgid "Unable to initialize the random number generator"
-msgstr "Nu s-a putut inițializa generatorul de numere aleatoare"
-
-#: ../gck/gck-misc.c:237
-msgid "No random number generator available"
-msgstr "Nu este disponibil nici un generator de numere aleatoare"
-
-#: ../gck/gck-misc.c:239
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "Mecanism cripto are un parametru nevalid"
-
-#: ../gck/gck-misc.c:241
-msgid "Not enough space to store the result"
-msgstr "Nu există spațiu suficient pentru a stoca rezultatul"
-
-#: ../gck/gck-misc.c:243
-msgid "The saved state is invalid"
-msgstr "Starea salvată nu este validă"
-
-#: ../gck/gck-misc.c:245
-msgid "The information is sensitive and cannot be revealed"
-msgstr "Informațiile sunt sensibile și nu pot fi dezvăluite"
-
-#: ../gck/gck-misc.c:247
-msgid "The state cannot be saved"
-msgstr "Starea nu poate fi salvată"
-
-#: ../gck/gck-misc.c:249
-msgid "The module has not been initialized"
-msgstr "Modulul nu a fost inițializat"
-
-#: ../gck/gck-misc.c:251
-msgid "The module has already been initialized"
-msgstr "Modulul a fost deja inițializat"
-
-#: ../gck/gck-misc.c:253
-msgid "Cannot lock data"
-msgstr "Nu se pot bloca datele"
-
-#: ../gck/gck-misc.c:255
-msgid "The data cannot be locked"
-msgstr "Datele nu pot fi blocate"
-
-#: ../gck/gck-misc.c:257
-msgid "The signature request was rejected by the user"
-msgstr "Cererea de semnătură a fost respinsă de utilizator"
-
-#: ../gck/gck-misc.c:261
-msgid "Unknown error"
-msgstr "Eroare necunoscută"
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Certificat fără nume"
@@ -888,7 +296,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Nu se poate analiza cheia publică SSH"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Deblochează parola pentru: %s"
@@ -951,10 +359,22 @@ msgstr "Deblocarea cheie publică"
msgid "Unlock"
msgstr "Deblochează"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Introduceți parola pentru a debloca cheia privată"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Introduceți parola pentru a debloca certificatul"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Introduceți parola pentru a debloca cheia publică"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Introduceți parola pentru deblocare"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1047,11 +467,11 @@ msgstr "comenzi:"
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:597
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Stochează parole necriptate?"
-#: ../ui/gku-prompt-tool.c:598
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1061,15 +481,15 @@ msgstr ""
"criptate în siguranță. Ele vor putea fi citite de oricine are acces la "
"fișierele dumneavoastră."
-#: ../ui/gku-prompt-tool.c:605
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Folosește stocare nesigură"
-#: ../ui/gku-prompt-tool.c:643
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Parolele nu se potrivesc."
-#: ../ui/gku-prompt-tool.c:653
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Parola nu poate fi goală"
@@ -1108,515 +528,3 @@ msgstr "Par_olă veche:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Parolă:"
-
-#~ msgid "Email"
-#~ msgstr "Email"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>Nu face parte din certificat</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>necunoscut</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<Nu face parte din certificat>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>Amprente</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Emis de</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Emis la</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>Acest certificat a fost verificat de următorii utilizatori:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>Validitate</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "Nume comun (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "Certificat destinatar email"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "Certificat semnare email"
-
-#~ msgid "Issued On"
-#~ msgstr "Emis la"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "Amprentă MD5"
-
-#~ msgid "Organization (O)"
-#~ msgstr "Organizație (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "Departament organizație (OU)"
-
-#~ msgid "SHA1 Fingerprint"
-#~ msgstr "Amprentă SHA1"
-
-#~ msgid "SSL Client Certificate"
-#~ msgstr "Certificat client SSL"
-
-#~ msgid "SSL Server Certificate"
-#~ msgstr "Certificat server SSL"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr "<span size='large' weight='bold'>Importă certificate și chei</span>"
-
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Această opțiune activează componenta PKCS#11 în serviciul gnome-keyring. "
-#~ "Are efect doar la pornirea gnome-session (adică la autentificarea unui "
-#~ "utilizator). Această opțiune poate fi suprascrisă în cazul în care "
-#~ "serviciul este pornit cu anumite argumente în linia de comandă."
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "Această opțiune activează agentul SSH în serviciul gnome-keyring. Are "
-#~ "efect doar la pornirea gnome-keyring-daemon (adică la autentificarea unui "
-#~ "utilizator). Această opțiune poate fi suprascrisă în cazul în care "
-#~ "serviciul este pornit cu anumite argumente în linia de comandă."
-
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Această opțiune activează componenta serviciului secret în serviciul "
-#~ "gnome-keyring. Are efect doar la pornirea gnome-session (adică la "
-#~ "autentificarea unui utilizator). Această opțiune poate fi suprascrisă în "
-#~ "cazul în care serviciul este pornit cu anumite argumente în linia de "
-#~ "comandă."
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "Dacă componenta PKCS#11 din gnome-keyring este activă."
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "Dacă agentul SSH din keyring este activ."
-
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr "Dacă serviciul secret din gnome-keyring este activ."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "Aplicația „%s†(%s) dorește să acceseze o parolă pentru „<object "
-#~ "prop='name'/>†din inelul de chei implicit."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "Aplicația „%s†(%s) dorește să acceseze o parolă pentru „<object "
-#~ "prop='name'/>†din %s."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "Aplicația „%s†dorește să acceseze o parolă pentru „<object prop='name'/"
-#~ ">†din inelul de chei implicit."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "Aplicația „%s†dorește să acceseze o parolă pentru „<object prop='name'/"
-#~ ">†din %s."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "O aplicație necunoscută dorește să acceseze o parolă pentru „<object "
-#~ "prop='name'/>†din inelul de chei implicit."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "O aplicație necunoscută dorește să acceseze o parolă pentru „<object "
-#~ "prop='name'/>†din %s."
-
-#~ msgid "Allow access"
-#~ msgstr "Permite acces"
-
-#~ msgid "Allow application access to keyring?"
-#~ msgstr "Permiteți accesul aplicației la inelul de chei?"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Aplicația „%s†(%s) dorește să acceseze inelul de chei implicit, dar "
-#~ "acesta este blocat"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "AplicaÈ›ia „%s†(%s) doreÈ™te să acceseze inelul de chei „%sâ€, dar acesta "
-#~ "este blocat"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-#~ msgstr ""
-#~ "Aplicația „%s†dorește acces la inelul de chei implicit, dar este blocat"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-#~ msgstr ""
-#~ "AplicaÈ›ia „%s†doreÈ™te acces la inelul de chei „%sâ€, dar este blocat"
-
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "O aplicație necunoscută dorește acces la inelul de chei implicit, dar "
-#~ "este blocat"
-
-#~ msgid "Enter password for default keyring to unlock"
-#~ msgstr ""
-#~ "Introduceți parola pentru pentru deblocarea inelului de chei implicit"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "AplicaÈ›ia „%s†(%s) doreÈ™te să creeze un nou inel de chei numit „%sâ€. Va "
-#~ "trebui să alegeți pentru acesta o parolă cu care să îl puteți folosi."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplicația „%s†(%s) dorește să creeze un nou inel de chei implicit. Va "
-#~ "trebui să alegeți pentru acesta o parolă cu care să îl puteți folosi."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "AplicaÈ›ia „%s†doreÈ™te să creeze un nou inel de chei numit „%sâ€. Va "
-#~ "trebui să alegeți pentru acesta o parolă cu care să îl puteți folosi."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplicația „%s†dorește să creeze un nou inel de chei implicit. Va trebui "
-#~ "să alegeți pentru acesta o parolă cu care să îl puteți folosi."
-
-#~ msgid ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "O aplicație necunoscută dorește să creeze un nou inel de chei implicit. "
-#~ "Va trebui să alegeți pentru acesta o parolă cu care să îl puteți folosi."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplicația „%s†(%s) dorește schimbarea parolei pentru inelul de chei „%"
-#~ "sâ€. Va trebui să alegeÈ›i parola pe care doriÈ›i să o folosiÈ›i."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplicația „%s†(%s) dorește schimbarea parolei pentru inelul de chei "
-#~ "implicit. Alegeți parola ce doriți să o folosiți."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "AplicaÈ›ia „%s†doreÈ™te schimbarea parolei pentru inelul de chei „%sâ€. Va "
-#~ "trebui să alegeți parola pe care doriți să o folosiți."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplicația „%s†dorește schimbarea parolei pentru inelul de chei implicit. "
-#~ "Alegeți parola ce doriți să o folosiți."
-
-#~ msgid ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "O aplicație necunoscută dorește schimbarea parolei pentru inelul de chei "
-#~ "implicit. Alegeți parola ce doriți să o folosiți."
-
-#~ msgid "Choose a new password for the default keyring."
-#~ msgstr "Alegeți o nouă parolă pentru inelul de chei implicit."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-#~ msgstr ""
-#~ "Aplicația „%s†(%s) dorește să stocheze o parolă, dar nu există nici un "
-#~ "inel de chei implicit. Pentru a crea unul, va trebui să alegeți o parolă "
-#~ "cu care să îl puteți utiliza."
-
-#~ msgid ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "Aplicația „%s†dorește să stocheze o parolă, dar nu există nici un inel "
-#~ "de chei implicit. Pentru a crea unul, va trebui să alegeți o parolă cu "
-#~ "care să îl puteți utiliza."
-
-#~ msgid ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "O aplicație necunoscută dorește să stocheze o parolă, dar nu există nici "
-#~ "un inel de chei implicit. Pentru a crea unul, va trebui să alegeți o "
-#~ "parolă cu care să îl puteți utiliza."
-
-#~ msgid "Create Default Keyring"
-#~ msgstr "Creează inel de chei implicit"
-
-#~ msgid "Choose password for default keyring"
-#~ msgstr "Alegeți parola pentru inelul de chei implicit"
-
-#~ msgid "Create Login Keyring"
-#~ msgstr "Crează inele de chei de autentificare"
-
-#~ msgid "Enter your login password"
-#~ msgstr "Introduceți parola de autentificare"
-
-#~ msgid ""
-#~ "Your login keyring was not automatically created when you logged into "
-#~ "this computer. It will now be created."
-#~ msgstr ""
-#~ "Inelul de chei de autentificare nu a fost creat automat la autentificarea "
-#~ "pe acest calculator. Va fi creat acum."
-
-#~ msgid "Automatically unlock this private key when I log in."
-#~ msgstr "Deblochează automat această cheie privată la autentificare."
-
-#~ msgid "Automatically unlock this certificate when I log in."
-#~ msgstr "Deblochează automat acest certificat la autentificare."
-
-#~ msgid "Automatically unlock this public key when I log in."
-#~ msgstr "Deblochează automat această cheie publică la autentificare."
-
-#~ msgid "Automatically unlock this when I log in"
-#~ msgstr "Deblochează automat la autentificare."
-
-#~ msgid "Automatically unlock secure storage when I log in."
-#~ msgstr "Deblochează automat stocarea sigură la autentificare."
-
-#~ msgid ""
-#~ "<b><big>Could not grab your mouse.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>Nu s-a putut capta mausul.</big></b>\n"
-#~ "\n"
-#~ "Este posibil ca o aplicație rău întenționată să supravegheze sesiunea\n"
-#~ " sau probabil tocmai ați făcut clic pe un meniu sau o altă aplicația a "
-#~ "cerut să fie focalizată.\n"
-#~ "\n"
-#~ "Încercați din nou."
-
-#~ msgid ""
-#~ "<b><big>Could not grab your keyboard.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>Nu s-a putut capta tastatura.</big></b>\n"
-#~ "\n"
-#~ "Este posibil ca o aplicație rău întenționată să supravegheze sesiunea\n"
-#~ " sau probabil tocmai ați făcut clic pe un meniu sau o altă aplicația a "
-#~ "cerut să fie focalizată.\n"
-#~ "\n"
-#~ "Încercați din nou."
-
-#~ msgid "_Deny"
-#~ msgstr "_Refuză"
-
-#~ msgid "C_reate"
-#~ msgstr "C_reează"
-
-#~ msgid "C_hange"
-#~ msgstr "Sc_himbă"
-
-#~ msgid "Allow _Once"
-#~ msgstr "Permite _o dată"
-
-#~ msgid "_Always Allow"
-#~ msgstr "Permite perm_anent"
-
-#~ msgid "Removable Disk: %s"
-#~ msgstr "Disc detașabil: %s"
-
-#~ msgid "Removable Disk"
-#~ msgstr "Disc detașabil"
-
-#~ msgid "Home"
-#~ msgstr "Acasă"
-
-#~ msgid "The disk or drive this file is located on is not present"
-#~ msgstr ""
-#~ "Discul sau partiția pe care acest fișier este situat nu este prezent"
-
-#~ msgid "Couldn't create directory: %s"
-#~ msgstr "Nu s-a putut crea dosarul: %s"
-
-#~ msgid "Couldn't delete the file: %s"
-#~ msgstr "Nu s-a putut șterge fișierul: %s"
-
-#~ msgid "Access Denied"
-#~ msgstr "Acces refuzat"
-
-#~ msgid "The gnome-keyring-daemon application is not running."
-#~ msgstr "Aplicația gnome-keyring-daemon nu rulează."
-
-#~ msgid "Error communicating with gnome-keyring-daemon"
-#~ msgstr "Eroare la comunicarea cu gnome-keyring-daemon"
-
-#~ msgid "A keyring with that name already exists"
-#~ msgstr "Există deja un inel de chei cu acest nume"
-
-#~ msgid "Programmer error: The application sent invalid data."
-#~ msgstr "Eroare de programare: Aplicația a trimis date nevalide."
-
-#~ msgid "No matching results"
-#~ msgstr "Nu s-au găsit rezultate"
-
-#~ msgid "A keyring with that name does not exist."
-#~ msgstr "Nu există un inel de chei cu acel nume"
-
-#~ msgid "The keyring has already been unlocked."
-#~ msgstr "Inelul de chei a fost deja deblocat."
-
-#~ msgid "The system wants to import the private key '%s', but it is locked"
-#~ msgstr ""
-#~ "Sistemul doreÈ™te să importe cheia privată „%sâ€, dar aceasta este blocată"
-
-#~ msgid "The system wants to import the certificate '%s', but it is locked"
-#~ msgstr ""
-#~ "Sistemul doreÈ™te să importe certificatul „%sâ€, dar acesta este blocat"
-
-#~ msgid "The system wants to import the public key '%s', but it is locked"
-#~ msgstr ""
-#~ "Sistemul doreÈ™te să importe cheia publică „%sâ€, dar aceasta este blocată"
-
-#~ msgid "The system wants to import '%s', but it is locked"
-#~ msgstr "Sistemul doreÈ™te să importe „%sâ€, dar aceasta este blocată"
-
-#~ msgid "Unrecognized or unsupported file."
-#~ msgstr "Fișier nesuportat sau nerecunoscut."
-
-#~ msgid "Could not parse invalid or corrupted file."
-#~ msgstr "Nu s-a putut analiza fișierul nevalid sau cu erori."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Aplicația „%s†(%s) dorește să acceseze un keyring necunoscut, dar este "
-#~ "blocat"
-
-#~ msgid ""
-#~ "The application '%s' wants access to an unknown keyring, but it is locked"
-#~ msgstr ""
-#~ "Aplicația „%s†dorește acces la un keyring necunoscut, dar este blocat"
-
-#~ msgid ""
-#~ "An unknown application wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "O aplicație necunoscută dorește acces la un keyring necunoscut, dar este "
-#~ "blocat"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr ""
-#~ "Aplicația „%s†(%s) dorește să acceseze parola pentru „%s†într-un "
-#~ "keyring necunoscut."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '%s' in an unknown "
-#~ "keyring."
-#~ msgstr ""
-#~ "Aplicația „%s†dorește să acceseze parola pentru „%s†într-un keyring "
-#~ "necunoscut."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr ""
-#~ "O aplicație necunoscută dorește să acceseze parola pentru „%s†într-un "
-#~ "keyring necunoscut."
-
-#~ msgid "You must specify the type of request to run\n"
-#~ msgstr "Trebuie să specificați tipul cererii pentru rulare\n"
-
-#~ msgid "Unknown request type\n"
-#~ msgstr "Tip de cerere necunoscut\n"
-
-#~ msgid "Password cannot be blank."
-#~ msgstr "Parola nu poate fi goală."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '%s' in %s."
-#~ msgstr "Aplicația „%s†(%s) dorește să acceseze parola pentru „%s†în %s."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '%s' in the "
-#~ "default keyring."
-#~ msgstr ""
-#~ "Aplicația „%s†(%s) dorește să acceseze parola pentru „%s†în keyring-ul "
-#~ "implicit."
-
-#~ msgid "The application '%s' wants to access the password for '%s' in %s."
-#~ msgstr "Aplicația „%s†dorește să acceseze parola pentru „%s†în %s."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '%s' in the default "
-#~ "keyring."
-#~ msgstr ""
-#~ "Aplicația „%s†dorește să acceseze parola pentru „%s†în keyring-ul "
-#~ "implicit."
-
-#~ msgid "An unknown application wants to access the password for '%s' in %s."
-#~ msgstr ""
-#~ "O aplicație necunoscută dorește să acceseze parola pentru „%s†în %s."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '%s' in the "
-#~ "default keyring."
-#~ msgstr ""
-#~ "O aplicație necunoscută dorește să acceseze parola pentru „%s†în keyring-"
-#~ "ul implicit."
diff --git a/po/ru.po b/po/ru.po
index 838d4d91..acb23184 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -11,22 +11,23 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring trunk\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-09-15 09:51+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-17 15:10+0300\n"
"Last-Translator: Yuri Myasoedov <omerta13@yandex.ru>\n"
"Language-Team: Russian <gnome-cyr@gnome.org>\n"
+"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Lokalize 1.0\n"
#. TRANSLATORS: This is the label for an keyring created without a label
-#: ../daemon/dbus/gkd-secret-change.c:78
-#: ../daemon/dbus/gkd-secret-create.c:79
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "БезымÑнный"
@@ -42,8 +43,12 @@ msgstr "Выберите новый пароль Ð´Ð»Ñ ÑвÑзки ключеÐ
#: ../daemon/dbus/gkd-secret-change.c:92
#, c-format
-msgid "An application wants to change the password for the '%s' keyring. Choose the new password you want to use for it."
-msgstr "Приложение хочет изменить пароль Ð´Ð»Ñ ÑвÑзки ключей «%s». Укажите новый пароль, который хотите иÑпользовать."
+msgid ""
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
+msgstr ""
+"Приложение хочет изменить пароль Ð´Ð»Ñ ÑвÑзки ключей «%s». Укажите новый "
+"пароль, который хотите иÑпользовать."
#: ../daemon/dbus/gkd-secret-change.c:111
msgid "The original password was incorrect"
@@ -59,8 +64,12 @@ msgstr "Выберите пароль Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð¹ ÑвÑзки ключеÐ
#: ../daemon/dbus/gkd-secret-create.c:86
#, c-format
-msgid "An application wants to create a new keyring called '%s'. Choose the password you want to use for it."
-msgstr "Приложение хочет Ñоздать новую ÑвÑзку ключей Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ «%s». Ðеобходимо выбрать пароль Ð´Ð»Ñ Ñтой ÑвÑзки ключей."
+msgid ""
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
+msgstr ""
+"Приложение хочет Ñоздать новую ÑвÑзку ключей Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ «%s». Ðеобходимо "
+"выбрать пароль Ð´Ð»Ñ Ñтой ÑвÑзки ключей."
#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
msgid "Certificate and Key Storage"
@@ -94,36 +103,34 @@ msgstr "СвÑзка ключей GNOME: GPG-агент"
msgid "GPG Password Agent"
msgstr "Ðгент Ð¿Ð°Ñ€Ð¾Ð»Ñ GPG"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104
-#: ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "ÐеизвеÑтно"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "Ключ PGP: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Введите идентификационную фразу"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Забыть Ñтот пароль, еÑли проÑтаивает в течение"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Забыть Ñтот пароль поÑле"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Забыть Ñтот пароль при выходе из ÑиÑтемы"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Вход"
@@ -168,7 +175,6 @@ msgid "Surname"
msgstr "ФамилиÑ"
#: ../egg/egg-oid.c:69
-#: ../gcr/gcr-certificate-renderer.c:652
msgid "Serial Number"
msgstr "Серийный номер"
@@ -225,7 +231,6 @@ msgid "Pseudonym"
msgstr "ПÑевдоним"
#: ../egg/egg-oid.c:98
-#: ../gcr/gcr-key-renderer.c:310
msgid "RSA"
msgstr "RSA"
@@ -242,7 +247,6 @@ msgid "SHA1 with RSA"
msgstr "SHA1 Ñ RSA"
#: ../egg/egg-oid.c:103
-#: ../gcr/gcr-key-renderer.c:312
msgid "DSA"
msgstr "DSA"
@@ -274,610 +278,14 @@ msgstr "ПроÑтавление отметки времени"
#: ../egg/egg-spawn.c:273
#, c-format
msgid "Unexpected error in select() reading data from a child process (%s)"
-msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° в select() при чтении данных из дочернего процеÑÑа (%s)"
+msgstr ""
+"ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° в select() при чтении данных из дочернего процеÑÑа (%s)"
#: ../egg/egg-spawn.c:320
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° в waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Ошибка при загрузке Ð¼Ð¾Ð´ÑƒÐ»Ñ PKCS#11: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Ðекорректный модуль PKCS#11: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Ðевозможно наÑтроить модуль PKCS#11: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "Ðевозможно инициализировать модуль PKCS#11: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "Ðевозможно инициализировать зарегиÑтрированные модули PKCS#11: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388
-#: ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "ИмÑ"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Выдан"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "ИÑтекает"
-
-#: ../gcr/gcr-certificate.c:1060
-#: ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101
-#: ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "Сертификат"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Файл Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует.</b>\n"
-"\n"
-"Хотите заменить его новым файлом?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_Заменить"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "ДейÑтвие было отменено."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "ЭкÑпортировать Ñертификат"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Файлы Ñертификата"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "Файлы PEM"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Другое имÑ"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "XMPP Addr"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "Ð­Ð»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð°Ñ Ð¿Ð¾Ñ‡Ñ‚Ð°"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "ÐÐ´Ñ€ÐµÑ X400"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Ðазвание каталога"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "Ðазвание чаÑти EDI"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "IP-адреÑ"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "ЗарегиÑтрированный ID"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "ОÑновные ограничениÑ"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "УдоÑтоверÑющий центр"
-
-#: ../gcr/gcr-certificate-renderer.c:119
-#: ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Да"
-
-#: ../gcr/gcr-certificate-renderer.c:119
-#: ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Ðет"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° пути"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Ðеограниченный"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "РаÑширенное иÑпользование ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "ДопуÑтимые цели"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Идентификатор ключа получателÑ"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Идентификатор ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Ð¦Ð¸Ñ„Ñ€Ð¾Ð²Ð°Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑŒ"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Шифрование ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Данные шифрованиÑ"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "СоглаÑование ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "ПодпиÑÑŒ Ñертификата"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Ðннулирование ÑпиÑка подпиÑей"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "ИÑпользование ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "ÐазначениÑ"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Ðльтернативные имена получателÑ"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "РаÑширение"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Идентификатор"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Значение"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "КритичеÑкий"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Ðе удалоÑÑŒ ÑкÑпортировать Ñертификат."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "ПодлинноÑÑ‚ÑŒ"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Проверен"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "ИÑтекает"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Ð˜Ð¼Ñ Ð²Ñ‹Ð´Ð°ÑŽÑ‰ÐµÐ³Ð¾"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Выданный Ñертификат"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "ВерÑиÑ"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Ðе дейÑтвителен до"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Ðе дейÑтвителен поÑле"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Отпечатки Ñертификата"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675
-#: ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "ПодпиÑÑŒ"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Ðлгоритм подпиÑи"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Параметры подпиÑи"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð± открытом ключе"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Ðлгоритм ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Параметры ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Размер ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "Отпечаток SHA1 Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð°"
-
-#: ../gcr/gcr-certificate-renderer.c:719
-#: ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "Открытый ключ"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_ПодробноÑти"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "Ðе удалоÑÑŒ показать «%s»"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "Ðе удалоÑÑŒ показать файл"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Причина"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Ðе удалоÑÑŒ показать файл Ñтого типа."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Импортировать ключи и Ñертификаты"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Импортировать в:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Пароль:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "Ключ PGP"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "Идентификатор ключа"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "ПроцеÑÑ GnuPG завершилÑÑ Ñ ÐºÐ¾Ð´Ð¾Ð¼: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "ПроцеÑÑ GnuPG был прерван Ñигналом: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695
-#: ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919
-#: ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "ДейÑтвие было отменено"
-
-#: ../gcr/gcr-importer.c:172
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Введите пароль Ð´Ð»Ñ Ñ€Ð°Ð·Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñекретного ключа"
-
-#: ../gcr/gcr-importer.c:174
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Введите пароль Ð´Ð»Ñ Ñ€Ð°Ð·Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñертификата"
-
-#: ../gcr/gcr-importer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Введите пароль Ð´Ð»Ñ Ñ€Ð°Ð·Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Ðеобходимо разблокировать Ñекретный ключ, чтобы импортировать его"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Ðеобходимо разблокировать Ñертификат, чтобы импортировать его"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Ðеобходимо разблокировать данные, чтобы импортировать их"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Ðеобходимо разблокировать Ñекретный ключ «%s», чтобы импортировать его"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Ðеобходимо разблокировать Ñертификат «%s», чтобы импортировать его"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Чтобы импортировать «%s», нужно разблокировать его"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Ðет хранилища Ð´Ð»Ñ Ð¸Ð¼Ð¿Ð¾Ñ€Ñ‚Ð°"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Импортировать ключи/Ñертификаты"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Выберите меÑто Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¸Ð¼Ð¿Ð¾Ñ€Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ñ… ключей и Ñертификатов."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Ключ"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Секретный ключ RSA"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Секретный ключ DSA"
-
-#: ../gcr/gcr-key-renderer.c:287
-#: ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "Секретный ключ"
-
-#: ../gcr/gcr-key-renderer.c:290
-#: ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Открытый ключ DSA"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d бит"
-msgstr[1] "%d бита"
-msgstr[2] "%d бит"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "ÐадёжноÑÑ‚ÑŒ"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Ðлгоритм"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Размер"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Отпечатки"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "ÐераÑпознанные или неподдерживаемые данные."
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "Ðе удалоÑÑŒ разобрать неверные или повреждённые данные."
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "Данные заблокированы"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Ðе удалоÑÑŒ найти меÑто Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÑ€ÐµÐ¿Ð»Ñ‘Ð½Ð½Ð¾Ð³Ð¾ Ñертификата"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "ÐвтоматичеÑки разблокировать Ñту ÑвÑзку ключей поÑле входа в ÑиÑтему"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Блокировать данную ÑвÑзку ключей поÑле"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Блокировать данную ÑвÑзку ключей, еÑли проÑтаивает в течении"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "ÐвтоматичеÑки блокировать ÑвÑзку ключей поÑле выхода из ÑиÑтемы"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "мин"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "Разблокировать: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65
-#: ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Разблокирование"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "Пароль был неверен"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Пароль"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-#| msgid ""
-#| "The contents of '%s' are locked. In order to view the contents, enter a "
-#| "the correct password."
-msgid "The contents of '%s' are locked. In order to view the contents, enter the correct password."
-msgstr "Содержимое «%s» заблокировано. Чтобы проÑмотреть Ñодержимое, введите пароль."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-#| msgid ""
-#| "The contents are locked. In order to view the contents, enter a the "
-#| "correct password."
-msgid "The contents are locked. In order to view the contents, enter the correct password."
-msgstr "Содержимое заблокировано. Чтобы проÑмотреть Ñодержимое, введите пароль."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "ПроÑмотрщик ключей и Ñертификатов GCR"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Показать верÑию приложениÑ"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[файл…]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "— показать файлы Ñертификата и ключа"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "ПроÑмотрщик Ñертификатов"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²ÐºÐ° URI."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "Ð’ URI отÑутÑтвует Ñхема «pkcs11»."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "ÐедопуÑтимый ÑинтакÑÐ¸Ñ URI."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ URI."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "БезымÑнный Ñертификат"
@@ -887,7 +295,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Ðе удалоÑÑŒ разобрать открытый ключ SSH"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Пароль Ð´Ð»Ñ Ñ€Ð°Ð·Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ: %s"
@@ -906,12 +314,19 @@ msgid "Enter password to unlock your login keyring"
msgstr "Введите пароль Ð´Ð»Ñ Ñ€Ð°Ð·Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸ ÑвÑзки ключей Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° в ÑиÑтему"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
-msgid "The password you use to log in to your computer no longer matches that of your login keyring."
-msgstr "Пароль, который вы иÑпользуете Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð°, больше не ÑоответÑтвует паролю ÑвÑзки ключей Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° в ÑиÑтему"
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
+msgstr ""
+"Пароль, который вы иÑпользуете Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð°, больше не ÑоответÑтвует паролю "
+"ÑвÑзки ключей Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° в ÑиÑтему"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
-msgid "The login keyring did not get unlocked when you logged into your computer."
-msgstr "Ваша ÑвÑзка ключей Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° в ÑиÑтему не была разблокирована, когда вы зарегиÑтрировалиÑÑŒ в компьютере."
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr ""
+"Ваша ÑвÑзка ключей Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° в ÑиÑтему не была разблокирована, когда вы "
+"зарегиÑтрировалиÑÑŒ в компьютере."
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
msgid "Unlock Keyring"
@@ -925,7 +340,8 @@ msgstr "Введите пароль Ð´Ð»Ñ Ñ€Ð°Ð·Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑвÑ
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
#, c-format
msgid "An application wants access to the keyring '%s', but it is locked"
-msgstr "Приложение хочет получить доÑтуп к ÑвÑзке ключей «%s», но она заблокирована"
+msgstr ""
+"Приложение хочет получить доÑтуп к ÑвÑзке ключей «%s», но она заблокирована"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
msgid "Unlock private key"
@@ -939,27 +355,46 @@ msgstr "Разблокирование Ñертификата"
msgid "Unlock public key"
msgstr "Разблокирование открытого ключа"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Разблокирование"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Введите пароль Ð´Ð»Ñ Ñ€Ð°Ð·Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñекретного ключа"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Введите пароль Ð´Ð»Ñ Ñ€Ð°Ð·Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñертификата"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Введите пароль Ð´Ð»Ñ Ñ€Ð°Ð·Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¾Ð³Ð¾ ключа"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Введите пароль Ð´Ð»Ñ Ñ€Ð°Ð·Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
msgid "An application wants access to the private key '%s', but it is locked"
-msgstr "Приложение хочет получить доÑтуп к Ñекретному ключу «%s», но он заблокирован"
+msgstr ""
+"Приложение хочет получить доÑтуп к Ñекретному ключу «%s», но он заблокирован"
#. TRANSLATORS: The certificate is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
#, c-format
msgid "An application wants access to the certificate '%s', but it is locked"
-msgstr "Приложение хочет получить доÑтуп к Ñертификату «%s», но он заблокирован"
+msgstr ""
+"Приложение хочет получить доÑтуп к Ñертификату «%s», но он заблокирован"
#. TRANSLATORS: The public key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
#, c-format
msgid "An application wants access to the public key '%s', but it is locked"
-msgstr "Приложение хочет получить доÑтуп к открытому ключу «%s», но он заблокирован"
+msgstr ""
+"Приложение хочет получить доÑтуп к открытому ключу «%s», но он заблокирован"
#. TRANSLATORS: The object '%s' is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
@@ -978,8 +413,12 @@ msgstr "Введите пароль Ð´Ð»Ñ Ñ€Ð°Ð·Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ…Ñ€Ð°
#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
#, c-format
-msgid "An application wants access to the certificate/key storage '%s', but it is locked"
-msgstr "Приложение хочет получить доÑтуп к хранилищу Ñертификатов/ключей «%s», но оно заблокировано"
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr ""
+"Приложение хочет получить доÑтуп к хранилищу Ñертификатов/ключей «%s», но "
+"оно заблокировано"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
msgid "New Password Required"
@@ -991,8 +430,12 @@ msgstr "ТребуетÑÑ Ð½Ð¾Ð²Ñ‹Ð¹ пароль Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð°"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
#, c-format
-msgid "In order to prepare '%s' for storage of certificates or keys, a password is required"
-msgstr "Чтобы подготовить «%s» Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñертификатов и ключей необходимо задать пароль"
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
+"Чтобы подготовить «%s» Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñертификатов и ключей необходимо задать "
+"пароль"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
msgid "Change Password"
@@ -1004,7 +447,8 @@ msgstr "Изменить пароль Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð°"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
-msgid "To change the password for '%s', the original and new passwords are required"
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
msgstr "Чтобы изменить пароль Ð´Ð»Ñ Â«%s», требуетÑÑ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¹ и новый пароль"
#: ../tool/gkr-tool.c:102
@@ -1021,23 +465,28 @@ msgstr "команды: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Хранить пароли незашифрованными?"
-#: ../ui/gku-prompt-tool.c:595
-msgid "By choosing to use a blank password, your stored passwords will not be safely encrypted. They will be accessible by anyone with access to your files."
-msgstr "ЕÑли ввеÑти пуÑтой пароль, то ваши хранимые пароли не будут надёжно зашифрованы. Они будут доÑтупны любому, кто имеет доÑтуп к вашим файлам."
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
+"ЕÑли ввеÑти пуÑтой пароль, то ваши хранимые пароли не будут надёжно "
+"зашифрованы. Они будут доÑтупны любому, кто имеет доÑтуп к вашим файлам."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "ИÑпользовать небезопаÑное хранилище"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Пароли не Ñовпадают."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Пароль не может быть пуÑтым"
@@ -1076,4 +525,3 @@ msgstr "_Старый пароль:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Пароль:"
-
diff --git a/po/rw.po b/po/rw.po
index 2ba0e54e..ada435bf 100644
--- a/po/rw.po
+++ b/po/rw.po
@@ -15,376 +15,504 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring 2.12\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-18 20:49+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2005-03-28 19:35-0700\n"
"Last-Translator: Steve Murphy <murf@e-tools.com>\n"
"Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
+"Language: rw\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../gnome-keyring-ask.c:241
-msgid "_Old password:"
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
msgstr ""
-#: ../gnome-keyring-ask.c:262
-msgid "_Password:"
+#: ../daemon/dbus/gkd-secret-change.c:86
+msgid "Change Keyring Password"
msgstr ""
-#: ../gnome-keyring-ask.c:284
-msgid "_Confirm new password:"
-msgstr ""
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "Ijambobanga... kugirango Gishya"
-#. Strength bar:
-#: ../gnome-keyring-ask.c:303
-msgid "<span weight=\"bold\">Password strength meter:</span>"
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
+msgid ""
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
msgstr ""
+"Porogaramu Kuri Kurema a Gishya Mburabuzi Kuri Guhitamo Ijambobanga... Kuri "
+"Gukoresha kugirango"
-#: ../gnome-keyring-ask.c:329
-msgid "Old password cannot be blank."
+#: ../daemon/dbus/gkd-secret-change.c:111
+msgid "The original password was incorrect"
msgstr ""
-#: ../gnome-keyring-ask.c:340
-msgid "Password cannot be blank."
+#: ../daemon/dbus/gkd-secret-create.c:83
+msgid "New Keyring Password"
msgstr ""
-#: ../gnome-keyring-ask.c:348
-msgid "Passwords do not match."
-msgstr ""
+#: ../daemon/dbus/gkd-secret-create.c:84
+#, fuzzy
+msgid "Choose password for new keyring"
+msgstr "Ijambobanga... kugirango Gishya"
-#: ../gnome-keyring-ask.c:407
+#: ../daemon/dbus/gkd-secret-create.c:86
#, fuzzy, c-format
msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
-msgstr "Porogaramu Kuri Mburabuzi ni Gifunze"
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
+msgstr ""
+"Porogaramu Kuri Kurema a Gishya Kuri Guhitamo Ijambobanga... Kuri Gukoresha "
+"kugirango"
-#: ../gnome-keyring-ask.c:411
-#, fuzzy, c-format
-msgid ""
-"The application '%s' (%s) wants access to the keyring '%s', but it is locked"
-msgstr "Porogaramu Kuri ni Gifunze"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+msgid "Certificate and Key Storage"
+msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:416
-#, fuzzy, c-format
-msgid ""
-"The application '%s' (%s) wants access to an unknown keyring, but it is "
-"locked"
-msgstr "Porogaramu Kuri Kitazwi ni Gifunze"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+msgid "GNOME Keyring: PKCS#11 Component"
+msgstr ""
-#: ../gnome-keyring-ask.c:422 ../gnome-keyring-ask.c:436
-#, fuzzy, c-format
-msgid ""
-"The application '%s' wants access to the default keyring, but it is locked"
-msgstr "Porogaramu Kuri Mburabuzi ni Gifunze"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+msgid "GNOME Keyring: Secret Service"
+msgstr ""
-#: ../gnome-keyring-ask.c:426 ../gnome-keyring-ask.c:441
-#, fuzzy, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
-msgstr "Porogaramu Kuri ni Gifunze"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
+msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:430 ../gnome-keyring-ask.c:446
-#, fuzzy, c-format
-msgid ""
-"The application '%s' wants access to an unknown keyring, but it is locked"
-msgstr "Porogaramu Kuri Kitazwi ni Gifunze"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+msgid "GNOME Keyring: SSH Agent"
+msgstr ""
-#: ../gnome-keyring-ask.c:452
-#, fuzzy
-msgid ""
-"An unknown application wants access to the default keyring, but it is locked"
-msgstr "Kitazwi Porogaramu Kuri Mburabuzi ni Gifunze"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
+msgstr ""
-#: ../gnome-keyring-ask.c:456
-#, fuzzy, c-format
-msgid ""
-"An unknown application wants access to the keyring '%s', but it is locked"
-msgstr "Kitazwi Porogaramu Kuri ni Gifunze"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+msgid "GNOME Keyring: GPG Agent"
+msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:461
-#, fuzzy
-msgid ""
-"An unknown application wants access to an unknown keyring, but it is locked"
-msgstr "Kitazwi Porogaramu Kuri Kitazwi ni Gifunze"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+msgid "GPG Password Agent"
+msgstr ""
-#: ../gnome-keyring-ask.c:468
-#, fuzzy
-msgid "Enter password for default keyring to unlock"
-msgstr "Ijambobanga... kugirango Mburabuzi Kuri"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+msgid "Unknown"
+msgstr ""
-#: ../gnome-keyring-ask.c:470
-#, fuzzy, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "Ijambobanga... kugirango Kuri"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
+#, c-format
+msgid "PGP Key: %s"
+msgstr ""
-#: ../gnome-keyring-ask.c:474
-msgid "Unlock Keyring"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-#: ../gnome-keyring-ask.c:479 ../gnome-keyring-ask.c:563
-#: ../gnome-keyring-ask.c:655 ../gnome-keyring-ask.c:711
-#: ../gnome-keyring-ask.c:798
-#, fuzzy
-msgid "_Deny"
-msgstr "Anga"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
+msgstr ""
-#: ../gnome-keyring-ask.c:517
-#, fuzzy, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-"Porogaramu Kuri Kurema a Gishya Kuri Guhitamo Ijambobanga... Kuri Gukoresha "
-"kugirango"
-#: ../gnome-keyring-ask.c:521
-#, fuzzy, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
msgstr ""
-"Porogaramu Kuri Kurema a Gishya Mburabuzi Kuri Guhitamo Ijambobanga... Kuri "
-"Gukoresha kugirango"
-#: ../gnome-keyring-ask.c:527 ../gnome-keyring-ask.c:537
-#, fuzzy, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
msgstr ""
-"Porogaramu Kuri Kurema a Gishya Kuri Guhitamo Ijambobanga... Kuri Gukoresha "
-"kugirango"
-#: ../gnome-keyring-ask.c:531 ../gnome-keyring-ask.c:541
-#, fuzzy, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:41
+msgid "Domain Component"
msgstr ""
-"Porogaramu Kuri Kurema a Gishya Mburabuzi Kuri Guhitamo Ijambobanga... Kuri "
-"Gukoresha kugirango"
-#: ../gnome-keyring-ask.c:547
-#, fuzzy, c-format
-msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
+#: ../egg/egg-oid.c:43
+msgid "User ID"
msgstr ""
-"Porogaramu Kuri Kurema a Gishya Kuri Guhitamo Ijambobanga... Kuri Gukoresha "
-"kugirango"
-#: ../gnome-keyring-ask.c:551
-#, fuzzy
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:46
+msgid "Email Address"
msgstr ""
-"Porogaramu Kuri Kurema a Gishya Mburabuzi Kuri Guhitamo Ijambobanga... Kuri "
-"Gukoresha kugirango"
-#: ../gnome-keyring-ask.c:558
-msgid "New Keyring Password"
+#: ../egg/egg-oid.c:54
+msgid "Date of Birth"
msgstr ""
-#: ../gnome-keyring-ask.c:559
-#, fuzzy
-msgid "Choose password for new keyring"
-msgstr "Ijambobanga... kugirango Gishya"
+#: ../egg/egg-oid.c:56
+msgid "Place of Birth"
+msgstr ""
-#: ../gnome-keyring-ask.c:602
-#, fuzzy, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:58
+msgid "Gender"
msgstr ""
-"Porogaramu Kuri Kurema a Gishya Mburabuzi Kuri Guhitamo Ijambobanga... Kuri "
-"Gukoresha kugirango"
-#: ../gnome-keyring-ask.c:606
-#, fuzzy, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:60
+msgid "Country of Citizenship"
msgstr ""
-"Porogaramu Kuri Kurema a Gishya Mburabuzi Kuri Guhitamo Ijambobanga... Kuri "
-"Gukoresha kugirango"
-#: ../gnome-keyring-ask.c:612 ../gnome-keyring-ask.c:622
-#, fuzzy, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:62
+msgid "Country of Residence"
msgstr ""
-"Porogaramu Kuri Kurema a Gishya Mburabuzi Kuri Guhitamo Ijambobanga... Kuri "
-"Gukoresha kugirango"
-#: ../gnome-keyring-ask.c:616 ../gnome-keyring-ask.c:626
-#, fuzzy, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:65
+msgid "Common Name"
msgstr ""
-"Porogaramu Kuri Kurema a Gishya Mburabuzi Kuri Guhitamo Ijambobanga... Kuri "
-"Gukoresha kugirango"
-#: ../gnome-keyring-ask.c:632
-#, fuzzy, c-format
-msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:67
+msgid "Surname"
msgstr ""
-"Porogaramu Kuri Kurema a Gishya Mburabuzi Kuri Guhitamo Ijambobanga... Kuri "
-"Gukoresha kugirango"
-#: ../gnome-keyring-ask.c:636
-#, fuzzy
-msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:69
+msgid "Serial Number"
msgstr ""
-"Porogaramu Kuri Kurema a Gishya Mburabuzi Kuri Guhitamo Ijambobanga... Kuri "
-"Gukoresha kugirango"
-#: ../gnome-keyring-ask.c:643
-#, fuzzy, c-format
-msgid "Choose a new password for the '%s' keyring. "
-msgstr "Ijambobanga... kugirango Gishya"
+#: ../egg/egg-oid.c:71
+msgid "Country"
+msgstr ""
+
+#: ../egg/egg-oid.c:73
+msgid "Locality"
+msgstr ""
+
+#: ../egg/egg-oid.c:75
+msgid "State"
+msgstr ""
+
+#: ../egg/egg-oid.c:77
+msgid "Street"
+msgstr ""
+
+#: ../egg/egg-oid.c:79
+msgid "Organization"
+msgstr ""
+
+#: ../egg/egg-oid.c:81
+msgid "Organizational Unit"
+msgstr ""
+
+#: ../egg/egg-oid.c:83
+msgid "Title"
+msgstr ""
+
+#: ../egg/egg-oid.c:85
+msgid "Telephone Number"
+msgstr ""
+
+#: ../egg/egg-oid.c:87
+msgid "Given Name"
+msgstr ""
+
+#: ../egg/egg-oid.c:89
+msgid "Initials"
+msgstr ""
+
+#: ../egg/egg-oid.c:91
+msgid "Generation Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:93
+msgid "DN Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:95
+msgid "Pseudonym"
+msgstr ""
+
+#: ../egg/egg-oid.c:98
+msgid "RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:99
+msgid "MD2 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:100
+msgid "MD5 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:101
+msgid "SHA1 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:103
+msgid "DSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:104
+msgid "SHA1 with DSA"
+msgstr ""
+
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
+
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
+
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
-#: ../gnome-keyring-ask.c:645
+#: ../egg/egg-spawn.c:273
+#, c-format
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr ""
+
+#: ../egg/egg-spawn.c:320
+#, c-format
+msgid "Unexpected error in waitpid() (%s)"
+msgstr ""
+
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr ""
+
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
+msgstr ""
+
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, c-format
+msgid "Unlock password for: %s"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+msgid "The unlock password was incorrect"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+msgid "Unlock Login Keyring"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
#, fuzzy
-msgid "Choose a new password for the default keyring. "
-msgstr "Ijambobanga... kugirango Mburabuzi"
+msgid "Enter password to unlock your login keyring"
+msgstr "Ijambobanga... kugirango Gishya"
-#: ../gnome-keyring-ask.c:650
-msgid "Change Keyring Password"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
msgstr ""
-#: ../gnome-keyring-ask.c:689
-#, fuzzy, c-format
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
msgstr ""
-"Porogaramu Kuri a Ijambobanga... ni Oya Mburabuzi Kurema Kuri Guhitamo "
-"Ijambobanga... Kuri Gukoresha kugirango"
-#: ../gnome-keyring-ask.c:693 ../gnome-keyring-ask.c:697
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
#, fuzzy, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "Ijambobanga... kugirango Kuri"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, fuzzy, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr "Kitazwi Porogaramu Kuri ni Gifunze"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
msgstr ""
-"Porogaramu Kuri a Ijambobanga... ni Oya Mburabuzi Kurema Kuri Guhitamo "
-"Ijambobanga... Kuri Gukoresha kugirango"
-#. app == APPLICATION_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:701
-#, fuzzy
-msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+msgid "Unlock certificate"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
msgstr ""
-"Kitazwi Porogaramu Kuri a Ijambobanga... ni Oya Mburabuzi Kurema Kuri "
-"Guhitamo Ijambobanga... Kuri Gukoresha kugirango"
-#: ../gnome-keyring-ask.c:706
-msgid "Create Default Keyring"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
msgstr ""
-#: ../gnome-keyring-ask.c:707
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
#, fuzzy
-msgid "Choose password for default keyring"
-msgstr "Ijambobanga... kugirango Mburabuzi"
+msgid "Enter password to unlock the private key"
+msgstr "Ijambobanga... kugirango Mburabuzi Kuri"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+#, fuzzy
+msgid "Enter password to unlock the public key"
+msgstr "Ijambobanga... kugirango Mburabuzi Kuri"
-#: ../gnome-keyring-ask.c:747
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
#, fuzzy
-msgid "Allow application access to keyring?"
-msgstr "Porogaramu Kuri"
+msgid "Enter password to unlock"
+msgstr "Ijambobanga... kugirango Kuri"
-#: ../gnome-keyring-ask.c:750
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, fuzzy, c-format
-msgid "The application '%s' (%s) wants to access the password for '%s' in %s."
-msgstr "Porogaramu Kuri Ijambobanga... kugirango in"
+msgid "An application wants access to the private key '%s', but it is locked"
+msgstr "Kitazwi Porogaramu Kuri ni Gifunze"
-#: ../gnome-keyring-ask.c:753
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
#, fuzzy, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '%s' in the "
-"default keyring."
-msgstr "Porogaramu Kuri Ijambobanga... kugirango in Mburabuzi"
+msgid "An application wants access to the certificate '%s', but it is locked"
+msgstr "Kitazwi Porogaramu Kuri ni Gifunze"
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:756
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
#, fuzzy, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '%s' in an "
-"unknown keyring."
-msgstr "Porogaramu Kuri Ijambobanga... kugirango in Kitazwi"
+msgid "An application wants access to the public key '%s', but it is locked"
+msgstr "Kitazwi Porogaramu Kuri ni Gifunze"
-#: ../gnome-keyring-ask.c:761 ../gnome-keyring-ask.c:772
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
#, fuzzy, c-format
-msgid "The application '%s' wants to access the password for '%s' in %s."
-msgstr "Porogaramu Kuri Ijambobanga... kugirango in"
+msgid "An application wants access to '%s', but it is locked"
+msgstr "Kitazwi Porogaramu Kuri ni Gifunze"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
+msgstr ""
-#: ../gnome-keyring-ask.c:764 ../gnome-keyring-ask.c:775
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
+msgstr ""
+
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
#, fuzzy, c-format
msgid ""
-"The application '%s' wants to access the password for '%s' in the default "
-"keyring."
-msgstr "Porogaramu Kuri Ijambobanga... kugirango in Mburabuzi"
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr "Kitazwi Porogaramu Kuri ni Gifunze"
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:767 ../gnome-keyring-ask.c:778
-#, fuzzy, c-format
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
+#, c-format
msgid ""
-"The application '%s' wants to access the password for '%s' in an unknown "
-"keyring."
-msgstr "Porogaramu Kuri Ijambobanga... kugirango in Kitazwi"
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
-#: ../gnome-keyring-ask.c:783
-#, fuzzy, c-format
-msgid "An unknown application wants to access the password for '%s' in %s."
-msgstr "Kitazwi Porogaramu Kuri Ijambobanga... kugirango in"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+msgid "Change Password"
+msgstr ""
-#: ../gnome-keyring-ask.c:786
-#, fuzzy, c-format
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "Ijambobanga... kugirango Gishya"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
+#, c-format
msgid ""
-"An unknown application wants to access the password for '%s' in the default "
-"keyring."
-msgstr "Kitazwi Porogaramu Kuri Ijambobanga... kugirango in Mburabuzi"
+"To change the password for '%s', the original and new passwords are required"
+msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:789
-#, fuzzy, c-format
+#: ../tool/gkr-tool.c:102
+#, c-format
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
+
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
+
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:592
msgid ""
-"An unknown application wants to access the password for '%s' in an unknown "
-"keyring."
-msgstr "Kitazwi Porogaramu Kuri Ijambobanga... kugirango in Kitazwi"
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
-#: ../gnome-keyring-ask.c:794
-msgid "Allow access"
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
msgstr ""
-#: ../gnome-keyring-ask.c:799
-msgid "Allow _Once"
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
msgstr ""
-#: ../gnome-keyring-ask.c:800
-msgid "_Always Allow"
+#: ../ui/gku-prompt-tool.c:649
+msgid "Password cannot be blank"
msgstr ""
-#: ../gnome-keyring-ask.c:840
-#, fuzzy
-msgid "You must specify the type of request to run\n"
-msgstr "Ubwoko Bya Kubaza... Kuri"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
-#: ../gnome-keyring-ask.c:857
-#, fuzzy
-msgid "Unknown request type\n"
-msgstr "Kubaza..."
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:2
+msgid "_Application:"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:3
+msgid "_Confirm:"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:6
+msgid "_Old Password:"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr ""
diff --git a/po/si.po b/po/si.po
index 8984901c..ac001cd9 100644
--- a/po/si.po
+++ b/po/si.po
@@ -7,330 +7,508 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.si\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-05-07 03:28+0100\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2007-05-29 15:53+0530\n"
"Last-Translator: Danishka Navin <snavin@redhat.com>\n"
"Language-Team: Sinhala <en@li.org>\n"
+"Language: si\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../daemon/gnome-keyring-ask.c:241
-msgid "_Old password:"
-msgstr "පà·à¶»à¶«à·’ රහස්පදය: (_O)"
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:262
-msgid "_Password:"
-msgstr "රහස්පදය: (__P)"
+#: ../daemon/dbus/gkd-secret-change.c:86
+msgid "Change Keyring Password"
+msgstr "Keyring රහස්පදය වෙනස් කරන්න"
-#: ../daemon/gnome-keyring-ask.c:284
-msgid "_Confirm new password:"
-msgstr "නව රහස්පදය ස්ථිර කරන්න: (_C)"
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "'%s' keyring සඳහ෠නව රහස්පදයක් තොරන්න."
-#. Strength bar:
-#: ../daemon/gnome-keyring-ask.c:303
-msgid "<span weight=\"bold\">Password strength meter:</span>"
-msgstr "<span weight=\"bold\">රහස්පදයේ à·à¶šà·Šà¶­à·’මත් බවේ දර්à·à¶šà¶º:</span>"
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
+msgid ""
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
+msgstr ""
+"keyring ප්â€à¶»à¶šà·˜à¶­à·’යේ තුළ à·–'%s' සඳහ෠වූ රහස්පදය ලබ෠ගà·à¶±à·“මට නොදන්න෠යෙදුමකට අවà·à·Šâ€à¶ºà·€ ඇත."
-#: ../daemon/gnome-keyring-ask.c:329
-msgid "Old password cannot be blank."
-msgstr "පරණ රහස්පදය හිස්ව තà·à¶¶à·’ය නොහà·à¶š."
+#: ../daemon/dbus/gkd-secret-change.c:111
+msgid "The original password was incorrect"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:340
-msgid "Password cannot be blank."
-msgstr "රහස්පදය හිස්ව තà·à¶¶à·’ය නොහà·à¶š."
+#: ../daemon/dbus/gkd-secret-create.c:83
+msgid "New Keyring Password"
+msgstr "නව Keyring රහස්පදය"
-#: ../daemon/gnome-keyring-ask.c:348
-msgid "Passwords do not match."
-msgstr "රහස්පද ගà·à¶½ පෙන්නේ නà·à¶­."
+#: ../daemon/dbus/gkd-secret-create.c:84
+msgid "Choose password for new keyring"
+msgstr "නව Keyring සඳහ෠රහස්පදයක් තà·à¶»à· ගන්න"
-#: ../daemon/gnome-keyring-ask.c:407
+#: ../daemon/dbus/gkd-secret-create.c:86
#, c-format
msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
-msgstr "%s' (%s) යෙදුමට keyring ප්â€à¶»à¶šà·˜à¶­à·’ය භà·à·€à·’ත෠කිරීමට අවà·à·Šâ€à¶ºà·€ ඇත, නමුත් එය අගුලු දම෠ඇත"
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:411
-#, c-format
-msgid "The application '%s' (%s) wants access to the keyring '%s', but it is locked"
-msgstr "%s' (%s) යෙදුමට '%s' keyring භà·à·€à·’ත෠කිරීමට අවà·à·Šâ€à¶ºà·€ ඇත, නමුත් එය අගුලු දම෠ඇත"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+msgid "Certificate and Key Storage"
+msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../daemon/gnome-keyring-ask.c:416
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to an unknown keyring, but it is "
-"locked"
-msgstr "%s' (%s) යෙදුමට නොදන්න෠keyring භà·à·€à·’ත෠කිරීමට අවà·à·Šâ€à¶ºà·€ ඇත, නමුත් එය අගුලු දම෠ඇත"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+msgid "GNOME Keyring: PKCS#11 Component"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:422 ../daemon/gnome-keyring-ask.c:436
-#, c-format
-msgid "The application '%s' wants access to the default keyring, but it is locked"
-msgstr "%s' යෙදුමට keyring ප්â€à¶»à¶šà·˜à¶­à·’ය භà·à·€à·’ත෠කිරීමට අවà·à·Šâ€à¶ºà·€ ඇත, නමුත් එය අගුලු දම෠ඇත"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+msgid "GNOME Keyring: Secret Service"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:426 ../daemon/gnome-keyring-ask.c:441
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
-msgstr "%s' යෙදුමට '%s' keyring භà·à·€à·’ත෠කිරීමට අවà·à·Šâ€à¶ºà·€ ඇත, නමුත් එය අගුලු දම෠ඇත"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
+msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../daemon/gnome-keyring-ask.c:430 ../daemon/gnome-keyring-ask.c:446
-#, c-format
-msgid "The application '%s' wants access to an unknown keyring, but it is locked"
-msgstr "%s' යෙදුමට නොදන්න෠keyring භà·à·€à·’ත෠කිරීමට අවà·à·Šâ€à¶ºà·€ ඇත, නමුත් එය අගුලු දම෠ඇත"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+msgid "GNOME Keyring: SSH Agent"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:452
-msgid "An unknown application wants access to the default keyring, but it is locked"
-msgstr "නොදන්න෠යෙදුමකට keyring ප්â€à¶»à¶šà·˜à¶­à·’ය භà·à·€à·’ත෠කිරීමට අවà·à·Šâ€à¶ºà·€ ඇත, නමුත් එය අගුලු දම෠ඇත"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:456
-#, c-format
-msgid "An unknown application wants access to the keyring '%s', but it is locked"
-msgstr "නොදන්න෠යෙදුමකට '%s' keyring භà·à·€à·’ත෠කිරීමට අවà·à·Šâ€à¶ºà·€ ඇත, නමුත් එය අගුලු දම෠ඇත"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+msgid "GNOME Keyring: GPG Agent"
+msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../daemon/gnome-keyring-ask.c:461
-msgid "An unknown application wants access to an unknown keyring, but it is locked"
-msgstr "නොදන්න෠යෙදුමකට නොදන්න෠keyring භà·à·€à·’ත෠කිරීමට අවà·à·Šâ€à¶ºà·€ ඇත, නමුත් එය අගුලු දම෠ඇත"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+msgid "GPG Password Agent"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:468
-msgid "Enter password for default keyring to unlock"
-msgstr "අගුලු විවෘත කිරීම සඳහ෠keyring ප්â€à¶»à¶šà·˜à¶­à·’ය සඳහ෠රහස්පදය ඇතුලත් කරන්න"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+msgid "Unknown"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:470
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "අගුලු විවෘත කිරීම සඳහ෠'%s' keyring සඳහ෠රහස්පදය ඇතුලත් කරන්න"
+msgid "PGP Key: %s"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:474
-msgid "Unlock Keyring"
-msgstr "Keyring අගුලු අරින්න"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:479 ../daemon/gnome-keyring-ask.c:563
-#: ../daemon/gnome-keyring-ask.c:655 ../daemon/gnome-keyring-ask.c:711
-#: ../daemon/gnome-keyring-ask.c:798
-msgid "_Deny"
-msgstr "අත්හිටු වීම (_D)"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:517
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-#: ../daemon/gnome-keyring-ask.c:521
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
msgstr ""
-#: ../daemon/gnome-keyring-ask.c:527 ../daemon/gnome-keyring-ask.c:537
-#, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
msgstr ""
-#: ../daemon/gnome-keyring-ask.c:531 ../daemon/gnome-keyring-ask.c:541
-#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:41
+msgid "Domain Component"
msgstr ""
-#: ../daemon/gnome-keyring-ask.c:547
-#, c-format
-msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
+#: ../egg/egg-oid.c:43
+msgid "User ID"
msgstr ""
-#: ../daemon/gnome-keyring-ask.c:551
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../egg/egg-oid.c:46
+msgid "Email Address"
msgstr ""
-#: ../daemon/gnome-keyring-ask.c:558
-msgid "New Keyring Password"
-msgstr "නව Keyring රහස්පදය"
+#: ../egg/egg-oid.c:54
+msgid "Date of Birth"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:559
-msgid "Choose password for new keyring"
-msgstr "නව Keyring සඳහ෠රහස්පදයක් තà·à¶»à· ගන්න"
+#: ../egg/egg-oid.c:56
+msgid "Place of Birth"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:602
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:58
+msgid "Gender"
msgstr ""
-#: ../daemon/gnome-keyring-ask.c:606
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:60
+msgid "Country of Citizenship"
msgstr ""
-#: ../daemon/gnome-keyring-ask.c:612 ../daemon/gnome-keyring-ask.c:622
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:62
+msgid "Country of Residence"
msgstr ""
-#: ../daemon/gnome-keyring-ask.c:616 ../daemon/gnome-keyring-ask.c:626
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:65
+msgid "Common Name"
msgstr ""
-#: ../daemon/gnome-keyring-ask.c:632
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:67
+msgid "Surname"
msgstr ""
-#: ../daemon/gnome-keyring-ask.c:636
-msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:69
+msgid "Serial Number"
msgstr ""
-#: ../daemon/gnome-keyring-ask.c:643
-#, c-format
-msgid "Choose a new password for the '%s' keyring. "
-msgstr "'%s' keyring සඳහ෠නව රහස්පදයක් තොරන්න."
+#: ../egg/egg-oid.c:71
+msgid "Country"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:645
-msgid "Choose a new password for the default keyring. "
-msgstr "keyring ප්â€à¶»à¶šà·˜à¶­à·’ය සඳහ෠නව රහස්පදයක් තොරන්න."
+#: ../egg/egg-oid.c:73
+msgid "Locality"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:650
-msgid "Change Keyring Password"
-msgstr "Keyring රහස්පදය වෙනස් කරන්න"
+#: ../egg/egg-oid.c:75
+msgid "State"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:689
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../egg/egg-oid.c:77
+msgid "Street"
msgstr ""
-#: ../daemon/gnome-keyring-ask.c:693 ../daemon/gnome-keyring-ask.c:697
-#, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../egg/egg-oid.c:79
+msgid "Organization"
msgstr ""
-#. app == APPLICATION_NAME_UNKNOWN
-#: ../daemon/gnome-keyring-ask.c:701
-msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../egg/egg-oid.c:81
+msgid "Organizational Unit"
+msgstr ""
+
+#: ../egg/egg-oid.c:83
+msgid "Title"
+msgstr ""
+
+#: ../egg/egg-oid.c:85
+msgid "Telephone Number"
+msgstr ""
+
+#: ../egg/egg-oid.c:87
+msgid "Given Name"
+msgstr ""
+
+#: ../egg/egg-oid.c:89
+msgid "Initials"
+msgstr ""
+
+#: ../egg/egg-oid.c:91
+msgid "Generation Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:93
+msgid "DN Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:95
+msgid "Pseudonym"
+msgstr ""
+
+#: ../egg/egg-oid.c:98
+msgid "RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:99
+msgid "MD2 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:100
+msgid "MD5 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:101
+msgid "SHA1 with RSA"
msgstr ""
-#: ../daemon/gnome-keyring-ask.c:706
-msgid "Create Default Keyring"
-msgstr "Keyring ප්â€à¶»à¶šà·˜à¶­à·’ය නිර්මà·à¶«à¶º කරන්න"
+#: ../egg/egg-oid.c:103
+msgid "DSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:104
+msgid "SHA1 with DSA"
+msgstr ""
+
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:707
-msgid "Choose password for default keyring"
-msgstr "keyring ප්â€à¶»à¶šà·˜à¶­à·’ය සඳහ෠රහස්පදයක් තà·à¶»à·à¶œà¶±à·Šà¶±"
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
+
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:747
-msgid "Allow application access to keyring?"
-msgstr "යෙදුම් සඳහ෠keyring භà·à·€à·’තය ඉඩ දෙන්නට?"
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:750
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid "The application '%s' (%s) wants to access the password for '%s' in %s."
-msgstr "'%s' (%s) යෙදුමට %s සඳහ෠%s තුල ඇති රහස්පදය ලබ෠ගà·à¶±à·“මට අවà·à·Šâ€à¶ºà·€ ඇත."
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:753
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '%s' in the "
-"default keyring."
-msgstr "keyring ප්â€à¶»à¶šà·˜à¶­à·’ය තුළ'%s' සඳහ෠වූ රහස්පදය ලබ෠ගà·à¶±à·“මට '%s' (%s) යෙදුමට අවà·à·Šâ€à¶ºà·€ ඇත."
+msgid "Unexpected error in waitpid() (%s)"
+msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../daemon/gnome-keyring-ask.c:756
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr ""
+
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
+msgstr ""
+
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
+msgid "Unlock password for: %s"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+msgid "The unlock password was incorrect"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+#, fuzzy
+msgid "Unlock Login Keyring"
+msgstr "Keyring අගුලු අරින්න"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
+msgstr "නව Keyring සඳහ෠රහස්පදයක් තà·à¶»à· ගන්න"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
msgid ""
-"The application '%s' (%s) wants to access the password for '%s' in an "
-"unknown keyring."
-msgstr "නොදන්න෠keyring තුළ'%s' සඳහ෠වූ රහස්පදය ලබ෠ගà·à¶±à·“මට '%s' (%s) යෙදුමට අවà·à·Šâ€à¶ºà·€ ඇත."
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:761 ../daemon/gnome-keyring-ask.c:772
-#, c-format
-msgid "The application '%s' wants to access the password for '%s' in %s."
-msgstr "'%s' යෙදුමට %s සඳහ෠%s තුල ඇති රහස්පදය ලබ෠ගà·à¶±à·“මට අවà·à·Šâ€à¶ºà·€ ඇත."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "Keyring අගුලු අරින්න"
-#: ../daemon/gnome-keyring-ask.c:764 ../daemon/gnome-keyring-ask.c:775
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
#, c-format
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "අගුලු විවෘත කිරීම සඳහ෠'%s' keyring සඳහ෠රහස්පදය ඇතුලත් කරන්න"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, fuzzy, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr "නොදන්න෠යෙදුමකට '%s' keyring භà·à·€à·’ත෠කිරීමට අවà·à·Šâ€à¶ºà·€ ඇත, නමුත් එය අගුලු දම෠ඇත"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+#, fuzzy
+msgid "Unlock certificate"
+msgstr "Keyring අගුලු අරින්න"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+#, fuzzy
+msgid "Unlock"
+msgstr "Keyring අගුලු අරින්න"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+#, fuzzy
+msgid "Enter password to unlock the private key"
+msgstr "අගුලු විවෘත කිරීම සඳහ෠keyring ප්â€à¶»à¶šà·˜à¶­à·’ය සඳහ෠රහස්පදය ඇතුලත් කරන්න"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+#, fuzzy
+msgid "Enter password to unlock the public key"
+msgstr "අගුලු විවෘත කිරීම සඳහ෠keyring ප්â€à¶»à¶šà·˜à¶­à·’ය සඳහ෠රහස්පදය ඇතුලත් කරන්න"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+#, fuzzy
+msgid "Enter password to unlock"
+msgstr "අගුලු විවෘත කිරීම සඳහ෠'%s' keyring සඳහ෠රහස්පදය ඇතුලත් කරන්න"
+
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
+#, fuzzy, c-format
+msgid "An application wants access to the private key '%s', but it is locked"
+msgstr "නොදන්න෠යෙදුමකට '%s' keyring භà·à·€à·’ත෠කිරීමට අවà·à·Šâ€à¶ºà·€ ඇත, නමුත් එය අගුලු දම෠ඇත"
+
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
+#, fuzzy, c-format
+msgid "An application wants access to the certificate '%s', but it is locked"
+msgstr "නොදන්න෠යෙදුමකට '%s' keyring භà·à·€à·’ත෠කිරීමට අවà·à·Šâ€à¶ºà·€ ඇත, නමුත් එය අගුලු දම෠ඇත"
+
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
+#, fuzzy, c-format
+msgid "An application wants access to the public key '%s', but it is locked"
+msgstr "නොදන්න෠යෙදුමකට '%s' keyring භà·à·€à·’ත෠කිරීමට අවà·à·Šâ€à¶ºà·€ ඇත, නමුත් එය අගුලු දම෠ඇත"
+
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
+#, fuzzy, c-format
+msgid "An application wants access to '%s', but it is locked"
+msgstr "නොදන්න෠යෙදුමකට '%s' keyring භà·à·€à·’ත෠කිරීමට අවà·à·Šâ€à¶ºà·€ ඇත, නමුත් එය අගුලු දම෠ඇත"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
+msgstr ""
+
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, fuzzy, c-format
msgid ""
-"The application '%s' wants to access the password for '%s' in the default "
-"keyring."
-msgstr "keyring ප්â€à¶»à¶šà·˜à¶­à·’ය තුළ'%s' සඳහ෠වූ රහස්පදය ලබ෠ගà·à¶±à·“මට '%s' යෙදුමට අවà·à·Šâ€à¶ºà·€ ඇත."
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr "නොදන්න෠යෙදුමකට '%s' keyring භà·à·€à·’ත෠කිරීමට අවà·à·Šâ€à¶ºà·€ ඇත, නමුත් එය අගුලු දම෠ඇත"
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../daemon/gnome-keyring-ask.c:767 ../daemon/gnome-keyring-ask.c:778
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
#, c-format
msgid ""
-"The application '%s' wants to access the password for '%s' in an unknown "
-"keyring."
-msgstr "නොදන්න෠keyring තුළ'%s' සඳහ෠වූ රහස්පදය ලබ෠ගà·à¶±à·“මට '%s' යෙදුමට අවà·à·Šâ€à¶ºà·€ ඇත."
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:783
-#, c-format
-msgid "An unknown application wants to access the password for '%s' in %s."
-msgstr "නොදන්න෠යෙදුමකට '%s'සඳහ෠%s තුල ඇති රහස්පදය ලබ෠ගà·à¶±à·“මට අවà·à·Šâ€à¶ºà·€ ඇත."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "Keyring රහස්පදය වෙනස් කරන්න"
-#: ../daemon/gnome-keyring-ask.c:786
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "නව Keyring සඳහ෠රහස්පදයක් තà·à¶»à· ගන්න"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
msgid ""
-"An unknown application wants to access the password for '%s' in the default "
-"keyring."
-msgstr "keyring ප්â€à¶»à¶šà·˜à¶­à·’යේ තුළ à·–'%s' සඳහ෠වූ රහස්පදය ලබ෠ගà·à¶±à·“මට නොදන්න෠යෙදුමකට අවà·à·Šâ€à¶ºà·€ ඇත."
+"To change the password for '%s', the original and new passwords are required"
+msgstr ""
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../daemon/gnome-keyring-ask.c:789
+#: ../tool/gkr-tool.c:102
#, c-format
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
+
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
+
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:592
msgid ""
-"An unknown application wants to access the password for '%s' in an unknown "
-"keyring."
-msgstr "නොදන්න෠keyring තුළ'%s' සඳහ෠වූ රහස්පදය ලබ෠ගà·à¶±à·“මට සනොදන්න෠යෙදුමකට අවà·à·Šâ€à¶ºà·€ ඇත."
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr "රහස්පද ගà·à¶½ පෙන්නේ නà·à¶­."
+
+#: ../ui/gku-prompt-tool.c:649
+#, fuzzy
+msgid "Password cannot be blank"
+msgstr "රහස්පදය හිස්ව තà·à¶¶à·’ය නොහà·à¶š."
-#: ../daemon/gnome-keyring-ask.c:794
-msgid "Allow access"
-msgstr "පිවිසීමට ඉඩදෙන්න"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:799
-msgid "Allow _Once"
-msgstr "එක් වරක් ඉඩදෙන්න (_O)"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:800
-msgid "_Always Allow"
-msgstr "à·ƒà·à¶¸à·€à·’ටම ඉඩදෙන්න (_A)"
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:840
-msgid "You must specify the type of request to run\n"
-msgstr "ක්â€à¶»à·’යà·à¶­à·Šà¶¸à¶š කිරිමට ඔබ ඉල්ලීම් ආකà·à¶»à¶º දà·à¶šà·Šà·€à·’ය යුතුම වේ\n"
+#: ../ui/gku-prompt.ui.h:2
+msgid "_Application:"
+msgstr ""
-#: ../daemon/gnome-keyring-ask.c:857
-msgid "Unknown request type\n"
-msgstr "නොදන්න෠ඉල්ලීම් ආකà·à¶»à¶ºà¶šà·Š\n"
+#: ../ui/gku-prompt.ui.h:3
+msgid "_Confirm:"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr ""
+
+#: ../ui/gku-prompt.ui.h:6
+#, fuzzy
+msgid "_Old Password:"
+msgstr "පà·à¶»à¶«à·’ රහස්පදය: (_O)"
+
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "රහස්පදය: (__P)"
diff --git a/po/sk.po b/po/sk.po
index 00692eaf..795c46a2 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -8,21 +8,21 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&component=general\n"
-"POT-Creation-Date: 2010-10-19 01:58+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2010-12-14 10:33+0100\n"
"Last-Translator: Mário BuÄi <mario.buci@gmail.com>\n"
"Language-Team: Slovak <gnome-sk-list@gnome.org>\n"
+"Language: sk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
#. TRANSLATORS: This is the label for an keyring created without a label
-#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:74
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr ""
@@ -50,15 +50,15 @@ msgstr ""
msgid "The original password was incorrect"
msgstr "Pôvodné heslo bolo nesprávne"
-#: ../daemon/dbus/gkd-secret-create.c:78
+#: ../daemon/dbus/gkd-secret-create.c:83
msgid "New Keyring Password"
msgstr "Nové heslo zväzku kľúÄov"
-#: ../daemon/dbus/gkd-secret-create.c:79
+#: ../daemon/dbus/gkd-secret-create.c:84
msgid "Choose password for new keyring"
msgstr "Zvoľte si heslo pre nový zväzok kľúÄov"
-#: ../daemon/dbus/gkd-secret-create.c:81
+#: ../daemon/dbus/gkd-secret-create.c:86
#, c-format
msgid ""
"An application wants to create a new keyring called '%s'. Choose the "
@@ -73,13 +73,11 @@ msgstr "Úložisko certifikátov a kľúÄov"
#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
#, fuzzy
-#| msgid "GNOME Keyring Daemon"
msgid "GNOME Keyring: PKCS#11 Component"
msgstr "Démon zväzku kľúÄov GNOME"
#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
#, fuzzy
-#| msgid "GNOME Keyring Daemon"
msgid "GNOME Keyring: Secret Service"
msgstr "Démon zväzku kľúÄov GNOME"
@@ -89,7 +87,6 @@ msgstr ""
#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
#, fuzzy
-#| msgid "GNOME Keyring Daemon"
msgid "GNOME Keyring: SSH Agent"
msgstr "Démon zväzku kľúÄov GNOME"
@@ -99,47 +96,43 @@ msgstr ""
#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
#, fuzzy
-#| msgid "GNOME Keyring Daemon"
msgid "GNOME Keyring: GPG Agent"
msgstr "Démon zväzku kľúÄov GNOME"
#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
#, fuzzy
-#| msgid "New password strength"
msgid "GPG Password Agent"
msgstr "Sila nového hesla"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:291
-#: ../gcr/gcr-key-renderer.c:296
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
#, fuzzy
-#| msgid "Unknown error"
msgid "Unknown"
msgstr "Neznáma chyba"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:199
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr ""
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:348
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:349
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr ""
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:383
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr ""
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:384
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr ""
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:385
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr ""
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr ""
@@ -185,7 +178,7 @@ msgstr "Bežný názov (CN)"
msgid "Surname"
msgstr "Priezvisko"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:379
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Sériové Äíslo"
@@ -241,653 +234,64 @@ msgstr ""
msgid "Pseudonym"
msgstr "Pseudonym"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:287
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "MD2 s RSA"
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "MD5 s RSA"
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "SHA1 s RSA"
-#: ../egg/egg-oid.c:107 ../gcr/gcr-key-renderer.c:289
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "SHA1 s DSA"
-#: ../egg/egg-spawn.c:273
-#, c-format
-msgid "Unexpected error in select() reading data from a child process (%s)"
-msgstr ""
-
-#: ../egg/egg-spawn.c:320
-#, c-format
-msgid "Unexpected error in waitpid() (%s)"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:82 ../gcr/gcr-parser.c:200
-msgid "Certificate"
-msgstr "Certifikát"
-
-#: ../gcr/gcr-certificate-renderer.c:107
-msgid "Extension"
-msgstr "Rozšírenie"
-
-#: ../gcr/gcr-certificate-renderer.c:112
-msgid "Identifier"
-msgstr "Identifikátor"
-
-#: ../gcr/gcr-certificate-renderer.c:120
-msgid "Value"
-msgstr "Hodnota"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "Critical"
-msgstr "Kritické"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "Yes"
-msgstr "Ãno"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "No"
-msgstr "Nie"
-
-#: ../gcr/gcr-certificate-renderer.c:339
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
#, fuzzy
-#| msgid "Identifier"
-msgid "Identity"
-msgstr "Identifikátor"
+msgid "Server Authentication"
+msgstr "SSL certifikát servera"
-#: ../gcr/gcr-certificate-renderer.c:343
-msgid "Verified by"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:350
-#, fuzzy
-#| msgid "Expires On"
-msgid "Expires"
-msgstr "Vyprší"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:360
-msgid "Subject Name"
-msgstr "Názov subjektu"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:364
-msgid "Issuer Name"
-msgstr "Názov vydavateľa"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:368
-msgid "Issued Certificate"
-msgstr "Vydaný cerfikát"
-
-#: ../gcr/gcr-certificate-renderer.c:373
-msgid "Version"
-msgstr "Verzia"
-
-#: ../gcr/gcr-certificate-renderer.c:387
-msgid "Not Valid Before"
-msgstr "Neplatný pred"
-
-#: ../gcr/gcr-certificate-renderer.c:392
-msgid "Not Valid After"
-msgstr "Neplatný po"
-
-#: ../gcr/gcr-certificate-renderer.c:401
-msgid "Signature Algorithm"
-msgstr "Algoritmus podpisu"
-
-#: ../gcr/gcr-certificate-renderer.c:406
-msgid "Signature Parameters"
-msgstr "Parametre podpisu"
-
-#: ../gcr/gcr-certificate-renderer.c:413
-msgid "Signature"
-msgstr "Podpis"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:418
-msgid "Public Key Info"
-msgstr "Informácie o verejnom kľúÄi"
-
-#: ../gcr/gcr-certificate-renderer.c:423
-msgid "Key Algorithm"
-msgstr "Algoritmus kľúÄa"
-
-#: ../gcr/gcr-certificate-renderer.c:429
-msgid "Key Parameters"
-msgstr "Parametre kľúÄa"
-
-#: ../gcr/gcr-certificate-renderer.c:436
-msgid "Key Size"
-msgstr "VeľkosÅ¥ kľúÄa"
-
-#: ../gcr/gcr-certificate-renderer.c:444 ../gcr/gcr-key-renderer.c:271
-#: ../gcr/gcr-parser.c:203
-msgid "Public Key"
-msgstr "Verejný kľúÄ"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:449
-msgid "Fingerprints"
-msgstr "OdtlaÄky"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
+#: ../egg/egg-oid.c:108
#, fuzzy
-#| msgid "Import Certificates/Keys"
-msgid "Import Certificates and Keys"
-msgstr "ImportovaÅ¥ certifikáty/kľúÄe"
+msgid "Client Authentication"
+msgstr "SSL certifikát klienta"
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Importovať do:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Heslo:"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Automaticky odomknúť tento zväzok kľúÄov, keÄ sa prihlásim."
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr ""
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
msgstr ""
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Uzamknúť tento zväzok kľúÄov, keÄ sa odhlásim."
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
msgstr ""
-#: ../gcr/gcr-importer.c:133 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Zadajte heslo na odomknutie súkromného kľúÄa"
-
-#: ../gcr/gcr-importer.c:135 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Zadajte heslo na odomknutie certifikátu"
-
-#: ../gcr/gcr-importer.c:137 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Zadajte heslo na odomknutie"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:146
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Aby mohol byÅ¥ súkromný kÄ¾ÃºÄ importovaný, musí byÅ¥ odomknutý"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:149
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Aby mohol byť certifikát importovaný, musí byť odomknutý"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:152
-msgid "In order to import the data, it must be unlocked"
-msgstr "Aby mohli byť údaje importované, musia byť odomknuté"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:157
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Aby mohol byÅ¥ súkromný kÄ¾ÃºÄ '%s' importovaný, musí byÅ¥ odomknutý"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:160
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Aby mohol byť certifikát '%s' importovaný, musí byť odomknutý"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:163
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Aby mohol byť '%s' importovaný, musí byť odomknutý"
-
-#: ../gcr/gcr-importer.c:254 ../gcr/gcr-parser.c:1565 ../gcr/gcr-parser.c:1756
-#: ../gck/gck-misc.c:98
-msgid "The operation was cancelled"
-msgstr "Operácia bola zrušená"
-
-#: ../gcr/gcr-importer.c:346
-#, c-format
-msgid "No location available to import to"
-msgstr "Nie je dostupné žiadne miesto, kam je možné importovať"
-
-#: ../gcr/gcr-importer.c:495
-msgid "Import Certificates/Keys"
-msgstr "ImportovaÅ¥ certifikáty/kľúÄe"
-
-#: ../gcr/gcr-importer.c:502
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Zvoľte umiestnenie na uloženie importovaných certifikátov/kľúÄov."
-
-#: ../gcr/gcr-key-renderer.c:69
-msgid "Key"
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
msgstr ""
-#: ../gcr/gcr-key-renderer.c:260
-#, fuzzy
-#| msgid "Private Key"
-msgid "Private RSA Key"
-msgstr "Súkromný kľúÄ"
-
-#: ../gcr/gcr-key-renderer.c:262
-#, fuzzy
-#| msgid "Private Key"
-msgid "Private DSA Key"
-msgstr "Súkromný kľúÄ"
-
-#: ../gcr/gcr-key-renderer.c:264 ../gcr/gcr-parser.c:197
-msgid "Private Key"
-msgstr "Súkromný kľúÄ"
-
-#: ../gcr/gcr-key-renderer.c:267 ../gcr/gcr-key-renderer.c:269
-#, fuzzy
-#| msgid "Public Key"
-msgid "Public DSA Key"
-msgstr "Verejný kľúÄ"
-
-#: ../gcr/gcr-key-renderer.c:278
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid "%d bits"
+msgid "Unexpected error in select() reading data from a child process (%s)"
msgstr ""
-#: ../gcr/gcr-key-renderer.c:279
-#, fuzzy
-#| msgid "Street"
-msgid "Strength"
-msgstr "Ulica"
-
-#: ../gcr/gcr-key-renderer.c:292
-#, fuzzy
-#| msgid "Key Algorithm"
-msgid "Algorithm"
-msgstr "Algoritmus kľúÄa"
-
-#: ../gcr/gcr-key-renderer.c:299
-#, fuzzy
-#| msgid "Key Size"
-msgid "Size"
-msgstr "VeľkosÅ¥ kľúÄa"
-
-#. TODO: We need to have consistent key fingerprints.
-#: ../gcr/gcr-key-renderer.c:303
-#, fuzzy
-#| msgid "Fingerprints"
-msgid "Fingerprint"
-msgstr "OdtlaÄky prstov"
-
-#: ../gcr/gcr-parser.c:1568
-msgid "Unrecognized or unsupported data."
-msgstr "Nerozpoznané alebo nepodporované údaje."
-
-#: ../gcr/gcr-parser.c:1571
-msgid "Could not parse invalid or corrupted data."
-msgstr "Nepodarilo sa analyzovať neplatné alebo porušené údaje."
-
-#: ../gcr/gcr-parser.c:1574
-msgid "The data is locked"
-msgstr "Údaj je uzamknutý"
-
-#: ../gck/gck-uri.c:78 ../gck/gck-uri.c:135 ../gck/gck-uri.c:170
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid "The URI has invalid syntax. The '%s' field encoding is invalid."
-msgstr ""
-
-#: ../gck/gck-uri.c:195
-msgid "The URI has does not have the 'pkcs11' scheme."
-msgstr ""
-
-#: ../gck/gck-misc.c:101
-msgid "Insufficient memory available"
-msgstr "Nedostatok dostupnej pamäte"
-
-#: ../gck/gck-misc.c:103
-msgid "The specified slot ID is not valid"
-msgstr "Zadaný identifikátor slotu je neplatný"
-
-#: ../gck/gck-misc.c:105
-msgid "Internal error"
-msgstr "Vnútorná chyba"
-
-#: ../gck/gck-misc.c:107
-msgid "The operation failed"
-msgstr "Operácia zlyhala"
-
-#: ../gck/gck-misc.c:109
-msgid "Invalid arguments"
-msgstr "Neplatné parametre"
-
-#: ../gck/gck-misc.c:111
-msgid "The module cannot create needed threads"
-msgstr "Modul nemôže vytvoriť potrebné vlákna"
-
-#: ../gck/gck-misc.c:113
-msgid "The module cannot lock data properly"
-msgstr "Modul nemôže správne uzamknúť údaje"
-
-#: ../gck/gck-misc.c:115
-msgid "The field is read-only"
-msgstr "Pole je len na Äítanie"
-
-#: ../gck/gck-misc.c:117
-msgid "The field is sensitive and cannot be revealed"
-msgstr "Pole je citlivé a nemôže byť odhalené"
-
-#: ../gck/gck-misc.c:119
-msgid "The field is invalid or does not exist"
-msgstr "Pole je neplatné alebo neexistuje"
-
-#: ../gck/gck-misc.c:121
-msgid "Invalid value for field"
-msgstr "Neplatná hodnota pre pole"
-
-#: ../gck/gck-misc.c:123
-msgid "The data is not valid or unrecognized"
-msgstr "Údaj je neplatný alebo nerozpoznaný"
-
-#: ../gck/gck-misc.c:125
-msgid "The data is too long"
-msgstr "Údaj je príliš dlhý"
-
-#: ../gck/gck-misc.c:127
-msgid "An error occurred on the device"
-msgstr "Na zariadení došlo k chybe"
-
-#: ../gck/gck-misc.c:129
-#, fuzzy
-#| msgid "Insufficient memory available on device"
-msgid "Insufficient memory available on the device"
-msgstr "Na zariadení je nedostatok pamäte"
-
-#: ../gck/gck-misc.c:131
-msgid "The device was removed or unplugged"
-msgstr "Zariadenie bolo odstránené alebo odpojené"
-
-#: ../gck/gck-misc.c:133
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "Zašifrovaný údaj je neplatný alebo nerozpoznaný"
-
-#: ../gck/gck-misc.c:135
-msgid "The encrypted data is too long"
-msgstr "Zašifrovaný údaj je príliš dlhý"
-
-#: ../gck/gck-misc.c:137
-msgid "This operation is not supported"
-msgstr "Operácia nie je podporovaná"
-
-#: ../gck/gck-misc.c:139
-msgid "The key is missing or invalid"
-msgstr "KÄ¾ÃºÄ chýba alebo je neplatný"
-
-#: ../gck/gck-misc.c:141
-msgid "The key is the wrong size"
-msgstr "KÄ¾ÃºÄ má nesprávnu veľkosÅ¥"
-
-#: ../gck/gck-misc.c:143
-msgid "The key is of the wrong type"
-msgstr "KÄ¾ÃºÄ je nesprávneho typu"
-
-#: ../gck/gck-misc.c:145
-msgid "No key is needed"
-msgstr "KÄ¾ÃºÄ nie je potrebný"
-
-#: ../gck/gck-misc.c:147
-#, fuzzy
-#| msgid "The key is different from before"
-msgid "The key is different than before"
-msgstr "KÄ¾ÃºÄ je iný ako predtým"
-
-#: ../gck/gck-misc.c:149
-msgid "A key is needed"
-msgstr "Je potrebný kľúÄ"
-
-#: ../gck/gck-misc.c:151
-#, fuzzy
-#| msgid "Cannot import because the key is of the wrong size"
-msgid "Cannot include the key in the digest"
-msgstr "Nedá sa importovaÅ¥, pretože kÄ¾ÃºÄ má nesprávnu veľkosÅ¥"
-
-#: ../gck/gck-misc.c:153
-msgid "This operation cannot be done with this key"
-msgstr "Operácia nemôže byÅ¥ vykonaná s týmto kľúÄom"
-
-#: ../gck/gck-misc.c:155
-msgid "The key cannot be wrapped"
+msgid "Unexpected error in waitpid() (%s)"
msgstr ""
-#: ../gck/gck-misc.c:157
-msgid "Cannot export this key"
-msgstr "Tento kÄ¾ÃºÄ sa nemôže exportovaÅ¥"
-
-#: ../gck/gck-misc.c:159
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "Mechanizmus šifrovania je neplatný alebo nerozpoznaný"
-
-#: ../gck/gck-misc.c:161
-msgid "The crypto mechanism has an invalid argument"
-msgstr "Mechanizmus šifrovania má neplatný parameter"
-
-#: ../gck/gck-misc.c:163
-msgid "The object is missing or invalid"
-msgstr "Objekt chýba alebo je neplatný"
-
-#: ../gck/gck-misc.c:165
-msgid "Another operation is already taking place"
-msgstr "Už prebieha iná operácia"
-
-#: ../gck/gck-misc.c:167
-msgid "No operation is taking place"
-msgstr "Neprebieha žiadna operácia"
-
-#: ../gck/gck-misc.c:169
-msgid "The password or PIN is incorrect"
-msgstr "Heslo alebo PIN sú nesprávne"
-
-#: ../gck/gck-misc.c:171
-msgid "The password or PIN is invalid"
-msgstr "Heslo alebo PIN sú neplatné"
-
-#: ../gck/gck-misc.c:173
-msgid "The password or PIN is of an invalid length"
-msgstr "Heslo alebo PIN majú neplatnú dĺžku"
-
-#: ../gck/gck-misc.c:175
-msgid "The password or PIN has expired"
-msgstr "Platnosť hesla alebo PINu vypršala"
-
-#: ../gck/gck-misc.c:177
-msgid "The password or PIN is locked"
-msgstr "Heslo alebo PIN sú uzamknuté"
-
-#: ../gck/gck-misc.c:179
-msgid "The session is closed"
-msgstr "Relácia je zatvorená"
-
-#: ../gck/gck-misc.c:181
-msgid "Too many sessions are active"
-msgstr "Je aktívnych príliš veľa relácií"
-
-#: ../gck/gck-misc.c:183
-msgid "The session is invalid"
-msgstr "Relácia je neplatná"
-
-#: ../gck/gck-misc.c:185
-msgid "The session is read-only"
-msgstr "Relácia je len na Äítanie"
-
-#: ../gck/gck-misc.c:187
-msgid "An open session exists"
-msgstr "Existuje otvorená relácia"
-
-#: ../gck/gck-misc.c:189
-msgid "A read-only session exists"
-msgstr "Existuje relácia urÄená len na Äítanie"
-
-#: ../gck/gck-misc.c:191
-msgid "An administrator session exists"
-msgstr "Existuje relácia správcu"
-
-#: ../gck/gck-misc.c:193
-msgid "The signature is bad or corrupted"
-msgstr "Podpis je zlý alebo poškodený"
-
-#: ../gck/gck-misc.c:195
-msgid "The signature is unrecognized or corrupted"
-msgstr "Podpis je nerozpoznaný alebo poškodený"
-
-#: ../gck/gck-misc.c:197
-msgid "Certain required fields are missing"
-msgstr "Niektoré povinné polia chýbajú"
-
-#: ../gck/gck-misc.c:199
-msgid "Certain fields have invalid values"
-msgstr "Niektoré polia majú neplatné hodnoty"
-
-#: ../gck/gck-misc.c:201
-msgid "The device is not present or unplugged"
-msgstr "Zariadenie nie je prítomné, alebo je odpojené"
-
-#: ../gck/gck-misc.c:203
-msgid "The device is invalid or unrecognizable"
-msgstr "Zariadenie je neplatné alebo nerozpoznané"
-
-#: ../gck/gck-misc.c:205
-msgid "The device is write protected"
-msgstr "Zariadenie je chránené proti zápisu"
-
-#: ../gck/gck-misc.c:207
-msgid "Cannot import because the key is invalid"
-msgstr "Nedá sa importovaÅ¥, pretože kÄ¾ÃºÄ je neplatný"
-
-#: ../gck/gck-misc.c:209
-msgid "Cannot import because the key is of the wrong size"
-msgstr "Nedá sa importovaÅ¥, pretože kÄ¾ÃºÄ má nesprávnu veľkosÅ¥"
-
-#: ../gck/gck-misc.c:211
-msgid "Cannot import because the key is of the wrong type"
-msgstr "Nedá sa importovaÅ¥, pretože kÄ¾ÃºÄ je nesprávneho typu"
-
-#: ../gck/gck-misc.c:213
-msgid "You are already logged in"
-msgstr "Už ste prihlásený"
-
-#: ../gck/gck-misc.c:215
-msgid "No user has logged in"
-msgstr "Žiadny používateľ nie je prihlásený"
-
-#: ../gck/gck-misc.c:217
-msgid "The user's password or PIN is not set"
-msgstr "Používateľské heslo alebo PIN nie sú nastavené"
-
-#: ../gck/gck-misc.c:219
-msgid "The user is of an invalid type"
-msgstr "Používateľ je neplatného typu"
-
-#: ../gck/gck-misc.c:221
-msgid "Another user is already logged in"
-msgstr "Už je prihlásený iný používateľ"
-
-#: ../gck/gck-misc.c:223
-#| msgid "Too many users of different types logged in"
-msgid "Too many users of different types are logged in"
-msgstr "Je prihlásených príliš veľa používateľov rôznych typov"
-
-#: ../gck/gck-misc.c:225
-msgid "Cannot import an invalid key"
-msgstr "Nedá sa importovaÅ¥ neplatný kľúÄ"
-
-#: ../gck/gck-misc.c:227
-msgid "Cannot import a key of the wrong size"
-msgstr "Nedá sa importovaÅ¥ kÄ¾ÃºÄ nesprávnej veľkosti"
-
-#: ../gck/gck-misc.c:229
-msgid "Cannot export because the key is invalid"
-msgstr "Nedá sa exportovaÅ¥, pretože kÄ¾ÃºÄ je neplatný"
-
-#: ../gck/gck-misc.c:231
-msgid "Cannot export because the key is of the wrong size"
-msgstr "Nedý sa exportovaÅ¥, pretože kÄ¾ÃºÄ má nesprávnu veľkosÅ¥"
-
-#: ../gck/gck-misc.c:233
-msgid "Cannot export because the key is of the wrong type"
-msgstr "Nedá sa exportovaÅ¥, pretože kÄ¾ÃºÄ je nesprávneho typu"
-
-#: ../gck/gck-misc.c:235
-msgid "Unable to initialize the random number generator"
-msgstr "Nebolo možné inicializovaÅ¥ generátor náhodných Äísel"
-
-#: ../gck/gck-misc.c:237
-msgid "No random number generator available"
-msgstr "Nie je dostupný žiadny generátor náhodných Äísel"
-
-#: ../gck/gck-misc.c:239
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "Mechanizmus šifrovania má neplatný parameter"
-
-#: ../gck/gck-misc.c:241
-msgid "Not enough space to store the result"
-msgstr "Nie je dostatok priestoru na uloženie výsledku"
-
-#: ../gck/gck-misc.c:243
-msgid "The saved state is invalid"
-msgstr "Uložený stav je neplatný"
-
-#: ../gck/gck-misc.c:245
-msgid "The information is sensitive and cannot be revealed"
-msgstr "Informácia je citlivá a nemôže byť odhalená"
-
-#: ../gck/gck-misc.c:247
-msgid "The state cannot be saved"
-msgstr "Stav nemôže byť uložený"
-
-#: ../gck/gck-misc.c:249
-msgid "The module has not been initialized"
-msgstr "Modul nebol inicializovaný"
-
-#: ../gck/gck-misc.c:251
-msgid "The module has already been initialized"
-msgstr "Modul už bol inicializovaný"
-
-#: ../gck/gck-misc.c:253
-msgid "Cannot lock data"
-msgstr "Nie je možné uzamknúť údaj"
-
-#: ../gck/gck-misc.c:255
-msgid "The data cannot be locked"
-msgstr "Údaj nemôže byť uzamknutý"
-
-#: ../gck/gck-misc.c:257
-msgid "The signature request was rejected by the user"
-msgstr "Žiadosť o podpis bola odmietnutá používateľom"
-
-#: ../gck/gck-misc.c:261
-msgid "Unknown error"
-msgstr "Neznáma chyba"
-
-#: ../pkcs11/gkm/gkm-certificate.c:725
+#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Nepomenovaný certifikát"
@@ -896,7 +300,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Nepodarilo sa analyzovaÅ¥ verejný SSH kľúÄ"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Odomknúť heslo pre: %s"
@@ -956,10 +360,22 @@ msgstr "Odomknúť verejný kľúÄ"
msgid "Unlock"
msgstr "Odomknúť"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Zadajte heslo na odomknutie súkromného kľúÄa"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Zadajte heslo na odomknutie certifikátu"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Zadajte heslo na odomknutie verejného kľúÄa"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Zadajte heslo na odomknutie"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -977,7 +393,8 @@ msgstr "Aplikácia požaduje prístup k certifikátu '%s', ten je ale uzamknutý
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
#, c-format
msgid "An application wants access to the public key '%s', but it is locked"
-msgstr "Aplikácia požaduje prístup k verejnému kľúÄu '%s', ten je ale uzamknutý"
+msgstr ""
+"Aplikácia požaduje prístup k verejnému kľúÄu '%s', ten je ale uzamknutý"
#. TRANSLATORS: The object '%s' is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
@@ -1000,7 +417,8 @@ msgid ""
"An application wants access to the certificate/key storage '%s', but it is "
"locked"
msgstr ""
-"Aplikácia požaduje prístup k úložisku certifikátov/kľúÄov '%s', to je ale uzamknuté"
+"Aplikácia požaduje prístup k úložisku certifikátov/kľúÄov '%s', to je ale "
+"uzamknuté"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
msgid "New Password Required"
@@ -1032,11 +450,25 @@ msgid ""
"To change the password for '%s', the original and new passwords are required"
msgstr ""
-#: ../ui/gku-prompt-tool.c:538
+#: ../tool/gkr-tool.c:102
+#, c-format
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
+
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
+
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
+
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Uchovávať heslá bez šifrovania?"
-#: ../ui/gku-prompt-tool.c:539
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1045,18 +477,26 @@ msgstr ""
"Ak použijete prázdne heslo, nebudú vaÅ¡e uložené heslá bezpeÄne Å¡ifrované. "
"Budú prístupné komukoľvek, kto má prístup k vašim súborom."
-#: ../ui/gku-prompt-tool.c:546
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "PoužiÅ¥ nezabezpeÄené úložisko"
-#: ../ui/gku-prompt-tool.c:584
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Heslá nie sú rovnaké."
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Heslo nemôže byť prázdne"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
+
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
+
#: ../ui/gku-prompt.ui.h:1
msgid "New password strength"
msgstr "Sila nového hesla"
@@ -1084,398 +524,3 @@ msgstr "_Staré heslo:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Heslo:"
-
-#~ msgid "Email"
-#~ msgstr "E-mail"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>Nie je súÄasÅ¥ certifikátu</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>neznáme</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<Nie je súÄasÅ¥ certifikátu>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>OdtlaÄky prstov</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Vydané od</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Vydané pre</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>Tento certifikát bol overený pre nasledovné úÄely:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>Platnosť</b>"
-
-# Toto je v niektorých prípadoch prekladané ako Názov domény - ja osobnem by som nevedel Äo mám zadaÅ¥ do poľa Bežný názov
-# Nechávam na posúdenie koordinátora
-#~ msgid "Common Name (CN)"
-#~ msgstr "Bežný názov (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "Certifikát príjemcu e-mailu"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "Certifikát odosielateľa e-mailu"
-
-#~ msgid "Issued On"
-#~ msgstr "Vydaný"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "MD5 odtlacok"
-
-#~ msgid "Organization (O)"
-#~ msgstr "Organizácia (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "OrganizaÄná jednotka (OU)"
-
-#~ msgid "SHA1 Fingerprint"
-#~ msgstr "SHA1 odtlacok"
-
-#~ msgid "SSL Client Certificate"
-#~ msgstr "SSL certifikát klienta"
-
-#~ msgid "SSL Server Certificate"
-#~ msgstr "SSL certifikát servera"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr ""
-#~ "<span size='large' weight='bold'>ImportovaÅ¥ certifikáty a kľuÄe</span>"
-
-#~ msgid "Removable Disk: %s"
-#~ msgstr "Vymeniteľný disk: %s"
-
-#~ msgid "Removable Disk"
-#~ msgstr "Vymeniteľný disk"
-
-#~ msgid "Home"
-#~ msgstr "Domov"
-
-#~ msgid "The disk or drive this file is located on is not present"
-#~ msgstr ""
-#~ "Disk alebo mechanika, na ktorej sa nachádza tento súbor, nie je dostupný"
-
-#~ msgid "Couldn't create directory: %s"
-#~ msgstr "Nie je možné vytvoriÅ¥ prieÄinok: %s"
-
-#~ msgid "Couldn't delete the file: %s"
-#~ msgstr "Nie je možné zmazať súbor: %s"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "Aplikácia '%s' (%s) chce pristupovať k heslu pre '<object prop='name'/>' "
-#~ "v predvolenom zväzku kľúÄov."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "Aplikácia '%s' (%s) chce pristupovať k heslu pre '<object prop='name'/>' "
-#~ "v %s."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "Aplikácia '%s' chce pristupovať k heslu pre '<object prop='name'/>' v "
-#~ "predvolenom zväzku kľúÄov."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "Aplikácia '%s' chce pristupovať k heslu pre '<object prop='name'/>' v %s."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "Neznáma aplikácia chce pristupovať k heslu pre '<object prop='name'/>' v "
-#~ "predvolenom zväzku kľúÄov."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "Neznáma aplikácia chce pristupovať k heslu pre '<object prop='name'/>' v %"
-#~ "s."
-
-#~ msgid "Allow access"
-#~ msgstr "Povoliť prístup"
-
-#~ msgid "Allow application access to keyring?"
-#~ msgstr "PovoliÅ¥ aplikácii prístup ku zväzku kľúÄov?"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Aplikácia '%s' (%s) chce prístup k predvolenému zväzku kľúÄov, ale je "
-#~ "uzamknutý"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Aplikácia '%s' (%s) chce prístup k zväzku kľúÄov '%s', ale je uzamknutý"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-#~ msgstr ""
-#~ "Aplikácia '%s' chce prístup k predvolenému zväzku kľúÄov, ale je uzamknutý"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-#~ msgstr "Aplikácia '%s' chce prístup k zväzku kľúÄov '%s', ale je uzamknutý"
-
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Neznáma aplikácia chce prístup k predvolenému zväzku kľúÄov, ale je "
-#~ "uzamknutý"
-
-#~ msgid "Enter password for default keyring to unlock"
-#~ msgstr "Zadajte heslo na odomknutie predvoleného zväzku kľúÄov"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplikácia '%s' (%s) chce vytvoriÅ¥ nový zväzok kľúÄov nazvaný '%s'. Musíte "
-#~ "si vybrať heslo, ktoré chcete používať pri prístupe k nemu."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplikácia '%s' (%s) chce vytvoriÅ¥ nový predvolený zväzok kľúÄov. Musíte "
-#~ "si vybrať heslo, ktoré chcete používať pri prístupe k nemu."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplikácia '%s' chce vytvoriÅ¥ nový zväzok kľúÄov nazvaný '%s'. Musíte si "
-#~ "vybrať heslo, ktoré chcete používať pri prístupe k nemu."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplikácia '%s' chce vytvoriÅ¥ nový predvolený zväzok kľúÄov. Musíte si "
-#~ "vybrať heslo, ktoré chcete používať pri prístupe k nemu."
-
-#~ msgid ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "Neznáma aplikácia chce vytvoriÅ¥ nový predvolený zväzok kľúÄov. Musíte si "
-#~ "vybrať heslo, ktoré chcete používať pri prístupe k nemu."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplikácia '%s' (%s) chce zmeniÅ¥ heslo pre zväzok kľúÄov '%s'. Musíte si "
-#~ "vybrať heslo, ktoré chcete používať pri prístupe k nemu."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplikácia '%s' (%s) chce zmeniÅ¥ heslo pre predvolený zväzok kľúÄov. "
-#~ "Musíte si vybrať heslo, ktoré chcete používať pri prístupe k nemu."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplikácia '%s' chce zmeniÅ¥ heslo pre zväzok kľúÄov '%s'. Musíte si vybraÅ¥ "
-#~ "heslo, ktoré chcete používať pri prístupe k nemu."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Aplikácia '%s' chce zmeniÅ¥ heslo pre predvolený zväzok kľúÄov. Musíte si "
-#~ "vybrať heslo, ktoré chcete používať pri prístupe k nemu."
-
-#~ msgid ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Neznáma aplikácia chce zmeniÅ¥ heslo pre predvolený zväzok kľúÄov. Musíte "
-#~ "si vybrať heslo, ktoré chcete používať pri prístupe k nemu."
-
-#~ msgid "Choose a new password for the default keyring. "
-#~ msgstr "VybraÅ¥ nové heslo pre predvolený zväzok kľúÄov. "
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-#~ msgstr ""
-#~ "Aplikácia '%s' (%s) chce uložiÅ¥ heslo, ale predvolený zväzok kľúÄov "
-#~ "neexistuje. Aby ste ho vytvorili, musíte si vybrať heslo, ktoré chcete "
-#~ "používať pri prístupe k nemu."
-
-#~ msgid ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "Aplikácia '%s' chce uložiÅ¥ heslo, ale predvolený zväzok kľúÄov "
-#~ "neexistuje. Aby ste ho vytvorili, musíte si vybrať heslo, ktoré chcete "
-#~ "používať pri prístupe k nemu."
-
-#~ msgid ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "Neznáma aplikácia chce uložiÅ¥ heslo, ale predvolený zväzok kľúÄov "
-#~ "neexistuje. Aby ste ho vytvorili, musíte si vybrať heslo, ktoré chcete "
-#~ "používať pri prístupe k nemu."
-
-#~ msgid "Create Default Keyring"
-#~ msgstr "VytvoriÅ¥ predvolený zväzok kľúÄov"
-
-#~ msgid "Choose password for default keyring"
-#~ msgstr "VybraÅ¥ heslo pre predvolený zväzok kľúÄov"
-
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect as gnome-keyring-daemon starts, (ie: when the user logs "
-#~ "in). This setting may be overridden when certain command line arguments "
-#~ "are passed to the daemon."
-#~ msgstr ""
-#~ "Táto voľba povolí komponent PKCS#11 v démonovi gnome-keyring. Prejaví sa "
-#~ "iba pri spúšťaní gnome-keyring-daemon, (napr: keÄ sa užívateľ prihlási). "
-#~ "Toto nastavenie môže byÅ¥ potlaÄené zaslaním istých parametrov príkazového "
-#~ "riadku démonovi."
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "Táto voľba povolí SSH agenta v démonovi gnome-keyring. Prejaví sa iba pri "
-#~ "spúšťaní gnome-keyring-daemon, (napr: keÄ sa užívateľ prihlási). Toto "
-#~ "nastavenie môže byť zmenené zaslaním istých parametrov príkazového riadku "
-#~ "démonovi."
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "Či je zapnutý komponent PKCS#11 v gnome-keyring."
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "Či je zapnutý SSH agent v gnome-keyring."
-
-#~ msgid "Create Login Keyring"
-#~ msgstr "VytvoriÅ¥ prihlasovací zväzok kľúÄov"
-
-#~ msgid "Enter your login password"
-#~ msgstr "Zadajte vaše prihlasovacie heslo"
-
-#~ msgid ""
-#~ "Your login keyring was not automatically created when you logged into "
-#~ "this computer. It will now be created."
-#~ msgstr ""
-#~ "Váš prihlasovací zväzok kľúÄov nebol automaticky vytvorený po vaÅ¡om "
-#~ "prihlásení. Bude vytvorený teraz."
-
-#~ msgid "Automatically unlock this private key when I log in."
-#~ msgstr "Automaticky odomknúť tento súkromný kľúÄ, keÄ sa prihlásim."
-
-#~ msgid "Automatically unlock this certificate when I log in."
-#~ msgstr "Automaticky odomknúť tento certifikát, keÄ sa prihlásim."
-
-#~ msgid "Automatically unlock this public key when I log in."
-#~ msgstr "Automaticky odomknúť tento verejný kľúÄ, keÄ sa prihlásim."
-
-#~ msgid "Automatically unlock this when I log in"
-#~ msgstr "Toto automaticky odomknúť, keÄ sa prihlásim."
-
-#~ msgid "Automatically unlock secure storage when I log in."
-#~ msgstr "Automaticky odomknúť bezpeÄné úložisko, keÄ sa prihlásim."
-
-#~ msgid ""
-#~ "<b><big>Could not grab your mouse.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>Vstup z myši sa nepodarilo odchytiť.</big></b>\n"
-#~ "\n"
-#~ "VaÅ¡u reláciu môže odpoÄúvaÅ¥ Å¡kodlivý klient alebo ste práve klikli na "
-#~ "menu alebo sa jednoducho zamerala iná aplikácia.\n"
-#~ "\n"
-#~ "Skúste znovu."
-
-#~ msgid ""
-#~ "<b><big>Could not grab your keyboard.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>Vstup z klávesnice sa nepodarilo odchytiť.</big></b>\n"
-#~ "\n"
-#~ "VaÅ¡u reláciu môže odpoÄúvaÅ¥ Å¡kodlivý klient alebo ste práve klikli na "
-#~ "menu alebo sa jednoducho zamerala iná aplikácia.\n"
-#~ "\n"
-#~ "Skúste znovu."
-
-#~ msgid "_Deny"
-#~ msgstr "O_dmietnuť"
-
-#~ msgid "C_reate"
-#~ msgstr "Vytv_oriť"
-
-#~ msgid "C_hange"
-#~ msgstr "_Zmeniť"
-
-#~ msgid "Allow _Once"
-#~ msgstr "Povoliť _raz"
-
-#~ msgid "_Always Allow"
-#~ msgstr "Povoliť _vždy"
-
-#~ msgid "Access Denied"
-#~ msgstr "Prístup odmietnutý"
-
-#~ msgid "The gnome-keyring-daemon application is not running."
-#~ msgstr "Aplikácia gnome-keyring-daemon nebeží."
-
-#~ msgid "Error communicating with gnome-keyring-daemon"
-#~ msgstr "Chyba pri komunikácii s gnome-keyring-daemon"
-
-#~ msgid "A keyring with that name already exists"
-#~ msgstr "Zväzok kľúÄov s takýmto názvom už existuje"
-
-#~ msgid "Programmer error: The application sent invalid data."
-#~ msgstr "Chyba programátora: Aplikácia poslala neplatné údaje."
-
-#~ msgid "No matching results"
-#~ msgstr "Žiadne zodpovedajúce výsledky"
-
-#~ msgid "A keyring with that name does not exist."
-#~ msgstr "Zväzok kľúÄov s takýmto názvom neexistuje."
-
-#~ msgid "The keyring has already been unlocked."
-#~ msgstr "Zväzok kľúÄov už bol odomknutý."
-
-#~ msgid "Old password cannot be blank."
-#~ msgstr "StarĂŠ heslo nemĂ´Ĺže byĹĽ prĂĄzdne."
diff --git a/po/sl.po b/po/sl.po
index b59842d9..09001004 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -8,8 +8,8 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring master\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-09-17 11:10+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-17 17:48+0100\n"
"Last-Translator: Matej UrbanÄiÄ <mateju@svn.gnome.org>\n"
"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
@@ -17,16 +17,16 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
+"%100==4 ? 3 : 0);\n"
"X-Poedit-Language: Slovenian\n"
"X-Poedit-Country: SLOVENIA\n"
"X-Poedit-SourceCharset: utf-8\n"
#. TRANSLATORS: This is the label for an keyring created without a label
-#: ../daemon/dbus/gkd-secret-change.c:78
-#: ../daemon/dbus/gkd-secret-create.c:79
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Neimenovano"
@@ -42,8 +42,12 @@ msgstr "Izberite novo geslo za zbirko kljuÄev '%s'"
#: ../daemon/dbus/gkd-secret-change.c:92
#, c-format
-msgid "An application wants to change the password for the '%s' keyring. Choose the new password you want to use for it."
-msgstr "Program želi spremeniti geslo za zbirko kljuÄev '%s'. Izbrati je treba novo geslo za to zbirko."
+msgid ""
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
+msgstr ""
+"Program želi spremeniti geslo za zbirko kljuÄev '%s'. Izbrati je treba novo "
+"geslo za to zbirko."
# Tukaj govorimo o menjavi gesla, zato je izvorno geslo pravzaprav staro. To je smiselno zato, ker je sicer v programu seahorse vedno omenjeno staro geslo.
#: ../daemon/dbus/gkd-secret-change.c:111
@@ -60,8 +64,12 @@ msgstr "Izbor gesla za novo zbirko kljuÄev"
#: ../daemon/dbus/gkd-secret-create.c:86
#, c-format
-msgid "An application wants to create a new keyring called '%s'. Choose the password you want to use for it."
-msgstr "Program želi ustvariti novo zbirko kljuÄev z imenom '%s'. Izbrati je treba geslo za novo zbirko."
+msgid ""
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
+msgstr ""
+"Program želi ustvariti novo zbirko kljuÄev z imenom '%s'. Izbrati je treba "
+"geslo za novo zbirko."
#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
msgid "Certificate and Key Storage"
@@ -95,36 +103,34 @@ msgstr "GNOME zbirka kljuÄev: GPG agent"
msgid "GPG Password Agent"
msgstr "GPG agent gesel"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104
-#: ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Neznano"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP kljuÄ: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Vnesite Å¡ifrirno geslo"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Pozabi geslo ob nedejavnosti"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Pozabi geslo po"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Pozabi geslo ob odjavi"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Prijava"
@@ -169,7 +175,6 @@ msgid "Surname"
msgstr "Priimek"
#: ../egg/egg-oid.c:69
-#: ../gcr/gcr-certificate-renderer.c:652
msgid "Serial Number"
msgstr "Zaporedna Å¡tevilka"
@@ -226,7 +231,6 @@ msgid "Pseudonym"
msgstr "Psevdonim"
#: ../egg/egg-oid.c:98
-#: ../gcr/gcr-key-renderer.c:310
msgid "RSA"
msgstr "RSA"
@@ -243,7 +247,6 @@ msgid "SHA1 with RSA"
msgstr "SHA1 z RSA"
#: ../egg/egg-oid.c:103
-#: ../gcr/gcr-key-renderer.c:312
msgid "DSA"
msgstr "DSA"
@@ -275,605 +278,15 @@ msgstr "Vstavljanje Äasovnega žiga"
#: ../egg/egg-spawn.c:273
#, c-format
msgid "Unexpected error in select() reading data from a child process (%s)"
-msgstr "NepriÄakovana napaka v select() med branjem podatkov procesa podrejenega predmeta (%s)"
+msgstr ""
+"NepriÄakovana napaka v select() med branjem podatkov procesa podrejenega "
+"predmeta (%s)"
#: ../egg/egg-spawn.c:320
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "NepriÄakovana napaka v waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Odkodirnika PKCS#11 ni mogoÄe naložiti: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Neveljavni odkodirnik PKCS#11: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Odkodirnika PKCS#11 ni mogoÄe nastaviti: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "Odkodirnika PKCS#11 ni mogoÄe zaÄeti: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "Odkodirnikov PKCS#11 ni mogoÄe zaÄeti: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388
-#: ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Ime"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Izdal"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "PreteÄe"
-
-#: ../gcr/gcr-certificate.c:1060
-#: ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101
-#: ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "Potrdilo"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Datoteka s tem imenom že obstaja.</b>\n"
-"\n"
-"Ali jo želite zamenjati z novo datoteko?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_Zamenjaj"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "Dejanje je preklicano."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Izvozi potrdilo"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Datoteke potrdila"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "Datoteke PEM"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Drugo ime"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "XMPP Addr"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "Elektronski naslov"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "Naslov X400"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Ime mape"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "Ime stranke EDI"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "Naslov URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "Naslov IP"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "Vpisan ID"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Splošne omejitve"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "Pooblastitelj potrdila"
-
-#: ../gcr/gcr-certificate-renderer.c:119
-#: ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Da"
-
-#: ../gcr/gcr-certificate-renderer.c:119
-#: ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Ne"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "NajveÄja dolžina poti"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Neomejeno"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Uporaba razÅ¡irjenega kljuÄa"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Dovoljena uporaba"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Javni kljuÄ zadeve"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "DoloÄevalnik kljuÄa"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Digitalni podpis"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Å ifriranje kljuÄa"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Å ifriranje podatkov"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Dogovor o kljuÄu"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Podpis potrdila"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Podpis seznama preklica"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Uporaba kljuÄa potrdila"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Uporaba"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Duga imena predmeta"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Pripona"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "DoloÄilo"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Vrednost"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "KritiÄno"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Ni mogoÄe izvoziti potrdil."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "Istovetnost"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Overjeno preko"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "PreteÄe"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Ime predmeta"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Ime izdajatelja"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Izdano potrdilo"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "RazliÄica"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Neveljaven pred"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Neveljaven po"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Prstni odtisi potrdila"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675
-#: ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Podpis"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Algoritem podpisa"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "DoloÄila podpisa"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Podrobnosti javnega kljuÄa"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Algoritem kljuÄa"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "DoloÄila kljuÄa"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Velikost kljuÄa"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "Prstni odtis SHA1"
-
-#: ../gcr/gcr-certificate-renderer.c:719
-#: ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "Javni kljuÄ"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_Podrobnosti"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "Ni mogoÄe prikazati '%s'"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "Ni mogoÄe prikazati datoteke"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Vzrok"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Ni mogoÄe prikazati datoteke te vrste."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Uvozi potrdila in Å¡ifrirne kljuÄe"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Uvozi v:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Geslo:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "KljuÄ PGP"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "ID kljuÄa"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Opravilo Gnupg je konÄano z napako: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Opravilo Gnupg je nepriÄakovano konÄano s signalom: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695
-#: ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919
-#: ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "Dejanje je preklicano."
-
-#: ../gcr/gcr-importer.c:172
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Vnesite geslo za odklepanje osebnega kljuÄa"
-
-#: ../gcr/gcr-importer.c:174
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Vnesite geslo za odklepanje potrdila"
-
-#: ../gcr/gcr-importer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Vnesite geslo za odklepanje"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Za uvoz osebnega kljuÄa mora biti ta odklenjen"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Za uvoz osebnega potrdila mora biti to odklenjeno"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Za uvoz podatkov morajo biti ti odklenjeni"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Za uvoz osebnega kljuÄa '%s' mora biti ta odklenjen"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Za uvoz osebnega potrdila '%s' mora biti to odklenjeno"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Za uvoz predmeta'%s' mora biti ta odklenjen"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Ni doloÄenega mesta za shranjevanje uvoženih predmetov"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Uvoz potrdil ali kljuÄev"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Izbor mesta za shranjevanje uvoženih potrdil in kljuÄev"
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "KljuÄ"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Osebni kljuÄ RSA"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Osebni kljuÄ DSA"
-
-#: ../gcr/gcr-key-renderer.c:287
-#: ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "Osebni kljuÄ"
-
-#: ../gcr/gcr-key-renderer.c:290
-#: ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Javni kljuÄ DSA"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bitov"
-msgstr[1] "%d bit"
-msgstr[2] "%d bita"
-msgstr[3] "%d biti"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Jakost"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algoritem"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Velikost"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Prstni odtisi"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "Neznani ali nepodprti podatki."
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "Ni mogoÄe razÄleniti neveljavnih ali pokvarjenih podatkov."
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "Podatki so zaklenjeni"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Ni mogoÄe najti mesta za shranjevanje uvoženih potrdil"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Samodejno odkleni zbirko kljuÄev ob prijavi."
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Zakleni zbirko kljuÄev po"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Zakleni zbirko kljuÄev ob nedejavnosti"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Samodejno zakleni zbirko kljuÄev ob odjavi."
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minut"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "Odkleni: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65
-#: ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Odkleni"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "Geslo je napaÄno."
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Geslo"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid "The contents of '%s' are locked. In order to view the contents, enter the correct password."
-msgstr "Vsebina '%s' je zaklenjena. Za ogled vsebine je treba vnesti pravilno geslo."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid "The contents are locked. In order to view the contents, enter the correct password."
-msgstr "Vsebina je zaklenjena. Za ogled vsebine je treba vnesti pravilno geslo."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "Potrdilo GCR in pregledovalnik datotek kljuÄev"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Pokaži razliÄico programa"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[datoteka ...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- Pregeld potrdila in datotek kljuÄev"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "Pregledovalnik potrdil"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "Naslov URI je zapisan v neveljavnem kodnem zapisu."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "Naslov URI je brez ustrezne sheme 'pkcs11'."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "Skladnja naslova URI je slaba."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "Naslov URI vsebuje nepravilno vrednost razliÄice."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Neimenovano potrdilo"
@@ -883,7 +296,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Ni mogoÄe razÄleniti SSH kljuÄa."
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Geslo odklepanja za: %s"
@@ -902,11 +315,16 @@ msgid "Enter password to unlock your login keyring"
msgstr "Vnesite geslo za odklepanje prijavnih kljuÄev"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
-msgid "The password you use to log in to your computer no longer matches that of your login keyring."
-msgstr "Geslo, ki se uporabi ob prijavi v sistem, se ne sklada z geslom zbirke kljuÄev."
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
+msgstr ""
+"Geslo, ki se uporabi ob prijavi v sistem, se ne sklada z geslom zbirke "
+"kljuÄev."
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
-msgid "The login keyring did not get unlocked when you logged into your computer."
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
msgstr "Prijavna zbirka kljuÄev ni bila samodejno odklenjena ob prijavi."
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
@@ -921,7 +339,8 @@ msgstr "Vnesite geslo za dostop do '%s' zbirke kljuÄev"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
#, c-format
msgid "An application wants access to the keyring '%s', but it is locked"
-msgstr "Program zahteva dostop do zbirke kljuÄev '%s', vendar je ta zaklenjena."
+msgstr ""
+"Program zahteva dostop do zbirke kljuÄev '%s', vendar je ta zaklenjena."
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
msgid "Unlock private key"
@@ -935,10 +354,26 @@ msgstr "Odkleni potrdilo"
msgid "Unlock public key"
msgstr "Odkleni javni kljuÄ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Odkleni"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Vnesite geslo za odklepanje osebnega kljuÄa"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Vnesite geslo za odklepanje potrdila"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Vnesite geslo za odklepanje javnega kljuÄa"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Vnesite geslo za odklepanje"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -974,8 +409,11 @@ msgstr "Vnesite geslo za odklepanje potrdila ali kljuÄev."
#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
#, c-format
-msgid "An application wants access to the certificate/key storage '%s', but it is locked"
-msgstr "Program zahteva dostop do potrdila ali kljuÄa '%s', vendar je ta zaklenjen."
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr ""
+"Program zahteva dostop do potrdila ali kljuÄa '%s', vendar je ta zaklenjen."
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
msgid "New Password Required"
@@ -987,8 +425,11 @@ msgstr "Zahtevano novo geslo za varno shranjevanje"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
#, c-format
-msgid "In order to prepare '%s' for storage of certificates or keys, a password is required"
-msgstr "Za pripravo '%s' za shranjevanje potrdil in kljuÄev, mora biti doloÄeno geslo"
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
+"Za pripravo '%s' za shranjevanje potrdil in kljuÄev, mora biti doloÄeno geslo"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
msgid "Change Password"
@@ -1000,8 +441,10 @@ msgstr "Spremeni geslo varno shranjevanje"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
-msgid "To change the password for '%s', the original and new passwords are required"
-msgstr "Za spreminjanje gesla za uporabnika '%s', je zahtevano prvotno in novo geslo"
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
+msgstr ""
+"Za spreminjanje gesla za uporabnika '%s', je zahtevano prvotno in novo geslo"
#: ../tool/gkr-tool.c:102
#, c-format
@@ -1017,23 +460,28 @@ msgstr "ukazi:"
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Ali naj bodo shranjena gesla nešifrirana?"
-#: ../ui/gku-prompt-tool.c:595
-msgid "By choosing to use a blank password, your stored passwords will not be safely encrypted. They will be accessible by anyone with access to your files."
-msgstr "Z uporabo praznega polja gesla, onemogoÄite Å¡ifriranje ostalih gesel. Dostop to takih gesel ima vsak, ki ima tudi dostop do raÄunalnika."
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
+"Z uporabo praznega polja gesla, onemogoÄite Å¡ifriranje ostalih gesel. Dostop "
+"to takih gesel ima vsak, ki ima tudi dostop do raÄunalnika."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Uporabi nevarno shranjevanje"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Gesli se ne skladata."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Geslo ne sme biti prazno."
@@ -1072,345 +520,3 @@ msgstr "_Staro geslo:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Geslo:"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "Na voljo je premalo pomnilnika"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "Izbran ID ni veljaven"
-
-#~ msgid "Internal error"
-#~ msgstr "Notranja napaka"
-
-#~ msgid "The operation failed"
-#~ msgstr "Dejanje ni uspelo"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "Neveljavni argumenti"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "Z modulom ni mogoÄe ustvariti zahtevanih niti"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "Z modulom ni mogoÄe ustrezno zakleniti podatkov"
-
-#~ msgid "The field is read-only"
-#~ msgstr "Polje je le za branje"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "Polje je obÄutljivo in ga ni mogoÄe odkriti"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "Polje ni veljavno ali pa ne obstaja"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "Neveljavna vrednost polja"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "Podatki niso veljavni ali pa jih ni mogoÄe prepoznati"
-
-#~ msgid "The data is too long"
-#~ msgstr "Podatki so predolgi"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "Prišlo je do napake na napravi"
-
-#~ msgid "Insufficient memory available on the device"
-#~ msgstr "Ni zadostnega pomnilnika na napravi"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "Naprava je bila odstranjena ali pa je bila odklopljena"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "Å ifrirani podatki niso veljavni ali pa jih ni mogoÄe prepoznati"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "Å ifrirani podatki so predolgi"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "Naloga ni podprta."
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "KljuÄa ni ali pa je neveljaven"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "Velikost kljuÄa je napaÄna"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "Vrsta kljuÄa je napaÄna"
-
-#~ msgid "No key is needed"
-#~ msgstr "KljuÄ ni zahtevan"
-
-#~ msgid "The key is different than before"
-#~ msgstr "KljuÄ je drugaÄen, kot je bil prej"
-
-#~ msgid "A key is needed"
-#~ msgstr "KljuÄ je nujno zahtevan"
-
-#~ msgid "Cannot include the key in the digest"
-#~ msgstr "V povzetku ni mogoÄe vkljuÄiti kljuÄa"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "Dejanja s tem kljuÄem ni mogoÄe izvesti"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "KljuÄa ni mogoÄe prelomiti."
-
-#~ msgid "Cannot export this key"
-#~ msgstr "KljuÄa ni mogoÄe uporabiti"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "Mehanizem Å¡ifriranja je neveljaven ali pa ni prepoznan"
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "Mehanizem Å¡ifriranja ima neveljaven argument"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "Predmet manjka ali pa je neveljaven"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "Trenutno teÄe že druga dejavnost"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "Trenutno ni dejanj v izvajanju"
-
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "Uporabniško ime ali pa PIN geslo ni pravilno."
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "Uporabniško ime ali pa PIN geslo je neveljavno."
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "Geslo ali PIN koda ni ustrezne velikosti"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "Geslo ali PIN koda sta pokvarjena"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "Uporabniško ime ali pa PIN geslo je zakljenjeno."
-
-#~ msgid "The session is closed"
-#~ msgstr "Seja je zaprta"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "Dejavnih je preveÄ sej."
-
-#~ msgid "The session is invalid"
-#~ msgstr "Seja ni veljavna."
-
-#~ msgid "The session is read-only"
-#~ msgstr "Seja je le za branje"
-
-#~ msgid "An open session exists"
-#~ msgstr "Trenutno obtaja odprta seja"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "Trenutno je zagnana seja le za branje "
-
-#~ msgid "An administrator session exists"
-#~ msgstr "Trenutno je zagnana skrbniška seja."
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "Podpis je slab ali pa je pokvarjen"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "Podpis ni prepoznan ali pa je pokvarjen"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "Nekatera zahtevana polja niso izpolnjena"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "Nekatera polja imajo neveljavne vrednosti"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "Naprava ni navzoÄa ali pa ni ustrezno priklopljena"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "Naprava je neveljavna ali pa je ni mogoÄe prepoznati"
-
-#~ msgid "The device is write protected"
-#~ msgstr "Naprava je zaÅ¡Äitena pred pisanjem"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "Uvoz ni mogoÄ, ker je kljuÄ neveljaven"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "Uvoz ni mogoÄ, ker je kljuÄ napaÄne velikosti."
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "Uvoz ni mogoÄ, ker je kljuÄ napaÄne vrste."
-
-#~ msgid "You are already logged in"
-#~ msgstr "Vi ste že uspešno prijavljeni."
-
-#~ msgid "No user has logged in"
-#~ msgstr "Noben uporabnik se ni logiral"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "Podatek uporabniškega gesla ali PIN kode ni nastavljen."
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "Vrsta uporabnika ni veljavna"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "Drug uporabnik je že prijavljen"
-
-#~ msgid "Too many users of different types are logged in"
-#~ msgstr "Prijavljenih je preveÄ razliÄnih vrst uporabnikov"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "Ni mogoÄe uvoziti neveljavnega kljuÄa"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "Uvoz ni mogoÄe, ker ima kljuÄ napaÄno velikost."
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "Izvoz ni mogoÄe, ker kljuÄ ni veljaven."
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "Izvoz ni mogoÄe, ker ima kljuÄ napaÄno velikost."
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "Izvoz ni mogoÄe, ker je kljuÄ napaÄne vrste."
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "Ni mogoÄe zagnati programa za izpis nakljuÄnih Å¡tevil."
-
-#~ msgid "No random number generator available"
-#~ msgstr "Na voljo ni nobenega programa za izpis nakljuÄnih Å¡tevil"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "Mehanizem Å¡ifriranja ima doloÄene neveljavne parametre."
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "Ni dovolj prostora za shranjevanje rezultatov."
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "Shranjeno stanje je neveljavno."
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "Podrobnosti so obÄutljive in jih ni mogoÄe odkriti."
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "Stanja ni mogoÄe shraniti."
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "Modul Å¡e ni zagnan."
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "Modul je že zagnan."
-
-#~ msgid "Cannot lock data"
-#~ msgstr "Ni mogoÄe zakleniti podatkov."
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "Podatkov ni mogoÄe zakleniti"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "Podpisovanje je bilo zavrnjeno s strani uporabnika."
-
-#~ msgid "Unknown error"
-#~ msgstr "Neznana napaka"
-
-#~ msgid "Fingerprint"
-#~ msgstr "Prstni odtis"
-
-#~ msgid "Insufficient memory available on device"
-#~ msgstr "Ni zadostnega pomnilnika na napravi"
-
-#~ msgid "The key is different from before"
-#~ msgstr "KljuÄ je drugaÄen, kot je bil prej"
-
-#~ msgid "Cannot include the key in digest"
-#~ msgstr "V povzetku ni mogoÄe vkljuÄiti kljuÄa"
-
-#~ msgid "Too many users of different types logged in"
-#~ msgstr "Prijavljenih je preveÄ razliÄnih uporabnikov"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>Ni del potrdila</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>neznano</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<Ni del potrdila>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>Prstni odtisi</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Izdajatelj</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Izdano</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>To potrdilo je bilo preverjeno za naslednje vrste uporabe:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>Veljavnost</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "Splošno ime (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "Potrdilo prejemnika elektronske pošte"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "Potrdilo podpisnika elektronske pošte"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "Prstni odtis MD5"
-
-#~ msgid "Organization (O)"
-#~ msgstr "Organizacija (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "Organizacijska enota (OU)"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr "<span size='large' weight='bold'>Uvoz potrdil in kljuÄev</span>"
-
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Možnost omogoÄa zagon PKCS#11 enote v gnome-keyring ozadnjem programu. "
-#~ "Uporablja se le med zagonom programa gnome-session, (primer: ko se "
-#~ "uporabnik prijavi). Možnost je mogoÄe s posebnimi argumenti med zagonom "
-#~ "preklicati."
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "Možnost omogoÄa podporo SSH agenta v ozadnjem programu gnome-keyring. "
-#~ "Uporablja se le ob zagonu ozadnjega programa gnome-keyring-daemon, "
-#~ "(primer: ko se uporabnik prijavi). Možnost je mogoÄe s posebnimi "
-#~ "argumenti med zagonom preklicati."
-
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Možnost omogoÄa zagon skritih storitev v gnome-keyring ozadnjem programu. "
-#~ "Uporablja se le med zagonom programa gnome-session, (primer: ko se "
-#~ "uporabnik prijavi). Možnost je mogoÄe s posebnimi argumenti med zagonom "
-#~ "preklicati."
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "Ali je gnome-keyring PKCS#11 enota omogoÄena."
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "Ali je gnome-keyring SSH agent omogoÄen."
-
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr "Ali je skrita storitev gnome-keyring omogoÄena."
diff --git a/po/sq.po b/po/sq.po
index b36e3262..e446dc77 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -8,1082 +8,532 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring HEAD\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-09-15 15:10+0000\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2008-09-23 20:26+0200\n"
"Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
"Language-Team: albanian <gnome-albanian-perkthyesit@lists.sourceforge.net>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../common/gkr-location.c:320
-#, c-format
-msgid "Removable Disk: %s"
-msgstr "Disk i heqshëm: %s"
-
-#: ../common/gkr-location.c:322
-msgid "Removable Disk"
-msgstr "Disk i heqshëm"
-
-#: ../common/gkr-location.c:543 ../common/gkr-location.c:555
-msgid "Home"
-msgstr "Home"
-
-#: ../common/gkr-location.c:1104 ../common/gkr-location.c:1128
-#: ../daemon/pkix/gkr-pkix-parser.c:524 ../daemon/pkix/gkr-pkix-serialize.c:58
-msgid "The disk or drive this file is located on is not present"
-msgstr "Nuk është i pranishëm disku apo njësia në të cilën gjendet ky file"
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
+msgstr ""
-#: ../common/gkr-location.c:1136
-#, c-format
-msgid "Couldn't create directory: %s"
-msgstr "I pamundur krijimi i directory: %s"
+#: ../daemon/dbus/gkd-secret-change.c:86
+msgid "Change Keyring Password"
+msgstr "Ndryshimi i fjalëkalimin të mbajtësit të çelsave"
-#: ../common/gkr-location.c:1170
-#, c-format
-msgid "Couldn't delete the file: %s"
-msgstr "I pamundur eleminimi i file: %s"
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "Përcakto fjalëkalimin e ri për mbajtësin e çelsave \"%s\". "
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:227
-#, c-format
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in the default keyring."
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
msgstr ""
-"Aplikativi \"%s\" (%s) kërkon të lexojë fjalëkalimin për \"<object prop="
-"'name'/>\" në mbajtësin e paracaktuar të çelsave."
+"Një aplikativ i panjohur kërkon të ndryshojë fjalëkalimin për mbajtësin e "
+"çelsave \"%s\". Duhet përcaktuar një fjalëkalim për ta përdorur."
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:231
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '<object "
-"prop='name'/>' in %s."
-msgstr ""
-"Aplikativi \"%s\" (%s) kërkon të lexojë fjalëkalimin për \"<object prop="
-"'name'/>\" në %s."
+#: ../daemon/dbus/gkd-secret-change.c:111
+#, fuzzy
+msgid "The original password was incorrect"
+msgstr "Fjalëkalimi ose PIN nuk është korrekt"
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:237 ../daemon/gkr-daemon-ops.c:247
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in the default keyring."
-msgstr ""
-"Aplikativi \"%s\" kërkon të lexojë fjalëkalimin për \"<object prop="
-"'name'/>\" në mbajtësin e paracaktuar të çelsave."
+#: ../daemon/dbus/gkd-secret-create.c:83
+msgid "New Keyring Password"
+msgstr "Fjalëkalimi i mbajtësit të ri të çelsave"
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:241 ../daemon/gkr-daemon-ops.c:251
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '<object prop='name'/"
-">' in %s."
-msgstr ""
-"Aplikativi \"%s\" kërkon të lexojë fjalëkalimin për \"<object prop="
-"'name'/>\" në %s."
+#: ../daemon/dbus/gkd-secret-create.c:84
+msgid "Choose password for new keyring"
+msgstr "Përcakto fjalëkalimin për mbajtësin e ri të çelsave"
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:257
+#: ../daemon/dbus/gkd-secret-create.c:86
+#, fuzzy, c-format
msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in the default keyring."
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
-"Një aplikativ i panjohur kërkon të lexojë fjalëkalimin për \"<object prop="
-"'name'/>\" në mbajtësin e paracaktuar të çelsave."
+"Një aplikativ i panjohur kërkon të krijojë një mbajtës të ri çelsash me "
+"emrin \"%s\". Duhet përcaktuar një fjalëkalim për ta përdorur."
-#. TRANSLATORS: Don't translate text in markup (ie: HTML or XML tags)
-#: ../daemon/gkr-daemon-ops.c:260
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '<object prop='name'/"
-">' in %s."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+msgid "Certificate and Key Storage"
msgstr ""
-"Një aplikativ i panjohur kërkon të lexojë fjalëkalimin për \"<object prop="
-"'name'/>\" në %s."
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:266
-msgid "Allow access"
-msgstr "Lejo hyrjen"
-#: ../daemon/gkr-daemon-ops.c:266
-msgid "Allow application access to keyring?"
-msgstr "Lejon hyrjen e aplikativit në mbajtësin e çelsave?"
-
-#: ../daemon/gkr-daemon-ops.c:307
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+msgid "GNOME Keyring: PKCS#11 Component"
msgstr ""
-"Aplikativi \"%s\" (%s) kërkon të futet në mbajtësin e paracaktuar të çelsave, "
-"por ai është i bllokuar"
-#: ../daemon/gkr-daemon-ops.c:311
-#, c-format
-msgid "The application '%s' (%s) wants access to the keyring '%s', but it is locked"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+msgid "GNOME Keyring: Secret Service"
msgstr ""
-"Aplikativi \"%s\" (%s) kërkon të futet në mbajtësin e çelsave \"%s\", por "
-"ai është i bllokuar"
-#: ../daemon/gkr-daemon-ops.c:317 ../daemon/gkr-daemon-ops.c:327
-#, c-format
-msgid "The application '%s' wants access to the default keyring, but it is locked"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
msgstr ""
-"Aplikativi \"%s\" kërkon të futet në mbajtësin e paracaktuar të çelsave, "
-"por ai është i bllokuar."
-#: ../daemon/gkr-daemon-ops.c:321 ../daemon/gkr-daemon-ops.c:332
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+msgid "GNOME Keyring: SSH Agent"
msgstr ""
-"Aplikativi \"%s\" kërkon të futet në mbajtësin e çelsave \"%s\", por ai "
-"është i bllokuar."
-#: ../daemon/gkr-daemon-ops.c:338
-#, c-format
-msgid "An unknown application wants access to the default keyring, but it is locked"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
msgstr ""
-"Një aplikativ i panjohur kërkon të futet në mbajtësin e paracaktuar të çelsave, "
-"por ai është i bllokuar."
-#: ../daemon/gkr-daemon-ops.c:342
-#, c-format
-msgid "An unknown application wants access to the keyring '%s', but it is locked"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+msgid "GNOME Keyring: GPG Agent"
msgstr ""
-"Një aplikativ i panjohur kërkon të futet në mbajtësin e çelsave \"%s\", "
-"por ai është i bllokuar."
-
-#: ../daemon/gkr-daemon-ops.c:349
-msgid "Enter password for default keyring to unlock"
-msgstr "Jep fjalëkalimin për të zhbllokuar mbajtësin e paracaktuar të çelsave"
-#: ../daemon/gkr-daemon-ops.c:351
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "Jep fjalëkalimin për të zhbllokuar mbajtësin e çelsave \"%s\""
-
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:355
-msgid "Unlock Keyring"
-msgstr "Zhblloko mbajtësin e çelsave"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+#, fuzzy
+msgid "GPG Password Agent"
+msgstr "Siguria e fjalëkalimit të ri"
-#: ../daemon/gkr-daemon-ops.c:367 ../daemon/pk/gkr-pk-index.c:135
-msgid "Automatically unlock this keyring when I log in."
-msgstr "Zhblloko automatikisht këtë mbajtës çelsash në hyrje."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+#, fuzzy
+msgid "Unknown"
+msgstr "Gabim i panjohur"
-#: ../daemon/gkr-daemon-ops.c:403
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
+msgid "PGP Key: %s"
msgstr ""
-"Aplikativi \"%s\" (%s) kërkon të krijojë një mbajtës të ri çelsash me emrin \"%s\". "
-"Duhet përcaktuar një fjalëkalim për ta përdorur."
-#: ../daemon/gkr-daemon-ops.c:407
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-"Aplikativi \"%s\" (%s) kërkon të krijojë një mbajtës të ri të paracaktuar çelsash. "
-"Duhet përcaktuar një fjalëkalim për ta përdorur."
-#: ../daemon/gkr-daemon-ops.c:413 ../daemon/gkr-daemon-ops.c:423
-#, c-format
-msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
msgstr ""
-"Aplikativi \"%s\" kërkon të krijojë një mbajtës të ri çelsash me emrin \"%s\". "
-"Duhet përcaktuar një fjalëkalim për ta përdorur."
-#: ../daemon/gkr-daemon-ops.c:417 ../daemon/gkr-daemon-ops.c:427
-#, c-format
-msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-"Aplikativi \"%s\" kërkon të krijojë një mbajtës të ri të paracaktuar çelsash. "
-"Duhet përcaktuar një fjalëkalim për ta përdorur."
-#: ../daemon/gkr-daemon-ops.c:433
-#, c-format
-msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
msgstr ""
-"Një aplikativ i panjohur kërkon të krijojë një mbajtës të ri çelsash me emrin \"%s\". "
-"Duhet përcaktuar një fjalëkalim për ta përdorur."
-#: ../daemon/gkr-daemon-ops.c:437
-#, c-format
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
msgstr ""
-"Një aplikativ i panjohur kërkon të krijojë një mbajtës të ri të paracaktuar çelsash. "
-"Duhet përcaktuar një fjalëkalim për ta përdorur."
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:443
-msgid "New Keyring Password"
-msgstr "Fjalëkalimi i mbajtësit të ri të çelsave"
-
-#: ../daemon/gkr-daemon-ops.c:444
-msgid "Choose password for new keyring"
-msgstr "Përcakto fjalëkalimin për mbajtësin e ri të çelsave"
-
-#: ../daemon/gkr-daemon-ops.c:491
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:41
+msgid "Domain Component"
msgstr ""
-"Aplikativi \"%s\" (%s) kërkon të ndryshojë fjalëkalimin për mbajtësin e çelsave "
-"\"%s\". Duhet përcaktuar një fjalëkalim për ta përdorur."
-#: ../daemon/gkr-daemon-ops.c:495
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:43
+msgid "User ID"
msgstr ""
-"Aplikativi \"%s\" (%s) kërkon të ndryshojë fjalëkalimin për mbajtësin e "
-"paracaktuar të çelsave. Duhet përcaktuar një fjalëkalim për ta përdorur."
-#: ../daemon/gkr-daemon-ops.c:501 ../daemon/gkr-daemon-ops.c:511
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:46
+msgid "Email Address"
msgstr ""
-"Aplikativi \"%s\" kërkon të ndryshojë fjalëkalimin për mbajtësin e çelsave "
-"\"%s\". Duhet përcaktuar një fjalëkalim për ta përdorur."
-#: ../daemon/gkr-daemon-ops.c:505 ../daemon/gkr-daemon-ops.c:515
-#, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:54
+msgid "Date of Birth"
msgstr ""
-"Aplikativi \"%s\" kërkon të ndryshojë fjalëkalimin për mbajtësin e paracaktuar "
-"të çelsave. Duhet përcaktuar një fjalëkalim për ta përdorur."
-#: ../daemon/gkr-daemon-ops.c:521
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:56
+msgid "Place of Birth"
msgstr ""
-"Një aplikativ i panjohur kërkon të ndryshojë fjalëkalimin për mbajtësin e "
-"çelsave \"%s\". Duhet përcaktuar një fjalëkalim për ta përdorur."
-#: ../daemon/gkr-daemon-ops.c:525
-#, c-format
-msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+#: ../egg/egg-oid.c:58
+msgid "Gender"
msgstr ""
-"Një aplikativ i panjohur kërkon të ndryshojë fjalëkalimin për mbajtësin e "
-"paracaktuar të çelsave. Duhet përcaktuar një fjalëkalim për ta përdorur."
-#: ../daemon/gkr-daemon-ops.c:535
-#, c-format
-msgid "Choose a new password for the '%s' keyring. "
-msgstr "Përcakto fjalëkalimin e ri për mbajtësin e çelsave \"%s\". "
+#: ../egg/egg-oid.c:60
+msgid "Country of Citizenship"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:537
-#, c-format
-msgid "Choose a new password for the default keyring. "
-msgstr "Përcakto fjalëkalimin e ri për mbajtësin e paracaktuar të çelsave. "
+#: ../egg/egg-oid.c:62
+msgid "Country of Residence"
+msgstr ""
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:541
-msgid "Change Keyring Password"
-msgstr "Ndryshimi i fjalëkalimin të mbajtësit të çelsave"
+#: ../egg/egg-oid.c:65
+msgid "Common Name"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:614
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../egg/egg-oid.c:67
+msgid "Surname"
msgstr ""
-"Aplikativi \"%s\" (%s) kërkon të regjistrojë një fjalëkalim, por nuk ekziston "
-"asnjë mbajtës çelsash i paracaktuar. Për të krijuar një duhet të përcaktohet "
-"fjalëkalimi për ta përdorur."
-#: ../daemon/gkr-daemon-ops.c:618 ../daemon/gkr-daemon-ops.c:622
-#, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../egg/egg-oid.c:69
+msgid "Serial Number"
msgstr ""
-"Aplikativi \"%s\" kërkon të regjistrojë një fjalëkalim, por nuk ekziston "
-"asnjë mbajtës çelsash i paracaktuar. Për të krijuar një duhet të përcaktohet "
-"fjalëkalimi për ta përdorur."
-#: ../daemon/gkr-daemon-ops.c:626
-#, c-format
-msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../egg/egg-oid.c:71
+msgid "Country"
msgstr ""
-"Një aplikativ i panjohur kërkon të regjistrojë një fjalëkalim, por nuk ekziston "
-"asnjë mbajtës çelsash i paracaktuar. Për të krijuar një duhet të përcaktohet "
-"fjalëkalimi për ta përdorur."
-#. And put together the ask request
-#: ../daemon/gkr-daemon-ops.c:631
-msgid "Create Default Keyring"
-msgstr "Krijimi i mbajtësit të paracaktuar të çelsave"
+#: ../egg/egg-oid.c:73
+msgid "Locality"
+msgstr ""
-#: ../daemon/gkr-daemon-ops.c:631
-msgid "Choose password for default keyring"
-msgstr "Përcakto fjalëkalimin për mbajtësin e paracaktuar të çelsave"
+#: ../egg/egg-oid.c:75
+msgid "State"
+msgstr ""
-#: ../daemon/data/gnome-keyring.schemas.in.h:1
-msgid ""
-"A list of paths to PKCS#11 modules to load. No modules are currently listed "
-"by default, as this is still an experimental feature. This is used by "
-"seahorse and other PKCS#11 aware applications."
+#: ../egg/egg-oid.c:77
+msgid "Street"
msgstr ""
-"Një listë me pozicionet e modulëve PKCS#11 për tu ngarkuar. Asnjë modul "
-"aktualisht nuk gjendet në listë në menyrë të paracaktuar, pasi ky është një "
-"funksion akoma eksperimental. Përdoret nga seahorse dhe aplikativë të tjerë "
-"konformë me PKCS#11."
-#: ../daemon/data/gnome-keyring.schemas.in.h:2
-msgid "PKCS#11 Modules"
-msgstr "Modulët PKCS#11"
+#: ../egg/egg-oid.c:79
+msgid "Organization"
+msgstr ""
-#: ../daemon/data/gnome-keyring.schemas.in.h:3
-msgid ""
-"This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-"only takes effect as gnome-keyring-daemon starts, (ie: when the user logs "
-"in). This setting may be overridden when certain command line arguments are "
-"passed to the daemon."
+#: ../egg/egg-oid.c:81
+msgid "Organizational Unit"
msgstr ""
-"Ky opsion aktivizon përbërësin PKCS#11 në demon-in e gnome-keyring. Ka "
-"efekt vetëm në nisje të gnome-keyring-daemon (d.m.th. kur përdoruesi kryen "
-"hyrjen). Ky rregullim mund të kapërcehet kur jepen disa argumentë në rreshtin "
-"e komandës për deamon-in."
-#: ../daemon/data/gnome-keyring.schemas.in.h:4
-msgid ""
-"This option enables the SSH agent in the gnome-keyring daemon. It only takes "
-"effect as gnome-keyring-daemon starts, (ie: when the user logs in). This "
-"setting may be overridden when certain command line arguments are passed to "
-"the daemon."
+#: ../egg/egg-oid.c:83
+msgid "Title"
msgstr ""
-"Ky opsion aktivizon agjentin SSH në demon-in e gnome-keyring. Ka efekt vetëm "
-"në nisje të gnome-keyring-daemon (d.m.th. kur përdoruesi kryen hyrjen). "
-"Ky rregullim mund të kapërcehet kur jepen disa argumentë në rreshtin "
-"e komandës për deamon-in."
-#: ../daemon/data/gnome-keyring.schemas.in.h:5
-msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-msgstr "Tregon nëse përbërësi PKCS#11 i gnome-keyring është aktivizuar."
+#: ../egg/egg-oid.c:85
+msgid "Telephone Number"
+msgstr ""
-#: ../daemon/data/gnome-keyring.schemas.in.h:6
-msgid "Whether the gnome-keyring SSH agent is enabled."
-msgstr "Tregon nëse agjenti SSH i gnome-keyring është aktivizuar."
+#: ../egg/egg-oid.c:87
+msgid "Given Name"
+msgstr ""
-# titull dialogu
-# login është emri i mbajtësit të çelsave
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:98
-msgid "Unlock Login Keyring"
-msgstr "Zhblloko mbajtësin e çelsave login"
+#: ../egg/egg-oid.c:89
+msgid "Initials"
+msgstr ""
-#: ../daemon/keyrings/gkr-keyring-login.c:98
-msgid "Enter login password to unlock keyring"
-msgstr "Jep fjalëkalimin e hyrjes për të zhbllokuar mbajtësin e çelsave"
+#: ../egg/egg-oid.c:91
+#, fuzzy
+msgid "Generation Qualifier"
+msgstr "Operacioni dështoi"
-#: ../daemon/keyrings/gkr-keyring-login.c:100
-msgid ""
-"Your login keyring was not automatically unlocked when you logged into this "
-"computer."
+#: ../egg/egg-oid.c:93
+msgid "DN Qualifier"
msgstr ""
-"Mbajtësi juaj i çelsave të \"hyrjes\" nuk është zhbllokuar automatikisht kur "
-"është kryer hyrja në këtë kompjutër."
-#. And put together the ask request
-#: ../daemon/keyrings/gkr-keyring-login.c:124
-msgid "Create Login Keyring"
-msgstr "Krijon mbajtës çelsash hyrje"
-
-#: ../daemon/keyrings/gkr-keyring-login.c:124
-msgid "Enter your login password"
-msgstr "Jep fjalëkalimin personal të hyrjes"
+#: ../egg/egg-oid.c:95
+msgid "Pseudonym"
+msgstr ""
-#: ../daemon/keyrings/gkr-keyring-login.c:126
-msgid ""
-"Your login keyring was not automatically created when you logged into this "
-"computer. It will now be created."
+#: ../egg/egg-oid.c:98
+msgid "RSA"
msgstr ""
-"Mbajtësi juaj i çelsave të \"hyrjes\" nuk është krijuar automatikisht kur "
-"është kryer hyrja në këtë kompjutër. Do të krijohet tani."
-#: ../daemon/keyrings/gkr-keyring.c:584
-#, c-format
-msgid "Unlock password for %s keyring"
-msgstr "Zhblloko fjalëkalimin për mbajtësin e çelsave %s"
+#: ../egg/egg-oid.c:99
+msgid "MD2 with RSA"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:88
-msgid "Import private key"
-msgstr "Importo kyçin privat"
+#: ../egg/egg-oid.c:100
+msgid "MD5 with RSA"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:90
-msgid "Import certificate"
-msgstr "Importo çertifikatën"
+#: ../egg/egg-oid.c:101
+msgid "SHA1 with RSA"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:92
-msgid "Import public key"
-msgstr "Importo kyçin publik"
+#: ../egg/egg-oid.c:103
+msgid "DSA"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:94
-msgid "Import"
-msgstr "Importo"
+#: ../egg/egg-oid.c:104
+msgid "SHA1 with DSA"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:101 ../daemon/pk/gkr-pk-storage.c:166
-msgid "Enter password to unlock the private key"
-msgstr "Jep fjalëkalimin për të zhbllokuar kyçin privat"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:103 ../daemon/pk/gkr-pk-storage.c:168
-msgid "Enter password to unlock the certificate"
-msgstr "Jep fjalëkalimin për të zhbllokuar çertifikatën"
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:105 ../daemon/pk/gkr-pk-storage.c:170
-msgid "Enter password to unlock the public key"
-msgstr "Jep fjalëkalimin për të zhbllokuar kyçin publik"
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:107 ../daemon/pk/gkr-pk-storage.c:172
-msgid "Enter password to unlock"
-msgstr "Jep fjalëkalimin për të zhbllokuar"
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:114
-#, c-format
-msgid "The system wants to import the private key '%s', but it is locked"
-msgstr "Sistemi kërkon të importojë kyçin privat \"%s\", por kyçi është i bllokuar"
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:116
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid "The system wants to import the certificate '%s', but it is locked"
-msgstr "Sistemi kërkon të importojë çertifikatën \"%s\", por çertifikata është e bllokuar"
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:118
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid "The system wants to import the public key '%s', but it is locked"
-msgstr "Sistemi kërkon të importojë kyçin publik \"%s\", por kyçi është i bllokuar"
+msgid "Unexpected error in waitpid() (%s)"
+msgstr ""
-#: ../daemon/pk/gkr-pk-import.c:120
-#, c-format
-msgid "The system wants to import '%s', but it is locked"
-msgstr "Sistemi kërkon të importojë \"%s\", por ai element është i bllokuar"
+#: ../pkcs11/gkm/gkm-certificate.c:572
+#, fuzzy
+msgid "Unnamed Certificate"
+msgstr "Çertifikata"
-#. And put together the ask request
-#: ../daemon/pk/gkr-pk-index.c:93
-msgid "Create Storage for Key Information"
-msgstr "Krijo arkiv për informacionet në lidhje me kyçin"
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+#, fuzzy
+msgid "Couldn't parse public SSH key"
+msgstr "I pamundur kodifikimi i kyçit publik të shell të sigurt."
-#: ../daemon/pk/gkr-pk-index.c:94
-msgid "Choose password to protect storage"
-msgstr "Zgjidh fjalëkalimin për të mbrojtur arkivin"
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, fuzzy, c-format
+msgid "Unlock password for: %s"
+msgstr "Zhblloko fjalëkalimin për mbajtësin e çelsave %s"
-#: ../daemon/pk/gkr-pk-index.c:97
-msgid ""
-"The system wants to store information about your keys and certificates. In "
-"order to protect this information, choose a password with which it will be "
-"locked."
-msgstr ""
-"Sistemi kërkon të arkivojë informacionet në lidhje me kyçet dhe çertifikatat. "
-"Për të mbrojtur këto informacione, zgjidh një fjalëkalim me të cilin do të "
-"bllokohen."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+#, fuzzy
+msgid "The unlock password was incorrect"
+msgstr "Fjalëkalimi ose PIN nuk është korrekt"
-#. And put together the ask request
-#: ../daemon/pk/gkr-pk-index.c:124
-msgid "Unlock Storage for Key Information"
-msgstr "Zhblloko arkivin për informacionet në lidhje me kyçin"
+# titull dialogu
+# login është emri i mbajtësit të çelsave
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+msgid "Unlock Login Keyring"
+msgstr "Zhblloko mbajtësin e çelsave login"
-#: ../daemon/pk/gkr-pk-index.c:125
-msgid "Enter password to unlock storage"
-msgstr "Jep fjalëkalimin për të zhbllokuar arkivin"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
+msgstr "Jep fjalëkalimin e hyrjes për të zhbllokuar mbajtësin e çelsave"
-#: ../daemon/pk/gkr-pk-index.c:128
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
msgid ""
-"The system wants to access information about your keys and certificates, but "
-"it is locked."
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
msgstr ""
-"Sistemi kërkon të hyjë tek informacionet në lidhje me kyçet dhe çertifikata, "
-"por është i bllokuar."
-
-#: ../daemon/pk/gkr-pk-object.c:889
-msgid "Certificate"
-msgstr "Çertifikata"
-#: ../daemon/pk/gkr-pk-object.c:891
-msgid "Private Key"
-msgstr "Kyçi privat"
-
-#: ../daemon/pk/gkr-pk-object.c:893
-msgid "Public Key"
-msgstr "Kyçi publik"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
+#, fuzzy
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr ""
+"Mbajtësi juaj i çelsave të \"hyrjes\" nuk është zhbllokuar automatikisht kur "
+"është kryer hyrja në këtë kompjutër."
-#: ../daemon/pk/gkr-pk-object.c:895
-msgid "Trust Association"
-msgstr "Shoqëri e besueshme"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "Zhblloko mbajtësin e çelsave"
-#: ../daemon/pk/gkr-pk-object-storage.c:445
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
#, c-format
-msgid "Cannot delete '%s' because it is tied to other objects."
-msgstr "I pamundur eleminimi i \"%s\" pasi ka lidhje me objektë të tjerë."
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "Jep fjalëkalimin për të zhbllokuar mbajtësin e çelsave \"%s\""
-#: ../daemon/pk/gkr-pk-storage.c:136
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, fuzzy, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr ""
+"Një aplikativ i panjohur kërkon të futet në mbajtësin e çelsave \"%s\", por "
+"ai është i bllokuar."
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
msgid "Unlock private key"
msgstr "Zhblloko kyçin privat"
-#: ../daemon/pk/gkr-pk-storage.c:138
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
msgid "Unlock certificate"
msgstr "Zhblloko çertifikatën"
-#: ../daemon/pk/gkr-pk-storage.c:140
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
msgid "Unlock public key"
msgstr "Zhblloko kyçin publik"
-#: ../daemon/pk/gkr-pk-storage.c:142
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
msgid "Unlock"
msgstr "Zhblloko"
-#: ../daemon/pk/gkr-pk-storage.c:153
-msgid "Lock private key"
-msgstr "Blloko kyçin privat"
-
-#: ../daemon/pk/gkr-pk-storage.c:155
-msgid "Lock"
-msgstr "Blloko"
-
-#: ../daemon/pk/gkr-pk-storage.c:183
-msgid "Enter password to protect the private key"
-msgstr "Jep fjalëkalimin për të mbrojtur kyçin privat"
-
-#: ../daemon/pk/gkr-pk-storage.c:185
-msgid "Enter password to protect storage"
-msgstr "Jep fjalëkalimin për të mbrojtur arkivin"
-
-#: ../daemon/pk/gkr-pk-storage.c:196
-msgid "Automatically unlock this private key when I log in."
-msgstr "Zhblloko automatikisht këtë kyç privat në hyrje."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Jep fjalëkalimin për të zhbllokuar kyçin privat"
-#: ../daemon/pk/gkr-pk-storage.c:198
-msgid "Automatically unlock this certificate when I log in."
-msgstr "Zhblloko automatikisht këtë çertifikatë në hyrje."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Jep fjalëkalimin për të zhbllokuar çertifikatën"
-#: ../daemon/pk/gkr-pk-storage.c:200
-msgid "Automatically unlock this public key when I log in."
-msgstr "Zhblloko automatikisht këtë kyç publik në hyrje."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+msgid "Enter password to unlock the public key"
+msgstr "Jep fjalëkalimin për të zhbllokuar kyçin publik"
-#: ../daemon/pk/gkr-pk-storage.c:202
-msgid "Automatically unlock this when I log in"
-msgstr "Zhblloko automatikisht këtë element në hyrje."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Jep fjalëkalimin për të zhbllokuar"
-#: ../daemon/pk/gkr-pk-storage.c:209
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
msgid "An application wants access to the private key '%s', but it is locked"
-msgstr "Një aplikativ kërkon hyrje tek kyçi privat \"%s\", por kyçi është i bllokuar"
+msgstr ""
+"Një aplikativ kërkon hyrje tek kyçi privat \"%s\", por kyçi është i bllokuar"
-#: ../daemon/pk/gkr-pk-storage.c:211
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
#, c-format
msgid "An application wants access to the certificate '%s', but it is locked"
-msgstr "Një aplikativ kërkon hyrje tek çertifikata \"%s\", por çertifikata është e bllokuar"
+msgstr ""
+"Një aplikativ kërkon hyrje tek çertifikata \"%s\", por çertifikata është e "
+"bllokuar"
-#: ../daemon/pk/gkr-pk-storage.c:213
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
#, c-format
msgid "An application wants access to the public key '%s', but it is locked"
-msgstr "Një aplikativ kërkon hyrje tek kyçi publik \"%s\", por kyçi është i bllokuar"
+msgstr ""
+"Një aplikativ kërkon hyrje tek kyçi publik \"%s\", por kyçi është i bllokuar"
-#: ../daemon/pk/gkr-pk-storage.c:215
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
#, c-format
msgid "An application wants access to '%s', but it is locked"
msgstr "Një aplikativ kërkon hyrje tek \"%s\", por ky element është i bllokuar"
-#: ../daemon/pk/gkr-pk-storage.c:228
-#, c-format
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+#, fuzzy
+msgid "Unlock certificate/key storage"
+msgstr "Zhblloko çertifikatën"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+#, fuzzy
+msgid "Enter password to unlock the certificate/key storage"
+msgstr "Jep fjalëkalimin për të zhbllokuar çertifikatën"
+
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, fuzzy, c-format
msgid ""
-"The system wants to store the private key '%s' on your disk. Please enter a "
-"password to lock it with."
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
msgstr ""
-"Sistemi kërkon të regjistrojë kyçin privat \"%s\" në disk. Jep një fjalëkalim me "
-"të cilin të bllokohet."
+"Një aplikativ kërkon hyrje tek çertifikata \"%s\", por çertifikata është e "
+"bllokuar"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+#, fuzzy
+msgid "New Password Required"
+msgstr "Siguria e fjalëkalimit të ri"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+#, fuzzy
+msgid "New password required for secure storage"
+msgstr "Jep fjalëkalimin për të mbrojtur arkivin"
-#: ../daemon/pk/gkr-pk-storage.c:230
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
#, c-format
msgid ""
-"The system wants to store '%s' on your disk. Please enter a password to lock "
-"it with."
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
msgstr ""
-"Sistemi kërkon të regjistrojë \"%s\" në disk. Jep një fjalëkalim me "
-"të cilin të bllokohet."
-
-#: ../daemon/pkix/gkr-pkix-parser.c:451 ../gp11/gp11-misc.c:87
-msgid "The operation was cancelled"
-msgstr "Operacioni u anullua"
-
-#: ../daemon/pkix/gkr-pkix-parser.c:455
-msgid "Unrecognized or unsupported file."
-msgstr "File i panjohur apo i pasuportuar."
-#: ../daemon/pkix/gkr-pkix-parser.c:459
-msgid "Could not parse invalid or corrupted file."
-msgstr "I pamundur analizimi i file të pavlefshëm apo të dëmtuar."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+#, fuzzy
+msgid "Change Password"
+msgstr "Ndryshimi i fjalëkalimin të mbajtësit të çelsave"
-#: ../daemon/ssh/gkr-ssh-storage.c:166
-#, c-format
-msgid "Couldn't encode secure shell public key."
-msgstr "I pamundur kodifikimi i kyçit publik të shell të sigurt."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "Zgjidh fjalëkalimin për të mbrojtur arkivin"
-#: ../daemon/ssh/gkr-ssh-storage.c:412
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
-msgid "Couldn't read secure shell private key: %s"
-msgstr "I pamundur leximi i kyçit privat të shell të sigurt: %s"
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
+msgstr ""
-#: ../daemon/ssh/gkr-ssh-storage.c:416
+#: ../tool/gkr-tool.c:102
#, c-format
-msgid "Invalid secure shell private key at: %s"
-msgstr "Kyç privat jo korrekt i shell të sigurt tek: %s"
+msgid "usage: gnome-keyring command [options]\n"
+msgstr ""
-#: ../daemon/ssh/gkr-ssh-storage.c:465
-#, c-format
-msgid "Couldn't encrypt the SSH key to store it."
-msgstr "I pamundur kriptimi i kyçit SSH për ta regjistruar."
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr ""
-#: ../daemon/ssh/gkr-ssh-storage.c:481
-#, c-format
-msgid "Couldn't encode the SSH key to store it."
-msgstr "I pamundur kodifikimi i kyçit SSH për ta regjistruar."
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
-#: ../daemon/ui/gkr-ask-tool.c:244
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Regjistron fjalëkalimet pa i shifruar?"
-#: ../daemon/ui/gkr-ask-tool.c:245
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
"files."
msgstr ""
"Duke zgjedhur përdorimin e një fjalëkalimi bosh, fjalëkalimet personale të "
-"regjistruara nuk do të shifrohen në një menyrë të sigurtë. Kushdo që ka hyrje "
-"në kompjuterin tuaj ka hyrje edhe tek fjalëkalimet."
+"regjistruara nuk do të shifrohen në një menyrë të sigurtë. Kushdo që ka "
+"hyrje në kompjuterin tuaj ka hyrje edhe tek fjalëkalimet."
-#: ../daemon/ui/gkr-ask-tool.c:252
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Përdor regjistrim të pasigurt"
-#: ../daemon/ui/gkr-ask-tool.c:479
-msgid "_Location:"
-msgstr "_Pozicioni:"
-
-#: ../daemon/ui/gkr-ask-tool.c:492
-msgid "_Old password:"
-msgstr "Fjalëkalimi i _vjetër:"
-
-#: ../daemon/ui/gkr-ask-tool.c:512
-msgid "_Password:"
-msgstr "_Fjalëkalimi:"
-
-#: ../daemon/ui/gkr-ask-tool.c:534
-msgid "_Confirm password:"
-msgstr "_Konfermo fjalëkalimin:"
-
-#: ../daemon/ui/gkr-ask-tool.c:554
-msgid "New password strength"
-msgstr "Siguria e fjalëkalimit të ri"
-
-#: ../daemon/ui/gkr-ask-tool.c:612
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Fjalëkalimet nuk përputhen."
-#: ../daemon/ui/gkr-ask-tool.c:628
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Fjalëkalimi nuk mund të jetë bosh"
-#: ../daemon/ui/gkr-ask-tool.c:679
-msgid "Deny"
-msgstr "Moho"
-
-#: ../daemon/ui/gkr-ask-tool.c:691
-msgid "C_reate"
-msgstr "K_rijo"
-
-#: ../daemon/ui/gkr-ask-tool.c:695
-msgid "C_hange"
-msgstr "Ndrys_ho"
-
-#: ../daemon/ui/gkr-ask-tool.c:699
-msgid "Allow _Once"
-msgstr "Lej_o kësaj here"
-
-#: ../daemon/ui/gkr-ask-tool.c:703
-msgid "_Always Allow"
-msgstr "Lejo _gjithmonë"
-
-#: ../gp11/gp11-misc.c:90
-msgid "Insufficient memory available"
-msgstr "Memorja në dispozicion e pamjaftueshme"
-
-#: ../gp11/gp11-misc.c:92
-msgid "The specified slot ID is not valid"
-msgstr "ID e slot të specifikuar nuk është i vlefshëm"
-
-#: ../gp11/gp11-misc.c:94
-msgid "Internal error"
-msgstr "Gabim i brendshëm"
-
-#: ../gp11/gp11-misc.c:96
-msgid "The operation failed"
-msgstr "Operacioni dështoi"
-
-#: ../gp11/gp11-misc.c:98
-msgid "Invalid arguments"
-msgstr "Argumentë të pavlefshëm"
-
-#: ../gp11/gp11-misc.c:100
-msgid "The module cannot create needed threads"
-msgstr "Moduli nuk mund të krijojë thread e nevojshëm"
-
-#: ../gp11/gp11-misc.c:102
-msgid "The module cannot lock data properly"
-msgstr "Moduli nuk mund të bllokojë në menyrë të përshtatshme të dhënat"
-
-#: ../gp11/gp11-misc.c:104
-msgid "The field is read-only"
-msgstr "Fusha është në vetëm lexim"
-
-#: ../gp11/gp11-misc.c:106
-msgid "The field is sensitive and cannot be revealed"
-msgstr "Fusha është e ndjeshme dhe nuk mund të zbulohet"
-
-#: ../gp11/gp11-misc.c:108
-msgid "The field is invalid or does not exist"
-msgstr "Fusha është e pavlefshme ose nuk ekziston"
-
-#: ../gp11/gp11-misc.c:110
-msgid "Invalid value for field"
-msgstr "Vlerë e pavlefshme për fushën"
-
-#: ../gp11/gp11-misc.c:112
-msgid "The data is not valid or unrecognized"
-msgstr "E dhëna nuk është e vlefshme ose është e panjohur"
-
-#: ../gp11/gp11-misc.c:114
-msgid "The data is too long"
-msgstr "E dhëna është tepër e gjatë"
-
-#: ../gp11/gp11-misc.c:116
-msgid "An error occurred on the device"
-msgstr "U verifikua një gabim në dispozitiv"
-
-#: ../gp11/gp11-misc.c:118
-msgid "Insufficient memory available on device"
-msgstr "Kujtesë në dispozicion në dispozitiv e pamjaftueshme"
-
-#: ../gp11/gp11-misc.c:120
-msgid "The device was removed or unplugged"
-msgstr "Dispozitivi është hequr ose zgjidhur"
-
-#: ../gp11/gp11-misc.c:122
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "Të dhënat e shifruara janë të pavlefshme ose të panjohura"
-
-#: ../gp11/gp11-misc.c:124
-msgid "The encrypted data is too long"
-msgstr "Të dhënat e shifruara janë tepër të gjata"
-
-#: ../gp11/gp11-misc.c:126
-msgid "This operation is not supported"
-msgstr "Ky operacion nuk suportohet"
-
-#: ../gp11/gp11-misc.c:128
-msgid "The key is missing or invalid"
-msgstr "Kyçi mungon ose është i pasaktë"
-
-#: ../gp11/gp11-misc.c:130
-msgid "The key is the wrong size"
-msgstr "Kyçi ka gjatësi të gabuar"
-
-#: ../gp11/gp11-misc.c:132
-msgid "The key is of the wrong type"
-msgstr "Kyçi është i një lloji të gabuar"
-
-#: ../gp11/gp11-misc.c:134
-msgid "No key is needed"
-msgstr "Nuk nevoitet asnjë kyç"
-
-#: ../gp11/gp11-misc.c:136
-msgid "The key is different than before"
-msgstr "Kyçi ndryshon nga përpara"
-
-#: ../gp11/gp11-misc.c:138
-msgid "A key is needed"
-msgstr "Nevoitet një kyç"
-
-#: ../gp11/gp11-misc.c:140
-msgid "Cannot include the key in digest"
-msgstr "E pamundur përfshirja e kyçit në digest"
-
-#: ../gp11/gp11-misc.c:142
-msgid "This operation cannot be done with this key"
-msgstr "Ky operacion nuk mund të kryhet me këtë kyç"
-
-#: ../gp11/gp11-misc.c:144
-msgid "The key cannot be wrapped"
-msgstr "Kyçi nuk mund të pjesëzohet"
-
-#: ../gp11/gp11-misc.c:146
-msgid "Cannot export this key"
-msgstr "I pamundur eksportimi i këtij kyçi"
-
-#: ../gp11/gp11-misc.c:148
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "Mekanizmi i shifrimit është i pavlefshëm ose nuk njihet"
-
-#: ../gp11/gp11-misc.c:150
-msgid "The crypto mechanism has an invalid argument"
-msgstr "Mekanizmi i shifrimit ka një argument të pavlefshëm"
-
-#: ../gp11/gp11-misc.c:152
-msgid "The object is missing or invalid"
-msgstr "Objekti mungon ose është i pavlefshëm"
-
-#: ../gp11/gp11-misc.c:154
-msgid "Another operation is already taking place"
-msgstr "Një operacion tjetër është në kryerje e sipër"
-
-#: ../gp11/gp11-misc.c:156
-msgid "No operation is taking place"
-msgstr "Nuk është duke u kryer asnjë operacion"
-
-#: ../gp11/gp11-misc.c:158
-msgid "The password or PIN is incorrect"
-msgstr "Fjalëkalimi ose PIN nuk është korrekt"
-
-#: ../gp11/gp11-misc.c:160
-msgid "The password or PIN is invalid"
-msgstr "Fjalëkalimi ose PIN është i pavlefshëm"
-
-#: ../gp11/gp11-misc.c:162
-msgid "The password or PIN is of an invalid length"
-msgstr "Gjatësia e fjalëkalimit apo PIN është e pavlefshme"
-
-#: ../gp11/gp11-misc.c:164
-msgid "The password or PIN has expired"
-msgstr "Fjalëkalimi ose PIN ka skaduar"
-
-#: ../gp11/gp11-misc.c:166
-msgid "The password or PIN is locked"
-msgstr "Fjalëkalimi ose PIN është i bllokuar"
-
-#: ../gp11/gp11-misc.c:168
-msgid "The session is closed"
-msgstr "Seanca është mbyllur"
-
-#: ../gp11/gp11-misc.c:170
-msgid "Too many sessions are active"
-msgstr "Tepër seanca aktive"
-
-#: ../gp11/gp11-misc.c:172
-msgid "The session is invalid"
-msgstr "Seanca është e pavlefshme"
-
-#: ../gp11/gp11-misc.c:174
-msgid "The session is read-only"
-msgstr "Seanca është në vetëm lexim"
-
-#: ../gp11/gp11-misc.c:176
-msgid "An open session exists"
-msgstr "Ekziston një seancë e hapur"
-
-#: ../gp11/gp11-misc.c:178
-msgid "A read-only session exists"
-msgstr "Një seancë në vetëm lexim ekziston"
-
-#: ../gp11/gp11-misc.c:180
-msgid "An administrator session exists"
-msgstr "Ekziston një seancë administratori"
-
-#: ../gp11/gp11-misc.c:182
-msgid "The signature is bad or corrupted"
-msgstr "Firma është e gabuar ose e fallsifikuar"
-
-#: ../gp11/gp11-misc.c:184
-msgid "The signature is unrecognized or corrupted"
-msgstr "Firma është e panjohur ose e fallsifikuar"
-
-#: ../gp11/gp11-misc.c:186
-msgid "Certain required fields are missing"
-msgstr "Mungojnë disa fusha të kërkuara"
-
-#: ../gp11/gp11-misc.c:188
-msgid "Certain fields have invalid values"
-msgstr "Disa fusha kanë vlera të pavlefshme"
-
-#: ../gp11/gp11-misc.c:190
-msgid "The device is not present or unplugged"
-msgstr "Dispozitivi nuk është prezent ose nuk është i lidhur"
-
-#: ../gp11/gp11-misc.c:192
-msgid "The device is invalid or unrecognizable"
-msgstr "Dispozitivi është i pavlefshëm ose i panjohur"
-
-#: ../gp11/gp11-misc.c:194
-msgid "The device is write protected"
-msgstr "Dispozitivi është i mbrojtur nga shkrimi"
-
-#: ../gp11/gp11-misc.c:196
-msgid "Cannot import because the key is invalid"
-msgstr "I pamundur importimi pasi kyçi është i pavlefshëm"
-
-#: ../gp11/gp11-misc.c:198
-msgid "Cannot import because the key is of the wrong size"
-msgstr "I pamundur importimi pasi kyçi ka gjatësi të gabuar"
-
-#: ../gp11/gp11-misc.c:200
-msgid "Cannot import because the key is of the wrong type"
-msgstr "I pamundur importimi pasi kyçi është i një lloji të gabuar"
-
-#: ../gp11/gp11-misc.c:202
-msgid "You are already logged in"
-msgstr "Hyrja është kryer rregullisht"
-
-#: ../gp11/gp11-misc.c:204
-msgid "No user has logged in"
-msgstr "Nuk është futur asnjë përdorues"
-
-#: ../gp11/gp11-misc.c:206
-msgid "The user's password or PIN is not set"
-msgstr "Fjalëkalimi apo PIN i përdoruesit nuk është përcaktuar"
-
-#: ../gp11/gp11-misc.c:208
-msgid "The user is of an invalid type"
-msgstr "Përdoruesi është i një lloji të pavlefshëm"
-
-#: ../gp11/gp11-misc.c:210
-msgid "Another user is already logged in"
-msgstr "Një tjetër përdorues është futur rregullisht"
-
-#: ../gp11/gp11-misc.c:212
-msgid "Too many users of different types logged in"
-msgstr "Tepër përdorues të llojeve të ndryshëm janë futur"
-
-#: ../gp11/gp11-misc.c:214
-msgid "Cannot import an invalid key"
-msgstr "I pamundur importimi i një kyçi të pavlefshëm"
-
-#: ../gp11/gp11-misc.c:216
-msgid "Cannot import a key of the wrong size"
-msgstr "I pamundur importimi i një kyçi me gjatësi të gabuar"
-
-#: ../gp11/gp11-misc.c:218
-msgid "Cannot export because the key is invalid"
-msgstr "I pamundur eksportimi pasi kyçi është i pavlefshëm"
-
-#: ../gp11/gp11-misc.c:220
-msgid "Cannot export because the key is of the wrong size"
-msgstr "I pamundur eksportimi pasi kyçi është me gjatësi të gabuar"
-
-#: ../gp11/gp11-misc.c:222
-msgid "Cannot export because the key is of the wrong type"
-msgstr "I pamundur eksportimi pasi kyçi është i një lloji të gabuar"
-
-#: ../gp11/gp11-misc.c:224
-msgid "Unable to initialize the random number generator"
-msgstr "E pamundur nisja e gjeneratorit të numrave të rastësishëm"
-
-#: ../gp11/gp11-misc.c:226
-msgid "No random number generator available"
-msgstr "Asnjë gjenerator numrash të rastësishëm në dispozicion"
-
-#: ../gp11/gp11-misc.c:228
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "Mekanizmi i kriptimit ka një parametër të pavlefshëm"
-
-#: ../gp11/gp11-misc.c:230
-msgid "Not enough space to store the result"
-msgstr "Hapësirë e pamjaftueshme për të arkivuar rezultatin"
-
-#: ../gp11/gp11-misc.c:232
-msgid "The saved state is invalid"
-msgstr "Gjëndja e ruajtur është e pavlefshme"
-
-#: ../gp11/gp11-misc.c:234
-msgid "The information is sensitive and cannot be revealed"
-msgstr "Informacioni është i ndjeshëm dhe nuk mund të zbulohet"
-
-#: ../gp11/gp11-misc.c:236
-msgid "The state cannot be saved"
-msgstr "Gjëndja nuk mund të zbulohet"
-
-#: ../gp11/gp11-misc.c:238
-msgid "The module has not been initialized"
-msgstr "Moduli nuk është nisur"
-
-#: ../gp11/gp11-misc.c:240
-msgid "The module has already been initialized"
-msgstr "Moduli është nisur rregullisht"
-
-#: ../gp11/gp11-misc.c:242
-msgid "Cannot lock data"
-msgstr "I pamundur bllokimi i të dhënave"
-
-#: ../gp11/gp11-misc.c:244
-msgid "The data cannot be locked"
-msgstr "Të dhënat nuk mund të bllokohen"
-
-#: ../gp11/gp11-misc.c:246
-msgid "The signature request was rejected by the user"
-msgstr "Kërkesa e firmës nuk është pranuar nga përdoruesi"
-
-#: ../gp11/gp11-misc.c:250
-msgid "Unknown error"
-msgstr "Gabim i panjohur"
-
-#: ../library/gnome-keyring-utils.c:91
-msgid "Access Denied"
-msgstr "Hyrja u ndalua"
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:93
-msgid "The gnome-keyring-daemon application is not running."
-msgstr "Aplikativi gnome-keyring-daemon nuk është duke u ekzekutuar."
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:95
-msgid "Error communicating with gnome-keyring-daemon"
-msgstr "Gabim gjatë komunikimit me gnome-keyring-daemon"
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
+msgstr "Siguria e fjalëkalimit të ri"
-#: ../library/gnome-keyring-utils.c:97
-msgid "A keyring with that name already exists"
-msgstr "Një mbajtës çelsash me atë emër ekziston rregullisht"
+#: ../ui/gku-prompt.ui.h:2
+#, fuzzy
+msgid "_Application:"
+msgstr "_Pozicioni:"
-#: ../library/gnome-keyring-utils.c:99
-msgid "Programmer error: The application sent invalid data."
-msgstr "Gabim programimi: aplikativi ka dërguar të dhëna të pavlefshme."
+#: ../ui/gku-prompt.ui.h:3
+#, fuzzy
+msgid "_Confirm:"
+msgstr "_Konfermo fjalëkalimin:"
-#: ../library/gnome-keyring-utils.c:101
-msgid "No matching results"
-msgstr "Asnjë rezultat korrespondues"
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:103
-msgid "A keyring with that name does not exist."
-msgstr "Nuk ekziston asnjë mbajtës çelsash me atë emër."
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr ""
-#: ../library/gnome-keyring-utils.c:110
-msgid "The keyring has already been unlocked."
-msgstr "Mbajtësi i çelsave është rregullisht i zhbllokuar."
+#: ../ui/gku-prompt.ui.h:6
+#, fuzzy
+msgid "_Old Password:"
+msgstr "Fjalëkalimi i _vjetër:"
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "_Fjalëkalimi:"
diff --git a/po/sr.po b/po/sr.po
index 9f406090..ea0534be 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -9,25 +9,24 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-09-19 12:19+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-19 19:10+0200\n"
"Last-Translator: МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <gnom@prevod.org>\n"
+"Language: sr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: sr\n"
-"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n%"
-"10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n"
+"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Virtaal 0.7.0\n"
"X-Project-Style: gnome\n"
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Ðеимановани"
@@ -103,35 +102,34 @@ msgstr "Гномови привеÑци: ГПГ агент"
msgid "GPG Password Agent"
msgstr "Ðгент за ГПГ лозинке"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Ðепознато"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "ПГП кључ: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "УнеÑите лозинку"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Заборави лозинку ако Ñам одÑутан више од"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Заборави лозинку након"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Заборави лозинку када Ñе одјавим"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Пријава"
@@ -175,7 +173,7 @@ msgstr "Средње име"
msgid "Surname"
msgstr "Презиме"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "СеријÑки број"
@@ -231,7 +229,7 @@ msgstr "DN ознака"
msgid "Pseudonym"
msgstr "ПÑеудоним"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -247,7 +245,7 @@ msgstr "MD5 Ñа RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 Ñа RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -288,589 +286,6 @@ msgstr ""
msgid "Unexpected error in waitpid() (%s)"
msgstr "Ðеочекивана грешка у функцији waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Грешка учитавања ПКЦС#11 модула: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "ÐеиÑправан ПКЦС#11 модул: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Ðе могу да подеÑим ПКЦС#11 модул: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "Ðе могу да покренем ПКЦС#11 модул: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "Ðе могу да покренем региÑтроване ПКЦС#11 модуле: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Ðазив"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Издавач"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "ИÑтиче"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "Сертификат"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Датотека већ поÑтоји Ñа овим називом.</b>\n"
-"\n"
-"Да ли желите да је замените новом датотеком?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_Замени"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "Операција је отказана."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Извези уверење"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Датотеке уверења"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "ПЕМ датотеке"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Други назив"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "ХМПП адреÑа"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "ДÐС СРВ"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "Е-пошта"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "ДÐС"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "Ð¥400 адреÑа"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "ФаÑцикла"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "Ðазив ЕДИ Ñтране"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "ÐдреÑа"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "ИП адреÑа"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "РегиÑтрован ИБ"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "ОÑновна ограничења"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "Издавач уверења"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Да"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Ðе"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Ðајвећа дужина путање"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Ðеограничено"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Коришћење проширеног кључа"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Дозвољене Ñврхе"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Идентификатор кључа објекта"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Идентификатор кључа"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Дигитални потпиÑ"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Замућивање кључа"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Замућивање података"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "СаглаÑноÑÑ‚ кључа"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "ÐŸÐ¾Ñ‚Ð¿Ð¸Ñ ÑƒÐ²ÐµÑ€ÐµÑšÐ°"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "СпиÑак опозива потпиÑа"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Коришћење кључа"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Употребе"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Ðлтернативни називи Ñубјекта"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Проширење"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Идентификатор"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "ВредноÑÑ‚"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Критично"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Ðе могу да извезем уверење."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "Идентитет"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Проверио"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "ИÑтиче"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Име предмета"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Име издаваоца"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Издати Ñертификат"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Издање"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Ðе важи пре"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Ðе важи поÑле"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "ОтиÑци уверења"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "ПотпиÑ"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Ðлгоритам потпиÑа"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Параметри потпиÑа"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Подаци о јавном кључу"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Ðлгоритам кључа"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Параметри кључа"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Величина кључа"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "СХÐ1 отиÑак кључа"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "Јавни кључ"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_Детаљи"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "Ðе могу да прикажем „%s“"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "Ðе могу да прикажем датотеку"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Разлог"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Ðе могу да прикажем датотеку ове врÑте."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Увези уверења и кључеве"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Увези у:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Лозинка:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "ПГП кључ"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "ИБ кључа"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "ГнуПГ Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ˜Ðµ изашао Ñа кодом: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "ГнуПГ Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ˜Ðµ окончан Ñигналом: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919 ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "Радња је поништена"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "УнеÑите лозинку за откључавање тајног кључа"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "УнеÑите лозинку за откључавање Ñертификата"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "УнеÑите лозинку за откључавање"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Да биÑте увезли тајни кључ, он мора бити откључан"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Да биÑте увезли Ñертификат, он мора бити откључан"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Да биÑте увезли податак, он мора бити откључан"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Да биÑте увезли тајни кључ „%s“, он мора бити откључан"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Да биÑте увезли Ñертификат „%s“, он мора бити откључан"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Да биÑте увезли „%s“, он мора бити откључан"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Ðиједно меÑто није доÑтупно за увоз"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Увези Ñертификате/кључеве"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Изаберите меÑто за Ñкладиштење увезених Ñертификата/кључева."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Кључ"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Приватни РСРкључ"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Приватни ДСРкључ"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "Приватни кључ"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Јавни ДСРкључ"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d бит"
-msgstr[1] "%d бита"
-msgstr[2] "%d бита"
-msgstr[3] "један бит"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Јачина"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Ðлгоритам"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Величина"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "ОтиÑци"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "СХÐ1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "СХÐ256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "Ðепрепознати или неподржани подаци."
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "Ðе могу да обрадим неиÑправне или оштећене податке."
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "Подаци Ñу закључани"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Ðе могу да пронађем меÑто да уÑкладиштим прикачено уверење"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Сам откључај овај привезак када Ñе пријавим."
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Ðакон овога закључај тренутни привезак"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Закључај овај привезак ако је неактиван"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Закључај овај привезак када Ñе одјавим"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "минута"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "Откључај: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "Откључај"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "Лозинка није иÑправна"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Лозинка"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr ""
-"Садржај „%s“ је закључана. Да биÑте видели Ñадржај, унеÑите иÑправну лозинку."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr ""
-"Садржаји Ñу закључани. Да биÑте видели Ñадржаје, унеÑите иÑправну лозинку."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "Прегледач ГЦР уверења и кључева"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Приказује издање програма"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[датотека...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "— Прегледајте датотеке уверења и кључева"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "Прегледач уверења"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "ÐдреÑа имаше неиÑправно кодирање."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "ÐдреÑа нема „pkcs11“ шему."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "ÐдреÑа има лошу ÑинтакÑу."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "ÐдреÑа има лош број издања."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Ðеименовани Ñертификат"
@@ -880,7 +295,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Ðе могу да обрадим јавни SSH кључ"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Откључај лозинку за %s"
@@ -939,10 +354,26 @@ msgstr "Откључај уверење"
msgid "Unlock public key"
msgstr "Откључај јавни кључ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "Откључај"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "УнеÑите лозинку за откључавање тајног кључа"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "УнеÑите лозинку за откључавање Ñертификата"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "УнеÑите лозинку за откључавање јавног кључа"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "УнеÑите лозинку за откључавање"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1030,11 +461,11 @@ msgstr "наредбе: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Да ли да памтим нешифроване лозинке?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1043,15 +474,15 @@ msgstr ""
"Уколико изаберете празну лозинку, запамћене лозинке неће бити безбедне, па "
"ће моћи да их кориÑти Ñвако ко приÑтупи вашим датотекама."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "КориÑти небезбедно Ñкладиште"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Лозинке Ñе не подударају."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Лозинка не може бити празна"
@@ -1090,291 +521,3 @@ msgstr "_Стара лозинка:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Лозинка:"
-
-#~ msgid "Fingerprint"
-#~ msgstr "ОтиÑак прÑта"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "Ðема довољно меморије"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "Ðаведени идентификатор Ñлота није иÑправан"
-
-#~ msgid "Internal error"
-#~ msgstr "Грешка унутар програма"
-
-#~ msgid "The operation failed"
-#~ msgstr "Радња није уÑпела"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "Ðргументи ниÑу иÑправни"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "Модул не може да креира потребне нити"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "Модул не може правилно да закључа податке"
-
-#~ msgid "The field is read-only"
-#~ msgstr "Ово поље је Ñамо за читање"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "Ово поље је оÑетљиво и не може бити откривено"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "Ово поље је неиÑправно или не поÑтоји"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "Ðије иÑправна вредноÑÑ‚ за поље"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "Податак није иÑправан или није препознат"
-
-#~ msgid "The data is too long"
-#~ msgstr "Податак је предугачак"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "ДеÑила Ñе грешка на уређају"
-
-#~ msgid "Insufficient memory available on the device"
-#~ msgstr "Ðема довољно меморије на уређају"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "Уређај је уклоњен или иÑкључен"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "Шифровани подаци ниÑу иÑправни или ниÑу препознати"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "Шифровани подаци Ñу предугачки"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "Ова радња није подржана"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "Кључ недоÑтаје или је неиÑправан"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "Погрешна величина кључа"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "Погрешан тип кључа"
-
-#~ msgid "No key is needed"
-#~ msgstr "Ðије потребан кључ"
-
-#~ msgid "The key is different than before"
-#~ msgstr "Кључ је Ñада другачији него пре"
-
-#~ msgid "A key is needed"
-#~ msgstr "Потребан је кључ"
-
-#~ msgid "Cannot include the key in the digest"
-#~ msgstr "Ðе могу да уврÑтим кључ у Ñажетак"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "Ðе можете да изведете тражену операцију овим кључем"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "Ðе могу да упакујем кључ"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "Ðе могу да извезем овај кључ"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "Механизам шифровања је неиÑправан или није препознат"
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "Механизам шифровања има неиÑправан аргумент"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "Објекат недоÑтаје или није иÑправан"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "Ðека друга радња је у току"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "Ðиједна друга радња није у току"
-
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "Ðије тачна лозинка или ПИБ"
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "Ðије иÑправна лозинка или ПИБ"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "Лозинка или ПИБ има неиÑправну дужину"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "Лозинци или ПИБ-у је иÑтекао рок важења"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "Закључана је лозинка или ПИБ"
-
-#~ msgid "The session is closed"
-#~ msgstr "СеÑија је затворена"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "Има превише активних ÑеÑија"
-
-#~ msgid "The session is invalid"
-#~ msgstr "СеÑија је неиÑправна"
-
-#~ msgid "The session is read-only"
-#~ msgstr "СеÑија је Ñамо за читање"
-
-#~ msgid "An open session exists"
-#~ msgstr "Већ поÑтоји отворена ÑеÑија"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "Већ поÑтоји отворена ÑеÑија, Ñамо за читање"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "Већ поÑтоји админиÑтраторÑка ÑеÑија"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "ÐŸÐ¾Ñ‚Ð¿Ð¸Ñ Ñ˜Ðµ лош или оштећен"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "ÐŸÐ¾Ñ‚Ð¿Ð¸Ñ Ð½Ð¸Ñ˜Ðµ препознат или је оштећен"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "Ðека обавезна поља ниÑу попуњена"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "Ðека поља имају неиÑправне вредноÑти"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "Уређај није приÑутан или је иÑкључен"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "Уређај је неиÑправан или непознат"
-
-#~ msgid "The device is write protected"
-#~ msgstr "Уређај је поÑедује заштиту од упиÑа"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "Ðе могу да увезем јер је кључ неиÑправан"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "Ðе могу да увезем јер кључ нема иÑправну величину"
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "Ðе могу да увезем јер је тип кључа неиÑправан"
-
-#~ msgid "You are already logged in"
-#~ msgstr "Већ Ñте пријављени"
-
-#~ msgid "No user has logged in"
-#~ msgstr "Ðије пријављен ниједан кориÑник"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "Ðије поÑтављена кориÑничка лозинка или ПИБ"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "Ðије иÑправан тип кориÑника"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "Већ је пријављен други кориÑник"
-
-#~ msgid "Too many users of different types are logged in"
-#~ msgstr "Пријављено је превише кориÑника различитих типова"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "Ðе могу да увезем неиÑправан кључ"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "Ðе могу да увезем кључ неиÑправне величине"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "Ðе могу да извезем јер је кључ неиÑправан"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "Ðе могу да извезем јер кључ нема ипÑравну величину"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "Ðе могу да извезем јер је тип кључа неиÑправан"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "Ðе могу да иницијализујем генератор Ñлучајних бројева"
-
-#~ msgid "No random number generator available"
-#~ msgstr "Ðиједан генератор Ñлучајних бројева није доÑтупан"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "Механизам шифровања има неиÑправан параметар"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "Ðедовољно меÑта да Ñе уÑкладишти резултат"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "Сачувано Ñтање је неиÑправно"
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "Овај податак је оÑетљив и не могу да га откријем"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "Ðе могу да Ñачувам Ñтање"
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "Модул није покренут"
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "Модул је већ покренут"
-
-#~ msgid "Cannot lock data"
-#~ msgstr "Ðе могу да закључам податке"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "Ðе могу да закључам податке"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "Захтев за потпиÑом је одбачен од Ñтране кориÑника"
-
-#~ msgid "Unknown error"
-#~ msgstr "Ðепозната грешка"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>Ðије део Ñертификата</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>непознато</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<Ðије део Ñертификата>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>ОтиÑци</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Издат од</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Издат за</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>Овај Ñертификат је проверен за Ñледеће употребе:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>ИÑправноÑÑ‚</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "Пуно име (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "Сертификат примаоца е-поште"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "Сертификат потпиÑника е-поште"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "MD5 ОтиÑак"
-
-#~ msgid "Organization (O)"
-#~ msgstr "Организација (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "Организациона јединица (OU)"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr "<span size='large' weight='bold'>Увези Ñертификате и кључеве</span>"
diff --git a/po/sr@latin.po b/po/sr@latin.po
index e9cdbb3c..54cb4cb6 100644
--- a/po/sr@latin.po
+++ b/po/sr@latin.po
@@ -9,25 +9,24 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-09-19 12:19+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-19 19:10+0200\n"
"Last-Translator: Miroslav Nikolić <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <gnom@prevod.org>\n"
+"Language: sr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: sr\n"
-"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n%"
-"10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n"
+"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Virtaal 0.7.0\n"
"X-Project-Style: gnome\n"
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Neimanovani"
@@ -103,35 +102,34 @@ msgstr "Gnomovi privesci: GPG agent"
msgid "GPG Password Agent"
msgstr "Agent za GPG lozinke"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Nepoznato"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP kljuÄ: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Unesite lozinku"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Zaboravi lozinku ako sam odsutan više od"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Zaboravi lozinku nakon"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Zaboravi lozinku kada se odjavim"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Prijava"
@@ -175,7 +173,7 @@ msgstr "Srednje ime"
msgid "Surname"
msgstr "Prezime"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Serijski broj"
@@ -231,7 +229,7 @@ msgstr "DN oznaka"
msgid "Pseudonym"
msgstr "Pseudonim"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -247,7 +245,7 @@ msgstr "MD5 sa RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 sa RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -288,589 +286,6 @@ msgstr ""
msgid "Unexpected error in waitpid() (%s)"
msgstr "NeoÄekivana greÅ¡ka u funkciji waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "GreÅ¡ka uÄitavanja PKCS#11 modula: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Neispravan PKCS#11 modul: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Ne mogu da podesim PKCS#11 modul: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "Ne mogu da pokrenem PKCS#11 modul: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "Ne mogu da pokrenem registrovane PKCS#11 module: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Naziv"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "IzdavaÄ"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "IstiÄe"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "Sertifikat"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Datoteka već postoji sa ovim nazivom.</b>\n"
-"\n"
-"Da li želite da je zamenite novom datotekom?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_Zameni"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "Operacija je otkazana."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Izvezi uverenje"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Datoteke uverenja"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "PEM datoteke"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Drugi naziv"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "HMPP adresa"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "E-pošta"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "H400 adresa"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Fascikla"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "Naziv EDI strane"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "Adresa"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "IP adresa"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "Registrovan IB"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Osnovna ograniÄenja"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "IzdavaÄ uverenja"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Da"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Ne"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Najveća dužina putanje"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "NeograniÄeno"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Korišćenje proÅ¡irenog kljuÄa"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Dozvoljene svrhe"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Identifikator kljuÄa objekta"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Identifikator kljuÄa"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Digitalni potpis"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Zamućivanje kljuÄa"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Zamućivanje podataka"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Saglasnost kljuÄa"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Potpis uverenja"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Spisak opoziva potpisa"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Korišćenje kljuÄa"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Upotrebe"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Alternativni nazivi subjekta"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Proširenje"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Identifikator"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Vrednost"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "KritiÄno"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Ne mogu da izvezem uverenje."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "Identitet"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Proverio"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "IstiÄe"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Ime predmeta"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Ime izdavaoca"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Izdati sertifikat"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Izdanje"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Ne važi pre"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Ne važi posle"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Otisci uverenja"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Potpis"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Algoritam potpisa"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Parametri potpisa"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Podaci o javnom kljuÄu"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Algoritam kljuÄa"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Parametri kljuÄa"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "VeliÄina kljuÄa"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "SHA1 otisak kljuÄa"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "Javni kljuÄ"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_Detalji"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "Ne mogu da prikažem „%s“"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "Ne mogu da prikažem datoteku"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Razlog"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Ne mogu da prikažem datoteku ove vrste."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Uvezi uverenja i kljuÄeve"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Uvezi u:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Lozinka:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "PGP kljuÄ"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "IB kljuÄa"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "GnuPG proces je izašao sa kodom: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "GnuPG proces je okonÄan signalom: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919 ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "Radnja je poništena"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Unesite lozinku za otkljuÄavanje tajnog kljuÄa"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Unesite lozinku za otkljuÄavanje sertifikata"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Unesite lozinku za otkljuÄavanje"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Da biste uvezli tajni kljuÄ, on mora biti otkljuÄan"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Da biste uvezli sertifikat, on mora biti otkljuÄan"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Da biste uvezli podatak, on mora biti otkljuÄan"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Da biste uvezli tajni kljuÄ â€ž%s“, on mora biti otkljuÄan"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Da biste uvezli sertifikat „%s“, on mora biti otkljuÄan"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Da biste uvezli „%s“, on mora biti otkljuÄan"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Nijedno mesto nije dostupno za uvoz"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Uvezi sertifikate/kljuÄeve"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Izaberite mesto za skladiÅ¡tenje uvezenih sertifikata/kljuÄeva."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "KljuÄ"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Privatni RSA kljuÄ"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Privatni DSA kljuÄ"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "Privatni kljuÄ"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Javni DSA kljuÄ"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-msgstr[1] "%d bita"
-msgstr[2] "%d bita"
-msgstr[3] "jedan bit"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "JaÄina"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algoritam"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "VeliÄina"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Otisci"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "Neprepoznati ili nepodržani podaci."
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "Ne mogu da obradim neispravne ili oštećene podatke."
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "Podaci su zakljuÄani"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Ne mogu da pronaÄ‘em mesto da uskladiÅ¡tim prikaÄeno uverenje"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Sam otkljuÄaj ovaj privezak kada se prijavim."
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Nakon ovoga zakljuÄaj trenutni privezak"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "ZakljuÄaj ovaj privezak ako je neaktivan"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "ZakljuÄaj ovaj privezak kada se odjavim"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minuta"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "OtkljuÄaj: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "OtkljuÄaj"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "Lozinka nije ispravna"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Lozinka"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr ""
-"Sadržaj „%s“ je zakljuÄana. Da biste videli sadržaj, unesite ispravnu lozinku."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr ""
-"Sadržaji su zakljuÄani. Da biste videli sadržaje, unesite ispravnu lozinku."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "PregledaÄ GCR uverenja i kljuÄeva"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Prikazuje izdanje programa"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[datoteka...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "— Pregledajte datoteke uverenja i kljuÄeva"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "PregledaÄ uverenja"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "Adresa imaše neispravno kodiranje."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "Adresa nema „pkcs11“ šemu."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "Adresa ima lošu sintaksu."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "Adresa ima loš broj izdanja."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Neimenovani sertifikat"
@@ -880,7 +295,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Ne mogu da obradim javni SSH kljuÄ"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "OtkljuÄaj lozinku za %s"
@@ -939,10 +354,26 @@ msgstr "OtkljuÄaj uverenje"
msgid "Unlock public key"
msgstr "OtkljuÄaj javni kljuÄ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "OtkljuÄaj"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Unesite lozinku za otkljuÄavanje tajnog kljuÄa"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Unesite lozinku za otkljuÄavanje sertifikata"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Unesite lozinku za otkljuÄavanje javnog kljuÄa"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Unesite lozinku za otkljuÄavanje"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1030,11 +461,11 @@ msgstr "naredbe: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Da li da pamtim nešifrovane lozinke?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1043,15 +474,15 @@ msgstr ""
"Ukoliko izaberete praznu lozinku, zapamćene lozinke neće biti bezbedne, pa "
"će moći da ih koristi svako ko pristupi vašim datotekama."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Koristi nebezbedno skladište"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Lozinke se ne podudaraju."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Lozinka ne može biti prazna"
@@ -1090,291 +521,3 @@ msgstr "_Stara lozinka:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Lozinka:"
-
-#~ msgid "Fingerprint"
-#~ msgstr "Otisak prsta"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "Nema dovoljno memorije"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "Navedeni identifikator slota nije ispravan"
-
-#~ msgid "Internal error"
-#~ msgstr "Greška unutar programa"
-
-#~ msgid "The operation failed"
-#~ msgstr "Radnja nije uspela"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "Argumenti nisu ispravni"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "Modul ne može da kreira potrebne niti"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "Modul ne može pravilno da zakljuÄa podatke"
-
-#~ msgid "The field is read-only"
-#~ msgstr "Ovo polje je samo za Äitanje"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "Ovo polje je osetljivo i ne može biti otkriveno"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "Ovo polje je neispravno ili ne postoji"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "Nije ispravna vrednost za polje"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "Podatak nije ispravan ili nije prepoznat"
-
-#~ msgid "The data is too long"
-#~ msgstr "Podatak je predugaÄak"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "Desila se greška na uređaju"
-
-#~ msgid "Insufficient memory available on the device"
-#~ msgstr "Nema dovoljno memorije na uređaju"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "UreÄ‘aj je uklonjen ili iskljuÄen"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "Å ifrovani podaci nisu ispravni ili nisu prepoznati"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "Å ifrovani podaci su predugaÄki"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "Ova radnja nije podržana"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "KljuÄ nedostaje ili je neispravan"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "PogreÅ¡na veliÄina kljuÄa"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "PogreÅ¡an tip kljuÄa"
-
-#~ msgid "No key is needed"
-#~ msgstr "Nije potreban kljuÄ"
-
-#~ msgid "The key is different than before"
-#~ msgstr "KljuÄ je sada drugaÄiji nego pre"
-
-#~ msgid "A key is needed"
-#~ msgstr "Potreban je kljuÄ"
-
-#~ msgid "Cannot include the key in the digest"
-#~ msgstr "Ne mogu da uvrstim kljuÄ u sažetak"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "Ne možete da izvedete traženu operaciju ovim kljuÄem"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "Ne mogu da upakujem kljuÄ"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "Ne mogu da izvezem ovaj kljuÄ"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "Mehanizam Å¡ifrovanja je neispravan ili nije prepoznat"
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "Mehanizam Å¡ifrovanja ima neispravan argument"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "Objekat nedostaje ili nije ispravan"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "Neka druga radnja je u toku"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "Nijedna druga radnja nije u toku"
-
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "Nije taÄna lozinka ili PIB"
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "Nije ispravna lozinka ili PIB"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "Lozinka ili PIB ima neispravnu dužinu"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "Lozinci ili PIB-u je istekao rok važenja"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "ZakljuÄana je lozinka ili PIB"
-
-#~ msgid "The session is closed"
-#~ msgstr "Sesija je zatvorena"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "Ima previše aktivnih sesija"
-
-#~ msgid "The session is invalid"
-#~ msgstr "Sesija je neispravna"
-
-#~ msgid "The session is read-only"
-#~ msgstr "Sesija je samo za Äitanje"
-
-#~ msgid "An open session exists"
-#~ msgstr "Već postoji otvorena sesija"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "Već postoji otvorena sesija, samo za Äitanje"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "Već postoji administratorska sesija"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "Potpis je loš ili oštećen"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "Potpis nije prepoznat ili je oštećen"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "Neka obavezna polja nisu popunjena"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "Neka polja imaju neispravne vrednosti"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "UreÄ‘aj nije prisutan ili je iskljuÄen"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "Uređaj je neispravan ili nepoznat"
-
-#~ msgid "The device is write protected"
-#~ msgstr "Uređaj je poseduje zaštitu od upisa"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "Ne mogu da uvezem jer je kljuÄ neispravan"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "Ne mogu da uvezem jer kljuÄ nema ispravnu veliÄinu"
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "Ne mogu da uvezem jer je tip kljuÄa neispravan"
-
-#~ msgid "You are already logged in"
-#~ msgstr "Već ste prijavljeni"
-
-#~ msgid "No user has logged in"
-#~ msgstr "Nije prijavljen nijedan korisnik"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "Nije postavljena korisniÄka lozinka ili PIB"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "Nije ispravan tip korisnika"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "Već je prijavljen drugi korisnik"
-
-#~ msgid "Too many users of different types are logged in"
-#~ msgstr "Prijavljeno je previÅ¡e korisnika razliÄitih tipova"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "Ne mogu da uvezem neispravan kljuÄ"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "Ne mogu da uvezem kljuÄ neispravne veliÄine"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "Ne mogu da izvezem jer je kljuÄ neispravan"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "Ne mogu da izvezem jer kljuÄ nema ipsravnu veliÄinu"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "Ne mogu da izvezem jer je tip kljuÄa neispravan"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "Ne mogu da inicijalizujem generator sluÄajnih brojeva"
-
-#~ msgid "No random number generator available"
-#~ msgstr "Nijedan generator sluÄajnih brojeva nije dostupan"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "Mehanizam Å¡ifrovanja ima neispravan parametar"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "Nedovoljno mesta da se uskladišti rezultat"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "SaÄuvano stanje je neispravno"
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "Ovaj podatak je osetljiv i ne mogu da ga otkrijem"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "Ne mogu da saÄuvam stanje"
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "Modul nije pokrenut"
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "Modul je već pokrenut"
-
-#~ msgid "Cannot lock data"
-#~ msgstr "Ne mogu da zakljuÄam podatke"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "Ne mogu da zakljuÄam podatke"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "Zahtev za potpisom je odbaÄen od strane korisnika"
-
-#~ msgid "Unknown error"
-#~ msgstr "Nepoznata greška"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>Nije deo sertifikata</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>nepoznato</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<Nije deo sertifikata>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>Otisci</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Izdat od</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Izdat za</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>Ovaj sertifikat je proveren za sledeće upotrebe:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>Ispravnost</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "Puno ime (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "Sertifikat primaoca e-pošte"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "Sertifikat potpisnika e-pošte"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "MD5 Otisak"
-
-#~ msgid "Organization (O)"
-#~ msgstr "Organizacija (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "Organizaciona jedinica (OU)"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr "<span size='large' weight='bold'>Uvezi sertifikate i kljuÄeve</span>"
diff --git a/po/sv.po b/po/sv.po
index 1bad1055..8a3ed190 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-12 20:56+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-12 20:56+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -18,10 +18,9 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANSLATORS: This is the label for an keyring created without a label
-#: ../daemon/dbus/gkd-secret-change.c:78
-#: ../daemon/dbus/gkd-secret-create.c:79
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Namnlös"
@@ -37,8 +36,12 @@ msgstr "Välj ett nytt lösenord för nyckelringen \"%s\""
#: ../daemon/dbus/gkd-secret-change.c:92
#, c-format
-msgid "An application wants to change the password for the '%s' keyring. Choose the new password you want to use for it."
-msgstr "Ett okänt program vill ändra lösenordet för nyckelringen \"%s\". Välj ett nytt lösenord som du vill använda för den."
+msgid ""
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
+msgstr ""
+"Ett okänt program vill ändra lösenordet för nyckelringen \"%s\". Välj ett "
+"nytt lösenord som du vill använda för den."
#: ../daemon/dbus/gkd-secret-change.c:111
msgid "The original password was incorrect"
@@ -54,8 +57,12 @@ msgstr "Välj lösenord för den nya nyckelringen"
#: ../daemon/dbus/gkd-secret-create.c:86
#, c-format
-msgid "An application wants to create a new keyring called '%s'. Choose the password you want to use for it."
-msgstr "Ett okänt program vill skapa en ny nyckelring med namnet \"%s\". Välj ett lösenord som du vill använda för den."
+msgid ""
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
+msgstr ""
+"Ett okänt program vill skapa en ny nyckelring med namnet \"%s\". Välj ett "
+"lösenord som du vill använda för den."
#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
msgid "Certificate and Key Storage"
@@ -89,36 +96,34 @@ msgstr "GNOME-nyckelring: GPG-agent"
msgid "GPG Password Agent"
msgstr "GPG-lösenordsagent"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104
-#: ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Okänd"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP-nyckel: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Ange lösenfras"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Glöm detta lösenord om inaktiv i"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Glöm detta lösenord efter"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Glöm detta lösenord när jag loggar ut"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Inloggning"
@@ -163,7 +168,6 @@ msgid "Surname"
msgstr "Förnamn"
#: ../egg/egg-oid.c:69
-#: ../gcr/gcr-certificate-renderer.c:652
msgid "Serial Number"
msgstr "Serienummer"
@@ -220,7 +224,6 @@ msgid "Pseudonym"
msgstr "Pseudonym"
#: ../egg/egg-oid.c:98
-#: ../gcr/gcr-key-renderer.c:310
msgid "RSA"
msgstr "RSA"
@@ -237,7 +240,6 @@ msgid "SHA1 with RSA"
msgstr "SHA1 med RSA"
#: ../egg/egg-oid.c:103
-#: ../gcr/gcr-key-renderer.c:312
msgid "DSA"
msgstr "DSA"
@@ -276,596 +278,6 @@ msgstr "Oväntat fel i select() vid läsning av data från en barnprocess (%s)"
msgid "Unexpected error in waitpid() (%s)"
msgstr "Oväntat fel i waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "Fel vid inläsning av PKCS#11-modul: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "Ogiltig PKCS#11-modul: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "Kunde inte konfigurera PKCS#11-modul: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "Kunde inte initiera PKCS#11-modul: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "Kunde inte initiera registrerade PKCS#11-moduler: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388
-#: ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "Namn"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "Utfärdat av"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "GÃ¥r ut"
-
-#: ../gcr/gcr-certificate.c:1060
-#: ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101
-#: ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "Certifikat"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>En fil finns redan med detta namn.</b>\n"
-"\n"
-"Vill du ersätta den med en ny fil?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_Ersätt"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "Åtgärden avbröts."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "Exportera certifikat"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "Certifikatfiler"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "PEM-filer"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "Annat namn"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "XMPP Addr"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "E-post"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "X400-adress"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "Katalognamn"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "EDI Party Name"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "IP-adress"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "Registrerat ID"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "Användningsområde"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "Certifikatutfärdare"
-
-#: ../gcr/gcr-certificate-renderer.c:119
-#: ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "Ja"
-
-#: ../gcr/gcr-certificate-renderer.c:119
-#: ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "Nej"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "Maximal sökvägslängd"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "Obegränsad"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "Utökad nyckelanvändning"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "Tillåtna syften"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "Identifierare för ämnesnyckel"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "Nyckelidentifierare"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "Digital signatur"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "Nyckelkryptering"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "Datakryptering"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "Nyckelanvändning"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "Certifikatsignatur"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "Signatur för spärrlista"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "Nyckelanvändning"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "Användningsområden"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "Alternativa ämnesnamn"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "Utökning"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "Identifierare"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "Värde"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "Kritiskt"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "Kunde inte exportera certifikatet."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "Identitet"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "Verifierat av"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "GÃ¥r ut"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "Ämnesnamn"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "Utfärdarens namn"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "Utfärdat certifikat"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "Version"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "Inte giltigt före"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "Inte giltigt efter"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "Certifikatets fingeravtryck"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675
-#: ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "Signatur"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "Signaturalgoritm"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "Signaturparametrar"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "Information om publik nyckel"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "Nyckelalgoritm"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "Nyckelparametrar"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "Nyckelstorlek"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "Nyckelns SHA1-fingeravtryck"
-
-#: ../gcr/gcr-certificate-renderer.c:719
-#: ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "Publik nyckel"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_Detaljer"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "Kunde inte visa \"%s\""
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "Kunde inte visa filen"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "Anledning"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "Kan inte visa en fil av denna typ."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Importera certifikat och nycklar"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Importera till:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Lösenord:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "PGP-nyckel"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "Nyckel-id"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Gnupg-processen avslutades med kod: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Gnupg-processen terminerades med signal: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695
-#: ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919
-#: ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "Åtgärden avbröts"
-
-#: ../gcr/gcr-importer.c:172
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Ange lösenordet för att låsa upp privata nyckeln"
-
-#: ../gcr/gcr-importer.c:174
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Ange lösenordet för att låsa upp certifikatet"
-
-#: ../gcr/gcr-importer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Ange lösenordet för att låsa upp"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Den privata nyckeln måste låsas upp för att kunna importeras"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Certifikatet måste låsas upp för att kunna importeras"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Datat måste låsas upp för att kunna importeras"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Den privata nyckeln \"%s\" måste låsas upp för att kunna importeras"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Certifikatet \"%s\" måste låsas upp för att kunna importeras"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "\"%s\" måste låsas upp för att kunna importeras"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "Ingen plats tillgänglig att importera till"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Importera certifikat/nycklar"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Välj en plats att lagra de importerade certifikaten/nycklarna till."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Nyckel"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "Privat RSA-nyckel"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "Privat DSA-nyckel"
-
-#: ../gcr/gcr-key-renderer.c:287
-#: ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "Privat nyckel"
-
-#: ../gcr/gcr-key-renderer.c:290
-#: ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "Publik DSA-nyckel"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-msgstr[1] "%d bitar"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "Styrka"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "Algoritm"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "Storlek"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "Fingeravtryck"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "Data är okänt eller stöds inte."
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "Kunde inte tolka ogiltigt eller skadat data."
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "Data är låst"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Kunde inte hitta en plats att lagra de nålade certifikaten i"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Lås automatiskt upp den här nyckelringen när jag är inloggad"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "LÃ¥s denna nyckelring efter"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "LÃ¥s denna nyckelring om inaktiv i"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Lås denna nyckelring när jag loggar ut"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "minuter"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "LÃ¥s upp: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65
-#: ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "LÃ¥s upp"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "Lösenordet var felaktigt"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "Lösenord"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid "The contents of '%s' are locked. In order to view the contents, enter the correct password."
-msgstr "Innehållet för \"%s\" är låst. Ange det korrekta lösenordet för att visa innehållet."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid "The contents are locked. In order to view the contents, enter the correct password."
-msgstr "Innehållet är låst. Ange det korrekta lösenordet för att visa innehållet."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "GCR Certifikat- och nyckelvisare"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "Visa programmets version"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[fil...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- Visa certifikat och nyckelfiler"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "Certifikatvisare"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "URI:n har en ogiltig kodning."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "URI:n saknar \"pkcs11\"-schemat."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "URI:n har felaktig syntax."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "URI:n har ett felaktigt versionsnummer."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Namnlöst certifikat"
@@ -875,7 +287,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Kunde inte tolka publik SSH-nyckel"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Lås upp lösenordet för: %s"
@@ -894,12 +306,18 @@ msgid "Enter password to unlock your login keyring"
msgstr "Ange lösenordet för att låsa upp din inloggningsnyckelring"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
-msgid "The password you use to log in to your computer no longer matches that of your login keyring."
-msgstr "Lösenordet som du använde för att logga in i din dator matchar inte längre det i din inloggningsnyckelring."
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
+msgstr ""
+"Lösenordet som du använde för att logga in i din dator matchar inte längre "
+"det i din inloggningsnyckelring."
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
-msgid "The login keyring did not get unlocked when you logged into your computer."
-msgstr "Din inloggningsnyckelring låstes inte upp när du loggade in på din dator."
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr ""
+"Din inloggningsnyckelring låstes inte upp när du loggade in på din dator."
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
msgid "Unlock Keyring"
@@ -927,10 +345,26 @@ msgstr "LÃ¥s upp certifikat"
msgid "Unlock public key"
msgstr "LÃ¥s upp publik nyckel"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "LÃ¥s upp"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Ange lösenordet för att låsa upp privata nyckeln"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Ange lösenordet för att låsa upp certifikatet"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Ange lösenordet för att låsa upp publika nyckeln"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Ange lösenordet för att låsa upp"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -966,8 +400,11 @@ msgstr "Ange lösenordet för att låsa upp certifikatet/nyckellagret"
#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
#, c-format
-msgid "An application wants access to the certificate/key storage '%s', but it is locked"
-msgstr "Ett program vill komma åt certifikatet/nyckellagret \"%s\", men det är låst"
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr ""
+"Ett program vill komma åt certifikatet/nyckellagret \"%s\", men det är låst"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
msgid "New Password Required"
@@ -979,8 +416,12 @@ msgstr "Nytt lösenord krävs för säker lagring"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
#, c-format
-msgid "In order to prepare '%s' for storage of certificates or keys, a password is required"
-msgstr "Ett lösenord krävs för att förbereda \"%s\" för lagring av certifikat eller nycklar"
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
+"Ett lösenord krävs för att förbereda \"%s\" för lagring av certifikat eller "
+"nycklar"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
msgid "Change Password"
@@ -992,8 +433,11 @@ msgstr "Ändra lösenordet för säker lagring"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
-msgid "To change the password for '%s', the original and new passwords are required"
-msgstr "För att ändra lösenordet för \"%s\" så krävs det ursprungliga och det nya lösenordet"
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
+msgstr ""
+"För att ändra lösenordet för \"%s\" så krävs det ursprungliga och det nya "
+"lösenordet"
#: ../tool/gkr-tool.c:102
#, c-format
@@ -1009,23 +453,29 @@ msgstr "kommandon: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Lagra lösenord okrypterade?"
-#: ../ui/gku-prompt-tool.c:595
-msgid "By choosing to use a blank password, your stored passwords will not be safely encrypted. They will be accessible by anyone with access to your files."
-msgstr "Genom att välja att använda ett blankt lösenord kommer dina lagrade lösenord inte att vara krypterade på ett säkert sätt. De kommer att vara åtkomliga för alla som har tillgång till dina filer."
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
+"Genom att välja att använda ett blankt lösenord kommer dina lagrade lösenord "
+"inte att vara krypterade på ett säkert sätt. De kommer att vara åtkomliga "
+"för alla som har tillgång till dina filer."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Använd osäker lagring"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Lösenorden stämde inte överens."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Lösenord får inte vara blanka"
@@ -1064,662 +514,3 @@ msgstr "_Gammalt lösenord:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Lösenord:"
-
-#~ msgid "Fingerprint"
-#~ msgstr "Fingeravtryck"
-#~ msgid "Insufficient memory available"
-#~ msgstr "Slut på minne"
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "Angivet plats-id är inte giltigt"
-#~ msgid "Internal error"
-#~ msgstr "Internt fel"
-#~ msgid "The operation failed"
-#~ msgstr "Åtgärden misslyckades"
-#~ msgid "Invalid arguments"
-#~ msgstr "Ogiltiga argument"
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "Modulen kan inte skapa nödvändiga trådar"
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "Modulen kan inte låsa data korrekt"
-#~ msgid "The field is read-only"
-#~ msgstr "Fältet är skrivskyddat"
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "Fältet är känsligt och kan inte visas"
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "Fältet är ogiltigt eller finns inte"
-#~ msgid "Invalid value for field"
-#~ msgstr "Ogiltigt värde för fält"
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "Data är inte giltigt eller känns inte igen"
-#~ msgid "The data is too long"
-#~ msgstr "Data är för långt"
-#~ msgid "An error occurred on the device"
-#~ msgstr "Ett fel inträffade på enheten"
-#~ msgid "Insufficient memory available on the device"
-#~ msgstr "Slut på tillgängligt minne på enheten"
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "Enheten togs bort eller kopplades från"
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "Krypterat data är inte giltigt eller känns inte igen"
-#~ msgid "The encrypted data is too long"
-#~ msgstr "Krypterat data är för långt"
-#~ msgid "This operation is not supported"
-#~ msgstr "Denna åtgärd stöds inte"
-#~ msgid "The key is missing or invalid"
-#~ msgstr "Nyckeln saknas eller är ogiltig"
-#~ msgid "The key is the wrong size"
-#~ msgstr "Nyckeln har felaktig storlek"
-#~ msgid "The key is of the wrong type"
-#~ msgstr "Nyckeln är av fel typ"
-#~ msgid "No key is needed"
-#~ msgstr "Ingen nyckel behövs"
-#~ msgid "The key is different than before"
-#~ msgstr "Nyckeln har ändrats sedan sist"
-#~ msgid "A key is needed"
-#~ msgstr "En nyckel behövs"
-#~ msgid "Cannot include the key in the digest"
-#~ msgstr "Kan inte inkludera nyckeln i sammandraget"
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "Denna åtgärd kan inte genomföras med denna nyckel"
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "Nyckeln kan inte radbrytas"
-#~ msgid "Cannot export this key"
-#~ msgstr "Kan inte exportera denna nyckel"
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "Krypteringsmekanismen är ogiltig eller känns inte igen"
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "Krypteringsmekanismen har ett ogiltigt argument"
-#~ msgid "The object is missing or invalid"
-#~ msgstr "Objektet saknas eller är ogiltigt"
-#~ msgid "Another operation is already taking place"
-#~ msgstr "En annan åtgärd pågår för tillfället"
-#~ msgid "No operation is taking place"
-#~ msgstr "Ingen åtgärd pågår för tillfället"
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "Lösenordet eller PIN-koden är felaktig"
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "Lösenordet eller PIN-koden är ogiltig"
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "Lösenordet eller PIN-koden har ogiltig längd"
-#~ msgid "The password or PIN has expired"
-#~ msgstr "Lösenordet eller PIN-koden har gått ut"
-#~ msgid "The password or PIN is locked"
-#~ msgstr "Lösenordet eller PIN-koden är låst"
-#~ msgid "The session is closed"
-#~ msgstr "Sessionen är stängd"
-#~ msgid "Too many sessions are active"
-#~ msgstr "För många sessioner är aktiva"
-#~ msgid "The session is invalid"
-#~ msgstr "Sessionen är ogiltig"
-#~ msgid "The session is read-only"
-#~ msgstr "Sessionen är skrivskyddad"
-#~ msgid "An open session exists"
-#~ msgstr "En öppen session finns"
-#~ msgid "A read-only session exists"
-#~ msgstr "En skrivskyddad session finns"
-#~ msgid "An administrator session exists"
-#~ msgstr "En administratörssession finns"
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "Signaturen är felaktig eller skadad"
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "Signaturen känns inte igen eller är skadad"
-#~ msgid "Certain required fields are missing"
-#~ msgstr "Vissa nödvändiga fält saknas"
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "Vissa fält har ogiltiga värden"
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "Enheten finns inte eller är frånkopplad"
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "Enheten är ogiltig eller känns inte igen"
-#~ msgid "The device is write protected"
-#~ msgstr "Enheten är skrivskyddad"
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "Kan inte importera därför att nyckeln är ogiltig"
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "Kan inte importera därför att nyckeln har felaktig storlek"
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "Kan inte importera därför att nyckeln har felaktig typ"
-#~ msgid "You are already logged in"
-#~ msgstr "Du är redan inloggad"
-#~ msgid "No user has logged in"
-#~ msgstr "Ingen användare har loggat in"
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "Användarens lösenord eller PIN-kod har inte angivits"
-#~ msgid "The user is of an invalid type"
-#~ msgstr "Användaren är av en ogiltig typ"
-#~ msgid "Another user is already logged in"
-#~ msgstr "En annan användare är redan inloggad"
-#~ msgid "Too many users of different types are logged in"
-#~ msgstr "För många användare av olika typer är inloggade"
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "Kan inte importera en ogiltig nyckel"
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "Kan inte importera en nyckel med felaktig storlek"
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "Kan inte exportera därför att nyckeln är ogiltig"
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "Kan inte exportera nyckeln därför att den har felaktig storlek"
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "Kan inte exportera nyckeln därför att den har felaktig typ"
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "Kunde inte initiera slumptalsgeneratorn"
-#~ msgid "No random number generator available"
-#~ msgstr "Ingen slumptalsgenerator finns tillgänglig"
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "Krypteringsmekanismen har en ogiltig parameter"
-#~ msgid "Not enough space to store the result"
-#~ msgstr "Det finns inte tillräckligt mycket utrymme för att lagra resultatet"
-#~ msgid "The saved state is invalid"
-#~ msgstr "Sparat tillstånd är ogiltigt"
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "Informationen är känslig och kan inte visas"
-#~ msgid "The state cannot be saved"
-#~ msgstr "Tillståndet kan inte sparas"
-#~ msgid "The module has not been initialized"
-#~ msgstr "Modulen har inte initierats"
-#~ msgid "The module has already been initialized"
-#~ msgstr "Modulen har redan initierats"
-#~ msgid "Cannot lock data"
-#~ msgstr "Kan inte låsa data"
-#~ msgid "The data cannot be locked"
-#~ msgstr "Data kan inte låsas"
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "Signaturbegäran avvisades av användaren"
-#~ msgid "Unknown error"
-#~ msgstr "Okänt fel"
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>Inte en del av certifikatet</i>"
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>okänt</i>"
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<Inte en del av certifikatet>"
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>Fingeravtryck</b>"
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Utfärdat av</b>"
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Utfärdat till</b>"
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>Detta certifikat har verifierats för följande användning:</b>"
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>Giltighet</b>"
-#~ msgid "Common Name (CN)"
-#~ msgstr "Common Name (CN)"
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "Certifikat för e-postmottagare"
-#~ msgid "Email Signer Certificate"
-#~ msgstr "Certifikat för e-postsignering"
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "MD5-fingeravtryck"
-#~ msgid "Organization (O)"
-#~ msgstr "Organisation (O)"
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "Avdelning (OU)"
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr ""
-#~ "<span size='large' weight='bold'>Importera certifikat och nycklar</span>"
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Detta alternativ aktiverar PKCS#11-komponenten i gnome-keyring-demonen. "
-#~ "Den blir endast aktiverad vid uppstart med gnome-session (alltså när "
-#~ "användaren loggar in). Denna inställning kan åsidosättas när vissa "
-#~ "kommandoradsflaggor skickas till demonen."
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "Detta alternativ aktiverar SSH-agenten i gnome-keyring-demonen. Den blir "
-#~ "endast aktiverad när gnome-keyring-daemon startar, (alltså när användaren "
-#~ "loggar in). Denna inställning kan åsidosättas när vissa "
-#~ "kommandoradsflaggor skickas till demonen."
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Detta alternativ aktiverar tjänstekomponenten för hemligheter i gnome-"
-#~ "keyring-demonen. Den blir endast aktiverad vid uppstart med gnome-session "
-#~ "(alltså när användaren loggar in). Denna inställning kan åsidosättas när "
-#~ "vissa kommandoradsflaggor skickas till demonen."
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "Huruvida PKCS#11-komponenten i gnome-keyring är aktiverad."
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "Huruvida SSH-agenten i gnome-keyring är aktiverad."
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr "Huruvida hemlighetstjänsten i gnome-keyring är aktiverad."
-#~ msgid "Automatically unlock secure storage when I log in."
-#~ msgstr "Lås automatiskt upp säkerhetslagret när jag loggar in."
-
-#, fuzzy
-#~ msgid ""
-#~ "<span size=\"large\" weight=\"bold\">Enter password for keyring 'login' "
-#~ "to unlock</span>\n"
-#~ "\n"
-#~ "An application wants access to the keyring 'xxx', but it is locked."
-#~ msgstr ""
-#~ "Ett okänt program vill komma åt nyckelringen \"%s\", men den är låst."
-
-#, fuzzy
-#~ msgid "Prompt me for each application that accesses this keyring."
-#~ msgstr "Tillåt åtkomst till nyckelringen för programmet"
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "Programmet \"%s\" (%s) vill komma åt lösenordet för \"<object prop='name'/"
-#~ ">\" i standardnyckelringen."
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "Programmet \"%s\" (%s) vill komma åt lösenordet för \"<object prop='name'/"
-#~ ">\" i %s."
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "Programmet \"%s\" vill komma åt lösenordet för \"<object prop='name'/>\" "
-#~ "i standardnyckelringen."
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "Programmet \"%s\" vill komma åt lösenordet för \"<object prop='name'/>\" "
-#~ "i %s."
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "Ett okänt program vill komma åt lösenordet för \"<object prop='name'/>\" "
-#~ "i standardnyckelringen."
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "Ett okänt program vill komma åt lösenordet för \"<object prop='name'/>\" "
-#~ "i %s."
-#~ msgid "Allow access"
-#~ msgstr "Tillåt åtkomst"
-#~ msgid "Allow application access to keyring?"
-#~ msgstr "Tillåt åtkomst till nyckelringen för programmet?"
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Programmet \"%s\" (%s) vill komma åt standardnyckelringen, men den är låst"
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Programmet \"%s\" (%s) vill komma åt nyckelringen \"%s\", men den är låst"
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-#~ msgstr ""
-#~ "Programmet \"%s\" vill komma åt standardnyckelringen, men den är låst"
-#~ msgid ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-#~ msgstr ""
-#~ "Programmet \"%s\" vill komma åt nyckelringen \"%s\", men den är låst"
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Ett okänt program vill komma åt standardnyckelringen, men den är låst"
-#~ msgid "Enter password for default keyring to unlock"
-#~ msgstr "Ange lösenord för att låsa upp standardnyckelringen"
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Programmet \"%s\" (%s) vill skapa en ny nyckelring med namnet \"%s\". Du "
-#~ "måste välja det lösenord som du vill använda för den nyckelringen."
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Programmet \"%s\" (%s) vill skapa en ny standardnyckelring. Du måste "
-#~ "välja det lösenord som du vill använda för den nyckelringen."
-#~ msgid ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Programmet \"%s\" vill skapa en ny nyckelring med namnet \"%s\". Du måste "
-#~ "välja det lösenord som du vill använda för den nyckelringen."
-#~ msgid ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "Programmet \"%s\" vill skapa en ny standardnyckelring. Du måste välja det "
-#~ "lösenord som du vill använda för den nyckelringen."
-#~ msgid ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "Ett okänt program vill skapa en ny standardnyckelring. Du måste välja det "
-#~ "lösenord som du vill använda för den nyckelringen."
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Programmet \"%s\" (%s) vill ändra lösenordet för nyckelringen \"%s\". Du "
-#~ "måste välja det lösenord som du vill använda för den nyckelringen."
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Programmet \"%s\" (%s) vill ändra lösenordet för standardnyckelringen. Du "
-#~ "måste välja det lösenord som du vill använda för den nyckelringen."
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Programmet \"%s\" vill ändra lösenordet för nyckelringen \"%s\". Du måste "
-#~ "välja det lösenord som du vill använda för den nyckelringen."
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Programmet \"%s\" vill ändra lösenordet för standardnyckelringen. Du "
-#~ "måste välja det lösenord som du vill använda för den nyckelringen."
-#~ msgid ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Ett okänt program vill ändra lösenordet för standardnyckelringen. Du "
-#~ "måste välja det lösenord som du vill använda för den nyckelringen."
-#~ msgid "Choose a new password for the default keyring."
-#~ msgstr "Välj ett nytt lösenord för standardnyckelringen."
-#~ msgid ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-#~ msgstr ""
-#~ "Programmet \"%s\" (%s) vill lagra ett lösenord, men det finns ingen "
-#~ "standardnyckelring. För att skapa en måste du välja det lösenord som du "
-#~ "vill använda för den."
-#~ msgid ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "Programmet \"%s\" vill lagra ett lösenord, men det finns ingen "
-#~ "standardnyckelring. För att skapa en måste du välja det lösenord som du "
-#~ "vill använda för den."
-#~ msgid ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "Ett okänt program vill lagra ett lösenord, men det finns ingen "
-#~ "standardnyckelring. För att skapa en måste du välja det lösenord som du "
-#~ "vill använda för den."
-#~ msgid "Create Default Keyring"
-#~ msgstr "Skapa standardnyckelring"
-#~ msgid "Choose password for default keyring"
-#~ msgstr "Välj lösenord för standardnyckelringen"
-#~ msgid "Create Login Keyring"
-#~ msgstr "Skapa nyckelring för inloggning"
-#~ msgid "Enter your login password"
-#~ msgstr "Ange ditt inloggningslösenord"
-#~ msgid ""
-#~ "Your login keyring was not automatically created when you logged into "
-#~ "this computer. It will now be created."
-#~ msgstr ""
-#~ "Din inloggningsnyckelring skapades inte automatiskt när du loggade in på "
-#~ "denna dator. Den kommer nu att skapas."
-#~ msgid "Unlock password for %s keyring"
-#~ msgstr "Upplåsningslösenord för nyckelringen %s"
-#~ msgid "Automatically unlock this private key when I log in."
-#~ msgstr "Lås automatiskt upp den här privata nyckeln när jag loggar in."
-#~ msgid "Automatically unlock this certificate when I log in."
-#~ msgstr "Lås automatiskt upp det här certifikatet när jag loggar in."
-#~ msgid "Automatically unlock this public key when I log in."
-#~ msgstr "Lås automatiskt upp den här publika nyckeln när jag loggar in."
-#~ msgid "Automatically unlock this when I log in"
-#~ msgstr "Lås automatiskt upp denna när jag loggar in"
-#~ msgid ""
-#~ "<b><big>Could not grab your mouse.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>Kunde inte fånga din mus.</big></b>\n"
-#~ "\n"
-#~ "En ondsint klient kanske tjuvlyssnar på din session, du kanske klickade i "
-#~ "en meny eller något program bestämde sig för att ta fokus.\n"
-#~ "\n"
-#~ "Prova igen."
-#~ msgid ""
-#~ "<b><big>Could not grab your keyboard.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>Kunde inte fånga ditt tangentbord.</big></b>\n"
-#~ "\n"
-#~ "En ondsint klient kanske tjuvlyssnar på din session, du kanske klickade i "
-#~ "en meny eller något program bestämde sig för att ta fokus.\n"
-#~ "\n"
-#~ "Prova igen."
-#~ msgid "_Deny"
-#~ msgstr "_Neka"
-#~ msgid "C_reate"
-#~ msgstr "S_kapa"
-#~ msgid "C_hange"
-#~ msgstr "Ä_ndra"
-#~ msgid "Allow _Once"
-#~ msgstr "Tillåt _denna gång"
-#~ msgid "_Always Allow"
-#~ msgstr "Tillåt _alltid"
-#~ msgid "Removable Disk: %s"
-#~ msgstr "Flyttbar disk: %s"
-#~ msgid "Removable Disk"
-#~ msgstr "Flyttbar disk"
-#~ msgid "Home"
-#~ msgstr "Hem"
-#~ msgid "The disk or drive this file is located on is not present"
-#~ msgstr "Disken eller enheten som den här filen finns på är inte tillgänglig"
-#~ msgid "Couldn't create directory: %s"
-#~ msgstr "Kunde inte skapa katalog: %s"
-#~ msgid "Access Denied"
-#~ msgstr "Ã…tkomst nekad"
-#~ msgid "The gnome-keyring-daemon application is not running."
-#~ msgstr "Programmet gnome-keyring-daemon kör inte."
-#~ msgid "Error communicating with gnome-keyring-daemon"
-#~ msgstr "Fel vid kommunikation med gnome-keyring-daemon"
-#~ msgid "A keyring with that name already exists"
-#~ msgstr "En nyckelring med det namnet finns redan"
-#~ msgid "Programmer error: The application sent invalid data."
-#~ msgstr "Programmeringsfel: Programmet skickade ogiltigt data."
-#~ msgid "No matching results"
-#~ msgstr "Inga matchande resultat"
-#~ msgid "A keyring with that name does not exist."
-#~ msgstr "En nyckelring med det namnet finns inte."
-#~ msgid "The keyring has already been unlocked."
-#~ msgstr "Nyckelringen har redan låsts upp."
-#~ msgid ""
-#~ "A list of paths to PKCS#11 modules to load. No modules are currently "
-#~ "listed by default, as this is still an experimental feature. This is used "
-#~ "by seahorse and other PKCS#11 aware applications."
-#~ msgstr ""
-#~ "En lista över sökvägar till PKCS#11-moduler att läsa in. Inga moduler "
-#~ "listas för närvarande som standard eftersom detta fortfarande är en "
-#~ "experimentell funktion. Denna används av seahorse och andra program som "
-#~ "känner till PKCS#11."
-#~ msgid "Import private key"
-#~ msgstr "Importera privat nyckel"
-#~ msgid "Import public key"
-#~ msgstr "Importera publik nyckel"
-#~ msgid "Import"
-#~ msgstr "Importera"
-#~ msgid "The system wants to import the private key '%s', but it is locked"
-#~ msgstr "Systemet vill importera publika nyckeln \"%s\", men den är låst"
-#~ msgid "The system wants to import the certificate '%s', but it is locked"
-#~ msgstr "Systemet vill importera certifikatet \"%s\", men det är låst"
-#~ msgid "The system wants to import the public key '%s', but it is locked"
-#~ msgstr "Systemet vill importera publika nyckeln \"%s\", men den är låst"
-#~ msgid "The system wants to import '%s', but it is locked"
-#~ msgstr "Systemet vill importera \"%s\", men den är låst"
-#~ msgid "Create Storage for Key Information"
-#~ msgstr "Skapa lagringsplats för nyckelinformation"
-#~ msgid "Choose password to protect storage"
-#~ msgstr "Välj ett lösenord för att skydda lagringsplatsen"
-#~ msgid ""
-#~ "The system wants to store information about your keys and certificates. "
-#~ "In order to protect this information, choose a password with which it "
-#~ "will be locked."
-#~ msgstr ""
-#~ "Systemet vill lagra information om dina nycklar och certifikat. För att "
-#~ "skydda denna information måste du välja ett lösenord att låsa "
-#~ "informationen med."
-#~ msgid "Unlock Storage for Key Information"
-#~ msgstr "Lås upp lagringsplats för nyckelinformation"
-#~ msgid "Enter password to unlock storage"
-#~ msgstr "Ange lösenordet för att låsa upp lagringsplatsen"
-#~ msgid ""
-#~ "The system wants to access information about your keys and certificates, "
-#~ "but it is locked."
-#~ msgstr ""
-#~ "Systemet vill komma åt information om dina nycklar och certifikat, men "
-#~ "den är låst."
-#~ msgid "Trust Association"
-#~ msgstr "Tillitsassociering"
-#~ msgid "Cannot delete '%s' because it is tied to other objects."
-#~ msgstr "Kan inte ta bort \"%s\" därför att den är bunden till andra objekt."
-#~ msgid "Lock private key"
-#~ msgstr "LÃ¥s privat nyckel"
-#~ msgid "Lock"
-#~ msgstr "LÃ¥s"
-#~ msgid "Enter password to protect the private key"
-#~ msgstr "Ange ett lösenord för att skydda den privata nyckeln"
-#~ msgid "Enter password to protect storage"
-#~ msgstr "Ange ett lösenord för att skydda lagringsplatsen"
-#~ msgid ""
-#~ "The system wants to store the private key '%s' on your disk. Please enter "
-#~ "a password to lock it with."
-#~ msgstr ""
-#~ "Systemet vill lagra den privata nyckeln \"%s\" på din disk. Ange ett "
-#~ "lösenord att låsa den med."
-#~ msgid ""
-#~ "The system wants to store '%s' on your disk. Please enter a password to "
-#~ "lock it with."
-#~ msgstr ""
-#~ "Systemet vill lagra \"%s\" på din disk. Ange ett lösenord att låsa den "
-#~ "med."
-#~ msgid "Unrecognized or unsupported file."
-#~ msgstr "Filen är okänd eller stöds inte."
-#~ msgid "Could not parse invalid or corrupted file."
-#~ msgstr "Kunde inte tolka ogiltig eller skadad fil."
-#~ msgid "Couldn't encode secure shell public key."
-#~ msgstr "Kunde inte koda publik Secure Shell-nyckel."
-#~ msgid "Couldn't read secure shell private key: %s"
-#~ msgstr "Kunde inte läsa privat Secure Shell-nyckel: %s"
-#~ msgid "Invalid secure shell private key at: %s"
-#~ msgstr "Ogiltig privat Secure Shell-nyckel på: %s"
-#~ msgid "Couldn't encrypt the SSH key to store it."
-#~ msgstr "Kunde inte kryptera SSH-nyckeln för att lagra den."
-#~ msgid "Couldn't encode the SSH key to store it."
-#~ msgstr "Kunde inte koda SSH-nyckeln för att lagra den."
-#~ msgid "Old password cannot be blank."
-#~ msgstr "Gamla lösenord får inte vara blanka."
-#~ msgid "Must be run from gnome-keyring\n"
-#~ msgstr "Måste köras från gnome-keyring\n"
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Programmet \"%s\" (%s) vill komma åt en okänd nyckelring, men den är låst"
-#~ msgid ""
-#~ "The application '%s' wants access to an unknown keyring, but it is locked"
-#~ msgstr ""
-#~ "Programmet \"%s\" vill komma åt en okänd nyckelring, men den är låst"
-#~ msgid ""
-#~ "An unknown application wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Ett okänt program vill komma åt en okänd nyckelring, men den är låst"
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr ""
-#~ "Programmet \"%s\" (%s) vill komma åt lösenordet för \"%s\" i en okänd "
-#~ "nyckelring."
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '%s' in an unknown "
-#~ "keyring."
-#~ msgstr ""
-#~ "Programmet \"%s\" vill komma åt lösenordet för \"%s\" i en okänd "
-#~ "nyckelring."
-#~ msgid ""
-#~ "An unknown application wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr ""
-#~ "Ett okänt program vill komma åt lösenordet för \"%s\" i en okänd "
-#~ "nyckelring."
-#~ msgid "You must specify the type of request to run\n"
-#~ msgstr "Du måste ange typen av begäran att köra\n"
-#~ msgid "Unknown request type\n"
-#~ msgstr "Okänd begäranstyp\n"
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked."
-#~ msgstr ""
-#~ "Programmet \"%s\" (%s) vill komma åt standardnyckelringen, men den är "
-#~ "låst."
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked."
-#~ msgstr ""
-#~ "Programmet \"%s\" (%s) vill komma åt nyckelringen \"%s\", men den är låst."
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to an unknown keyring, but it is "
-#~ "locked."
-#~ msgstr ""
-#~ "Programmet \"%s\" (%s) vill komma åt en okänd nyckelring, men den är låst."
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is "
-#~ "locked."
-#~ msgstr ""
-#~ "Programmet \"%s\" vill komma åt standardnyckelringen, men den är låst."
-#~ msgid ""
-#~ "The application '%s' wants access to an unknown keyring, but it is locked."
-#~ msgstr ""
-#~ "Programmet \"%s\" vill komma åt en okänd nyckelring, men den är låst."
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked."
-#~ msgstr ""
-#~ "Ett okänt program vill komma åt standardnyckelringen, men den är låst."
-#~ msgid ""
-#~ "An unknown application wants access to an unknown keyring, but it is "
-#~ "locked."
-#~ msgstr ""
-#~ "Ett okänt program vill komma åt en okänd nyckelring, men den är låst."
-#~ msgid "The application '%s' (%s)"
-#~ msgstr "Programmet \"%s\" (%s)"
-#~ msgid "The application '%s'"
-#~ msgstr "Programmet \"%s\""
-#~ msgid "the default keyring"
-#~ msgstr "standardnyckelringen"
-#~ msgid "the keyring '%s'"
-#~ msgstr "nyckelringen \"%s\""
-#~ msgid "an unknown keyring"
-#~ msgstr "en okänd nyckelring"
-#~ msgid "You must specify the type of request to run"
-#~ msgstr "Du måste ange typen av begäran att köra"
-#~ msgid "Unknown request type"
-#~ msgstr "Okänd begäranstyp"
-#~ msgid "*"
-#~ msgstr "*"
-
diff --git a/po/ta.po b/po/ta.po
index 7fb15611..479cec99 100644
--- a/po/ta.po
+++ b/po/ta.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.HEAD.ta\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-13 19:50+0530\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-13 19:52+0530\n"
"Last-Translator: Dr.T.Vasudevan <agnihot3@gmail.com>\n"
"Language-Team: American English <kde-i18n-doc@kde.org>\n"
@@ -19,8 +19,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\\n"
-"\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\\n\n"
"\n"
"\n"
"X-Generator: Lokalize 1.1\n"
@@ -28,7 +27,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "பெயரிலà¯à®²à®¾à®¤à®¤à¯"
@@ -104,35 +103,34 @@ msgstr "GNOME கீரிஙà¯: ஜிபிஜி à®®à¯à®•à®µà®°à¯"
msgid "GPG Password Agent"
msgstr "ஜிபிஜி கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à®¿à®©à¯ பலமà¯"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "தெரியாத"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP விசை: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "கடவà¯à®šà¯à®šà¯Šà®±à¯à®•à®³à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "இவà¯à®µà®³à®µà¯ நேரம௠சà¯à®®à¯à®®à®¾à®¯à®¿à®°à¯à®ªà¯à®ªà®¿à®©à¯ விசை கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ மறகà¯à®•à®µà¯à®®à¯"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "இவà¯à®µà®³à®µà¯ நேரம௠கடநà¯à®¤à®ªà®¿à®©à¯ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ மறகà¯à®•à®µà¯à®®à¯"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "நான௠வெளி செலà¯à®²à¯à®®à¯à®ªà¯‹à®¤à¯ இநà¯à®¤ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ மறகà¯à®•à®µà¯à®®à¯"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "உளà¯à®¨à¯à®´à¯ˆ"
@@ -176,7 +174,7 @@ msgstr "பொதà¯à®µà®¾à®© பெயரà¯"
msgid "Surname"
msgstr "பà¯à®©à¯ˆà®ªà¯à®ªà¯†à®¯à®°à¯"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "வரிசை எணà¯"
@@ -232,7 +230,7 @@ msgstr "DN தகà¯à®¤à®¿à®¯à®¾à®³à®°à¯"
msgid "Pseudonym"
msgstr "Pseudonym"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -248,7 +246,7 @@ msgstr "MD5 உடன௠RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 உடன௠RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -287,585 +285,6 @@ msgstr "select()ல௠சேய௠செயலà¯à®ªà®¾à®Ÿà¯à®Ÿà®¿à®²à®¿à®°à¯
msgid "Unexpected error in waitpid() (%s)"
msgstr "waitpid() ல௠எதிரà¯à®ªà®¾à®°à®¾à®¤ பிழை(%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "பிகேசிஎசà¯(PKCS)#11 à® à®à®±à¯à®±à¯à®®à¯à®ªà¯‹à®¤à¯ பிழை: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "பிகேசிஎசà¯(PKCS)#11 நிரலà¯à®•à¯‚ற௠செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤à®¤à¯: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "பிகேசிஎசà¯(PKCS)#11 நிரலà¯à®•à¯‚ற௠஠அமைகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "பிகேசிஎசà¯(PKCS)#11 நிரலà¯à®•à¯‚ற௠஠தà¯à®µà®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "பதிவ௠செயà¯à®¤ பிகேசிஎசà¯(registered PKCS)#11 நிரலà¯à®•à¯‚ற௠஠தà¯à®µà®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "பெயரà¯"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "வழஙà¯à®•à®¿à®¯à®µà®°à¯"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "காலாவதியானத௠"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "சானà¯à®±à®¿à®¤à®´à¯"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>இநà¯à®¤ பெயரà¯à®Ÿà®©à¯ ஒர௠கோபà¯à®ªà¯ இரà¯à®ªà¯à®ªà®¿à®²à¯ உளà¯à®³à®¤à¯.</b>\n"
-"\n"
-"பà¯à®¤à®¿à®¯ கோபà¯à®ªà®¾à®²à¯ அதை நீகà¯à®• வேணà¯à®Ÿà¯à®®à®¾?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "மாறà¯à®±à¯ (_R)"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "செயல௠ரதà¯à®¤à¯ செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "சானà¯à®±à®¿à®¤à®´à¯ à®à®±à¯à®±à¯à®®à®¤à®¿ செயà¯à®•"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "சானà¯à®±à®¿à®¤à®´à¯ கோபà¯à®ªà¯à®•à®³à¯"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "PEM கோபà¯à®ªà¯à®•à®³à¯"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "வேற௠பெயரà¯"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "எகà¯à®¸à¯à®Žà®®à¯à®ªà®¿à®ªà®¿ à®®à¯à®•à®µà®°à®¿"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "டிஎனà¯à®Žà®¸à¯ எஸà¯à®†à®°à¯à®µà®¿"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "மினà¯à®©à®žà¯à®šà®²à¯"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "X400 à®®à¯à®•à®µà®°à®¿"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "அடைவின௠பெயரà¯"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "ஈடி஠நபரின௠பெயர௠"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "யூஆரà¯à®"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "IP à®®à¯à®•à®µà®°à®¿"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "பதிவ௠செயà¯à®¤ à®à®Ÿà®¿"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "அடிபà¯à®ªà®Ÿà¯ˆ கடà¯à®Ÿà¯à®ªà¯à®ªà®¾à®Ÿà¯à®•à®³à¯"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "சானà¯à®±à®¿à®¤à®´à¯ ஆணையமà¯"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "ஆமà¯"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "இலà¯à®²à¯ˆ"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "அதிக படà¯à®š நீளமà¯"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "வரையிலà¯à®²à®¾à®¤à®¤à¯"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "நீடà¯à®Ÿà®¿à®¤à¯à®¤ விசை பயனà¯à®ªà®¾à®Ÿà¯"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "அனà¯à®®à®¤à®¿à®¤à¯à®¤ நோகà¯à®•à®™à¯à®•à®³à¯"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "பொரà¯à®³à¯ விசை அடையாளம௠காடà¯à®Ÿà®¿"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "விசை அடையாளம௠காடà¯à®Ÿà®¿"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "மினà¯à®©à¯†à®£à¯ கையொபà¯à®ªà®®à¯"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "விசை கà¯à®±à®¿à®¯à®¾à®•à¯à®•à®®à¯"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "தரவ௠கà¯à®±à®¿à®¯à®¾à®•à¯à®•à®®à¯"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "விசை ஒதà¯à®¤à®¿à®šà¯ˆà®µà¯"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "சானà¯à®±à®¿à®¤à®´à¯ கையொபà¯à®ªà®®à¯"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "திரà¯à®ªà¯à®ªà®¿à®ªà¯à®ªà¯†à®±à¯à®± படà¯à®Ÿà®¿à®¯à®²à¯ கையொபà¯à®ªà®®à¯"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "விசை பயனà¯à®ªà®¾à®Ÿà¯"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "பயனà¯à®ªà®¾à®Ÿà¯à®•à®³à¯"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "பொரà¯à®³à®¿à®©à¯ மாறà¯à®±à¯ பெயரà¯à®•à®³à¯"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "நீடà¯à®šà®¿"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "அடையாளம௠காடà¯à®Ÿà¯à®ªà®µà®°à¯"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "மதிபà¯à®ªà¯"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "அவசரமà¯"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "சானà¯à®±à®¿à®¤à®´à¯ à®à®±à¯à®±à¯à®®à®¤à®¿ செயà¯à®¯ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ "
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "அடையாளம௠"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "உறà¯à®¤à®¿à®ªà¯à®ªà®Ÿà¯à®¤à¯à®¤à®¿à®¯à®¤à¯ "
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "காலாவதி தேதி"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "பொரà¯à®³à®¿à®©à¯ பெயரà¯"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "வழஙà¯à®•à¯à®ªà®µà®°à®¿à®©à¯ பெயரà¯"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "தரபà¯à®ªà®Ÿà¯à®Ÿ சானà¯à®±à®¿à®¤à®´à¯"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "பதிபà¯à®ªà¯"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "இதறà¯à®•à¯ à®®à¯à®©à¯ செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤à¯"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "அதறà¯à®•à¯ பின௠செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤à¯"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "சானà¯à®±à®¿à®¤à®´à¯ கைரேகைகளà¯"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "கையொபà¯à®ªà®®à¯"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "கையொபà¯à®ª கணிமà¯à®±à¯ˆ"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "கையொபà¯à®ª பாராமீடà¯à®Ÿà®°à¯à®•à®³à¯"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "பொத௠விசை தகவலà¯"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "விசை கணிமà¯à®±à¯ˆ"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "விசை பாராமீடà¯à®Ÿà®°à¯à®•à®³à¯"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "விசை அளவà¯"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "விசை SHA1 கைரேகை"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "பொத௠விசை"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "விவரஙà¯à®•à®³à¯ (_D)"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "'%s' ஠காடà¯à®Ÿ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ'"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "கோபà¯à®ªà®¿à®©à¯ˆ காடà¯à®Ÿ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "காரணமà¯"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "இநà¯à®¤ வகை கோபà¯à®ªà¯ˆ காடà¯à®Ÿ இயலாதà¯."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "சானà¯à®±à®¿à®¤à®´à¯à®•à®³à¯ மறà¯à®±à¯à®®à¯ விசைகளை இறகà¯à®•à¯à®®à®¤à®¿ செயà¯"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "இதில௠இறகà¯à®•à¯à®®à®¤à®¿ செயà¯:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "கடவà¯à®šà¯à®šà¯Šà®²à¯:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "PGP விசை"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "விசை à®à®Ÿà®¿"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "ஜிஎனà¯à®¯à¯à®ªà®¿à®œà®¿ செயல௠இநà¯à®¤ கோட௠உடன௠வெளியேறியதà¯: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "ஜிஎனà¯à®¯à¯à®ªà®¿à®œà®¿ செயல௠சமிகà¯à®žà¯ˆà®¯à®¾à®²à¯ à®®à¯à®Ÿà®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919 ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "செயல௠ரதà¯à®¤à¯ செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯."
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "விசை வளையதà¯à®¤à®¿à®©à¯ பூடà¯à®Ÿà¯ˆà®¤à¯à®¤à®¿à®±à®•à¯à®• கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "சானà¯à®±à®¿à®¤à®´à®¿à®©à¯ பூடà¯à®Ÿà¯ˆà®¤à¯à®¤à®¿à®±à®•à¯à®• கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "பூடà¯à®Ÿà¯ˆà®¤à¯à®¤à®¿à®±à®•à¯à®• கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "தனிபà¯à®ªà®Ÿà¯à®Ÿ விசையை இறகà¯à®•, அத௠பூடà¯à®Ÿà¯à®¨à¯€à®•à¯à®•à®ªà¯à®ªà®Ÿ வேணà¯à®Ÿà¯à®®à¯."
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "சானà¯à®±à®¿à®¤à®´à¯ˆ இறகà¯à®• அத௠பூடà¯à®Ÿà¯ நீகà¯à®•à®ªà¯à®ªà®Ÿ வேணà¯à®Ÿà¯à®®à¯"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "தரவை இறகà¯à®•, அத௠பூடà¯à®Ÿà¯ நீகà¯à®•à®ªà¯à®ªà®Ÿà®µà¯‡à®£à¯à®Ÿà¯à®®à¯"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "தனிபடà¯à®Ÿ விசை '%s' யை இறகà¯à®•, அத௠பூடà¯à®Ÿ நீகà¯à®•à®ªà¯à®ªà®Ÿ வேணà¯à®Ÿà¯à®®à¯."
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "சானà¯à®±à®¿à®¤à®´à¯ '%s' ஠இறகà¯à®•, அத௠பூடà¯à®Ÿà¯ நீகà¯à®•à®ªà¯à®ªà®Ÿ வேணà¯à®Ÿà¯à®®à¯."
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "'%s'யை இறகà¯à®•, அத௠பூடà¯à®Ÿà¯ நீகà¯à®•à®ªà¯à®ªà®Ÿ வேணà¯à®Ÿà¯à®®à¯."
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "இறகà¯à®• இடம௠எதà¯à®µà¯à®®à¯ இலà¯à®²à¯ˆ"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "சானà¯à®±à®¿à®¤à®´à¯ˆà®•à®³à¯ˆ இறகà¯à®•à¯à®®à®¤à®¿ செயà¯/ விசைகளà¯"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "இறகà¯à®•à¯à®®à®¤à®¿ செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ சானà¯à®±à®¿à®¤à®´à¯à®•à®³à¯ˆà®¯à¯à®®à¯/விசைகளையà¯à®®à¯ சேமிகà¯à®• ஒர௠இடதà¯à®¤à¯ˆ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "விசை"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "அநà¯à®¤à®°à®™à¯à®• ஆரà¯à®Žà®¸à¯à® விசை"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "அநà¯à®¤à®°à®™à¯à®• டிஎஸà¯à® விசை"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "அநà¯à®¤à®°à®™à¯à®• விசை"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "பொத௠டிஎஸà¯à® விசை"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d பிடà¯"
-msgstr[1] "%d பிடà¯à®•à®³à¯"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "பலமà¯"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "அலà¯à®•à®°à®¿à®¤à®®à¯"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "அளவà¯"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "கைரேகைகளà¯"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "எஸà¯à®¹à¯†à®šà¯à®1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "எஸà¯à®¹à¯†à®šà¯à®256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "இனம௠காணாத அலà¯à®²à®¤à¯ ஆதரவ௠இலà¯à®²à®¾ தரவà¯."
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "பகà¯à®•à¯à®• செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤ அலà¯à®²à®¤à¯ சிதைநà¯à®¤ தரவà¯."
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "தரவ௠பூடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "பிணைகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ சானà¯à®±à®¿à®¤à®´à¯à®•à®³à¯ˆ சேமிகà¯à®• ஒர௠இடதà¯à®¤à¯ˆ கணà¯à®Ÿà¯à®ªà®¿à®Ÿà®¿à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "நான௠உளà¯à®¨à¯à®´à¯ˆà®¯à¯à®®à¯à®ªà¯‹à®¤à¯ தானியஙà¯à®•à®¿à®¯à®¾à®• இநà¯à®¤ விசை வளையதà¯à®¤à¯ˆ பூடà¯à®Ÿà¯ திறகà¯à®•à®µà¯à®®à¯."
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "இவà¯à®µà®³à®µà¯ நேரம௠கழிநà¯à®¤ பின௠விசை வளையதà¯à®¤à¯ˆ பூடà¯à®Ÿà®µà¯à®®à¯"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "இவà¯à®µà®³à®µà¯ நேரம௠சà¯à®®à¯à®®à®¾à®¯à®¿à®°à¯à®ªà¯à®ªà®¿à®©à¯ விசை வளையதà¯à®¤à¯ˆ பூடà¯à®Ÿà®µà¯à®®à¯"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "நான௠வெளி செலà¯à®²à¯à®®à¯à®ªà¯‹à®¤à¯ இநà¯à®¤ விசை வளையதà¯à®¤à¯ˆ பூடà¯à®Ÿà®µà¯à®®à¯."
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "நிமிடஙà¯à®•à®³à¯"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "பூடà¯à®Ÿà¯ˆ திற:%s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "பூடà¯à®Ÿà¯ˆ திற"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "கடவà¯à®šà¯à®šà¯Šà®²à¯ தவறானதà¯."
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "கடவà¯à®šà¯à®šà¯Šà®²à¯"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr "'%s' இன௠உளà¯à®³à®Ÿà®•à¯à®•à®™à¯à®•à®³à¯ பூடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà®©. அவறà¯à®±à¯ˆ காண சரியான கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr "உளà¯à®³à®Ÿà®•à¯à®•à®™à¯à®•à®³à¯ பூடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà®©. அவறà¯à®±à¯ˆ காண சரியான கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "சிஜிஆர௠சானà¯à®±à®¿à®¤à®´à¯/விசை காடà¯à®Ÿà®¿"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "இபà¯à®ªà®¯à®©à¯à®ªà®¾à®Ÿà¯à®Ÿà®¿à®©à¯ பதிபà¯à®ªà¯ˆà®•à¯ காடà¯à®Ÿà¯"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[file...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "-சானà¯à®±à®¿à®¤à®´à¯ மறà¯à®±à¯à®®à¯ விசை கோபà¯à®ªà¯à®•à®³à¯ ஠காணà¯"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "சானà¯à®±à®¿à®¤à®´à¯ காடà¯à®Ÿà®¿"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "யூஆர௠஠கà¯à®•à¯ செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤ கà¯à®±à®¿à®¯à®¾à®•à¯à®•à®®à¯ உளà¯à®³à®¤à¯"
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "யூஆரà¯à® ´pkcs11´ திடà¯à®Ÿà®¤à¯à®¤à¯ˆ கொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•à®µà®¿à®²à¯à®²à¯ˆ."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "யூஆரà¯à® கà¯à®•à¯ மோசமான வழிமà¯à®±à¯ˆà®¤à¯ தொடரமைபà¯à®ªà¯ உளà¯à®³à®¤à¯"
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "யூஆரà¯à® கà¯à®•à¯ மோசமான பதிபà¯à®ªà¯ எண௠உளà¯à®³à®¤à¯"
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "பெயரிடபà¯à®ªà®Ÿà®¾à®¤ சானà¯à®±à®¿à®¤à®´à¯"
@@ -875,7 +294,7 @@ msgid "Couldn't parse public SSH key"
msgstr "பொத௠SSH விசையை பகà¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "இவரà¯à®•à¯à®•à¯ விசை வளையதà¯à®¤à¯ˆ திறகà¯à®• கடவà¯à®šà¯à®šà¯Šà®²à¯: %s"
@@ -902,7 +321,8 @@ msgstr ""
"பொரà¯à®¨à¯à®¤à®µà®¿à®²à¯à®²à¯ˆ."
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
-msgid "The login keyring did not get unlocked when you logged into your computer."
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
msgstr ""
"நீஙà¯à®•à®³à¯ உஙà¯à®•à®³à¯ கணினியில௠உளà¯à®¨à¯à®´à¯ˆà®¨à¯à®¤ போத௠உளà¯à®¨à¯à®´à¯ˆà®µà¯ விசை வளையம௠தானியஙà¯à®•à®¿à®¯à®¾à®• பூடà¯à®Ÿà¯ "
"நீகà¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ."
@@ -935,10 +355,26 @@ msgstr "சானà¯à®±à®¿à®¤à®´à®¿à®©à¯ பூடà¯à®Ÿà¯ˆ திற"
msgid "Unlock public key"
msgstr "பொத௠விசையின௠பூடà¯à®Ÿà¯ˆ திற"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "பூடà¯à®Ÿà¯ˆ திற"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "விசை வளையதà¯à®¤à®¿à®©à¯ பூடà¯à®Ÿà¯ˆà®¤à¯à®¤à®¿à®±à®•à¯à®• கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "சானà¯à®±à®¿à®¤à®´à®¿à®©à¯ பூடà¯à®Ÿà¯ˆà®¤à¯à®¤à®¿à®±à®•à¯à®• கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "பொத௠விசையின௠பூடà¯à®Ÿà¯ˆà®¤à¯à®¤à®¿à®±à®•à¯à®• கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "பூடà¯à®Ÿà¯ˆà®¤à¯à®¤à®¿à®±à®•à¯à®• கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -998,7 +434,8 @@ msgstr "சேமிபà¯à®ªà¯ˆ பாதà¯à®•à®¾à®•à¯à®• பà¯à®¤à®¿à®¯ க
msgid ""
"In order to prepare '%s' for storage of certificates or keys, a password is "
"required"
-msgstr "'%s'஠சானà¯à®±à®¿à®¤à®´à¯à®•à®³à¯ அலà¯à®²à®¤à¯ விசைகளà¯à®•à¯à®•à¯ சேமிபà¯à®ªà®•à®®à®¾à®•à¯à®• ஒர௠கடவà¯à®šà¯à®šà¯Šà®²à¯ தேவைபà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯"
+msgstr ""
+"'%s'஠சானà¯à®±à®¿à®¤à®´à¯à®•à®³à¯ அலà¯à®²à®¤à¯ விசைகளà¯à®•à¯à®•à¯ சேமிபà¯à®ªà®•à®®à®¾à®•à¯à®• ஒர௠கடவà¯à®šà¯à®šà¯Šà®²à¯ தேவைபà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
msgid "Change Password"
@@ -1010,7 +447,8 @@ msgstr "சேமிபà¯à®ªà¯ˆ பாதà¯à®•à®¾à®•à¯à®• கடவà¯à®šà¯à
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
-msgid "To change the password for '%s', the original and new passwords are required"
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
msgstr "'%s' கà¯à®•à¯ கடவà¯à®šà¯à®šà¯Šà®²à¯ மாறà¯à®± பழைய கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯à®®à¯ பà¯à®¤à®¿à®¯ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯à®®à¯ தேவை"
#: ../tool/gkr-tool.c:102
@@ -1027,11 +465,11 @@ msgstr "கடà¯à®Ÿà®³à¯ˆà®•à®³à¯: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "கடவà¯à®šà¯à®šà¯Šà®±à¯à®•à®³à¯ˆ சà¯à®°à¯à®•à¯à®• கà¯à®±à®¿à®¯à®¾à®•à¯à®•à®®à¯ செயà¯à®¯à®¾à®®à®²à¯‡ சேமிகà¯à®•à®µà®¾? "
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1040,15 +478,15 @@ msgstr ""
"ஒர௠வெறà¯à®±à¯ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®ªà¯à®ªà®¤à®¾à®²à¯ உஙà¯à®•à®³à¯ சேமிகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ கடவà¯à®šà¯à®šà¯Šà®±à®•à®³à¯ மறையாகà¯à®•à®®à¯ "
"செயà¯à®¯à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ. உஙà¯à®•à®³à¯ கோபà¯à®ªà¯ˆ யாரால௠அணூக à®®à¯à®Ÿà®¿à®¯à¯à®®à¯‹ அவர௠இதை பாரà¯à®•à¯à®•à®²à®¾à®®à¯."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "பாதà¯à®•à®¾à®ªà¯à®ªà¯ இலà¯à®²à®¾à®¤ கிடஙà¯à®•à¯ˆ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯."
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "கடவà¯à®šà¯à®šà¯Šà®±à¯à®•à®³à¯ பொரà¯à®¨à¯à®¤à®µà®¿à®²à¯à®²à¯ˆ"
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "கடவà¯à®šà¯à®šà¯Šà®²à¯ வெறà¯à®®à¯ˆà®¯à®¾à®• இரà¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
@@ -1087,641 +525,3 @@ msgstr "பழைய கடவà¯à®šà¯à®šà¯Šà®²à¯ (_O):"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "கடவà¯à®šà¯à®šà¯Šà®²à¯ (_P):"
-
-#~ msgid "Fingerprint"
-#~ msgstr "கைரேகை"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "போதிய நினைவகம௠இலà¯à®²à¯ˆ"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "கà¯à®±à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ அடையாள இடம௠செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤à®¤à¯"
-
-#~ msgid "Internal error"
-#~ msgstr "உளà¯à®³à®®à¯ˆ பிழை"
-
-#~ msgid "The operation failed"
-#~ msgstr "செயல௠தோலà¯à®µà®¿à®¯à®Ÿà¯ˆà®¨à¯à®¤à®¤à¯"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "செலà¯à®²à®¾à®¤ அளவà¯à®°à¯à®•à¯à®•à®³à¯"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "இநà¯à®¤ கூற௠தேவையான இழைகளை உரà¯à®µà®¾à®•à¯à®• இயலாதà¯."
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "இநà¯à®¤ கூற௠தரவை சரியாக பூடà¯à®Ÿ à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯."
-
-#~ msgid "The field is read-only"
-#~ msgstr "பà¯à®²à®®à¯ படிகà¯à®• மடà¯à®Ÿà¯à®®à¯‡"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "பà¯à®²à®®à¯ பாதà¯à®•à®¾à®•à¯à®• படà¯à®µà®¤à¯. ஆகையால௠காடà¯à®Ÿà®‡à®¯à®²à®¾à®¤à¯"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "பà¯à®²à®®à¯ செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤à®¤à¯ அலà¯à®²à®¤à¯ இரà¯à®ªà¯à®ªà®¿à®²à¯ இலà¯à®²à¯ˆ"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "பà¯à®²à®¤à¯à¯à®¤à¯à®• செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤ மதிபà¯à®ªà¯à¯à®•à¯"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "தரவ௠செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤à®¤à¯ அலà¯à®²à®¤à¯ இனம௠காண à®®à¯à®Ÿà®¿à®¯à®¾à®¤à®¤à¯."
-
-#~ msgid "The data is too long"
-#~ msgstr "தரவ௠மிகப௠பெரியதà¯"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "சாதனதà¯à®¤à®¿à®²à¯ தவற௠நிகழà¯à®¨à¯à®¤à®¤à¯"
-
-#~ msgid "Insufficient memory available on the device"
-#~ msgstr "சாதனதà¯à®¤à®¿à®²à¯ போதிய றினைவகம௠இலà¯à®²à¯ˆ"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "சாதனம௠நீகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯ அலà¯à®²à®¤à¯ இணைபà¯à®ªà¯ தà¯à®£à¯à®Ÿà®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "சà¯à®°à¯à®•à¯à®•à®¿ கà¯à®±à®¿à®¯à®¾à®•à¯à®•à®®à¯ செயà¯à®¤ தரவ௠செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤à®¤à¯ அலà¯à®²à®¤à¯ இனம௠காண à®®à¯à®Ÿà®¿à®¯à®¾à®¤à®¤à¯"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "சà¯à®°à¯à®•à¯à®•à®¿ கà¯à®±à®¿à®¯à®¾à®•à¯à®•à®®à¯ செயà¯à®¤ தரவ௠மிக நீளமானதà¯."
-
-#~ msgid "This operation is not supported"
-#~ msgstr "இநà¯à®¤ செயலà¯à®•à¯à®•à¯ ஆதரவ௠இலà¯à®²à¯ˆ"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "விசை காணவிலà¯à®²à¯ˆ அலà¯à®²à®¤à¯ செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤à®¤à¯"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "விசை தவறான அளவ௠உடையதà¯"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "விசை தவறான வகையானதà¯"
-
-#~ msgid "No key is needed"
-#~ msgstr "விசை தேவை இலà¯à®²à¯ˆ"
-
-#~ msgid "The key is different than before"
-#~ msgstr "விசை à®®à¯à®©à¯à®©à¯ˆ விட மாறானதà¯"
-
-#~ msgid "A key is needed"
-#~ msgstr "ஒர௠விசை தேவை"
-
-#~ msgid "Cannot include the key in the digest"
-#~ msgstr "விசையை தொகà¯à®ªà¯à®ªà®¿à®²à¯ சேரà¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "இநà¯à®¤ செெயலை இநà¯à®¤à¯à®¤ விசையால௠செயà¯à®¯ à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "விசைகà¯à®•à¯ உறையிட à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "விசையை à®à®±à¯à®±à¯à®®à®¤à®¿ செயà¯à®¯ à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "சà¯à®°à¯à®•à¯à®• கà¯à®±à®¿à®¯à®¾à®•à¯à®•à®®à¯ செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤à®¤à¯ அலà¯à®²à®¤à¯ இனம௠காண à®®à¯à®Ÿà®¿à®¯à®¾à®¤à®¤à¯."
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "சà¯à®°à¯à®•à¯à®• கà¯à®±à®¿à®¯à®¾à®•à¯à®•à®¤à¯à®¤à®¿à®²à¯ செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤ அளவà¯à®°à¯ உளà¯à®³à®¤à¯"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "பொரà¯à®³à¯ காணவிலà¯à®²à¯ˆ அலà¯à®²à®¤à¯ செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤à®¤à¯"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "இனà¯à®©à¯Šà®°à¯ செயல௠à®à®±à¯à®•à¯†à®©à®µà¯‡ நிகழà¯à®•à®¿à®±à®¤à¯à¯"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "செயல௠à®à®¤à¯à®®à¯ நிகழவிலà¯à®²à¯ˆ"
-
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "கடவà¯à®šà¯à®šà¯Šà®²à¯ அலà¯à®²à®¤à¯ 'பினà¯' தவறானதà¯."
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "கடவà¯à®šà¯à®šà¯Šà®²à¯ அலà¯à®²à®¤à¯ 'பினà¯' செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤à®¤à¯"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "கடவà¯à®šà¯à®šà¯Šà®²à¯ அலà¯à®²à®¤à¯ 'பினà¯' செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤ நீளமà¯"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "கடவà¯à®šà¯à®šà¯Šà®²à¯ அலà¯à®²à®¤à¯ 'பினà¯' காலாவதியாகிவிடà¯à®Ÿà®¤à¯"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "கடவà¯à®šà¯à®šà¯Šà®²à¯ அலà¯à®²à®¤à¯ 'பினà¯' பூடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯ உளà¯à®³à®¤à¯"
-
-#~ msgid "The session is closed"
-#~ msgstr "அமரà¯à®µà¯ à®®à¯à®Ÿà®¿à®¨à¯à®¤à¯à®µà®¿à®Ÿà¯à®Ÿà®¤à¯"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "மிக அதிக அமரà¯à®µà¯à®•à®³à¯ செயலில௠உளà¯à®³à®©"
-
-#~ msgid "The session is invalid"
-#~ msgstr "அமரà¯à®µà¯ செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤à®¤à¯"
-
-#~ msgid "The session is read-only"
-#~ msgstr "அமரà¯à®µà¯ படிகà¯à®• மடà¯à®Ÿà¯à®®à¯"
-
-#~ msgid "An open session exists"
-#~ msgstr "திறநà¯à®¤ அமரà¯à®µà¯ உளà¯à®³à®¤à¯"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "படிகà¯à®• மடà¯à®Ÿà¯à®®à¯ அமரà¯à®µà¯ உளà¯à®³à®¤à¯"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "நிரà¯à®µà®¾à®•à®¿ அமரà¯à®µà¯ ௠உளà¯à®³à®¤à¯"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "கையொபà¯à®ªà®®à¯ தவற௠அலà¯à®²à®¤à¯ சிதைநà¯à®¤à®¤à¯"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "கையொபà¯à®ªà®¤à¯à®¤à¯ˆ இனம௠காண இயலவிலà¯à®²à¯ˆ அலà¯à®²à®¤à¯ சிதைநà¯à®¤à®¤à¯"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "தேவையான சில பà¯à®²à®™à¯à®•à®³à¯ காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "சில பà¯à®²à®™à¯à®•à®³à®¿à®²à¯ செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤ மதிபà¯à®ªà¯ உளà¯à®³à®¤à¯"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "சாதனம௠இலà¯à®²à¯ˆ அலà¯à®²à®¤à¯ இணைபà¯à®ªà¯ நீகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "சாதனம௠செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤à®¤à¯ அலà¯à®²à®¤à¯ இனம௠காண இயலவிலà¯à®²à¯ˆ "
-
-#~ msgid "The device is write protected"
-#~ msgstr "சாதனதà¯à®¤à®¿à®²à¯ எழà¯à®¤à®¤à®²à¯ தடை செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯à¯"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "விசை செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤à®¤à¯. ஆகையால௠இறகà¯à®•à¯à®®à®¤à®¿ செயà¯à®¯à®ªà¯à®ªà®Ÿ இயலாதà¯"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "விசை அளவ௠தவறானதà¯. ஆகையால௠இறகà¯à®•à¯à®®à®¤à®¿ செயà¯à®¯à®ªà¯à®ªà®Ÿ இயலாதà¯"
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "விசை வகை தவறானதà¯. ஆகையால௠இறகà¯à®•à¯à®®à®¤à®¿ செயà¯à®¯à®ªà¯à®ªà®Ÿ இயலாத௠"
-
-#~ msgid "You are already logged in"
-#~ msgstr "நீஙà¯à®•à®³à¯ à®à®±à¯à®•à¯†à®©à®µà¯‡ உள௠நà¯à®´à¯ˆà®¨à¯à®¤à¯ உளà¯à®³à¯€à®°à¯"
-
-#~ msgid "No user has logged in"
-#~ msgstr "பயனர௠யாரà¯à®®à¯ உள௠நà¯à®´à¯ˆà®¯à®µà®¿à®²à¯à®²à¯ˆ"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "பயனர௠கடவà¯à®šà¯à®šà¯Šà®²à¯ அலà¯à®²à®¤à¯ 'பினà¯' அமைகà¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "பயனர௠செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤ வகையினரà¯"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "இனà¯à®©à¯Šà®°à¯ பயனர௠à®à®±à¯à®•à¯†à®©à®µà¯‡ உள௠நà¯à®´à¯ˆà®¨à¯à®¤à¯ உளà¯à®³à®¾à®°à¯"
-
-#~ msgid "Too many users of different types are logged in"
-#~ msgstr "வேற௠பலà¯à®µà®•à¯ˆ பயனரà¯à®•à®³à¯ à®à®±à¯à®•à¯†à®©à®µà¯‡ உள௠நà¯à®´à¯ˆà®¨à¯à®¤à¯ உளà¯à®³à®©à®°à¯"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤ விசையை இறகà¯à®•à¯à®®à®¤à®¿ செயà¯à®¯ இயலாதà¯"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "தவறான அளவ௠விசையை இறகà¯à®•à¯à®®à®¤à®¿ செயà¯à®¯ இயலாதà¯"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr " செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤ விசையை à®à®±à¯à®±à¯à®®à®¤à®¿ செயà¯à®¯ இயலாதà¯"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "தவறான அளவ௠விசையை à®à®±à¯à®±à¯à®®à®¤à®¿ செயà¯à®¯ இயலாதà¯"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "விசை வகை தவறானதà¯. ஆகையால௠à®à®±à¯à®±à¯à®®à®¤à®¿ செயà¯à®¯ இயலாதà¯"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "தறà¯à®ªà¯‹à®•à¯à®•à¯ எண௠உரà¯à®µà®¾à®•à¯à®•à®¿à®¯à¯ˆ தà¯à®µà®•à¯à®• இயலவிலà¯à®²à¯ˆ"
-
-#~ msgid "No random number generator available"
-#~ msgstr "தறà¯à®ªà¯‹à®•à¯à®•à¯ எண௠உரà¯à®µà®¾à®•à¯à®•à®¿ à®à®¤à¯à®®à¯ இலà¯à®²à¯ˆ "
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "மறையாகà¯à®• இயநà¯à®¤à®¿à®°à®®à¯ செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤ அளபà¯à®°à¯ கொணà¯à®Ÿà®¤à¯"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "விடையை சேமிகà¯à®• போதà¯à®®à®¾à®© இடைவெளி இலà¯à®²à¯ˆ"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "சேமிதà¯à®¤ நிலை செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à®¾à®¤à®¤à¯."
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "தகவல௠அநà¯à®¤à®°à®™à¯à®•à®®à®¾à®©à®¤à¯; காடà¯à®Ÿ இயலாததà¯"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "இநà¯à®¤ நிலையை சேமிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "இநà¯à®¤ கூற௠தà¯à®µà®•à¯à®•à®ªà¯à®ªà®Ÿ à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯."
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "கூற௠à®à®±à¯à®•à¯†à®©à®µà¯‡ தà¯à®µà®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà¯ விடà¯à®Ÿà®¤à¯."
-
-#~ msgid "Cannot lock data"
-#~ msgstr "தரவை பூடà¯à®Ÿ à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "தரவை பூடà¯à®Ÿ à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "பயனர௠கையெழà¯à®¤à¯à®¤à¯ வேணà¯à®Ÿà¯à®¤à®²à¯ˆ நிராகரிதà¯à®¤à®¾à®°à¯."
-
-#~ msgid "Unknown error"
-#~ msgstr "தெரியாத பிழை "
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>சானà¯à®±à®¿à®¤à®´à®²à®¿à®²à¯ பஙà¯à®•à¯ இலà¯à®²à¯ˆ</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>தெரியாத</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<Not Part of Certificate>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>கைரேகைகளà¯</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>வழஙà¯à®•à®¿à®¯à®¤à¯</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>வழஙà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>இநà¯à®¤ சானà¯à®±à®¿à®¤à®´à¯ பினà¯à®µà®°à¯à®®à¯ பயனà¯à®•à®³à¯à®•à¯à®•à®¾à®• சரிபாரà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>மதிபà¯à®ªà®³à®µà¯</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "பொதà¯à®µà®¾à®© பெயர௠(CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "மினà¯à®©à®žà¯à®šà®²à¯ பெறà¯à®¨à®°à¯ சானà¯à®±à®¿à®¤à®´à¯"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "மினà¯à®©à®žà¯à®šà®²à¯ கையொபà¯à®ª சானà¯à®±à®¿à®¤à®´à¯"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "MD5 கைரேகை"
-
-#~ msgid "Organization (O)"
-#~ msgstr "நிறà¯à®µà®©à®®à¯ (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "நிறà¯à®µà®©à®¤à¯à®¤à®¿à®©à¯ அலக௠(OU)"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr ""
-#~ "<span size='large' weight='bold'>சானà¯à®±à®¿à®¤à®´à¯à®•à®³à¯ˆà®¯à¯à®®à¯ விசைகளையà¯à®®à¯ இறகà¯à®•à®µà¯à®®à¯</span>"
-
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "இநà¯à®¤ தேரà¯à®µà¯ கà¯à®©à¯‹à®®à¯ ரிங௠கிஙà¯à®•à®°à®©à®¿à®©à¯ PKCS#11 கூறால௠பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯. இத௠கà¯à®©à¯‹à®®à¯ "
-#~ "தà¯à®µà®™à¯à®•à¯à®®à¯à®ªà¯‹à®¤à¯ மடà¯à®Ÿà¯à®®à¯‡ செயலà¯à®•à¯à®•à¯ வரà¯à®®à¯. (அதாவத௠பயனர௠உளà¯à®¨à¯à®´à¯ˆà®¯à¯à®®à¯ போதà¯) இநà¯à®¤ அமைபà¯à®ªà¯ "
-#~ "கிஙà¯à®•à®°à®©à¯à®•à¯à®•à¯ தரà¯à®®à¯ சில கடà¯à®Ÿà®³à¯ˆ வரி மதிபà¯à®ªà®¾à®²à¯ மாறà¯à®± இயலà¯à®®à¯."
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "இநà¯à®¤ தேரà¯à®µà¯ கà¯à®©à¯‹à®®à¯ ரிங௠SSH à®®à¯à®•à®µà®°à®¾à®²à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯. இத௠அநà¯à®¤ கிஙà¯à®•à®°à®©à¯ "
-#~ "தà¯à®µà®™à¯à®•à¯à®®à¯à®ªà¯‹à®¤à¯ மடà¯à®Ÿà¯à®®à¯‡ செயலà¯à®•à¯à®•à¯ வரà¯à®®à¯. (அதாவத௠பயனர௠உளà¯à®¨à¯à®´à¯ˆà®¯à¯à®®à¯ போதà¯) இநà¯à®¤ அமைபà¯à®ªà¯ "
-#~ "கிஙà¯à®•à®°à®©à¯à®•à¯à®•à¯ தரà¯à®®à¯ சில கடà¯à®Ÿà®³à¯ˆ வரி மதிபà¯à®ªà®¾à®²à¯ மாறà¯à®± இயலà¯à®®à¯."
-
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "இநà¯à®¤ தேரà¯à®µà¯ கà¯à®©à¯‹à®®à¯ ரிங௠கிஙà¯à®•à®°à®©à®¿à®©à¯ ரகசிய சேவை கூறால௠பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯. இத௠"
-#~ "கà¯à®©à¯‹à®®à¯à®¤à¯à®µà®™à¯à®•à¯à®®à¯à®ªà¯‹à®¤à¯ மடà¯à®Ÿà¯à®®à¯‡ செயலà¯à®•à¯à®•à¯ வரà¯à®®à¯. (அதாவத௠பயனர௠உளà¯à®¨à¯à®´à¯ˆà®¯à¯à®®à¯ போதà¯) இநà¯à®¤ "
-#~ "அமைபà¯à®ªà¯ கிஙà¯à®•à®°à®©à¯à®•à¯à®•à¯ தரà¯à®®à¯ சில கடà¯à®Ÿà®³à¯ˆ வரி மதிபà¯à®ªà®¾à®²à¯ மாறà¯à®± இயலà¯à®®à¯."
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "கà¯à®©à¯‹à®®à¯ விசை வளைய அடகà¯à®•à®®à¯ PKCS#11 செயறà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯ பட வேணà¯à®Ÿà¯à®®à®¾"
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "கà¯à®©à¯‹à®®à¯ விசை வளைய SSH à®®à¯à®•à®µà®°à¯ செயறà¯à®ªà®Ÿà¯à®¤à¯à®¤à®¿ உளà¯à®³à®¤à®¾"
-
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr "கà¯à®©à¯‹à®®à¯ விசை வளைய ரகசிய சேவைசெயறà¯à®ªà®Ÿà¯à®¤à¯à®¤à®¿ உளà¯à®³à®¤à®¾"
-
-#~ msgid "Automatically unlock secure storage when I log in."
-#~ msgstr "நான௠உளà¯à®¨à¯à®´à¯ˆà®¯à¯à®®à¯à®ªà¯‹à®¤à¯ தானாக பாதà¯à®•à®¾à®ªà¯à®ªà¯ சேமிபà¯à®ªà®•à®®à¯ பூடà¯à®Ÿà¯ நீகà¯à®•à®ªà¯à®ªà®Ÿ வேணà¯à®Ÿà¯à®®à¯."
-
-#~ msgid ""
-#~ "<span size=\"large\" weight=\"bold\">Enter password for keyring 'login' "
-#~ "to unlock</span>\n"
-#~ "\n"
-#~ "An application wants access to the keyring 'xxx', but it is locked."
-#~ msgstr ""
-#~ "<span size=\"large\" weight=\"bold\">பூடà¯à®Ÿà¯ˆ திறகà¯à®• விசை வளைய உள௠நà¯à®´à¯ˆà®µà¯à®•à¯à®•à¯ "
-#~ "கடவà¯à®šà¯à®šà¯Šà®²à¯ உளà¯à®³à®¿à®Ÿà¯à®•</span>\n"
-#~ "\n"
-#~ "ஒர௠பயனà¯à®ªà®¾à®Ÿà¯ இயலà¯à®ªà®¾à®© விசை வளையம௠''xxx' ஠அணà¯à®• à®®à¯à®¯à®±à¯à®šà®¿à®•à¯à®•à®¿à®±à®¤à¯ ஆனால௠அத௠"
-#~ "பூடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯."
-
-#~ msgid "Prompt me for each application that accesses this keyring."
-#~ msgstr "பயனà¯à®ªà®¾à®Ÿà¯à®•à®³à¯ விசை வளையதà¯à®¤à¯ˆ அணà¯à®•à®¿à®©à®¾à®²à¯ எனà¯à®©à¯ˆ அனà¯à®®à®¤à®¿ கேடà¯à®•à®µà¯à®®à¯"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "பயனà¯à®ªà®¾à®Ÿà¯ '%s' (%s) இயலà¯à®ªà®¾à®© விசை வளையதà¯à®¤à®¿à®²à¯ '<object prop='name'/>' கà¯à®•à®¾à®© "
-#~ "கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ அணà¯à®• விரà¯à®®à¯à®ªà¯à®•à®¿à®±à®¤à¯"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "பயனà¯à®ªà®¾à®Ÿà¯ '%s' (%s) '%s' இல௠உளà¯à®³ '<object prop='name'/>' இன௠கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ அணà¯à®• "
-#~ "விரà¯à®®à¯à®ªà¯à®•à®¿à®±à®¤à¯"
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "பயனà¯à®ªà®¾à®Ÿà¯ '%s' இயலà¯à®ªà®¾à®© விசை வளையதà¯à®¤à®¿à®²à¯ '<object prop='name'/>' இன௠கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ "
-#~ "அணà¯à®• விரà¯à®®à¯à®ªà¯à®•à®¿à®±à®¤à¯"
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "பயனà¯à®ªà®¾à®Ÿà¯ '%s' '%s' இல௠உளà¯à®³ '<object prop='name'/>' இன௠கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ அணà¯à®• "
-#~ "விரà¯à®®à¯à®ªà¯à®•à®¿à®±à®¤à¯"
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "தெரியாத பயனà¯à®ªà®¾à®Ÿà¯ '<object prop='name'/>' கà¯à®•à¯ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ இயலà¯à®ªà®¾à®© விசை "
-#~ "வளையதà¯à®¤à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ அணà¯à®• விரà¯à®®à¯à®ªà¯à®•à®¿à®±à®¤à¯"
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "தெரியாத பயனà¯à®ªà®¾à®Ÿà¯ '<object prop='name'/>' கà¯à®•à¯ %s இல௠உளà¯à®³ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ அணà¯à®• "
-#~ "விரà¯à®®à¯à®ªà¯à®•à®¿à®±à®¤à¯"
-
-#~ msgid "Allow access"
-#~ msgstr "அணà¯à®• அனà¯à®®à®¤à®¿à®•à¯à®•à®µà¯à®®à¯"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "பயனà¯à®ªà®¾à®Ÿà¯ '%s' (%s) இயலà¯à®ªà®¾à®© விசை வளையதà¯à®¤à¯ˆ அணà¯à®• à®®à¯à®¯à®±à¯à®šà®¿à®•à¯à®•à®¿à®±à®¤à¯, ஆனால௠அத௠"
-#~ "பூடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "பயனà¯à®ªà®¾à®Ÿà¯ '%s' (%s) விசை வளையம௠'%s', ஠அணà¯à®• à®®à¯à®¯à®±à¯à®šà®¿à®•à¯à®•à®¿à®±à®¤à¯, ஆனால௠அத௠"
-#~ "பூடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯."
-
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-#~ msgstr ""
-#~ "பயனà¯à®ªà®¾à®Ÿà¯ '%s' இயலà¯à®ªà®¾à®© விசை வளையதà¯à®¤à¯ˆ அணà¯à®• à®®à¯à®¯à®±à¯à®šà®¿à®•à¯à®•à®¿à®±à®¤à¯, ஆனால௠அத௠"
-#~ "பூடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯."
-
-#~ msgid ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-#~ msgstr ""
-#~ "பயனà¯à®ªà®¾à®Ÿà¯ '%s' விசை வளையம௠'%s' ஠அணà¯à®• à®®à¯à®¯à®±à¯à®šà®¿à®•à¯à®•à®¿à®±à®¤à¯, ஆனால௠அத௠பூடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯."
-
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "தெரியாத பயனà¯à®ªà®¾à®Ÿà¯ இயலà¯à®ªà®¾à®© விசை வளையதà¯à®¤à¯ˆ அணà¯à®• à®®à¯à®¯à®±à¯à®šà®¿à®•à¯à®•à®¿à®±à®¤à¯ ஆனால௠அத௠"
-#~ "பூடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯."
-
-#~ msgid "Enter password for default keyring to unlock"
-#~ msgstr "விசை வளையதà¯à®¤à®¿à®©à¯ பூடà¯à®Ÿà¯ˆà®¤à¯à®¤à®¿à®±à®•à¯à®• கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "பயனà¯à®ªà®¾à®Ÿà¯ '%s' (%s) பà¯à®¤à®¿à®¯ விசை வளையம௠'%s' ஠உரà¯à®µà®¾à®•à¯à®• à®®à¯à®¯à®±à¯à®šà®¿à®•à¯à®•à®¿à®±à®¤à¯. நீஙà¯à®•à®³à¯ "
-#~ "பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ விரà¯à®®à¯à®ªà¯à®®à¯ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "பயனà¯à®ªà®¾à®Ÿà¯ '%s' (%s) பà¯à®¤à®¿à®¯ இயலà¯à®ªà®¾à®© விசை வளையதà¯à®¤à¯ˆ உரà¯à®µà®¾à®•à¯à®• à®®à¯à®¯à®±à¯à®šà®¿à®•à¯à®•à®¿à®±à®¤à¯. நீஙà¯à®•à®³à¯ "
-#~ "பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ விரà¯à®®à¯à®ªà¯à®®à¯ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "பயனà¯à®ªà®¾à®Ÿà¯ '%s' பà¯à®¤à®¿à®¯ விசை வளையம௠'%s' ஠உரà¯à®µà®¾à®•à¯à®• à®®à¯à®¯à®±à¯à®šà®¿à®•à¯à®•à®¿à®±à®¤à¯. நீஙà¯à®•à®³à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ "
-#~ "விரà¯à®®à¯à®ªà¯à®®à¯ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "பயனà¯à®ªà®¾à®Ÿà¯ '%s' பà¯à®¤à®¿à®¯ இயலà¯à®ªà®¾à®© விசை ஠உரà¯à®µà®¾à®•à¯à®• à®®à¯à®¯à®±à¯à®šà®¿à®•à¯à®•à®¿à®±à®¤à¯. நீஙà¯à®•à®³à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ "
-#~ "விரà¯à®®à¯à®ªà¯à®®à¯ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯."
-
-#~ msgid ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "தெரியாத பயனà¯à®ªà®¾à®Ÿà¯ பà¯à®¤à®¿à®¯ இயலà¯à®ªà®¾à®© விசை வளையதà¯à®¤à¯ˆ உரà¯à®µà®¾à®•à¯à®• à®®à¯à®¯à®±à¯à®šà®¿à®•à¯à®•à®¿à®±à®¤à¯. நீஙà¯à®•à®³à¯ "
-#~ "பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ விரà¯à®®à¯à®ªà¯à®®à¯ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "பயனà¯à®ªà®¾à®Ÿà¯ '%s' (%s) '%s' விசை வளையதà¯à®¤à®¿à®±à¯à®•à¯ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ மாறà¯à®± விரà¯à®®à¯à®ªà¯à®•à®¿à®±à®¤à¯. "
-#~ "அதறà¯à®•à®¾à®© கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•à®µà¯à®®à¯."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "பயனà¯à®ªà®¾à®Ÿà¯ '%s' (%s) à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ விசை வளையதà¯à®¤à®¿à®±à¯à®•à¯ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ மாறà¯à®± "
-#~ "விரà¯à®®à¯à®ªà¯à®•à®¿à®±à®¤à¯. அதறà¯à®•à®¾à®© கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•à®µà¯à®®à¯."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "பயனà¯à®ªà®¾à®Ÿà¯ '%s' '%s' விசை வளையதà¯à®¤à®¿à®±à¯à®•à¯ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ மாறà¯à®± விரà¯à®®à¯à®ªà¯à®•à®¿à®±à®¤à¯. அதறà¯à®•à®¾à®© "
-#~ "கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•à®µà¯à®®à¯."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "பயனà¯à®ªà®¾à®Ÿà¯ '%s' à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ விசை வளையதà¯à®¤à®¿à®±à¯à®•à¯ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ மாறà¯à®± விரà¯à®®à¯à®ªà¯à®•à®¿à®±à®¤à¯. "
-#~ "அதறà¯à®•à®¾à®© கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•à®µà¯à®®à¯."
-
-#~ msgid ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "தெரியாத பயனà¯à®ªà®¾à®Ÿà¯ à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ விசை வளையதà¯à®¤à®¿à®±à¯à®•à¯ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ மாறà¯à®± விரà¯à®®à¯à®ªà¯à®•à®¿à®±à®¤à¯. "
-#~ "அதறà¯à®•à®¾à®© கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•à®µà¯à®®à¯."
-
-#~ msgid "Choose a new password for the default keyring."
-#~ msgstr "à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ விசை வளையதà¯à®¤à®¿à®±à¯à®•à¯ ஒர௠பà¯à®¤à®¿à®¯ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•à®µà¯à®®à¯. "
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-#~ msgstr ""
-#~ "பயனà¯à®ªà®¾à®Ÿà¯ '%s' (%s) கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ சேமிகà¯à®• விரà¯à®®à¯à®ªà¯à®•à®¿à®±à®¤à¯ ஆனால௠இயலà¯à®ªà®¾à®© விசை வளையம௠"
-#~ "இலà¯à®²à¯ˆ. அதை உரà¯à®µà®¾à®•à¯à®• நீஙà¯à®•à®³à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ விரà¯à®®à¯à®ªà¯à®®à¯ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯"
-
-#~ msgid ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "பயனà¯à®ªà®¾à®Ÿà¯ '%s' கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ சேமிகà¯à®• விரà¯à®®à¯à®ªà¯à®•à®¿à®±à®¤à¯ ஆனால௠இயலà¯à®ªà®¾à®© கடவà¯à®šà¯à®šà¯Šà®²à¯ இலà¯à®²à¯ˆ. "
-#~ "உரà¯à®µà®¾à®•à¯à®• நீஙà¯à®•à®³à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ விரà¯à®®à¯à®ªà¯à®®à¯ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯"
-
-#~ msgid ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "தெரியாத பயனà¯à®ªà®¾à®Ÿà¯ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ சேமிகà¯à®• விரà¯à®®à¯à®ªà¯à®•à®¿à®±à®¤à¯à®®à¯ ஆனால௠இயலà¯à®ªà®¾à®© கடவà¯à®šà¯à®šà¯Šà®²à¯ "
-#~ "இலà¯à®²à¯ˆ. அதை உரà¯à®µà®¾à®•à¯à®• நீஙà¯à®•à®³à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ விரà¯à®®à¯à®ªà¯à®®à¯ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯"
-
-#~ msgid "Create Default Keyring"
-#~ msgstr "பà¯à®¤à®¿à®¯ இயலà¯à®ªà®¾à®© விசை வளையதà¯à®¤à¯ˆ உரà¯à®µà®¾à®•à¯à®•à®µà¯à®®à¯"
-
-#~ msgid "Choose password for default keyring"
-#~ msgstr "இயலà¯à®ªà®¾à®© விசை வளையதà¯à®¤à®¿à®±à¯à®•à®¾à®© கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ தேரà¯à®µà¯ செயà¯à®¯à®µà¯à®®à¯"
-
-#~ msgid "Create Login Keyring"
-#~ msgstr "உளà¯à®¨à¯à®´à¯ˆà®µà¯ விசை வளையதà¯à®¤à¯ˆ உரà¯à®µà®¾à®•à¯à®•à®µà¯à®®à¯"
-
-#~ msgid "Enter your login password"
-#~ msgstr "உளà¯à®¨à¯à®´à¯ˆà®µà¯ கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உளà¯à®³à®¿à®Ÿà¯à®•"
-
-#~ msgid ""
-#~ "Your login keyring was not automatically created when you logged into "
-#~ "this computer. It will now be created."
-#~ msgstr ""
-#~ "உஙà¯à®•à®³à¯ உள௠நà¯à®´à¯ˆà®µà¯ விசை வளையம௠நீஙà¯à®•à®³à¯ இநà¯à®¤ கணினியà¯à®³à¯ நà¯à®´à¯ˆà®¨à¯à®¤ போத௠தானியஙà¯à®•à®¿à®¯à®¾à®• "
-#~ "உரà¯à®µà®¾à®•à¯à®•à®ªà¯à®ª டசà¯"
-
-#~ msgid "Automatically unlock this private key when I log in."
-#~ msgstr "நான௠உளà¯à®¨à¯à®´à¯ˆà®¯à¯à®®à¯à®ªà¯‹à®¤à¯ தானியஙà¯à®•à®¿à®¯à®¾à®• இநà¯à®¤ அநà¯à®¤à®°à®™à¯à®• விசையை பூடà¯à®Ÿà¯ திறகà¯à®•à®µà¯à®®à¯."
-
-#~ msgid "Automatically unlock this certificate when I log in."
-#~ msgstr "நான௠உளà¯à®¨à¯à®´à¯ˆà®¯à¯à®®à¯à®ªà¯‹à®¤à¯ தானியஙà¯à®•à®¿à®¯à®¾à®• இநà¯à®¤ சானà¯à®±à®¿à®¤à®´à¯ˆ பூடà¯à®Ÿà¯ திறகà¯à®•à®µà¯à®®à¯."
-
-#~ msgid "Automatically unlock this public key when I log in."
-#~ msgstr "நான௠உளà¯à®¨à¯à®´à¯ˆà®¯à¯à®®à¯à®ªà¯‹à®¤à¯ தானியஙà¯à®•à®¿à®¯à®¾à®• இநà¯à®¤ பொத௠விசையை பூடà¯à®Ÿà¯ திறகà¯à®•à®µà¯à®®à¯."
-
-#~ msgid "Automatically unlock this when I log in"
-#~ msgstr "நான௠உளà¯à®¨à¯à®´à¯ˆà®¯à¯à®®à¯à®ªà¯‹à®¤à¯ தானியஙà¯à®•à®¿à®¯à®¾à®• இதைை பூடà¯à®Ÿà¯ திறகà¯à®•à®µà¯à®®à¯."
-
-#~ msgid ""
-#~ "<b><big>Could not grab your mouse.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>உஙà¯à®•à®³à¯ சà¯à®Ÿà¯à®Ÿà®¿à®¯à¯ˆ எடà¯à®•à¯à®• வேணà¯à®Ÿà®¾à®®à¯.</big></b>\n"
-#~ "\n"
-#~ "ஒர௠தவறான கிளையன௠உஙà¯à®•à®³à¯ அமரà¯à®µà¯ˆ eavesdropping செயà¯à®¯à®²à®¾à®®à¯ அலà¯à®²à®¤à¯ நீஙà¯à®•à®³à¯ ஒர௠மென௠"
-#~ "அலà¯à®²à®¤à¯ சில பயனà¯à®ªà®¾à®Ÿà¯à®Ÿà¯ˆ சொடà¯à®•à¯à®•à®¿ ஃபோகஸ௠பெற தீரà¯à®®à®¾à®©à®¿à®•à¯à®•à®²à®¾à®®à¯.\n"
-#~ "\n"
-#~ "மீணà¯à®Ÿà¯à®®à¯ à®®à¯à®¯à®±à¯à®šà®¿ செயà¯."
-
-#~ msgid ""
-#~ "<b><big>Could not grab your keyboard.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>உஙà¯à®•à®³à¯ விசைபà¯à®ªà®²à®•à¯ˆà®¯à¯ˆ எடà¯à®•à¯à®• வேணà¯à®Ÿà®¾à®®à¯.</big></b>\n"
-#~ "\n"
-#~ "ஒர௠தவறான கிளையன௠உஙà¯à®•à®³à¯ அமரà¯à®µà¯ˆ eavesdropping செயà¯à®¯à®²à®¾à®®à¯ அலà¯à®²à®¤à¯ நீஙà¯à®•à®³à¯ ஒர௠மென௠"
-#~ "அலà¯à®²à®¤à¯ சில பயனà¯à®ªà®¾à®Ÿà¯à®Ÿà¯ˆ சொடà¯à®•à¯à®•à®¿ ஃபோகஸ௠பெற தீரà¯à®®à®¾à®©à®¿à®•à¯à®•à®²à®¾à®®à¯.\n"
-#~ "\n"
-#~ "மீணà¯à®Ÿà¯à®®à¯ à®®à¯à®¯à®±à¯à®šà®¿ செயà¯."
-
-#~ msgid "_Deny"
-#~ msgstr "மறà¯à®•à¯à®•à®µà¯à®®à¯ (_D)"
-
-#~ msgid "C_reate"
-#~ msgstr "(_r) உரà¯à®µà®¾à®•à¯à®•à¯"
-
-#~ msgid "C_hange"
-#~ msgstr "(_h) மாறà¯à®±à¯à®•"
-
-#~ msgid "Allow _Once"
-#~ msgstr "(_O) ஒர௠மà¯à®±à¯ˆ அனà¯à®®à®¤à®¿"
-
-#~ msgid "_Always Allow"
-#~ msgstr "(_A)எபà¯à®ªà¯‹à®¤à¯à®®à¯ அனà¯à®®à®¤à®¿"
-
-#~ msgid "Removable Disk: %s"
-#~ msgstr "நீகà¯à®•à®•à¯à®•à¯‚டிய வடà¯à®Ÿà¯: %s"
-
-#~ msgid "Removable Disk"
-#~ msgstr "நீகà¯à®•à®•à¯à®•à¯‚டிய வடà¯à®Ÿà¯"
-
-#~ msgid "Home"
-#~ msgstr "இலà¯à®²à®®à¯"
-
-#~ msgid "The disk or drive this file is located on is not present"
-#~ msgstr "இநà¯à®¤ கோபà¯à®ªà¯ இரà¯à®•à¯à®•à¯à®®à¯ வடà¯à®Ÿà¯ அலà¯à®²à®¤à¯ இயகà¯à®•à®¿ இபà¯à®ªà¯‹à®¤à¯ இலà¯à®²à¯ˆ"
-
-#~ msgid "Couldn't create directory: %s"
-#~ msgstr "அடைவ௠%s ஠உரà¯à®µà®¾à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
-
-#~ msgid "Access Denied"
-#~ msgstr "அணà¯à®•à®²à¯ மறà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯"
-
-#~ msgid "The gnome-keyring-daemon application is not running."
-#~ msgstr "கà¯à®©à¯‹à®®à¯ விசை வளைய கிஙà¯à®•à®°à®©à¯ இயஙà¯à®•à®µà®¿à®²à¯à®²à¯ˆ"
-
-#~ msgid "Error communicating with gnome-keyring-daemon"
-#~ msgstr "கà¯à®©à¯‹à®®à¯ விசை வளைய கிஙà¯à®•à®°à®©à¯ உடன௠தொடரà¯à®ªà¯ கொளà¯à®µà®¤à®¿à®²à¯ பிழை"
-
-#~ msgid "A keyring with that name already exists"
-#~ msgstr "அநà¯à®¤ பெயரà¯à®Ÿà®©à¯ விசை வளையம௠à®à®±à¯à®•à¯†à®©à®µà¯‡ இரà¯à®ªà¯à®ªà®¿à®²à¯ உளà¯à®³à®¤à¯."
-
-#~ msgid "Programmer error: The application sent invalid data."
-#~ msgstr "நிரல௠பிழை: நிரல௠பிழையான தரவை அனà¯à®ªà¯à®ªà®¿à®¯à®¤à¯."
-
-#~ msgid "No matching results"
-#~ msgstr "பொரà¯à®¤à¯à®¤à®®à®¾à®© விடைகள௠இலà¯à®²à¯ˆ"
-
-#~ msgid "A keyring with that name does not exist."
-#~ msgstr "அநà¯à®¤ பெயரà¯à®Ÿà®©à¯ விசை வளையம௠இரà¯à®ªà¯à®ªà®¿à®²à¯ இலà¯à®²à¯ˆ"
-
-#~ msgid "The keyring has already been unlocked."
-#~ msgstr "விசைவளைய à®à®±à¯à®•à¯†à®©à®µà¯‡ பூடà¯à®Ÿà¯ திறகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà¯ விடà¯à®Ÿà®¤à¯."
diff --git a/po/te.po b/po/te.po
index 7d9f7792..624b2dc8 100644
--- a/po/te.po
+++ b/po/te.po
@@ -10,9 +10,8 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring.master.te\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-09-20 19:50+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-23 18:05+0530\n"
"Last-Translator: Praveen Illa <mail2ipn@gmail.com>\n"
"Language-Team: తెలà±à°—à± <indlinux-telugu@lists.sourceforge.net>\n"
@@ -26,7 +25,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "పేరà±à°ªà±†à°Ÿà±à°Ÿà°¨à°¿à°¦à°¿"
@@ -102,35 +101,34 @@ msgstr "GNOME కీరింగà±: GPG వాహకం"
msgid "GPG Password Agent"
msgstr "GPG సంకేతపదం వాహకం"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "తెలియదà±"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP à°•à±€: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "సంకేతపదసమà±à°¦à°¾à°¯à°¾à°¨à±à°¨à°¿ à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà°‚à°¡à°¿"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "ఇంత సమయం వాడà±à°•à°²à±‹ లేకà±à°‚టే సంకేతపదమà±à°¨à± మరà±à°šà°¿à°ªà±‹à°®à±à°®à±"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "ఇంత తరà±à°µà°¾à°¤ సంకేతపదానà±à°¨à°¿ మరà±à°šà°¿à°ªà±‹à°µà±"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "నేనౠనిషà±à°•à±à°°à°®à°¿à°‚à°šà°¿à°¨ తరà±à°µà°¾à°¤ సంకేతపదానà±à°¨à°¿ మరిచిపోమà±à°®à±"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "à°ªà±à°°à°µà±‡à°¶à°¿à°‚à°šà±"
@@ -174,7 +172,7 @@ msgstr "సాధారణ పేరà±"
msgid "Surname"
msgstr "ఇంటిపేరà±"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "సీరియలౠనంబరà±"
@@ -230,7 +228,7 @@ msgstr "DN తెలà±à°ªà±à°¨à°¦à°¿"
msgid "Pseudonym"
msgstr "Pseudonym"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -246,7 +244,7 @@ msgstr "RSA తో MD5"
msgid "SHA1 with RSA"
msgstr "RSA తో SHA1"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -285,585 +283,6 @@ msgstr "à°’à°• శిశౠపà±à°°à°•à±à°°à°¿à°¯ (%s) à°¨à±à°‚à°¡à°¿ డే
msgid "Unexpected error in waitpid() (%s)"
msgstr "waitpid() (%s) నందౠఒక ఊహించని దోషమà±"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "PKCS#11 పరà±à°µà°¿à°•à°¾à°¨à±à°¨à°¿ à°Žà°•à±à°•à°¿à°‚à°šà±à°Ÿà°²à±‹ దోషం: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "చెలà±à°²à°¨à°¿ PKCS#11 పరà±à°µà°¿à°•à°‚: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "PKCS#11 పరà±à°µà°¿à°•à°¾à°¨à±à°¨à°¿ అమరà±à°šà°²à±‡à°•à°ªà±‹à°¯à°¿à°‚ది: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "PKCS#11 పరà±à°µà°¿à°•à°¾à°¨à±à°¨à°¿ ఆరంభించలేకపోతà±à°‚ది: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "నమోదయిన PKCS#11 పరà±à°µà°¿à°•à°¾à°¨à±à°¨à°¿ ఆరంభించà±à°Ÿà°²à±‹ దోషం: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "పేరà±"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "జారీచేసినవారà±"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "కాలంచెలà±à°²à±‡à°¦à°¿"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "ధృవీకరణపతà±à°°à°‚"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>à°ˆ పేరà±à°¤à±‹ ఇదివరకే à°’à°• ఫైలౠఉనà±à°¨à°¦à°¿.</b>\n"
-"\n"
-"దీనిని à°’à°• కొతà±à°¤ ఫైలà±à°¤à±‹ à°ªà±à°¨à°ƒà°¸à±à°¥à°¾à°ªà°¿à°‚చాలనà±à°•à±à°‚à°Ÿà±à°¨à±à°¨à°¾à°°à°¾?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "à°ªà±à°¨à°ƒà°¸à±à°¥à°¾à°ªà°¿à°‚à°šà± (_R)"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "ఆపరేషనౠరదà±à°¦à±à°šà±‡à°¯à°¬à°¡à°¿à°‚ది."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "ధృవీకరణపతà±à°°à°¾à°¨à±à°¨à°¿ à°Žà°—à±à°®à°¤à°¿à°šà±‡à°¯à°¿"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "ధృవీకరణ ఫైళà±à°³à±"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "PEM ఫైళà±à°³à±"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "ఇతర పేరà±"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "XMPP Addr"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "ఈమెయిలà±"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "X400 à°šà°¿à°°à±à°¨à°¾à°®à°¾"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "సంచయం పేరà±"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "EDI పారà±à°Ÿà±€ పేరà±"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "à°à°ªà±€ à°šà°¿à°°à±à°¨à°¾à°®à°¾"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "నమోదà±à°šà±‡à°¸à°¿à°¨ à°à°¡à°¿"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "à°ªà±à°°à°¾à°¥à°®à°¿à°• నిరోధాలà±"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "ధృవీకరణపతà±à°°à°‚ నియంతà±à°°à°£à°¸à°‚à°¸à±à°¥"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "à°…à°µà±à°¨à±"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "కాదà±"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "à°—à°°à°¿à°·à±à°Ÿ పథం పొడవà±"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "అపరిమితం"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "పొడిగించినబడిన à°•à±€ వాడà±à°•"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "à°…à°¨à±à°®à°¤à°¿à°‚చదగిన à°ªà±à°°à°¯à±‹à°œà°¨à°¾à°²à±"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "విషయ à°•à±€ à°—à±à°°à±à°¤à°¿à°‚పరి"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "à°•à±€ à°—à±à°°à±à°¤à°¿à°‚పరి"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "డిజిటలౠసంతకమà±"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "à°•à±€ à°Žà°¨à±â€Œà°¸à±ˆà°«à±†à°°à±à°®à±†à°‚à°Ÿà±"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "డేటా à°Žà°¨à±â€Œà°¸à±ˆà°«à±†à°°à±à°®à±†à°‚à°Ÿà±"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "à°•à±€ à°’à°ªà±à°ªà°‚దం"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "ధృవీకరణపతà±à°°à°‚ సంతకం"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "ఉపసంహరణ జాబితా సంతకం"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "à°•à±€ వాడà±à°•"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "వాడà±à°•à°²à±"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "విషయం à°ªà±à°°à°¤à±à°¯à°¾à°®à±à°¨à°¾à°¯ పేరà±à°²à±"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "పొడిగింపà±"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "à°—à±à°°à±à°¤à°¿à°‚పకరి"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "విలà±à°µ"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "à°•à±à°²à°¿à°·à±à°Ÿà°®à±ˆà°¨à°¦à°¿"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "ధృవీకరణపతà±à°°à°¾à°¨à±à°¨à°¿ à°Žà°—à±à°®à°¤à°¿ చేయలేకపోతà±à°‚ది."
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "à°—à±à°°à±à°¤à°¿à°‚à°ªà±"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "ధృవీకరించినవారà±"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "కాలంచెలà±à°²à±‡à°¦à°¿"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "విషయం పేరà±"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "ఇచà±à°šà±à°µà°¾à°¨à°¿ పేరà±"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "ఇచà±à°šà°¿à°¨ ధృవీకరణపతà±à°°à°‚"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "రూపాంతరం"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "ఇంతకౠమà±à°¨à±à°ªà± చెలà±à°²à±à°¨à°¦à°¿à°•à°¾à°¦à±"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "తరà±à°µà°¾à°¤ చెలà±à°²à±à°¨à°¦à°¿ కాదà±"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "ధృవీకరణపతà±à°°à°‚ వేలిమà±à°¦à±à°°à°²à±"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "సంతకమà±"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "సంతకపౠఅలà±à°—ారిథమà±"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "సంతకం పారామితà±à°²à±"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "పబà±à°²à°¿à°•à± à°•à±€ సమాచారమà±"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "à°•à±€ à°…à°²à±à°—ారిథమà±"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "à°•à±€ పారామితà±à°²à±"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "కీ పరిమాణం"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "à°•à±€ SHA1 వేలిమà±à°¦à±à°°"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "బహిరంగ కీ"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "వివరాలౠ(_D)"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "'%s' à°ªà±à°°à°¦à°°à±à°¶à°¿à°‚చబడదà±"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "ఫైలà±à°¨à± à°ªà±à°°à°¦à°°à±à°¶à°¿à°‚à°šà±à°Ÿ వీలà±à°•à°¾à°¦à±"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "కారణం"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "à°ˆ రకపౠఫైలౠపà±à°°à°¦à°°à±à°¶à°¿à°‚చబడదà±."
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "ధృవీకరణపతà±à°°à°¾à°²à°¨à± మరియౠకీలనౠదిగà±à°®à°¤à°¿à°šà±‡à°¯à°¿"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "దీనికి దిగమతిచేయి:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "సంకేతపదం:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "PGP à°•à±€"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "à°•à±€ à°à°¡à°¿"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Gnupg à°ªà±à°°à°•à±à°°à°¿à°¯à°¿ à°ˆ కోడà±â€Œà°¤à±‹ నిషà±à°•à±à°°à°®à°¿à°‚చింది: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Gnupg à°ªà±à°°à°•à±à°°à°¿à°¯à°¿ à°ˆ సిగà±à°¨à°²à±â€Œà°¤à±‹ నిషà±à°•à±à°°à°®à°¿à°‚చింది: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919 ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "ఆపరేషనౠరదà±à°¦à±à°šà±‡à°¯à°¬à°¡à°¿à°‚ది"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "à°µà±à°¯à°•à±à°¤à°¿à°—à°¤ కీనౠఅనà±â€Œà°²à°¾à°•à± చేయà±à°Ÿà°•à± సంకేతపదమà±à°¨à± à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà±"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "ధృవీకరణపతà±à°°à°¾à°¨à±à°¨à°¿ à°…à°¨à±â€Œà°²à°¾à°•à± చేయà±à°Ÿà°•à± సంకేతపదానà±à°¨à°¿ à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà°‚à°¡à°¿"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "à°…à°¨à±â€Œà°²à°¾à°•à± చేయà±à°Ÿà°•à± సంకేతపదానà±à°¨à°¿ à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà°‚à°¡à°¿"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "à°µà±à°¯à°•à±à°¤à°¿à°—à°¤ కీనౠదిగà±à°®à°¤à°¿ చేయà±à°Ÿà°•à±, అది à°…à°¨à±â€Œà°²à°¾à°•à± చేయబడాలి"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "ధృవీకరణపతà±à°°à°¾à°¨à±à°¨à°¿ దిగà±à°®à°¤à°¿ చేయà±à°Ÿà°•à±, అది à°…à°¨à±â€Œà°²à°¾à°•à± చేయబడాలి"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "డేటానౠదిగà±à°®à°¤à°¿ చేయà±à°Ÿà°•à±, అది à°…à°¨à±â€Œà°²à°¾à°•à± చేయబడాలి"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "à°µà±à°¯à°•à±à°¤à°¿à°—à°¤ à°•à±€ '%s' దిగà±à°®à°¤à°¿ చేయà±à°Ÿà°•à±, అది à°…à°¨à±â€Œà°²à°¾à°•à± చేయబడాలి"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "ధృవీకరణపతà±à°°à°‚ '%s' దిగà±à°®à°¤à°¿à°šà±‡à°¯à±à°Ÿà°•à±, అది à°…à°¨à±â€Œà°²à°¾à°•à± చేయబడాలి"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "'%s' దిగà±à°®à°¤à°¿ చేయà±à°Ÿà°•à±, అది à°…à°¨à±â€Œà°²à°¾à°•à± చేయబడాలి"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "దీనికి దిగà±à°®à°¤à°¿ చేయà±à°Ÿà°•à± à° à°¸à±à°¥à°¾à°¨à°®à± లభà±à°¯à°¤à°²à±‹ లేదà±"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "ధృవీకరణపతà±à°°à°¾à°²à°¨à±/కీలనౠదిగà±à°®à°¤à°¿à°šà±‡à°¯à°¿"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "దిగà±à°®à°¤à°¿à°šà±‡à°¸à°¿à°¨ ధృవీకరణపతà±à°°à°®à±à°²à±/కీలనౠనిలà±à°µà°µà±à°‚à°šà±à°Ÿà°•à± à°’à°• à°¸à±à°¥à°¾à°¨à°®à±à°¨à± à°Žà°¨à±à°¨à±à°•à±Šà°¨à±."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "à°•à±€"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "à°µà±à°¯à°•à±à°¤à°¿à°—à°¤ RSA à°•à±€"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "à°µà±à°¯à°•à±à°¤à°¿à°—à°¤ DSA à°•à±€"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "à°µà±à°¯à°•à±à°¤à°¿à°—à°¤ à°•à±€"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "బహిరంగ DSA కీ"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d బిటà±"
-msgstr[1] "%d బిటà±à°²à±"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "ధృడతà±à°µà°‚"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "à°…à°²à±à°—ారిథమà±"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "పరిమాణం"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "వేలిమà±à°¦à±à°°à°²à±"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "à°—à±à°°à±à°¤à°¿à°‚చబడని లేదా సహకరించబడని డేటా."
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "సరికాని లేదా పాడైన డేటానౠపారà±à°¶à± చేయలేకపోయింది"
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "డేటా లాకౠచేయబడింది"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "à°—à±à°°à±à°¤à°¿à°‚పౠధృవీకరణపతà±à°°à°®à±à°¨à± నిలà±à°µà°µà±à°‚à°šà±à°Ÿà°•à± à°¸à±à°¥à°¾à°¨à°®à±à°¨à± à°•à°¨à±à°—ొనలేకపోతà±à°‚ది"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "నేనౠలాగినౠఅయినపà±à°ªà±à°¡à± à°¸à±à°µà°¯à°‚చాలకంగా à°ˆ కీరింగà±â€Œà°¨à± à°…à°¨à±â€Œà°²à°¾à°•à± చేయి"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "ఇంత సమయం తరà±à°µà°¾à°¤ కీరింగà±à°¨à± లాకౠచేయి"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "ఇంత సమయం వాడà±à°•à°²à±‹ లేకà±à°‚టే కీరింగà±à°¨à± లాకౠచేయి"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "నేనౠనిషà±à°•à±à°°à°®à°¿à°‚చినపà±à°¡à± కీరింగà±à°¨à± లాకౠచేయి"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "నిమిషాలà±"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "à°…à°¨à±â€Œà°²à°¾à°•à±: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "à°…à°¨à±â€Œà°²à°¾à°•à±"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "సంకేతపదమౠతపà±à°ªà±"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "సంకేతపదం"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr "'%s' యొకà±à°• అంశాలౠతాళంవేయబడివà±à°¨à±à°¨à°¾à°¯à°¿. అంశాలనౠచూడాలంటే, సరైన సంకేతపదానà±à°¨à°¿ à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà°‚à°¡à°¿."
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr "అంశాలౠతాళంవేయబడివà±à°¨à±à°¨à°¾à°¯à°¿. అంశాలనౠచూడాలంటే, సరైన సంకేతపదానà±à°¨à°¿ à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà°‚à°¡à°¿."
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "GCR ధృవీకరణపతà±à°°à°‚ మరియౠకీ వీకà±à°·à°•à°‚"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "à°…à°¨à±à°µà°°à±à°¤à°¨à°‚ యొకà±à°• రూపాంతరానà±à°¨à°¿ చూపించà±"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[file...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- ధృవీకరణపతà±à°°à°‚ మరియౠకీ ఫైళà±à°³à°¨à± చూడà±"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "ధృవీకరణపతà±à°° వీకà±à°·à°•à°‚"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "URI చెలà±à°²à°¨à°¿ à°Žà°¨à±à°•à±‹à°¡à°¿à°‚గౠకలిగివà±à°‚ది."
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "URI 'pkcs11' పథకానà±à°¨à°¿ కలిగిలేదà±."
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "URI తపà±à°ªà±à°¡à± వాకà±à°¯à°¨à°¿à°°à±à°®à°¾à°£à°¾à°¨à±à°¨à°¿ కలిగివà±à°‚ది."
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "URI చెడà±à°¡ రూపాంతర సంఖà±à°¯à°¨à± కలిగివà±à°‚ది."
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "పేరà±à°²à±‡à°¨à°¿ ధృవీకరణపతà±à°°à°‚"
@@ -873,7 +292,7 @@ msgid "Couldn't parse public SSH key"
msgstr "పబà±à°²à°¿à°•à± SSH కీనౠపారà±à°¶à± చేయలేక పోయింది"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "సంకేతపదమà±à°¨à± ఇంతసేపౠఅనà±â€Œà°²à°¾à°•à± చేయి: %s"
@@ -930,10 +349,26 @@ msgstr "ధృవీకరణపతà±à°¨à°¾à°¨à±à°¨à°¿ à°…à°¨à±â€Œà°²à°¾à°•à±
msgid "Unlock public key"
msgstr "పబà±à°²à°¿à°•à± కీనౠఅనà±â€Œà°²à°¾à°•à± చేయి"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "à°…à°¨à±â€Œà°²à°¾à°•à±"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "à°µà±à°¯à°•à±à°¤à°¿à°—à°¤ కీనౠఅనà±â€Œà°²à°¾à°•à± చేయà±à°Ÿà°•à± సంకేతపదమà±à°¨à± à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà±"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "ధృవీకరణపతà±à°°à°¾à°¨à±à°¨à°¿ à°…à°¨à±â€Œà°²à°¾à°•à± చేయà±à°Ÿà°•à± సంకేతపదానà±à°¨à°¿ à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà°‚à°¡à°¿"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "పబà±à°²à°¿à°•à± కీనౠఅనà±â€Œà°²à°¾à°•à± చేయà±à°Ÿà°•à± సంకేతపదమà±à°¨à± à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà±"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "à°…à°¨à±â€Œà°²à°¾à°•à± చేయà±à°Ÿà°•à± సంకేతపదానà±à°¨à°¿ à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà°‚à°¡à°¿"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1019,11 +454,11 @@ msgstr "ఆదేశాలà±: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "à°Žà°¨à±â€Œà°•à±à°°à°¿à°ªà±à°Ÿà±à°šà±‡à°¯à°¨à°¿ సంకేతపదాలనౠనిలà±à°µà°µà±à°‚చాలా?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1032,15 +467,15 @@ msgstr ""
"ఖాళీ సంకేతపదమà±à°¨à± వాడాలనà±à°•à±‹à°µà°¡à°‚వలన, మీ యొకà±à°• నిలà±à°µà°µà±à°‚à°šà°¿à°¨ సంకేతపదమà±à°²à± à°¸à±à°°à°•à±à°·à°¿à°¤à°®à±à°—à°¾ à°Žà°¨à±â€Œà°•à±à°°à°¿à°ªà±à°Ÿà± "
"చేయబడవà±. మీ ఫైళà±à°³à°¨à± వాడగలిగిన ఎవరైనా వాటిని వాడà±à°Ÿà°•à± à°…à°‚à°¦à±à°¬à°¾à°Ÿà±à°²à±‹ ఉంటాయి."
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "à°°à°•à±à°·à°£à°²à±‡à°¨à°¿ నిలà±à°µà°¨à± ఉపయోగించà±"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "సంకేతపదాలౠసరిపోలడంలేదà±."
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "సంకేతపదమౠఖాళీగా ఉండకూడదà±"
diff --git a/po/th.po b/po/th.po
index e12819b2..3d38d667 100644
--- a/po/th.po
+++ b/po/th.po
@@ -7,12 +7,12 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-09-18 13:51+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-18 20:51+0700\n"
"Last-Translator: Theppitak Karoonboonyanan <thep@linux.thai.net>\n"
"Language-Team: Thai <thai-l10n@googlegroups.com>\n"
+"Language: th\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -21,7 +21,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "ไม่มีชื่อ"
@@ -93,35 +93,34 @@ msgstr "พวงà¸à¸¸à¸à¹à¸ˆà¸‚อง GNOME: เอเจนต์ GPG"
msgid "GPG Password Agent"
msgstr "เอเจนต์รหัสผ่าน GPG"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "ไม่ทราบ"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "à¸à¸¸à¸à¹à¸ˆ PGP: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "à¸à¸£à¸¸à¸“าป้อนวลีรหัสผ่าน"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "ทิ้งรหัสผ่านนี้ถ้าเครื่องไม่มีà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¹€à¸›à¹‡à¸™à¹€à¸§à¸¥à¸²"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "ทิ้งรหัสผ่านนี้ในอีà¸"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "ทิ้งรหัสผ่านนี้เมื่อออà¸à¸ˆà¸²à¸à¸£à¸°à¸šà¸š"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "เข้าระบบ"
@@ -165,7 +164,7 @@ msgstr "ชื่อสามัà¸"
msgid "Surname"
msgstr "นามสà¸à¸¸à¸¥"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "หมายเลขลำดับ"
@@ -221,7 +220,7 @@ msgstr "DN Qualifier"
msgid "Pseudonym"
msgstr "นามปาà¸à¸à¸²"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -237,7 +236,7 @@ msgstr "MD5 โดยใช้ RSA"
msgid "SHA1 with RSA"
msgstr "SHA1 โดยใช้ RSA"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -276,584 +275,6 @@ msgstr "เà¸à¸´à¸”ข้อผิดพลาดที่ไม่คาดห
msgid "Unexpected error in waitpid() (%s)"
msgstr "เà¸à¸´à¸”ข้อผิดพลาดที่ไม่คาดหมายใน waitpid() (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "เà¸à¸´à¸”ข้อผิดพลาดขณะโหลดมอดูล PKCS#11: %s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "มอดูล PKCS#11 ไม่ถูà¸à¸•à¹‰à¸­à¸‡: %s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "ไม่สามารถตั้งค่ามอดูล PKCS#11: %s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "ไม่สามารถตั้งค่าเริ่มต้นมอดูล PKCS#11: %s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "ไม่สามารถตั้งค่าเริ่มต้นมอดูล PKCS#11 ที่ลงทะเบียนไว้: %s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "ชื่อ"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "ออà¸à¹ƒà¸«à¹‰à¹‚ดย"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "หมดอายุ"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "ใบรับรอง"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>มีà¹à¸Ÿà¹‰à¸¡à¸Šà¸·à¹ˆà¸­à¸™à¸µà¹‰à¸­à¸¢à¸¹à¹ˆà¸à¹ˆà¸­à¸™à¹à¸¥à¹‰à¸§</b>\n"
-"\n"
-"คุณต้องà¸à¸²à¸£à¹€à¸‚ียนทับหรือไม่?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "เขียน_ทับ"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "à¸à¸²à¸£à¸à¸£à¸°à¸—ำถูà¸à¸¢à¸à¹€à¸¥à¸´à¸"
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "ส่งออà¸à¹ƒà¸šà¸£à¸±à¸šà¸£à¸­à¸‡"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "à¹à¸Ÿà¹‰à¸¡à¹ƒà¸šà¸£à¸±à¸šà¸£à¸­à¸‡"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "à¹à¸Ÿà¹‰à¸¡ PEM"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "ชื่ออื่น"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "ที่อยู่ XMPP"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "อีเมล"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "ที่อยู่ X400"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "ชื่อสารบบ"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "ชื่อภาคี EDI"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "ที่อยู่ไอพี"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "ID ที่ลงทะเบียนไว้"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "ข้อบังคับพื้นà¸à¸²à¸™"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "องค์à¸à¸£à¸­à¸­à¸à¹ƒà¸šà¸£à¸±à¸šà¸£à¸­à¸‡"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "ใช่"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "ไม่"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "ความยาวพาธสูงสุด"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "ไม่จำà¸à¸±à¸”"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "à¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸à¸¸à¸à¹à¸ˆà¹€à¸žà¸´à¹ˆà¸¡à¹€à¸•à¸´à¸¡"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "à¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸—ี่อนุà¸à¸²à¸•"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "ตัวระบุà¸à¸¸à¸à¹à¸ˆà¸‚องผู้รับà¸à¸²à¸£à¸£à¸±à¸šà¸£à¸­à¸‡"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "ตัวระบุà¸à¸¸à¸à¹à¸ˆ"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "ลายเซ็นดิจิทัล"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "à¸à¸²à¸£à¹€à¸‚้ารหัสลับà¸à¸¸à¸à¹à¸ˆ"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "à¸à¸²à¸£à¹€à¸‚้ารหัสลับข้อมูล"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "à¸à¸²à¸£à¸•à¸à¸¥à¸‡à¹€à¸«à¹‡à¸™à¸žà¹‰à¸­à¸‡à¸‚องà¸à¸¸à¸à¹à¸ˆ"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "ลายเซ็นà¸à¸³à¸à¸±à¸šà¹ƒà¸šà¸£à¸±à¸šà¸£à¸­à¸‡"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "ลายเซ็นà¸à¸³à¸à¸±à¸šà¸£à¸²à¸¢à¸à¸²à¸£à¹€à¸žà¸´à¸à¸–อน"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "à¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸à¸¸à¸à¹à¸ˆ"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "à¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "ชื่ออื่นของผู้รับà¸à¸²à¸£à¸£à¸±à¸šà¸£à¸­à¸‡"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "ส่วนขยาย"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "ตัวระบุ"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "ค่า"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "วิà¸à¸¤à¸•à¸´"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "ไม่สามารถส่งออà¸à¹ƒà¸šà¸£à¸±à¸šà¸£à¸­à¸‡"
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "ชื่อ"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "ตรวจสอบโดย"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "หมดอายุ"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "ชื่อผู้รับà¸à¸²à¸£à¸£à¸±à¸šà¸£à¸­à¸‡"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "ชื่อผู้ออà¸à¹ƒà¸«à¹‰"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "ใบรับรองที่ออà¸"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "รุ่น"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "ห้ามใช้à¸à¹ˆà¸­à¸™"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "ห้ามใช้หลัง"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "ลายนิ้วมือของใบรับรอง"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "ลายเซ็น"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "อัลà¸à¸­à¸£à¸´à¸—ึมของลายเซ็น"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "พารามิเตอร์สำหรับลายเซ็น"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "ข้อมูลà¸à¸¸à¸à¹à¸ˆà¸ªà¸²à¸˜à¸²à¸£à¸“ะ"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "อัลà¸à¸­à¸£à¸´à¸—ึมของà¸à¸¸à¸à¹à¸ˆ"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "พารามิเตอร์สำหรับà¸à¸¸à¸à¹à¸ˆ"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "ขนาดà¸à¸¸à¸à¹à¸ˆ"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "ลายนิ้วมือ SHA1 ของà¸à¸¸à¸à¹à¸ˆ"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "à¸à¸¸à¸à¹à¸ˆà¸ªà¸²à¸˜à¸²à¸£à¸“ะ"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "_รายละเอียด"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "ไม่สามารถà¹à¸ªà¸”ง '%s'"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "ไม่สามารถà¹à¸ªà¸”งà¹à¸Ÿà¹‰à¸¡"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "เหตุผล"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "ไม่สามารถà¹à¸ªà¸”งà¹à¸Ÿà¹‰à¸¡à¸Šà¸™à¸´à¸”นี้"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "นำเข้าใบรับรองà¹à¸¥à¸°à¸à¸¸à¸à¹à¸ˆ"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "นำเข้าสู่:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "รหัสผ่าน:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "à¸à¸¸à¸à¹à¸ˆ PGP"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "ID à¸à¸¸à¸à¹à¸ˆ"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "โพรเซส gnupg จบà¸à¸²à¸£à¸—ำงานด้วยรหัส: %d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "โพรเซส gnupg จบà¸à¸²à¸£à¸—ำงานโดยสัà¸à¸à¸²à¸“: %d"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919 ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "à¸à¸²à¸£à¸à¸£à¸°à¸—ำถูà¸à¸¢à¸à¹€à¸¥à¸´à¸"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "ป้อนรหัสผ่านเพื่อปลดล็อคà¸à¸¸à¸à¹à¸ˆà¸ªà¹ˆà¸§à¸™à¸•à¸±à¸§"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "ป้อนรหัสผ่านเพื่อปลดล็อคใบรับรอง"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "ป้อนรหัสผ่านเพื่อปลดล็อค"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "à¸à¸²à¸£à¸™à¸³à¹€à¸‚้าà¸à¸¸à¸à¹à¸ˆà¸ªà¹ˆà¸§à¸™à¸•à¸±à¸§ จะต้องปลดล็อคà¸à¸¸à¸à¹à¸ˆà¹€à¸ªà¸µà¸¢à¸à¹ˆà¸­à¸™"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "à¸à¸²à¸£à¸™à¸³à¹€à¸‚้าใบรับรอง จะต้องปลดล็อคใบรับรองเสียà¸à¹ˆà¸­à¸™"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "à¸à¸²à¸£à¸™à¸³à¹€à¸‚้าข้อมูล จะต้องปลดล็อคข้อมูลเสียà¸à¹ˆà¸­à¸™"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "à¸à¸²à¸£à¸™à¸³à¹€à¸‚้าà¸à¸¸à¸à¹à¸ˆà¸ªà¹ˆà¸§à¸™à¸•à¸±à¸§ '%s' จะต้องปลดล็อคà¸à¸¸à¸à¹à¸ˆà¹€à¸ªà¸µà¸¢à¸à¹ˆà¸­à¸™"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "à¸à¸²à¸£à¸™à¸³à¹€à¸‚้าใบรับรอง '%s' จะต้องปลดล็อคใบรับรองเสียà¸à¹ˆà¸­à¸™"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "à¸à¸²à¸£à¸™à¸³à¹€à¸‚้า '%s' จะต้องปลดล็อคเสียà¸à¹ˆà¸­à¸™"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "ไม่มีตำà¹à¸«à¸™à¹ˆà¸‡à¹ƒà¸«à¹‰à¸™à¸³à¹€à¸‚้าไปเà¸à¹‡à¸šà¹„ด้"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "นำเข้าใบรับรอง/à¸à¸¸à¸à¹à¸ˆ"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "เลือà¸à¸•à¸³à¹à¸«à¸™à¹ˆà¸‡à¸—ี่จะเà¸à¹‡à¸šà¹ƒà¸šà¸£à¸±à¸šà¸£à¸­à¸‡/à¸à¸¸à¸à¹à¸ˆà¸—ี่นำเข้า"
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "à¸à¸¸à¸à¹à¸ˆ"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "à¸à¸¸à¸à¹à¸ˆ RSA ส่วนตัว"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "à¸à¸¸à¸à¹à¸ˆ DSA ส่วนตัว"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "à¸à¸¸à¸à¹à¸ˆà¸ªà¹ˆà¸§à¸™à¸•à¸±à¸§"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "à¸à¸¸à¸à¹à¸ˆ DSA สาธารณะ"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d บิต"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "ความà¹à¸™à¹ˆà¸™à¸«à¸™à¸²"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "อัลà¸à¸­à¸£à¸´à¸—ึม"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "ขนาด"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "ลายนิ้วมือ"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "ข้อมูลที่ไม่รู้จัà¸à¸«à¸£à¸·à¸­à¹„ม่รองรับ"
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "ไม่สามารถà¹à¸ˆà¸‡à¸‚้อมูลที่ผิดรูปà¹à¸šà¸šà¸«à¸£à¸·à¸­à¹€à¸ªà¸µà¸¢à¸«à¸²à¸¢"
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "ข้อมูลถูà¸à¸¥à¹‡à¸­à¸„อยู่"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "ไม่สามารถหาà¹à¸«à¸¥à¹ˆà¸‡à¸—ี่จะเà¸à¹‡à¸šà¹ƒà¸šà¸£à¸±à¸šà¸£à¸­à¸‡à¸—ี่ปัà¸à¸«à¸¡à¸¸à¸”ไว้"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "ปลดล็อคพวงà¸à¸¸à¸à¹à¸ˆà¸™à¸µà¹‰à¹‚ดยอัตโนมัติทุà¸à¸„รั้งที่ฉันเข้าระบบ"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "ล็อคพวงà¸à¸¸à¸à¹à¸ˆà¸™à¸µà¹‰à¹€à¸¡à¸·à¹ˆà¸­à¹€à¸§à¸¥à¸²à¸œà¹ˆà¸²à¸™à¹„ป"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "ล็อคพวงà¸à¸¸à¸à¹à¸ˆà¸™à¸µà¹‰à¸–้าเครื่องไม่มีà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¹€à¸›à¹‡à¸™à¹€à¸§à¸¥à¸²"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "ล็อคพวงà¸à¸¸à¸à¹à¸ˆà¸™à¸µà¹‰à¹€à¸¡à¸·à¹ˆà¸­à¸­à¸­à¸à¸ˆà¸²à¸à¸£à¸°à¸šà¸š"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "นาที"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "ปลดล็อค: %s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "ปลดล็อค"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "รหัสผ่านไม่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "รหัสผ่าน"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr "เนื้อหาของ '%s' ถูà¸à¸¥à¹‡à¸­à¸„อยู่ หาà¸à¸•à¹‰à¸­à¸‡à¸à¸²à¸£à¸”ูเนื้อหา à¸à¸£à¸¸à¸“าป้อนรหัสผ่านที่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr "เนื้อหาถูà¸à¸¥à¹‡à¸­à¸„อยู่ หาà¸à¸•à¹‰à¸­à¸‡à¸à¸²à¸£à¸”ูเนื้อหา à¸à¸£à¸¸à¸“าป้อนรหัสผ่านที่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "เครื่องมือà¹à¸ªà¸”งใบรับรองà¹à¸¥à¸°à¸à¸¸à¸à¹à¸ˆà¸‚อง GCR"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "à¹à¸ªà¸”งรุ่นของโปรà¹à¸à¸£à¸¡"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[à¹à¸Ÿà¹‰à¸¡...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- ดูà¹à¸Ÿà¹‰à¸¡à¹ƒà¸šà¸£à¸±à¸šà¸£à¸­à¸‡à¹à¸¥à¸°à¸à¸¸à¸à¹à¸ˆ"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "เครื่องมือà¹à¸ªà¸”งใบรับรอง"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "รหัสของ URI ไม่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "URI ไม่ได้เป็นชนิด 'pkcs11'"
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "URI มีรูปà¹à¸šà¸šà¸—ี่ผิดไวยาà¸à¸£à¸“์"
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "URI มีเลขรุ่นที่ใช้à¸à¸²à¸£à¹„ม่ได้"
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "ใบรับรองไม่มีชื่อ"
@@ -863,7 +284,7 @@ msgid "Couldn't parse public SSH key"
msgstr "ไม่สามารถà¹à¸ˆà¸‡à¸à¸¸à¸à¹à¸ˆà¸ªà¸²à¸˜à¸²à¸£à¸“ะสำหรับ SSH"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "รหัสผ่านสำหรับปลดล็อค: %s"
@@ -918,10 +339,26 @@ msgstr "ปลดล็อคใบรับรอง"
msgid "Unlock public key"
msgstr "ปลดล็อคà¸à¸¸à¸à¹à¸ˆà¸ªà¸²à¸˜à¸²à¸£à¸“ะ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "ปลดล็อค"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "ป้อนรหัสผ่านเพื่อปลดล็อคà¸à¸¸à¸à¹à¸ˆà¸ªà¹ˆà¸§à¸™à¸•à¸±à¸§"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "ป้อนรหัสผ่านเพื่อปลดล็อคใบรับรอง"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "ป้อนรหัสผ่านเพื่อปลดล็อคà¸à¸¸à¸à¹à¸ˆà¸ªà¸²à¸˜à¸²à¸£à¸“ะ"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "ป้อนรหัสผ่านเพื่อปลดล็อค"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1005,11 +442,11 @@ msgstr "คำสั่ง: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "จะเà¸à¹‡à¸šà¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¹‚ดยไม่เข้ารหัสลับจริงหรือ?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1018,15 +455,15 @@ msgstr ""
"à¸à¸²à¸£à¹ƒà¸Šà¹‰à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸§à¹ˆà¸²à¸‡à¹€à¸›à¸¥à¹ˆà¸² จะทำให้รหัสผ่านไม่มีà¸à¸²à¸£à¹€à¸‚้ารหัสลับอย่างปลอดภัย "
"à¹à¸¥à¸°à¹ƒà¸„รà¸à¹‡à¸•à¸²à¸¡à¸—ี่เข้าถึงà¹à¸Ÿà¹‰à¸¡à¸‚องคุณได้à¸à¹‡à¸ˆà¸°à¹„ด้รหัสผ่านของคุณไป"
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "เà¸à¹‡à¸šà¹à¸šà¸šà¹„ม่ปลอดภัย"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "รหัสผ่านไม่ตรงà¸à¸±à¸™"
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "รหัสผ่านเป็นค่าว่างเปล่าไม่ได้"
@@ -1065,745 +502,3 @@ msgstr "รหัสผ่านเ_ดิม:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_รหัสผ่าน:"
-
-#~ msgid "Fingerprint"
-#~ msgstr "ลายนิ้วมือ"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "เหลือหน่วยความจำไม่เพียงพอ"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "หมายเลข slot ที่ระบุใช้à¸à¸²à¸£à¹„ม่ได้"
-
-#~ msgid "Internal error"
-#~ msgstr "ข้อผิดพลาดภายใน"
-
-#~ msgid "The operation failed"
-#~ msgstr "à¸à¸²à¸£à¸à¸£à¸°à¸—ำล้มเหลว"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "อาร์à¸à¸´à¸§à¹€à¸¡à¸™à¸•à¹Œà¹„ม่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "มอดูลไม่สามารถสร้างเธรดที่ต้องà¸à¸²à¸£à¹„ด้"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "มอดูลไม่สามารถล็อคข้อมูลได้อย่างเรียบร้อย"
-
-#~ msgid "The field is read-only"
-#~ msgstr "เขตข้อมูลอ่านได้อย่างเดียว"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "เขตข้อมูลมีความอ่อนไหวà¹à¸¥à¸°à¹„ม่สามารถเปิดเผยได้"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "เขตข้อมูลไม่ถูà¸à¸•à¹‰à¸­à¸‡à¸«à¸£à¸·à¸­à¹„ม่มีเขตข้อมูลนี้อยู่"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "ค่าสำหรับเขตข้อมูลไม่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "ข้อมูลไม่ถูà¸à¸•à¹‰à¸­à¸‡à¸«à¸£à¸·à¸­à¹„ม่รู้จัà¸"
-
-#~ msgid "The data is too long"
-#~ msgstr "ข้อมูลยาวเà¸à¸´à¸™à¹„ป"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "เà¸à¸´à¸”ข้อผิดพลาดขึ้นในอุปà¸à¸£à¸“์"
-
-#~ msgid "Insufficient memory available on the device"
-#~ msgstr "เหลือหน่วยความจำไม่เพียงพอในอุปà¸à¸£à¸“์"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "อุปà¸à¸£à¸“์ถูà¸à¸–อดออà¸à¸«à¸£à¸·à¸­à¸–ูà¸à¸›à¸´à¸”"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "ข้อมูลที่เข้ารหัสลับไว้ไม่ถูà¸à¸•à¹‰à¸­à¸‡à¸«à¸£à¸·à¸­à¹„ม่รู้จัà¸"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "ข้อมูลที่เข้ารหัสลับไว้ยาวเà¸à¸´à¸™à¹„ป"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "ไม่รองรับà¸à¸²à¸£à¸à¸£à¸°à¸—ำนี้"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "à¸à¸¸à¸à¹à¸ˆà¸‚าดหายไปหรือไม่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "à¸à¸¸à¸à¹à¸ˆà¸¡à¸µà¸‚นาดไม่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "à¸à¸¸à¸à¹à¸ˆà¸¡à¸µà¸Šà¸™à¸´à¸”ไม่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#~ msgid "No key is needed"
-#~ msgstr "ไม่ต้องใช้à¸à¸¸à¸à¹à¸ˆ"
-
-#~ msgid "The key is different than before"
-#~ msgstr "à¸à¸¸à¸à¹à¸ˆà¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹„ปจาà¸à¹€à¸”ิม"
-
-#~ msgid "A key is needed"
-#~ msgstr "ต้องใช้à¸à¸¸à¸à¹à¸ˆ"
-
-#~ msgid "Cannot include the key in the digest"
-#~ msgstr "ไม่สามารถเพิ่มà¸à¸¸à¸à¹à¸ˆà¹ƒà¸™à¸‚้อมูลที่ย่อยà¹à¸¥à¹‰à¸§à¹„ด้"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "à¸à¸²à¸£à¸à¸£à¸°à¸—ำนี้ทำà¸à¸±à¸šà¸à¸¸à¸à¹à¸ˆà¸™à¸µà¹‰à¹„ม่ได้"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "ไม่สามารถห่อหุ้มà¸à¸¸à¸à¹à¸ˆà¹„ด้"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "ไม่สามารถส่งออà¸à¸à¸¸à¸à¹à¸ˆà¸™à¸µà¹‰à¹„ด้"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "à¸à¸¥à¹„à¸à¸à¸²à¸£à¹€à¸‚้ารหัสลับไม่ถูà¸à¸•à¹‰à¸­à¸‡à¸«à¸£à¸·à¸­à¹„ม่รู้จัà¸"
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "à¸à¸¥à¹„à¸à¸à¸²à¸£à¹€à¸‚้ารหัสลับมีอาร์à¸à¸´à¸§à¹€à¸¡à¸™à¸•à¹Œà¹„ม่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "อ็อบเจà¸à¸•à¹Œà¸‚าดหายไปหรือไม่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "มีà¸à¸²à¸£à¸à¸£à¸°à¸—ำอื่นà¸à¸³à¸¥à¸±à¸‡à¸”ำเนินอยู่"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "ไม่มีà¸à¸²à¸£à¸à¸£à¸°à¸—ำใดดำเนินอยู่"
-
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "รหัสผ่านหรือ PIN ไม่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "รหัสผ่านหรือ PIN ใช้à¸à¸²à¸£à¹„ม่ได้"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "รหัสผ่านหรือ PIN มีความยาวไม่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "รหัสผ่านหรือ PIN หมดอายุà¹à¸¥à¹‰à¸§"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "รหัสผ่านหรือ PIN ถูà¸à¸¥à¹‡à¸­à¸„ไว้"
-
-#~ msgid "The session is closed"
-#~ msgstr "วาระถูà¸à¸›à¸´à¸”ไปà¹à¸¥à¹‰à¸§"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "มีวาระเปิดอยู่มาà¸à¹€à¸à¸´à¸™à¹„ป"
-
-#~ msgid "The session is invalid"
-#~ msgstr "วาระไม่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#~ msgid "The session is read-only"
-#~ msgstr "วาระอ่านได้อย่างเดียว"
-
-#~ msgid "An open session exists"
-#~ msgstr "มีวาระที่เปิดอยู่"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "มีวาระที่อ่านได้อย่างเดียวเปิดอยู่"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "มีวาระผู้ดูà¹à¸¥à¸£à¸°à¸šà¸šà¹€à¸›à¸´à¸”อยู่"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "ลายเซ็นผิดหรือเสียหาย"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "ลายเซ็นไม่รู้จัà¸à¸«à¸£à¸·à¸­à¹€à¸ªà¸µà¸¢à¸«à¸²à¸¢"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "เขตข้อมูลที่จำเป็นบางเขตขาดหายไป"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "เขตข้อมูลบางเขตมีค่าที่ใช้ไม่ได้"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "ไม่มีอุปà¸à¸£à¸“์อยู่ หรืออุปà¸à¸£à¸“์ถูà¸à¸›à¸´à¸”ไป"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "อุปà¸à¸£à¸“์ไม่ถูà¸à¸•à¹‰à¸­à¸‡à¸«à¸£à¸·à¸­à¹„ม่รู้จัà¸"
-
-#~ msgid "The device is write protected"
-#~ msgstr "อุปà¸à¸£à¸“์มีà¸à¸²à¸£à¸›à¹‰à¸­à¸‡à¸à¸±à¸™à¸à¸²à¸£à¹€à¸‚ียนไว้"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "ไม่สามารถนำเข้าเพราะà¸à¸¸à¸à¹à¸ˆà¹ƒà¸Šà¹‰à¹„ม่ได้"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "ไม่สามารถนำเข้าเพราะà¸à¸¸à¸à¹à¸ˆà¸¡à¸µà¸‚นาดไม่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "ไม่สามารถนำเข้าเพราะà¸à¸¸à¸à¹à¸ˆà¸¡à¸µà¸Šà¸™à¸´à¸”ไม่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#~ msgid "You are already logged in"
-#~ msgstr "คุณได้เข้าระบบà¹à¸¥à¹‰à¸§"
-
-#~ msgid "No user has logged in"
-#~ msgstr "ไม่มีผู้ใช้เข้าระบบ"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "รหัสผ่านหรือ PIN ของผู้ใช้ยังไม่ได้ตั้ง"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "ผู้ใช้มีชนิดที่ไม่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "มีผู้ใช้อื่นเข้าระบบอยู่"
-
-#~ msgid "Too many users of different types are logged in"
-#~ msgstr "มีผู้ใช้หลายชนิดเà¸à¸´à¸™à¹„ปเข้าระบบอยู่"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "ไม่สามารถนำเข้าà¸à¸¸à¸à¹à¸ˆà¸—ี่ใช้ไม่ได้"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "ไม่สามารถนำเข้าà¸à¸¸à¸à¹à¸ˆà¸—ี่มีขนาดไม่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "ไม่สามารถส่งออà¸à¹€à¸žà¸£à¸²à¸°à¸à¸¸à¸à¹à¸ˆà¹ƒà¸Šà¹‰à¹„ม่ได้"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "ไม่สามารถส่งออà¸à¹€à¸žà¸£à¸²à¸°à¸à¸¸à¸à¹à¸ˆà¸¡à¸µà¸‚นาดไม่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "ไม่สามารถส่งออà¸à¹€à¸žà¸£à¸²à¸°à¸à¸¸à¸à¹à¸ˆà¸¡à¸µà¸Šà¸™à¸´à¸”ไม่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "ไม่สามารถตั้งต้นเครื่องมือสร้างตัวเลขสุ่ม"
-
-#~ msgid "No random number generator available"
-#~ msgstr "ไม่มีตัวสร้างเลขสุ่ม"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "à¸à¸¥à¹„à¸à¸à¸²à¸£à¹€à¸‚้ารหัสลับมีพารามิเตอร์ที่ไม่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "มีที่ว่างไม่เพียงพอที่จะเà¸à¹‡à¸šà¸œà¸¥à¸¥à¸±à¸žà¸˜à¹Œ"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "สถานะที่บันทึà¸à¹„ว้ไม่ใช่สถานะที่ถูà¸à¸•à¹‰à¸­à¸‡"
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "ข้อมูลมีความอ่อนไหวà¹à¸¥à¸°à¹„ม่สามารถเปิดเผยได้"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "ไม่สามารถบันทึà¸à¸ªà¸–านะได้"
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "มอดูลยังไม่ถูà¸à¸•à¸±à¹‰à¸‡à¸„่าเริ่มต้น"
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "มอดูลถูà¸à¸•à¸±à¹‰à¸‡à¸„่าเริ่มต้นเรียบร้อยà¹à¸¥à¹‰à¸§"
-
-#~ msgid "Cannot lock data"
-#~ msgstr "ไม่สามารถล็อคข้อมูล"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "ข้อมูลไม่สามารถล็อคได้"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "à¸à¸²à¸£à¸£à¹‰à¸­à¸‡à¸‚อลายเซ็นถูà¸à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸›à¸à¸´à¹€à¸ªà¸˜"
-
-#~ msgid "Unknown error"
-#~ msgstr "ข้อผิดพลาดไม่ทราบสาเหตุ"
-
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "ตัวเลือà¸à¸™à¸µà¹‰à¸ˆà¸°à¹€à¸›à¸´à¸”ใช้องค์ประà¸à¸­à¸š PKCS#11 ในดีมอน gnome-keyring "
-#~ "ซึ่งจะมีผลเมื่อเริ่มทำงานพร้อมà¸à¸±à¸š gnome-session เท่านั้น (à¸à¸¥à¹ˆà¸²à¸§à¸„ือ เมื่อผู้ใช้เข้าระบบ) "
-#~ "ค่าตั้งนี้อาจถูà¸à¹à¸—นที่โดยอาร์à¸à¸´à¸§à¹€à¸¡à¸™à¸•à¹Œà¸šà¸²à¸‡à¸­à¸¢à¹ˆà¸²à¸‡à¹ƒà¸™à¸šà¸£à¸£à¸—ัดคำสั่งที่ใช้เรียà¸à¸”ีมอน"
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "ตัวเลือà¸à¸™à¸µà¹‰à¸ˆà¸°à¹€à¸›à¸´à¸”ใช้เอเจนต์ SSH ในดีมอน gnome-keyring ซึ่งจะมีผลเมื่อดีมอน gnome-"
-#~ "keyring ทำงานเท่านั้น (à¸à¸¥à¹ˆà¸²à¸§à¸„ือ เมื่อผู้ใช้เข้าระบบ) "
-#~ "ค่าตั้งนี้อาจถูà¸à¹à¸—นที่โดยอาร์à¸à¸´à¸§à¹€à¸¡à¸™à¸•à¹Œà¸šà¸²à¸‡à¸­à¸¢à¹ˆà¸²à¸‡à¹ƒà¸™à¸šà¸£à¸£à¸—ัดคำสั่งที่ใช้เรียà¸à¸”ีมอน"
-
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "ตัวเลือà¸à¸™à¸µà¹‰à¸ˆà¸°à¹€à¸›à¸´à¸”ใช้องค์ประà¸à¸­à¸šà¸šà¸£à¸´à¸à¸²à¸£à¹€à¸à¹‡à¸šà¸‚้อมูลลับในดีมอน gnome-keyring "
-#~ "ซึ่งจะมีผลเมื่อเริ่มทำงานพร้อมà¸à¸±à¸š gnome-session เท่านั้น (à¸à¸¥à¹ˆà¸²à¸§à¸„ือ เมื่อผู้ใช้เข้าระบบ) "
-#~ "ค่าตั้งนี้อาจถูà¸à¹à¸—นที่โดยอาร์à¸à¸´à¸§à¹€à¸¡à¸™à¸•à¹Œà¸šà¸²à¸‡à¸­à¸¢à¹ˆà¸²à¸‡à¹ƒà¸™à¸šà¸£à¸£à¸—ัดคำสั่งที่ใช้เรียà¸à¸”ีมอน"
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "จะเปิดใช้องค์ประà¸à¸­à¸š PKCS#11 ของ gnome-keyring หรือไม่"
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "จะเปิดใช้เอเจนต์ SSH ของ gnome-keyring หรือไม่"
-
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr "จะเปิดใช้บริà¸à¸²à¸£à¹€à¸à¹‡à¸šà¸‚้อมูลลับของ gnome-keyring หรือไม่"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>ไม่ใช่ส่วนหนึ่งของใบรับรอง</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>ไม่ทราบ</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<ไม่ใช่ส่วนหนึ่งของใบรับรอง>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>ลายนิ้วมือ</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>ออà¸à¹ƒà¸«à¹‰à¹‚ดย</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>ออà¸à¹ƒà¸«à¹‰à¸à¸±à¸š</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>ใบรับรองนี้ผ่านà¸à¸²à¸£à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸šà¸ªà¸³à¸«à¸£à¸±à¸šà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸•à¹ˆà¸­à¹„ปนี้:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>อายุà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "ชื่อสามัภ(CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "ใบรับรองสำหรับรับอีเมล"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "ใบรับรองสำหรับเซ็นà¸à¸³à¸à¸±à¸šà¸­à¸µà¹€à¸¡à¸¥"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "ลายนิ้วมือ MD5"
-
-#~ msgid "Organization (O)"
-#~ msgstr "องค์à¸à¸£ (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "หน่วยงานในองค์à¸à¸£ (OU)"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr "<span size='large' weight='bold'>นำเข้าใบรับรองà¹à¸¥à¸°à¸à¸¸à¸à¹à¸ˆ</span>"
-
-#~ msgid "Automatically unlock secure storage when I log in."
-#~ msgstr "ปลดล็อคà¹à¸«à¸¥à¹ˆà¸‡à¸‚้อมูลนิรภัยโดยอัตโนมัติเมื่อข้าพเจ้าเข้าระบบ"
-
-#~ msgid ""
-#~ "<span size=\"large\" weight=\"bold\">Enter password for keyring 'login' "
-#~ "to unlock</span>\n"
-#~ "\n"
-#~ "An application wants access to the keyring 'xxx', but it is locked."
-#~ msgstr ""
-#~ "<span size=\"large\" weight=\"bold\">à¸à¸£à¸¸à¸“าป้อนรหัสผ่านสำหรับพวงà¸à¸¸à¸à¹à¸ˆ 'login' "
-#~ "เพื่อปลดล็อค</span>\n"
-#~ "\n"
-#~ "มีโปรà¹à¸à¸£à¸¡à¸•à¹‰à¸­à¸‡à¸à¸²à¸£à¹ƒà¸Šà¹‰à¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆ 'xxx' ซึ่งถูà¸à¸¥à¹‡à¸­à¸„อยู่"
-
-#~ msgid "Prompt me for each application that accesses this keyring."
-#~ msgstr "ถามข้าพเจ้าทุà¸à¸„รั้งที่มีโปรà¹à¸à¸£à¸¡à¹ƒà¸«à¸¡à¹ˆà¹€à¸‚้าใช้พวงà¸à¸¸à¸à¹à¸ˆà¸™à¸µà¹‰"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "โปรà¹à¸à¸£à¸¡ '%s' (%s) ต้องà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸ªà¸³à¸«à¸£à¸±à¸š '<object prop='name'/>' "
-#~ "จาà¸à¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆà¸›à¸£à¸´à¸¢à¸²à¸¢"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "โปรà¹à¸à¸£à¸¡ '%s' (%s) ต้องà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸ªà¸³à¸«à¸£à¸±à¸š '<object prop='name'/>' จาภ%s"
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "โปรà¹à¸à¸£à¸¡ '%s' ต้องà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸ªà¸³à¸«à¸£à¸±à¸š '<object prop='name'/>' จาà¸à¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆà¸›à¸£à¸´à¸¢à¸²à¸¢"
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr "โปรà¹à¸à¸£à¸¡ '%s' ต้องà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸ªà¸³à¸«à¸£à¸±à¸š '<object prop='name'/>' จาภ%s"
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "โปรà¹à¸à¸£à¸¡à¹„ม่ทราบชื่อ ต้องà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸ªà¸³à¸«à¸£à¸±à¸š '<object prop='name'/>' "
-#~ "จาà¸à¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆà¸›à¸£à¸´à¸¢à¸²à¸¢"
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr "โปรà¹à¸à¸£à¸¡à¹„ม่ทราบชื่อ ต้องà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸ªà¸³à¸«à¸£à¸±à¸š '<object prop='name'/>' จาภ%s"
-
-#~ msgid "Allow access"
-#~ msgstr "ยอมให้ใช้"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr "โปรà¹à¸à¸£à¸¡ '%s' (%s) ต้องà¸à¸²à¸£à¸ˆà¸°à¹ƒà¸Šà¹‰à¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆà¸›à¸£à¸´à¸¢à¸²à¸¢à¸‹à¸¶à¹ˆà¸‡à¸–ูà¸à¸¥à¹‡à¸­à¸„อยู่"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-#~ msgstr "โปรà¹à¸à¸£à¸¡ '%s' (%s) ต้องà¸à¸²à¸£à¸ˆà¸°à¹ƒà¸Šà¹‰à¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆ %s ซึ่งถูà¸à¸¥à¹‡à¸­à¸„อยู่"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-#~ msgstr "โปรà¹à¸à¸£à¸¡ '%s' ต้องà¸à¸²à¸£à¸ˆà¸°à¹ƒà¸Šà¹‰à¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆà¸›à¸£à¸´à¸¢à¸²à¸¢à¸‹à¸¶à¹ˆà¸‡à¸–ูà¸à¸¥à¹‡à¸­à¸„อยู่"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-#~ msgstr "โปรà¹à¸à¸£à¸¡ '%s' ต้องà¸à¸²à¸£à¸ˆà¸°à¹ƒà¸Šà¹‰à¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆ %s ซึ่งถูà¸à¸¥à¹‡à¸­à¸„อยู่"
-
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr "โปรà¹à¸à¸£à¸¡à¹„ม่ทราบชื่อ ต้องà¸à¸²à¸£à¸ˆà¸°à¹ƒà¸Šà¹‰à¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆà¸›à¸£à¸´à¸¢à¸²à¸¢à¸‹à¸¶à¹ˆà¸‡à¸–ูà¸à¸¥à¹‡à¸­à¸„อยู่"
-
-#~ msgid "Enter password for default keyring to unlock"
-#~ msgstr "ป้อนรหัสผ่านสำหรับปลดล็อคพวงà¸à¸¸à¸à¹à¸ˆà¸›à¸£à¸´à¸¢à¸²à¸¢"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "โปรà¹à¸à¸£à¸¡ '%s' (%s) ต้องà¸à¸²à¸£à¸ˆà¸°à¸ªà¸£à¹‰à¸²à¸‡à¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆà¹ƒà¸«à¸¡à¹ˆà¸Šà¸·à¹ˆà¸­ '%s' คุณต้องตั้งรหัสผ่านสำหรับพวงà¸à¸¸à¸à¹à¸ˆà¸™à¸µà¹‰"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "โปรà¹à¸à¸£à¸¡ '%s' (%s) ต้องà¸à¸²à¸£à¸ˆà¸°à¸ªà¸£à¹‰à¸²à¸‡à¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆà¸›à¸£à¸´à¸¢à¸²à¸¢à¹ƒà¸«à¸¡à¹ˆ คุณต้องตั้งรหัสผ่านสำหรับพวงà¸à¸¸à¸à¹à¸ˆà¸™à¸µà¹‰"
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "โปรà¹à¸à¸£à¸¡ '%s' ต้องà¸à¸²à¸£à¸ˆà¸°à¸ªà¸£à¹‰à¸²à¸‡à¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆà¹ƒà¸«à¸¡à¹ˆà¸Šà¸·à¹ˆà¸­ '%s' คุณต้องตั้งรหัสผ่านสำหรับพวงà¸à¸¸à¸à¹à¸ˆà¸™à¸µà¹‰"
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr "โปรà¹à¸à¸£à¸¡ '%s' ต้องà¸à¸²à¸£à¸ˆà¸°à¸ªà¸£à¹‰à¸²à¸‡à¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆà¸›à¸£à¸´à¸¢à¸²à¸¢à¹ƒà¸«à¸¡à¹ˆ คุณต้องตั้งรหัสผ่านสำหรับพวงà¸à¸¸à¸à¹à¸ˆà¸™à¸µà¹‰"
-
-#~ msgid ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "โปรà¹à¸à¸£à¸¡à¹„ม่ทราบชื่อ ต้องà¸à¸²à¸£à¸ˆà¸°à¸ªà¸£à¹‰à¸²à¸‡à¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆà¸›à¸£à¸´à¸¢à¸²à¸¢à¹ƒà¸«à¸¡à¹ˆ คุณต้องตั้งรหัสผ่านสำหรับพวงà¸à¸¸à¸à¹à¸ˆà¸™à¸µà¹‰"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "โปรà¹à¸à¸£à¸¡ '%s' (%s) ต้องà¸à¸²à¸£à¸ˆà¸°à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸ªà¸³à¸«à¸£à¸±à¸šà¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆ '%s' "
-#~ "คุณต้องตั้งรหัสผ่านสำหรับพวงà¸à¸¸à¸à¹à¸ˆà¸™à¸µà¹‰"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "โปรà¹à¸à¸£à¸¡ '%s' (%s) ต้องà¸à¸²à¸£à¸ˆà¸°à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸ªà¸³à¸«à¸£à¸±à¸šà¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆà¸›à¸£à¸´à¸¢à¸²à¸¢ "
-#~ "คุณต้องตั้งรหัสผ่านสำหรับพวงà¸à¸¸à¸à¹à¸ˆà¸™à¸µà¹‰"
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "โปรà¹à¸à¸£à¸¡ '%s' ต้องà¸à¸²à¸£à¸ˆà¸°à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸ªà¸³à¸«à¸£à¸±à¸šà¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆ '%s' "
-#~ "คุณต้องตั้งรหัสผ่านสำหรับพวงà¸à¸¸à¸à¹à¸ˆà¸™à¸µà¹‰"
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "โปรà¹à¸à¸£à¸¡ '%s' ต้องà¸à¸²à¸£à¸ˆà¸°à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸ªà¸³à¸«à¸£à¸±à¸šà¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆà¸›à¸£à¸´à¸¢à¸²à¸¢ "
-#~ "คุณต้องตั้งรหัสผ่านสำหรับพวงà¸à¸¸à¸à¹à¸ˆà¸™à¸µà¹‰"
-
-#~ msgid ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "โปรà¹à¸à¸£à¸¡à¹„ม่ทราบชื่อ ต้องà¸à¸²à¸£à¸ˆà¸°à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸ªà¸³à¸«à¸£à¸±à¸šà¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆà¸›à¸£à¸´à¸¢à¸²à¸¢ "
-#~ "คุณต้องตั้งรหัสผ่านสำหรับพวงà¸à¸¸à¸à¹à¸ˆà¸™à¸µà¹‰"
-
-#~ msgid "Choose a new password for the default keyring."
-#~ msgstr "ตั้งรหัสผ่านใหม่สำหรับพวงà¸à¸¸à¸à¹à¸ˆà¸›à¸£à¸´à¸¢à¸²à¸¢"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-#~ msgstr ""
-#~ "โปรà¹à¸à¸£à¸¡ '%s' (%s) ต้องà¸à¸²à¸£à¹€à¸à¹‡à¸šà¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™ à¹à¸•à¹ˆà¸„ุณไม่มีพวงà¸à¸¸à¸à¹à¸ˆà¸›à¸£à¸´à¸¢à¸²à¸¢ "
-#~ "ถ้าจะสร้างพวงà¸à¸¸à¸à¹à¸ˆà¸”ังà¸à¸¥à¹ˆà¸²à¸§ คุณต้องตั้งรหัสผ่านสำหรับพวงà¸à¸¸à¸à¹à¸ˆà¸”้วย"
-
-#~ msgid ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "โปรà¹à¸à¸£à¸¡ '%s' ต้องà¸à¸²à¸£à¹€à¸à¹‡à¸šà¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™ à¹à¸•à¹ˆà¸„ุณไม่มีพวงà¸à¸¸à¸à¹à¸ˆà¸›à¸£à¸´à¸¢à¸²à¸¢ ถ้าจะสร้างพวงà¸à¸¸à¸à¹à¸ˆà¸”ังà¸à¸¥à¹ˆà¸²à¸§ "
-#~ "คุณต้องตั้งรหัสผ่านสำหรับพวงà¸à¸¸à¸à¹à¸ˆà¸”้วย"
-
-#~ msgid ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "โปรà¹à¸à¸£à¸¡à¹„ม่ทราบชื่อ ต้องà¸à¸²à¸£à¹€à¸à¹‡à¸šà¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™ à¹à¸•à¹ˆà¸„ุณไม่มีพวงà¸à¸¸à¸à¹à¸ˆà¸›à¸£à¸´à¸¢à¸²à¸¢ ถ้าจะสร้างพวงà¸à¸¸à¸à¹à¸ˆà¸”ังà¸à¸¥à¹ˆà¸²à¸§ "
-#~ "คุณต้องตั้งรหัสผ่านสำหรับพวงà¸à¸¸à¸à¹à¸ˆà¸”้วย"
-
-#~ msgid "Create Default Keyring"
-#~ msgstr "สร้างพวงà¸à¸¸à¸à¹à¸ˆà¸›à¸£à¸´à¸¢à¸²à¸¢"
-
-#~ msgid "Choose password for default keyring"
-#~ msgstr "ตั้งรหัสผ่านสำหรับพวงà¸à¸¸à¸à¹à¸ˆà¸›à¸£à¸´à¸¢à¸²à¸¢"
-
-#~ msgid "Create Login Keyring"
-#~ msgstr "สร้างพวงà¸à¸¸à¸à¹à¸ˆà¹€à¸‚้าระบบ"
-
-#~ msgid "Enter your login password"
-#~ msgstr "ป้อนรหัสผ่านเข้าระบบของคุณ"
-
-#~ msgid ""
-#~ "Your login keyring was not automatically created when you logged into "
-#~ "this computer. It will now be created."
-#~ msgstr ""
-#~ "ยังไม่มีà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆà¹€à¸‚้าระบบของคุณโดยอัตโนมัติเมื่อคุณเข้าสู่ระบบนี้ à¹à¸¥à¸°à¸ˆà¸°à¸ªà¸£à¹‰à¸²à¸‡à¹€à¸”ี๋ยวนี้"
-
-#~ msgid "Unlock password for %s keyring"
-#~ msgstr "ปลดล็อครหัสผ่านสำหรับพวงà¸à¸¸à¸à¹à¸ˆ %s"
-
-#~ msgid "Automatically unlock this private key when I log in."
-#~ msgstr "ปลดล็อคà¸à¸¸à¸à¹à¸ˆà¸ªà¹ˆà¸§à¸™à¸•à¸±à¸§à¸™à¸µà¹‰à¹‚ดยอัตโนมัติเมื่อข้าพเจ้าเข้าระบบ"
-
-#~ msgid "Automatically unlock this certificate when I log in."
-#~ msgstr "ปลดล็อคใบรับรองนี้โดยอัตโนมัติเมื่อข้าพเจ้าเข้าระบบ"
-
-#~ msgid "Automatically unlock this public key when I log in."
-#~ msgstr "ปลดล็อคà¸à¸¸à¸à¹à¸ˆà¸ªà¸²à¸˜à¸²à¸£à¸“ะนี้โดยอัตโนมัติเมื่อข้าพเจ้าเข้าระบบ"
-
-#~ msgid "Automatically unlock this when I log in"
-#~ msgstr "ปลดล็อครายà¸à¸²à¸£à¸™à¸µà¹‰à¹‚ดยอัตโนมัติเมื่อข้าพเจ้าเข้าระบบ"
-
-#~ msgid ""
-#~ "<b><big>Could not grab your mouse.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>ไม่สามารถยึดครองเมาส์ได้</big></b>\n"
-#~ "\n"
-#~ "อาจมีบางโปรà¹à¸à¸£à¸¡à¸—ี่ไม่ประสงค์ดีà¸à¸³à¸¥à¸±à¸‡à¸”ัà¸à¸‚้อมูลà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸§à¸²à¸£à¸°à¸‚องคุณอยู่ หรือคุณอาจเพิ่งคลิà¸à¹€à¸¡à¸™à¸¹à¹„ป "
-#~ "หรือบางโปรà¹à¸à¸£à¸¡à¸­à¸²à¸ˆà¸”ึงโฟà¸à¸±à¸ªà¹„ป\n"
-#~ "\n"
-#~ "à¸à¸£à¸¸à¸“าลองใหม่"
-
-#~ msgid ""
-#~ "<b><big>Could not grab your keyboard.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>ไม่สามารถยึดครองà¹à¸›à¹‰à¸™à¸žà¸´à¸¡à¸žà¹Œà¹„ด้</big></b>\n"
-#~ "\n"
-#~ "อาจมีบางโปรà¹à¸à¸£à¸¡à¸—ี่ไม่ประสงค์ดีà¸à¸³à¸¥à¸±à¸‡à¸”ัà¸à¸‚้อมูลà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸§à¸²à¸£à¸°à¸‚องคุณอยู่ หรือคุณอาจเพิ่งคลิà¸à¹€à¸¡à¸™à¸¹à¹„ป "
-#~ "หรือบางโปรà¹à¸à¸£à¸¡à¸­à¸²à¸ˆà¸”ึงโฟà¸à¸±à¸ªà¹„ป\n"
-#~ "\n"
-#~ "à¸à¸£à¸¸à¸“าลองใหม่"
-
-#~ msgid "_Deny"
-#~ msgstr "_ปà¸à¸´à¹€à¸ªà¸˜"
-
-#~ msgid "C_reate"
-#~ msgstr "_สร้าง"
-
-#~ msgid "C_hange"
-#~ msgstr "เปลี่ย_น"
-
-#~ msgid "Allow _Once"
-#~ msgstr "ยอมà¹_ค่ครั้งนี้"
-
-#~ msgid "_Always Allow"
-#~ msgstr "ยอม_ตลอดไป"
-
-#~ msgid "Removable Disk: %s"
-#~ msgstr "ดิสà¸à¹Œà¸–อดเสียบ: %s"
-
-#~ msgid "Removable Disk"
-#~ msgstr "ดิสà¸à¹Œà¸–อดเสียบ"
-
-#~ msgid "Home"
-#~ msgstr "บ้าน"
-
-#~ msgid "The disk or drive this file is located on is not present"
-#~ msgstr "ดิสà¸à¹Œà¸«à¸£à¸·à¸­à¹„ดรว์ที่เà¸à¹‡à¸šà¹à¸Ÿà¹‰à¸¡à¸™à¸µà¹‰à¹„ม่มีอยู่"
-
-#~ msgid "Couldn't create directory: %s"
-#~ msgstr "ไม่สามารถสร้างไดเรà¸à¸—อรี: %s"
-
-#~ msgid "Access Denied"
-#~ msgstr "ปà¸à¸´à¹€à¸ªà¸˜à¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™"
-
-#~ msgid "The gnome-keyring-daemon application is not running."
-#~ msgstr "โปรà¹à¸à¸£à¸¡ gnome-keyring-daemon ไม่ได้ทำงานอยู่"
-
-#~ msgid "Error communicating with gnome-keyring-daemon"
-#~ msgstr "เà¸à¸´à¸”ข้อผิดพลาดขณะติดต่อà¸à¸±à¸š gnome-keyring-daemon"
-
-#~ msgid "A keyring with that name already exists"
-#~ msgstr "มีพวงà¸à¸¸à¸à¹à¸ˆà¸Šà¸·à¹ˆà¸­à¸™à¸µà¹‰à¸­à¸¢à¸¹à¹ˆà¸à¹ˆà¸­à¸™à¹à¸¥à¹‰à¸§"
-
-#~ msgid "Programmer error: The application sent invalid data."
-#~ msgstr "ข้อผิดพลาดของผู้เขียนโปรà¹à¸à¸£à¸¡: โปรà¹à¸à¸£à¸¡à¸ªà¹ˆà¸‡à¸‚้อมูลผิดพลาด"
-
-#~ msgid "No matching results"
-#~ msgstr "ไม่มีรายà¸à¸²à¸£à¸—ี่ตรง"
-
-#~ msgid "A keyring with that name does not exist."
-#~ msgstr "ไม่มีพวงà¸à¸¸à¸à¹à¸ˆà¸Šà¸·à¹ˆà¸­à¸™à¸µà¹‰"
-
-#~ msgid "The keyring has already been unlocked."
-#~ msgstr "พวงà¸à¸¸à¸à¹à¸ˆà¸–ูà¸à¸›à¸¥à¸”ล็อคเรียบร้อยà¹à¸¥à¹‰à¸§"
-
-#~ msgid ""
-#~ "A list of paths to PKCS#11 modules to load. No modules are currently "
-#~ "listed by default, as this is still an experimental feature. This is used "
-#~ "by seahorse and other PKCS#11 aware applications."
-#~ msgstr ""
-#~ "รายชื่อพาธของมอดูล PKCS#11 ที่จะโหลด ค่าปริยายจะไม่มีชื่อมอดูลใดเลยในตอนนี้ "
-#~ "เนื่องจาà¸à¹€à¸›à¹‡à¸™à¸„วามสามารถที่ยังอยู่ในขั้นทดลอง มอดูลเหล่านี้จะถูà¸à¹ƒà¸Šà¹‰à¹‚ดย seahorse "
-#~ "à¹à¸¥à¸°à¹‚ปรà¹à¸à¸£à¸¡à¸—ี่รองรับ PKCS#11 อื่นๆ"
-
-#~ msgid "Import private key"
-#~ msgstr "นำเข้าà¸à¸¸à¸à¹à¸ˆà¸ªà¹ˆà¸§à¸™à¸•à¸±à¸§"
-
-#~ msgid "Import public key"
-#~ msgstr "นำเข้าà¸à¸¸à¸à¹à¸ˆà¸ªà¸²à¸˜à¸²à¸£à¸“ะ"
-
-#~ msgid "The system wants to import the public key '%s', but it is locked"
-#~ msgstr "ระบบต้องà¸à¸²à¸£à¸ˆà¸°à¸™à¸³à¹€à¸‚้าà¸à¸¸à¸à¹à¸ˆà¸ªà¸²à¸˜à¸²à¸£à¸“ะ '%s' ซึ่งถูà¸à¸¥à¹‡à¸­à¸„อยู่"
-
-#~ msgid "Create Storage for Key Information"
-#~ msgstr "สร้างà¹à¸«à¸¥à¹ˆà¸‡à¹€à¸à¹‡à¸šà¸‚้อมูลà¸à¸¸à¸à¹à¸ˆ"
-
-#~ msgid "Choose password to protect storage"
-#~ msgstr "ตั้งรหัสผ่านเพื่อปà¸à¸›à¹‰à¸­à¸‡à¹à¸«à¸¥à¹ˆà¸‡à¹€à¸à¹‡à¸š"
-
-#~ msgid ""
-#~ "The system wants to store information about your keys and certificates. "
-#~ "In order to protect this information, choose a password with which it "
-#~ "will be locked."
-#~ msgstr ""
-#~ "ระบบต้องà¸à¸²à¸£à¹€à¸à¹‡à¸šà¸‚้อมูลเà¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¸à¸¸à¸à¹à¸ˆà¹à¸¥à¸°à¹ƒà¸šà¸£à¸±à¸šà¸£à¸­à¸‡à¸•à¹ˆà¸²à¸‡à¹† ของคุณ "
-#~ "à¸à¸£à¸¸à¸“าตั้งรหัสผ่านที่จะใช้ล็อคà¹à¸«à¸¥à¹ˆà¸‡à¹€à¸à¹‡à¸š เพื่อปà¸à¸›à¹‰à¸­à¸‡à¸‚้อมูล"
-
-#~ msgid "Unlock Storage for Key Information"
-#~ msgstr "ปลดล็อคà¹à¸«à¸¥à¹ˆà¸‡à¹€à¸à¹‡à¸šà¸‚้อมูลà¸à¸¸à¸à¹à¸ˆ"
-
-#~ msgid "Enter password to unlock storage"
-#~ msgstr "ป้อนรหัสผ่านเพื่อปลดล็อคà¹à¸«à¸¥à¹ˆà¸‡à¹€à¸à¹‡à¸š"
-
-#~ msgid ""
-#~ "The system wants to access information about your keys and certificates, "
-#~ "but it is locked."
-#~ msgstr "ระบบต้องà¸à¸²à¸£à¸ˆà¸°à¹€à¸‚้าถึงข้อมูลà¸à¸¸à¸à¹à¸ˆà¹à¸¥à¸°à¹ƒà¸šà¸£à¸±à¸šà¸£à¸­à¸‡à¸•à¹ˆà¸²à¸‡à¹† ของคุณ ซึ่งถูà¸à¸¥à¹‡à¸­à¸„อยู่"
-
-#~ msgid "Trust Association"
-#~ msgstr "Trust Association"
-
-#~ msgid "Cannot delete '%s' because it is tied to other objects."
-#~ msgstr "ไม่สามารถลบ '%s' เพราะถูà¸à¸œà¸¹à¸à¸•à¸´à¸”à¸à¸±à¸šà¸­à¹‡à¸­à¸šà¹€à¸ˆà¸à¸•à¹Œà¸­à¸·à¹ˆà¸™à¸­à¸¢à¸¹à¹ˆ"
-
-#~ msgid "Lock private key"
-#~ msgstr "ล็อคà¸à¸¸à¸à¹à¸ˆà¸ªà¹ˆà¸§à¸™à¸•à¸±à¸§"
-
-#~ msgid "Lock"
-#~ msgstr "ล็อค"
-
-#~ msgid "Enter password to protect the private key"
-#~ msgstr "ตั้งรหัสผ่านที่จะใช้ปà¸à¸›à¹‰à¸­à¸‡à¸à¸¸à¸à¹à¸ˆà¸ªà¹ˆà¸§à¸™à¸•à¸±à¸§"
-
-#~ msgid ""
-#~ "The system wants to store the private key '%s' on your disk. Please enter "
-#~ "a password to lock it with."
-#~ msgstr ""
-#~ "ระบบต้องà¸à¸²à¸£à¸ˆà¸°à¹€à¸à¹‡à¸šà¸à¸¸à¸à¹à¸ˆà¸ªà¹ˆà¸§à¸™à¸•à¸±à¸§ '%s' ลงในดิสà¸à¹Œ à¸à¸£à¸¸à¸“าตั้งรหัสผ่านที่จะใช้ล็อคà¸à¸¸à¸à¹à¸ˆà¸”ังà¸à¸¥à¹ˆà¸²à¸§"
-
-#~ msgid ""
-#~ "The system wants to store '%s' on your disk. Please enter a password to "
-#~ "lock it with."
-#~ msgstr "ระบบต้องà¸à¸²à¸£à¸ˆà¸°à¹€à¸à¹‡à¸š '%s' ลงในดิสà¸à¹Œ à¸à¸£à¸¸à¸“าตั้งรหัสผ่านที่จะใช้ล็อคข้อมูลดังà¸à¸¥à¹ˆà¸²à¸§"
-
-#~ msgid "Couldn't read secure shell private key: %s"
-#~ msgstr "ไม่สามารถอ่านà¸à¸¸à¸à¹à¸ˆà¸ªà¹ˆà¸§à¸™à¸•à¸±à¸§à¸ªà¸³à¸«à¸£à¸±à¸šà¹€à¸Šà¸¥à¸¥à¹Œà¸™à¸´à¸£à¸ à¸±à¸¢: %s"
-
-#~ msgid "Invalid secure shell private key at: %s"
-#~ msgstr "à¸à¸¸à¸à¹à¸ˆà¸ªà¹ˆà¸§à¸™à¸•à¸±à¸§à¸ªà¸³à¸«à¸£à¸±à¸šà¹€à¸Šà¸¥à¸¥à¹Œà¸™à¸´à¸£à¸ à¸±à¸¢à¹„ม่ถูà¸à¸•à¹‰à¸­à¸‡à¸—ี่: %s"
-
-#~ msgid "Couldn't encrypt the SSH key to store it."
-#~ msgstr "ไม่สามารถเข้ารหัสลับà¸à¸¸à¸à¹à¸ˆ SSH เพื่อจัดเà¸à¹‡à¸š"
-
-#~ msgid "Couldn't encode the SSH key to store it."
-#~ msgstr "ไม่สามารถลงรหัสà¸à¸¸à¸à¹à¸ˆ SSH เพื่อจัดเà¸à¹‡à¸š"
-
-#~ msgid "Cannot set a random seed"
-#~ msgstr "ไม่สามารถตั้งค่าสุ่มเริ่มต้น"
-
-#~ msgid "Old password cannot be blank."
-#~ msgstr "รหัสผ่านเดิมเป็นค่าว่างเปล่าไม่ได้"
-
-#~ msgid "Must be run from gnome-keyring\n"
-#~ msgstr "ต้องเรียà¸à¸ˆà¸²à¸ gnome-keyring\n"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr "โปรà¹à¸à¸£à¸¡ '%s' (%s) ต้องà¸à¸²à¸£à¸ˆà¸°à¹ƒà¸Šà¹‰à¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆà¹„ม่ทราบชื่อซึ่งถูà¸à¸¥à¹‡à¸­à¸„อยู่"
-
-#~ msgid ""
-#~ "The application '%s' wants access to an unknown keyring, but it is locked"
-#~ msgstr "โปรà¹à¸à¸£à¸¡ '%s' ต้องà¸à¸²à¸£à¸ˆà¸°à¹ƒà¸Šà¹‰à¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆà¹„ม่ทราบชื่อซึ่งถูà¸à¸¥à¹‡à¸­à¸„อยู่"
-
-#~ msgid ""
-#~ "An unknown application wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr "โปรà¹à¸à¸£à¸¡à¹„ม่ทราบชื่อ ต้องà¸à¸²à¸£à¸ˆà¸°à¹ƒà¸Šà¹‰à¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆà¹„ม่ทราบชื่อซึ่งถูà¸à¸¥à¹‡à¸­à¸„อยู่"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr "โปรà¹à¸à¸£à¸¡ '%s' (%s) ต้องà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸ªà¸³à¸«à¸£à¸±à¸š '%s' จาà¸à¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆà¹„ม่ทราบชื่อ"
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '%s' in an unknown "
-#~ "keyring."
-#~ msgstr "โปรà¹à¸à¸£à¸¡ '%s' ต้องà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸ªà¸³à¸«à¸£à¸±à¸š '%s' จาà¸à¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆà¹„ม่ทราบชื่อ"
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr "โปรà¹à¸à¸£à¸¡à¹„ม่ทราบชื่อ ต้องà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¸ªà¸³à¸«à¸£à¸±à¸š '%s' จาà¸à¸žà¸§à¸‡à¸à¸¸à¸à¹à¸ˆà¹„ม่ทราบชื่อ"
-
-#~ msgid "You must specify the type of request to run\n"
-#~ msgstr "คุณต้องบอà¸à¸Šà¸™à¸´à¸”ข้อร้องขอที่จะเรียà¸à¹ƒà¸Šà¹‰\n"
-
-#~ msgid "Unknown request type\n"
-#~ msgstr "ไม่รู้จัà¸à¸Šà¸™à¸´à¸”ข้อร้องขอ\n"
diff --git a/po/tr.po b/po/tr.po
index ab040d53..36e1db4d 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -11,24 +11,22 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug."
-"cgi?product=gnome-keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-07-08 11:32+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-07-10 18:33+0300\n"
"Last-Translator: Muhammet Kara <muhammet.k@gmail.com>\n"
"Language-Team: Turkish <gnome-turk@gnome.org>\n"
+"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"Language: tr\n"
"X-Generator: Lokalize 1.2\n"
#. TRANSLATORS: This is the label for an keyring created without a label
-#: ../daemon/dbus/gkd-secret-change.c:78
-#: ../daemon/dbus/gkd-secret-create.c:79
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Adsız"
@@ -39,15 +37,11 @@ msgstr "Anahtarlık Parolası Değiştir"
#: ../daemon/dbus/gkd-secret-change.c:88
#, c-format
-#| msgid "Choose a new password for the '%s' keyring."
msgid "Choose a new password for the '%s' keyring"
msgstr "'%s' anahtarlığı için yeni bir parola belirleyin"
#: ../daemon/dbus/gkd-secret-change.c:92
#, c-format
-#| msgid ""
-#| "An unknown application wants to change the password for the '%s' keyring. "
-#| "You have to choose the password you want to use for it."
msgid ""
"An application wants to change the password for the '%s' keyring. Choose the "
"new password you want to use for it."
@@ -56,7 +50,6 @@ msgstr ""
"anahtarlık için kullanmak istediğiniz yeni parolayı seçin."
#: ../daemon/dbus/gkd-secret-change.c:111
-#| msgid "The password or PIN is incorrect"
msgid "The original password was incorrect"
msgstr "Asıl parola yanlış"
@@ -70,28 +63,22 @@ msgstr "Yeni anahtarlık için parola seçin"
#: ../daemon/dbus/gkd-secret-create.c:86
#, c-format
-#| msgid ""
-#| "An unknown application wants to create a new keyring called '%s'. You "
-#| "have to choose the password you want to use for it."
msgid ""
-"An application wants to create a new keyring called '%s'. Choose the password "
-"you want to use for it."
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
"Bir uygulama '%s' adlı yeni bir anahtarlık oluşturmak istiyor. Bunun için "
"kullanmak istediğiniz parolayı seçin."
#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
-#| msgid "Unlock certificate/key storage"
msgid "Certificate and Key Storage"
msgstr "Sertifika ve Anahtar Deposu"
#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
-#| msgid "GNOME Keyring Daemon"
msgid "GNOME Keyring: PKCS#11 Component"
msgstr "GNOME Anahtarlığı: PKCS#11 Bileşeni"
#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
-#| msgid "GNOME Keyring Daemon"
msgid "GNOME Keyring: Secret Service"
msgstr "GNOME Anahtarlığı: Gizli Hizmet"
@@ -100,7 +87,6 @@ msgid "Secret Storage Service"
msgstr "Gizli Depolama Hizmeti"
#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
-#| msgid "GNOME Keyring Daemon"
msgid "GNOME Keyring: SSH Agent"
msgstr "GNOME Anahtarlığı: SSH Aracı"
@@ -109,48 +95,43 @@ msgid "SSH Key Agent"
msgstr "SSH Anahtar Aracı"
#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
-#| msgid "GNOME Keyring Daemon"
msgid "GNOME Keyring: GPG Agent"
msgstr "GNOME Anahtarlığı: GPG Aracı"
#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
-#| msgid "New password strength"
msgid "GPG Password Agent"
msgstr "GPG Parola Aracı"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104
-#: ../gcr/gcr-key-renderer.c:311
-#: ../gcr/gcr-key-renderer.c:316
-#| msgid "Unknown error"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Bilinmeyen"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP Anahtarı: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Parola Metnini Girin"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
#, fuzzy
msgid "Forget this password if idle for"
msgstr "BoÅŸtaysa bu ÅŸifreyi unut"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
#, fuzzy
msgid "Forget this password after"
msgstr "Bu ÅŸifreyi daha sonra unut"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Oturumumu kapattığımda bu parolayı unut"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "GiriÅŸ"
@@ -195,7 +176,6 @@ msgid "Surname"
msgstr "Soyadı"
#: ../egg/egg-oid.c:69
-#: ../gcr/gcr-certificate-renderer.c:659
msgid "Serial Number"
msgstr "Seri Numarası"
@@ -252,7 +232,6 @@ msgid "Pseudonym"
msgstr "Takma ad"
#: ../egg/egg-oid.c:98
-#: ../gcr/gcr-key-renderer.c:307
msgid "RSA"
msgstr "RSA"
@@ -269,7 +248,6 @@ msgid "SHA1 with RSA"
msgstr "RSA ile SHA1"
#: ../egg/egg-oid.c:103
-#: ../gcr/gcr-key-renderer.c:309
msgid "DSA"
msgstr "DSA"
@@ -279,12 +257,10 @@ msgstr "DSA ile SHA1"
#. Extended Key Usages
#: ../egg/egg-oid.c:107
-#| msgid "SSL Server Certificate"
msgid "Server Authentication"
msgstr "Sunucu Kimlik Denetimi"
#: ../egg/egg-oid.c:108
-#| msgid "SSL Client Certificate"
msgid "Client Authentication"
msgstr "Ä°stemci Kimlik Denetimi"
@@ -310,544 +286,6 @@ msgstr "Alt süreçten bilgi okurken select()'te beklenmeyen hata oluştu (%s)"
msgid "Unexpected error in waitpid() (%s)"
msgstr "waitpid() için beklenmedik hata (%s)"
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:389
-#: ../gcr/gcr-gnupg-key.c:424
-msgctxt "column"
-msgid "Name"
-msgstr "Ad"
-
-#: ../gcr/gcr-certificate.c:391
-#, fuzzy
-#| msgid "Issued On"
-msgctxt "column"
-msgid "Issued By"
-msgstr "bölme işareti"
-
-#. later
-#: ../gcr/gcr-certificate.c:393
-#, fuzzy
-#| msgid "Expires On"
-msgctxt "column"
-msgid "Expires"
-msgstr "Son Kullanım"
-
-#: ../gcr/gcr-certificate.c:1061
-#: ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:106
-#: ../gcr/gcr-parser.c:275
-msgid "Certificate"
-msgstr "Sertifika"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>Bu isimde bir dosya zaten var.</b>\n"
-"\n"
-"Bu dosyayı yenisiyle değiştirmek ister misiniz?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "_DeÄŸiÅŸtir"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-#| msgid "The operation was cancelled"
-msgid "The operation was cancelled."
-msgstr "Ä°ÅŸlem iptal edildi."
-
-#: ../gcr/gcr-certificate-exporter.c:301
-#, fuzzy
-#| msgid "Unlock certificate"
-msgid "Export certificate"
-msgstr "Verilen Sertifika"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-#| msgid "Certificate"
-msgid "Certificate files"
-msgstr "Sertifika dosyaları"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "PEM dosyaları"
-
-#: ../gcr/gcr-certificate-extensions.c:135
-#, fuzzy
-#| msgid "Issuer Name"
-msgid "Other Name"
-msgstr "Öznitelik Adı"
-
-#: ../gcr/gcr-certificate-extensions.c:142
-msgid "Email"
-msgstr "E-posta"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-#| msgid "DSA"
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:158
-msgid "X400 Address"
-msgstr "X400 Adresi"
-
-#: ../gcr/gcr-certificate-extensions.c:165
-#| msgid "Subject Name"
-msgid "Directory Name"
-msgstr "Dizin Adı"
-
-#: ../gcr/gcr-certificate-extensions.c:173
-#, fuzzy
-msgid "EDI Party Name"
-msgstr "Seçilen kullanıcı adı"
-
-#: ../gcr/gcr-certificate-extensions.c:180
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:188
-msgid "IP Address"
-msgstr "IP Adresi"
-
-#: ../gcr/gcr-certificate-extensions.c:196
-#, fuzzy
-#| msgid "User ID"
-msgid "Registered ID"
-msgstr "Kullanıcı Kimliği"
-
-#: ../gcr/gcr-certificate-renderer.c:121
-msgid "Basic Constraints"
-msgstr "Temel Kısıtlar"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-#, fuzzy
-#| msgid "Certificate"
-msgid "Certificate Authority"
-msgstr "Verilen Sertifika"
-
-#: ../gcr/gcr-certificate-renderer.c:124
-#: ../gcr/gcr-certificate-renderer.c:319
-msgid "Yes"
-msgstr "Evet"
-
-#: ../gcr/gcr-certificate-renderer.c:124
-#: ../gcr/gcr-certificate-renderer.c:319
-msgid "No"
-msgstr "Hayır"
-
-#: ../gcr/gcr-certificate-renderer.c:127
-#, fuzzy
-msgid "Max Path Length"
-msgstr "Projenin dosya sistemi yolu"
-
-#: ../gcr/gcr-certificate-renderer.c:128
-msgid "Unlimited"
-msgstr "Sınırsız"
-
-#: ../gcr/gcr-certificate-renderer.c:147
-#, fuzzy
-msgid "Extended Key Usage"
-msgstr "Kullanım: orca [SEÇENEK...]"
-
-#: ../gcr/gcr-certificate-renderer.c:158
-#, fuzzy
-msgid "Allowed Purposes"
-msgstr "Ä°zin verilen tuÅŸlar"
-
-#: ../gcr/gcr-certificate-renderer.c:178
-#, fuzzy
-#| msgid "Identifier"
-msgid "Subject Key Identifier"
-msgstr "%(key)s %(value)s benek"
-
-#: ../gcr/gcr-certificate-renderer.c:179
-#, fuzzy
-#| msgid "Identifier"
-msgid "Key Identifier"
-msgstr "Anahtar Bağı"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-#| msgid "Signature"
-msgid "Digital signature"
-msgstr "Sayısal imza"
-
-#: ../gcr/gcr-certificate-renderer.c:191
-#, fuzzy
-msgid "Key encipherment"
-msgstr "Anahtar Bağı"
-
-#: ../gcr/gcr-certificate-renderer.c:192
-#, fuzzy
-msgid "Data encipherment"
-msgstr "%s (%s) – SMART Veri"
-
-#: ../gcr/gcr-certificate-renderer.c:193
-#, fuzzy
-#| msgid "Key Parameters"
-msgid "Key agreement"
-msgstr "Anahtar Bağı"
-
-#: ../gcr/gcr-certificate-renderer.c:194
-#| msgid "Certificate"
-msgid "Certificate signature"
-msgstr "Sertifika imzası"
-
-#: ../gcr/gcr-certificate-renderer.c:195
-#, fuzzy
-msgid "Revocation list signature"
-msgstr "Anahtar Bağı Listesi"
-
-#: ../gcr/gcr-certificate-renderer.c:220
-#, fuzzy
-msgid "Key Usage"
-msgstr "Anahtar Bağı"
-
-#: ../gcr/gcr-certificate-renderer.c:221
-msgid "Usages"
-msgstr ""
-
-#: ../gcr/gcr-certificate-renderer.c:241
-#, fuzzy
-#| msgid "Subject Name"
-msgid "Subject Alternative Names"
-msgstr "Kıs_altılmış rol adları"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Extension"
-msgstr "Uzantı"
-
-#: ../gcr/gcr-certificate-renderer.c:270
-msgid "Identifier"
-msgstr "Tanımlayıcı"
-
-#: ../gcr/gcr-certificate-renderer.c:271
-msgid "Value"
-msgstr "DeÄŸer"
-
-#: ../gcr/gcr-certificate-renderer.c:318
-msgid "Critical"
-msgstr "Kritik"
-
-#: ../gcr/gcr-certificate-renderer.c:391
-#| msgid "Enter password to unlock the certificate"
-msgid "Couldn't export the certificate."
-msgstr "Sertifika dışa aktarılamadı."
-
-#: ../gcr/gcr-certificate-renderer.c:620
-#| msgid "Identifier"
-msgid "Identity"
-msgstr "Kimlik"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Verified by"
-msgstr "DoÄŸrulayan:"
-
-#: ../gcr/gcr-certificate-renderer.c:631
-#, fuzzy
-#| msgid "Expires On"
-msgid "Expires"
-msgstr "Son Kullanım"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:641
-msgid "Subject Name"
-msgstr "Konu Adı"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:645
-msgid "Issuer Name"
-msgstr "Veren Ä°smi"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:649
-msgid "Issued Certificate"
-msgstr "Verilen Sertifika"
-
-#: ../gcr/gcr-certificate-renderer.c:654
-msgid "Version"
-msgstr "Sürüm"
-
-#: ../gcr/gcr-certificate-renderer.c:666
-msgid "Not Valid Before"
-msgstr "Öncesi Geçerli Değil"
-
-#: ../gcr/gcr-certificate-renderer.c:671
-msgid "Not Valid After"
-msgstr "Sonrası Geçerli Değil"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:676
-#| msgid "Fingerprints"
-msgid "Certificate Fingerprints"
-msgstr "Sertifika Parmakizleri"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:682
-#: ../gcr/gcr-certificate-renderer.c:694
-msgid "Signature"
-msgstr "Ä°mza"
-
-#: ../gcr/gcr-certificate-renderer.c:686
-msgid "Signature Algorithm"
-msgstr "İmza Algoritması"
-
-#: ../gcr/gcr-certificate-renderer.c:690
-msgid "Signature Parameters"
-msgstr "Ä°mza Parametreleri"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:698
-msgid "Public Key Info"
-msgstr "Genel Anahtar Bilgisi"
-
-#: ../gcr/gcr-certificate-renderer.c:703
-msgid "Key Algorithm"
-msgstr "Anahtar Algoritması"
-
-#: ../gcr/gcr-certificate-renderer.c:708
-msgid "Key Parameters"
-msgstr "Anahtar Parametreleri"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key Size"
-msgstr "Anahtar Boyutu"
-
-#: ../gcr/gcr-certificate-renderer.c:720
-#, fuzzy
-#| msgid "SHA1 Fingerprint"
-msgid "Key SHA1 Fingerprint"
-msgstr "RSA ile SHA1"
-
-#: ../gcr/gcr-certificate-renderer.c:726
-#: ../gcr/gcr-key-renderer.c:291
-#: ../gcr/gcr-parser.c:278
-msgid "Public Key"
-msgstr "Genel Anahtar"
-
-#: ../gcr/gcr-display-view.c:283
-msgid "_Details"
-msgstr "_Ayrıntılar"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-#| msgid "Import Certificates/Keys"
-msgid "Import Certificates and Keys"
-msgstr "Sertifikaları ve Anahtarları İçe Aktar"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "İçine Aktar:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Parola:"
-
-#: ../gcr/gcr-gnupg-key.c:154
-msgid "PGP Key"
-msgstr "PGP Anahtarı"
-
-#: ../gcr/gcr-gnupg-key.c:426
-#| msgid "User ID"
-msgctxt "column"
-msgid "Key ID"
-msgstr "Anahtar KimliÄŸi"
-
-#: ../gcr/gcr-importer.c:172
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Özel anahtarlık kilidini açmak için parola girin"
-
-#: ../gcr/gcr-importer.c:174
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Sertifikanın kilidini açmak için parola girin"
-
-#: ../gcr/gcr-importer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Kilidini açmak için parola girin"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Özel anahtarın içe aktarılması için, kilitli olması gerekmektedir"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Sertifikayı içe aktarmak için, kilidinin kaldırılması gerekmektedir"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "Veriyi içe aktarmak için, kilitli olmaması gerekmektedir"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Gizli anahtar '%s' içe aktarmak için kilitli olmaması gerekmektedir"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "'%s' sertifikasını içe aktarmak için kilitli olmaması gerekmektedir"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "'%s' içe aktarmak için kilitli olmaması gerekmektedir"
-
-#: ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1719
-#: ../gcr/gcr-parser.c:1958
-msgid "The operation was cancelled"
-msgstr "Ä°ÅŸlem iptal edildi"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "İçe aktarmak için kullanılabilir bir konum yok"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "Sertifikaları/Anahtarları İçe Aktar"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "İçe aktarılan sertifikaları/anahtarları saklamak için bir konum seçin."
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "Anahtar"
-
-#: ../gcr/gcr-key-renderer.c:280
-#| msgid "Private Key"
-msgid "Private RSA Key"
-msgstr "RSA Gizli Anahtarı"
-
-#: ../gcr/gcr-key-renderer.c:282
-#| msgid "Private Key"
-msgid "Private DSA Key"
-msgstr "DSA Gizli Anahtarı"
-
-#: ../gcr/gcr-key-renderer.c:284
-#: ../gcr/gcr-parser.c:272
-msgid "Private Key"
-msgstr "Özel Anahtar"
-
-#: ../gcr/gcr-key-renderer.c:287
-#: ../gcr/gcr-key-renderer.c:289
-#| msgid "Public Key"
-msgid "Public DSA Key"
-msgstr "DSA Genel Anahtarı"
-
-#: ../gcr/gcr-key-renderer.c:298
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-
-#: ../gcr/gcr-key-renderer.c:299
-#| msgid "Street"
-msgid "Strength"
-msgstr "Güç"
-
-#: ../gcr/gcr-key-renderer.c:312
-#| msgid "Key Algorithm"
-msgid "Algorithm"
-msgstr "Algoritma"
-
-#: ../gcr/gcr-key-renderer.c:319
-#| msgid "Key Size"
-msgid "Size"
-msgstr "Boyut"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:323
-msgid "Fingerprints"
-msgstr "Parmak izleri"
-
-#: ../gcr/gcr-key-renderer.c:328
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:334
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1722
-msgid "Unrecognized or unsupported data."
-msgstr "Tanınmayan veya desteklenmeyen veri."
-
-#: ../gcr/gcr-parser.c:1725
-msgid "Could not parse invalid or corrupted data."
-msgstr "Geçersiz veya bozuk veri çözümlenemedi."
-
-#: ../gcr/gcr-parser.c:1728
-msgid "The data is locked"
-msgstr "Veri kilitli"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:420
-#, fuzzy, c-format
-#| msgid "Choose a location to store the imported certificates/keys."
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "İçe aktarılan sertifikaları/anahtarları saklamak için bir konum seçin."
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-#, fuzzy
-#| msgid "Automatically unlock this keyring when I log in."
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Giriş yaptığımda bu anahtarlığın kilidini otomatik olarak aç"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-#, fuzzy
-msgid "Lock this keyring after"
-msgstr "Bu anahtarlığı şu kadar sonra kilitle"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-#, fuzzy
-msgid "Lock this keyring if idle for"
-msgstr "Bu anahtarlığı şu kadar süre boştaysa kilitle"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-#, fuzzy
-#| msgid "Automatically unlock this keyring when I log in."
-msgid "Lock this keyring when I log out"
-msgstr "Bu anahtarlığı çıkış yaptığımda kilitle"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-#, fuzzy
-msgid "minutes"
-msgstr "dakikalar"
-
-#: ../gck/gck-uri.c:168
-#, fuzzy, c-format
-msgid "The URI has invalid encoding."
-msgstr "Şifreleme mekanizması geçersiz parametreye sahip"
-
-#: ../gck/gck-uri.c:172
-msgid "The URI has does not have the 'pkcs11' scheme."
-msgstr ""
-
-#: ../gck/gck-uri.c:176
-#, fuzzy
-msgid "The URI has bad syntax."
-msgstr "Diskte birkaç kötü sektör var"
-
-#: ../gck/gck-uri.c:180
-#, fuzzy
-msgid "The URI has a bad version number."
-msgstr "Diskte birkaç kötü sektör var"
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Ä°simlendirilmemiÅŸ Sertifika"
@@ -857,15 +295,13 @@ msgid "Couldn't parse public SSH key"
msgstr "Genel SSH anahtarı ayrıştırılamadı"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, fuzzy, c-format
-#| msgid "Unlock password for %s keyring"
msgid "Unlock password for: %s"
msgstr "Şunun için kilit açma şifresi: %s"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
-#| msgid "The password or PIN is incorrect"
msgid "The unlock password was incorrect"
msgstr "Kilit açma parolası hatalı"
@@ -874,7 +310,6 @@ msgid "Unlock Login Keyring"
msgstr "Giriş Anahtarlık Kilidini Kaldır"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
-#| msgid "Enter login password to unlock keyring"
msgid "Enter password to unlock your login keyring"
msgstr "Giriş anahtarlığınızı açmak için parolayı girin"
@@ -889,9 +324,6 @@ msgstr ""
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
#, fuzzy
-#| msgid ""
-#| "Your login keyring was not automatically unlocked when you logged into "
-#| "this computer."
msgid ""
"The login keyring did not get unlocked when you logged into your computer."
msgstr "Giriş anahtarlığı, bilgisayarınıza giriş yaptığınızda açılmadı."
@@ -907,8 +339,6 @@ msgstr "'%s' anahtarlık kilidini açmak için parola girin"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
#, fuzzy, c-format
-#| msgid ""
-#| "An unknown application wants access to the keyring '%s', but it is locked"
msgid "An application wants access to the keyring '%s', but it is locked"
msgstr ""
"Bir uygulama '%s' anahtarlığına erişmek istiyor, ancak anahtarlık kilitli."
@@ -929,10 +359,22 @@ msgstr "Genel anahtarın kilidini kaldır"
msgid "Unlock"
msgstr "Kilidini kaldır"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Özel anahtarlık kilidini açmak için parola girin"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Sertifikanın kilidini açmak için parola girin"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Genel anahtarlık kilidini açmak için parola girin"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Kilidini açmak için parola girin"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -999,13 +441,11 @@ msgstr ""
"'%s' parola ya da anahtar depolamaya hazırlamak için bir parola gereklidir"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
-#| msgid "Change Keyring Password"
msgid "Change Password"
msgstr "Parolayı Değiştir"
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
#, fuzzy
-#| msgid "New password required for secure storage"
msgid "Change password for secure storage"
msgstr "Güvenli depolama için şifreyi değiştir"
@@ -1030,27 +470,28 @@ msgstr "komutlar: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:618
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Parolalar şifrelenmeden depolansın mı?"
-#: ../ui/gku-prompt-tool.c:619
+#: ../ui/gku-prompt-tool.c:592
msgid ""
-"By choosing to use a blank password, your stored passwords will not be safely "
-"encrypted. They will be accessible by anyone with access to your files."
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
msgstr ""
"Parolayı boş kullanmak seçildiğinde, depolanan parolalarınız güvenli olarak "
"şifrelenmeyecek. Parolalarınıza dosyalarınıza erişebilen kişiler erişecek."
-#: ../ui/gku-prompt-tool.c:626
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Güvenliksiz Depolama Kullan"
-#: ../ui/gku-prompt-tool.c:666
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Parolalar eÅŸleÅŸmedi."
-#: ../ui/gku-prompt-tool.c:676
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Parola boÅŸ olamaz"
@@ -1067,12 +508,10 @@ msgid "New password strength"
msgstr "Yeni parola gücü"
#: ../ui/gku-prompt.ui.h:2
-#| msgid "_Location:"
msgid "_Application:"
msgstr "_Uygulama:"
#: ../ui/gku-prompt.ui.h:3
-#| msgid "_Confirm password:"
msgid "_Confirm:"
msgstr "_Onayla:"
@@ -1085,624 +524,9 @@ msgid "_Name:"
msgstr "_Adı:"
#: ../ui/gku-prompt.ui.h:6
-#| msgid "_Old password:"
msgid "_Old Password:"
msgstr "_Eski Parola:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Parola:"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "'%s' (%s) uygulaması '<object prop='name'/>' için öntanımlı "
-#~ "anahtarlıktaki parolaya ulaşmak istiyor."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "'%s' (%s) uygulaması ''<object prop='name'/>' için %s içindeki parolaya "
-#~ "ulaÅŸmak istiyor."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "'%s' uygulaması '<object prop='name'/>' için öntanımlı anahtarlıktaki "
-#~ "parolaya ulaÅŸmak istiyor."
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "'%s' uygulaması '<object prop='name'/>' için %s içindeki parolaya ulaşmak "
-#~ "istiyor."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "Bilinmeyen bir uygulama '<object prop='name'/>' için öntanımlı "
-#~ "anahtarlıktaki parolaya ulaşmak istiyor."
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr ""
-#~ "Bilinmeyen bir uygulama '<object prop='name'/>' için %s içindeki parolaya "
-#~ "ulaÅŸmak istiyor."
-
-#~ msgid "Allow access"
-#~ msgstr "EriÅŸime izin ver"
-
-#~ msgid "Allow application access to keyring?"
-#~ msgstr "Uygulamanın anahtarlığa erişebilmesine izin verilsin mi?"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "'%s' (%s) uygulaması öntanımlı anahtarlığa ulaşmak istiyor, fakat "
-#~ "anahtarlık kilitli"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "'%s' (%s) uygulaması '%s' anahtarlığına ulaşmak istiyor, fakat anahtarlık "
-#~ "kilitli"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-#~ msgstr ""
-#~ "'%s' uygulaması öntanımlı anahtarlığa ulaşmak istiyor, fakat anahtarlık "
-#~ "kilitli"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-#~ msgstr ""
-#~ "'%s' uygulaması '%s' anahtarlığına ulaşmak istiyor, fakat anahtarlık "
-#~ "kilitli"
-
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr ""
-#~ "Bilinmeyen bir uygulama öntanımlı anahtarlığa ulaşmak istiyor, fakat "
-#~ "anahtarlık kilitli"
-
-#~ msgid "Enter password for default keyring to unlock"
-#~ msgstr "Öntanımlı anahtarlık kilidini açmak için parola girin"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "'%s' (%s) uygulaması '%s' adında yeni bir anahtarlık oluşturmak istiyor. "
-#~ "Onun için kullanacağınız parolayı seçmeniz gerekiyor."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "'%s' (%s) uygulaması yeni bir öntanımlı anahtarlık oluşturmak istiyor. "
-#~ "Onun için kullanacağınız parolayı seçmeniz gerekiyor."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "'%s' uygulaması '%s' adında yeni bir anahtarlık oluşturmak istiyor. Onun "
-#~ "için kullanacağınız parolayı seçmeniz gerekiyor."
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "'%s' uygulaması yeni bir öntanımlı anahtarlık oluşturmak istiyor. Onun "
-#~ "için kullanacağınız parolayı seçmeniz gerekiyor."
-
-#~ msgid ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr ""
-#~ "Bilinmeyen bir uygulama yeni bir öntanımlı anahtarlık oluşturmak istiyor. "
-#~ "Onun için kullanacağınız parolayı seçmeniz gerekiyor."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "'%s' (%s) uygulaması '%s' anahtarlığının parolasını değiştirmek istiyor. "
-#~ "Onun için kullanacağınız parolayı seçmeniz gerekiyor."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "'%s' (%s) uygulaması yeni bir öntanımlı anahtarlığın parolasını "
-#~ "değiştirmek istiyor. Onun için kullanacağınız parolayı seçmeniz gerekiyor."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "'%s' uygulaması '%s' anahtarlığının parolasını değiştirmek istiyor. Onun "
-#~ "için kullanacağınız parolayı seçmeniz gerekiyor."
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "'%s' uygulaması öntanımlı anahtarlığın parolasını değiştirmek istiyor. "
-#~ "Onun için kullanacağınız parolayı seçmeniz gerekiyor."
-
-#~ msgid ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "Bilinmeyen bir uygulama öntanımlı anahtarlığın parolasını değiştirmek "
-#~ "istiyor. Onun için kullanacağınız parolayı seçmeniz gerekiyor."
-
-#~ msgid "Choose a new password for the default keyring."
-#~ msgstr "Öntanımlı anahtarlık için yeni bir parola seçin."
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-#~ msgstr ""
-#~ "'%s' (%s) uygulaması parola saklamak istiyor, ancak öntanımlı anahtarlık "
-#~ "yok. Bir tane oluşturmak için, anahtarlık için kullanacağınız parolayı "
-#~ "seçmeniz gerekiyor."
-
-#~ msgid ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "'%s' uygulaması parola saklamak istiyor, ancak öntanımlı anahtarlık yok. "
-#~ "Bir tane oluşturmak istiyorsanız, anahtarlık için kullanacağınız parolayı "
-#~ "seçmeniz gerekiyor."
-
-#~ msgid ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "Bilinmeyen bir uygulama parola saklamak istiyor, ancak öntanımlı "
-#~ "anahtarlık yok. Bir tane oluşturmak istiyorsanız, anahtarlık için "
-#~ "kullanacağınız parolayı seçmeniz gerekiyor."
-
-#~ msgid "Create Default Keyring"
-#~ msgstr "Öntanımlı Anahtarlık Oluştur"
-
-#~ msgid "Choose password for default keyring"
-#~ msgstr "Öntanımlı anahtarlık için parola seçin"
-
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect as gnome-keyring-daemon starts, (ie: when the user logs "
-#~ "in). This setting may be overridden when certain command line arguments "
-#~ "are passed to the daemon."
-#~ msgstr ""
-#~ "Bu özellik gnome-keyring servisi içindeki PKCS#11 eklentisini "
-#~ "etkinleştirir. Bu sadece gnome-keyring-daemon başladığında etkili olur, "
-#~ "(örn: kullanıcı giriş yaptığında). Kesin komut parametleri servise "
-#~ "geçildiğinde bu ayarın yerine geçer."
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "Bu özellik gnome-keyring servisi içindeki SSH aracını etkinleştirir. Bu "
-#~ "sadece gnome-keyring-daemon başladığında etkili olur, (örn: kullanıcı "
-#~ "giriş yaptığında). Kesin komut parametleri servise geçildiğinde bu ayarın "
-#~ "yerine geçer."
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "Gnome-keyring PKCS#11 bileşeninin etkin olmaması."
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "Gnome-keyring SSH aracının etkin olmaması."
-
-#~ msgid "Create Login Keyring"
-#~ msgstr "Giriş Anahtarlığı Oluştur"
-
-#~ msgid "Enter your login password"
-#~ msgstr "Giriş parolanızı girin"
-
-#~ msgid ""
-#~ "Your login keyring was not automatically created when you logged into "
-#~ "this computer. It will now be created."
-#~ msgstr ""
-#~ "Giriş anahtarlığınız bu bilgisayarda girdiğinizde kendiliğinden "
-#~ "oluşturulamadı. Şimdi oluşturulacak."
-
-#~ msgid "Automatically unlock this private key when I log in."
-#~ msgstr "Giriş yaptığımda özel anahtarın kendiliğinden kilidini aç."
-
-#~ msgid "Automatically unlock this certificate when I log in."
-#~ msgstr "Giriş yaptığımda sertifikanın kendiliğinden kilidini aç."
-
-#~ msgid "Automatically unlock this public key when I log in."
-#~ msgstr "Giriş yaptığımda genel anahtarın kilidini aç."
-
-#~ msgid "Automatically unlock this when I log in"
-#~ msgstr "Giriş yaptığımda bunun kendiliğinden kilidini aç"
-
-#~ msgid "Automatically unlock secure storage when I log in."
-#~ msgstr "Giriş yapıldığında otomatik olarak güvenli depo kilidini aç."
-
-#~ msgid ""
-#~ "<b><big>Could not grab your mouse.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<big><b>Fareniz yakalanamadı.</b></big>\n"
-#~ "\n"
-#~ "Zararlı bir istemci oturumunuzu üzerinde dinleme yapıyor olabilir veya "
-#~ "bir menü ya da uygulamaya tıkladınız ve o da odağı almaya karar verdi.\n"
-#~ "\n"
-#~ "Tekrar deneyin."
-
-#~ msgid ""
-#~ "<b><big>Could not grab your keyboard.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<big><b>Klavyeniz yakalanamadı.</b></big>\n"
-#~ "\n"
-#~ "Zararlı bir istemci oturumunuzu üzerinde dinleme yapıyor olabilir veya "
-#~ "bir menü ya da uygulamaya tıkladınız ve o da odağı almaya karar verdi.\n"
-#~ "\n"
-#~ "Tekrar deneyin."
-
-#~ msgid "_Deny"
-#~ msgstr "_Engelle"
-
-#~ msgid "C_reate"
-#~ msgstr "_OluÅŸtur"
-
-#~ msgid "C_hange"
-#~ msgstr "_DeÄŸiÅŸtir"
-
-#~ msgid "Allow _Once"
-#~ msgstr "Bir _KereliÄŸine Ä°zin ver"
-
-#~ msgid "_Always Allow"
-#~ msgstr "_Herzaman Ä°zin ver"
-
-#~ msgid "Removable Disk: %s"
-#~ msgstr "Taşınabilir Disk: %s"
-
-#~ msgid "Removable Disk"
-#~ msgstr "Taşınabilir Disk"
-
-#~ msgid "Home"
-#~ msgstr "Başlangıç"
-
-#~ msgid "The disk or drive this file is located on is not present"
-#~ msgstr "Bu dosyanın bulunduğu disk ya da sürücü mevcut değil"
-
-#~ msgid "Couldn't create directory: %s"
-#~ msgstr "Dizin oluşturulamadı: %s"
-
-#~ msgid "Couldn't delete the file: %s"
-#~ msgstr "Dosya silinemedi: %s"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>Sertifikanın bir parçası değil</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>bilinmeyen</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<Sertifikanın Bir Parçası Değil>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>Parmak izleri</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Veren</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Verilen</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>Bu sertifika aşağıdaki kullanımlar için doğrulandı:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>Geçerlilik</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "Ortak Ad (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "E-posta Alıcı Sertifikası"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "E-posta imzalayan Sertifikası"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "MD5 Parmakizi"
-
-#~ msgid "Organization (O)"
-#~ msgstr "Örgütü (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "Organizasyonel Birim (OU)"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr ""
-#~ "<span size='large' weight='bold'>Sertifikaları ve Anahtarları İçe Aktar</"
-#~ "span>"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "Yetersiz bellek mevcut"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "Belirtilen slot ID'si geçerli değil"
-
-#~ msgid "Internal error"
-#~ msgstr "Dahili hata"
-
-#~ msgid "The operation failed"
-#~ msgstr "İşlem başarısız oldu"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "Geçersiz parametreler"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "Modül ihtiyaç duyulan thread'leri oluşturamıyor"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "Modül veriyi tam olarak kilitleyemiyor"
-
-#~ msgid "The field is read-only"
-#~ msgstr "Alan salt okunur"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "Alan hassas ve gösterilemiyor"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "Alan geçersiz ya da mevcut değil"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "Alan için geçersiz değer"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "Veri geçerli değil ya da algılanamadı"
-
-#~ msgid "The data is too long"
-#~ msgstr "Veri çok uzun"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "Aygıtta bir hata oluştu"
-
-#~ msgid "Insufficient memory available on device"
-#~ msgstr "Aygıtta yetersiz bellek"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "Aygıt kaldırıldı ya da çıkarıldı"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "Şifrelenmiş veri geçerli değil ya da algılanamadı"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "Şifrelenmiş veri çok uzun"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "Bu iÅŸlem desteklenmiyor"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "Anahtar eksik ya da geçersiz"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "Anahtar yanlış boyutta"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "Anahtar yanlış türde"
-
-#~ msgid "No key is needed"
-#~ msgstr "Hiçbir anahtara ihtiyaç yok"
-
-#~ msgid "The key is different than before"
-#~ msgstr "Anahtar öncekinden farklı"
-
-#~ msgid "A key is needed"
-#~ msgstr "Bir anahtar gerekli"
-
-#~ msgid "Cannot include the key in digest"
-#~ msgstr "Anahtar derleme içine dahil edilemiyor"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "İşlem bu anahtar ile yapılamaz"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "Anahtar sarılamıyor"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "Bu anahtar aktarılamıyor"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "Şifreleme mekanizması geçersiz ya da algılanamamış"
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "Sifreleme mekanizması geçersiz parametreye sahip"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "Nesne eksik ya da geçersiz"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "Başka bir işlem zaten gerçekleşiyor"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "Hiçbir işlem gerçekleşmiyor"
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "Parola ya da PIN geçersiz"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "Parola ya da PIN geçersiz boyutta"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "Parola ya da PIN kullanım süresi doldu"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "Parola ya da PIN kilitli"
-
-#~ msgid "The session is closed"
-#~ msgstr "Oturum kapatıldı"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "Çok fazla oturum etkin"
-
-#~ msgid "The session is invalid"
-#~ msgstr "Oturum geçersiz"
-
-#~ msgid "The session is read-only"
-#~ msgstr "Oturum salt okunur"
-
-#~ msgid "An open session exists"
-#~ msgstr "Bir açık oturum mevcut"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "Bir salt okunur oturum mevcut"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "Bir yönetici oturumu mevcut"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "İmza kötü ya da bozuk"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "İmza tanımlanmıyor ya da bozuk"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "Bazı gerekli alanlar eksik"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "Bazı alanlar geçersiz değerlere sahip"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "Aygıt mevcut değil ya da çıkartılmış"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "Aygıt geçersiz ya da algılanabilir değil"
-
-#~ msgid "The device is write protected"
-#~ msgstr "Aygıt yazma korumalı"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "İçe aktarılamıyor çünkü anahtar geçersiz"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "İçe aktarılamıyor çünkü anahtar yanlış boyutta"
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "İçe aktarılamıyor çünkü anahtar yanlış türde"
-
-#~ msgid "You are already logged in"
-#~ msgstr "Zaten giriş yapmıssınız"
-
-#~ msgid "No user has logged in"
-#~ msgstr "Hiçbir kullanıcı giriş yapmamış"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "Kullanıcının parolası ya da PIN'i atanmamış"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "Kullanıcı geçersiz bir türde"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "Başka bir kullanıcı zaten giriş yapmış"
-
-#~ msgid "Too many users of different types logged in"
-#~ msgstr "Farklı türlerde çok fazla kullanıcı giriş yapmış"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "Geçersiz anahtar içe aktarılamıyor"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "Yanlış boyutta bir anahtarlık içe aktarılamıyor"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "Anahtar aktarılamıyor çünkü anahtar geçersiz"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "Anahtar aktarılamıyor çünkü anahtar yanlış boyutta"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "Anahtar aktarılamıyor çünkü anahtar yanlış türde"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "Rastgele sayı oluşturucu başlatılamadı"
-
-#~ msgid "No random number generator available"
-#~ msgstr "Hiçbir rastgele sayı oluşturucu mevcut değil"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "Şifreleme mekanizmasının geçersiz parametresi var"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "Sonucu saklamak için yetersiz boş alan"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "Kayıtlı durum geçersiz"
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "Bilgi hassasdır ve gösterilemez"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "Durum kaydedilemez"
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "Modül başlatılmamış"
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "Modül zaten başlatılmış"
-
-#~ msgid "Cannot lock data"
-#~ msgstr "Veri kilitlenemiyor"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "Veri kilitlenemiyor"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "İmza isteği kullanıcı tarafından reddedildi"
-
-#~ msgid "Access Denied"
-#~ msgstr "GiriÅŸ Reddedildi"
-
-#~ msgid "The gnome-keyring-daemon application is not running."
-#~ msgstr "Gnome-keyring-daemon uygulaması çalışmıyor."
-
-#~ msgid "Error communicating with gnome-keyring-daemon"
-#~ msgstr "Gnome-keyring-daemon ile iletişim hatası"
-
-#~ msgid "A keyring with that name already exists"
-#~ msgstr "Bu isimdeki anahtarlık zaten mevcut"
-
-#~ msgid "Programmer error: The application sent invalid data."
-#~ msgstr "Programcı hatası. Uygulama geçersiz veri gönderdi."
-
-#~ msgid "No matching results"
-#~ msgstr "Uyumsuz sonuç"
-
-#~ msgid "A keyring with that name does not exist."
-#~ msgstr "Bu isimde bir anahtarlık yok."
-
-#~ msgid "The keyring has already been unlocked."
-#~ msgstr "Anahtarlığın kilidi zaten açılmış."
diff --git a/po/ug.po b/po/ug.po
index 82e6c331..125a0a0d 100644
--- a/po/ug.po
+++ b/po/ug.po
@@ -1,1095 +1,527 @@
-# Uyghur translation for gnome-keyring.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# Gheyret Kenji<gheyret@yahoo.com>,2010.
-# Sahran <sahran.ug@gmail.com>, 2010.
-# Zeper <zeper@msn.com>, 2010.
-# Oghlan Temkin <temkin119@gmail.com>,2011
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-keyring\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-04-25 01:53+0000\n"
-"PO-Revision-Date: 2011-04-26 09:25+0600\n"
-"Last-Translator: Sahran <sahran.ug@gmail.com>\n"
-"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-#. TRANSLATORS: This is the label for an keyring created without a label
-#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
-#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
-msgid "Unnamed"
-msgstr "ئاتسىز"
-
-#: ../daemon/dbus/gkd-secret-change.c:86
-msgid "Change Keyring Password"
-msgstr "ئاچقۇچ ھالقىسى ئىمىنى ئۆزگەرت"
-
-#: ../daemon/dbus/gkd-secret-change.c:88
-#, c-format
-msgid "Choose a new password for the '%s' keyring"
-msgstr "%s نىڭ ئاچقۇچ ھالقىسى ئۈچۈن ÙŠÛÚ­Ù‰ ئىم تاللاڭ"
-
-#: ../daemon/dbus/gkd-secret-change.c:92
-#, c-format
-msgid ""
-"An application wants to change the password for the '%s' keyring. Choose the "
-"new password you want to use for it."
-msgstr ""
-"بىر پروگرامما '%s' دÛÚ¯Û•Ù† keyring نىڭ ئىمىنى ئۆزگەرتمەكچى. ئۇنىڭغا ÙŠÛÚ­Ù‰ ئىم "
-"تاللاڭ."
-
-#: ../daemon/dbus/gkd-secret-change.c:111
-msgid "The original password was incorrect"
-msgstr "ئەسلى ئىم توغرا ئەمەس"
-
-#: ../daemon/dbus/gkd-secret-create.c:83
-msgid "New Keyring Password"
-msgstr "ÙŠÛÚ­Ù‰ ئاچقۇچ ھالقىسى (Keyring) ئىمى"
-
-#: ../daemon/dbus/gkd-secret-create.c:84
-msgid "Choose password for new keyring"
-msgstr "ÙŠÛÚ­Ù‰ ئاچقۇچ ھالقىسى ئۈچۈن ئىم تاللاڭ"
-
-#: ../daemon/dbus/gkd-secret-create.c:86
-#, c-format
-msgid ""
-"An application wants to create a new keyring called '%s'. Choose the "
-"password you want to use for it."
-msgstr ""
-"بىر پروگرامما ÙŠÛڭىدىن '%s' دÛÚ¯Û•Ù† keyring نى قۇرماقچى. ئۇنىڭغا ئىم تاللاڭ."
-
-#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
-msgid "Certificate and Key Storage"
-msgstr "گۇۋاھنامە Û‹Û• شىÙىرلىق ئاچقۇچ ئامبىرى"
-
-#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
-msgid "GNOME Keyring: PKCS#11 Component"
-msgstr "GNOME ئاچقۇچ ھالقىسى:PKCS#11 دÛتالى"
-
-#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
-msgid "GNOME Keyring: Secret Service"
-msgstr "GNOME ئاچقۇچ ھالقىسى:مەخپىيەت مۇلازىمÛتى"
-
-#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
-msgid "Secret Storage Service"
-msgstr "مەخپىيەتلىكنى ساقلاش مۇلازىمÛتى"
-
-#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
-msgid "GNOME Keyring: SSH Agent"
-msgstr "GNOME ئاچقۇچ ھالقىسى:SSH ياردەمچىسى"
-
-#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
-msgid "SSH Key Agent"
-msgstr "SSH ئاچقۇچ ياردەمچىسى"
-
-#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
-msgid "GNOME Keyring: GPG Agent"
-msgstr "NOME ئاچقۇچ ھالقىسى:GPG ياردەمچىسى"
-
-#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
-msgid "GPG Password Agent"
-msgstr "GPG ئىم ياردەمچىسى"
-
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:305
-#: ../gcr/gcr-key-renderer.c:310
-msgid "Unknown"
-msgstr "نامەلۇم"
-
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
-#, c-format
-msgid "PGP Key: %s"
-msgstr "PGP ئاچقۇچ: %s"
-
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
-msgid "Enter Passphrase"
-msgstr "ئىم جۈملىسى كىرگۈزۈڭ"
-
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
-msgid "Forget this password if idle for"
-msgstr "بوش قالغان ۋاقتى بۇ ۋاقىتتىن ھالقىپ كەتسە ئىمنى ئۇنتۇپ كەت"
-
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
-msgid "Forget this password after"
-msgstr "بۇ ئىمنى ئاخىرىدا ئۇنتۇپ كەت"
-
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
-msgid "Forget this password when I log out"
-msgstr "تىزىمدىن چىققان ۋاقتىمدا بۇ ئىمنى ئۇنتۇپ كەت"
-
-#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
-msgid "Login"
-msgstr "تىزىمغا كىر"
-
-#: ../egg/egg-oid.c:41
-msgid "Domain Component"
-msgstr "دائىرە دÛتالى"
-
-#: ../egg/egg-oid.c:43
-msgid "User ID"
-msgstr "ئىشلەتكۈچى ID"
-
-#: ../egg/egg-oid.c:46
-msgid "Email Address"
-msgstr "ئÛلخەت مەنزىل"
-
-#: ../egg/egg-oid.c:54
-msgid "Date of Birth"
-msgstr "تۇغۇلغان ۋاقتى"
-
-#: ../egg/egg-oid.c:56
-msgid "Place of Birth"
-msgstr "تۇغۇلغان ئورنى"
-
-#: ../egg/egg-oid.c:58
-msgid "Gender"
-msgstr "جىنسى"
-
-#: ../egg/egg-oid.c:60
-msgid "Country of Citizenship"
-msgstr "دۆلەت تەۋەلىكى"
-
-#: ../egg/egg-oid.c:62
-msgid "Country of Residence"
-msgstr "تۇرۇۋاتقان دۆلىتى"
-
-#: ../egg/egg-oid.c:65
-msgid "Common Name"
-msgstr "ئادەتتىكى ئات"
-
-#: ../egg/egg-oid.c:67
-msgid "Surname"
-msgstr "تەگات"
-
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:398
-msgid "Serial Number"
-msgstr "تەرتىپ نومۇرى"
-
-#: ../egg/egg-oid.c:71
-msgid "Country"
-msgstr "دۆلەت"
-
-#: ../egg/egg-oid.c:73
-msgid "Locality"
-msgstr "ئورۇن"
-
-#: ../egg/egg-oid.c:75
-msgid "State"
-msgstr "ھالەت"
-
-#: ../egg/egg-oid.c:77
-msgid "Street"
-msgstr "كوچا"
-
-#: ../egg/egg-oid.c:79
-msgid "Organization"
-msgstr "ئورگان"
-
-#: ../egg/egg-oid.c:81
-msgid "Organizational Unit"
-msgstr "ئىدارىسى"
-
-#: ../egg/egg-oid.c:83
-msgid "Title"
-msgstr "ماۋزۇ"
-
-#: ../egg/egg-oid.c:85
-msgid "Telephone Number"
-msgstr "تÛÙ„ÛÙون نومۇرى"
-
-#: ../egg/egg-oid.c:87
-msgid "Given Name"
-msgstr "بÛرىلگەن ئاتى"
-
-#: ../egg/egg-oid.c:89
-msgid "Initials"
-msgstr "قىسقارتىلمىسى"
-
-#: ../egg/egg-oid.c:91
-msgid "Generation Qualifier"
-msgstr "مەشغۇلات چەكلىگۈچى"
-
-#: ../egg/egg-oid.c:93
-msgid "DN Qualifier"
-msgstr "DN چەكلىگۈچى"
-
-#: ../egg/egg-oid.c:95
-msgid "Pseudonym"
-msgstr "تەخەللۇسى"
-
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:301
-msgid "RSA"
-msgstr "RSA"
-
-#: ../egg/egg-oid.c:100
-msgid "MD2 with RSA"
-msgstr "MD2 بىلەن شىÙىرلەنگەنRSA"
-
-#: ../egg/egg-oid.c:102
-msgid "MD5 with RSA"
-msgstr "MD5 بىلەن شىÙىرلەنگەنRSA"
-
-#: ../egg/egg-oid.c:104
-msgid "SHA1 with RSA"
-msgstr "SHA1 بىلەن شىÙىرلەنگەنRSA"
-
-#: ../egg/egg-oid.c:107 ../gcr/gcr-key-renderer.c:303
-msgid "DSA"
-msgstr "DSA"
-
-#: ../egg/egg-oid.c:109
-msgid "SHA1 with DSA"
-msgstr "SHA1 بىلەن شىÙىرلەنگەنDSA"
-
-#: ../egg/egg-spawn.c:273
-#, c-format
-msgid "Unexpected error in select() reading data from a child process (%s)"
-msgstr ""
-"ئىجرا (%s) دىن سانلىق-مەلۇمات ئوقۇۋاتقاندا select() دا تاسادىپىي خاتالىق "
-"كۆرۈلدى"
-
-#: ../egg/egg-spawn.c:320
-#, c-format
-msgid "Unexpected error in waitpid() (%s)"
-msgstr "waitpid() دا تاسادىپىي خاتالىق كۆرۈلدى (%s)"
-
-#: ../gcr/gcr-certificate-renderer.c:96 ../gcr/gcr-parser.c:275
-msgid "Certificate"
-msgstr "گۇۋاھنامە"
-
-#: ../gcr/gcr-certificate-renderer.c:121
-msgid "Extension"
-msgstr "ÙƒÛڭەيتىلمە"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "Identifier"
-msgstr "بەلگە"
-
-#: ../gcr/gcr-certificate-renderer.c:134
-msgid "Value"
-msgstr "قىممەت"
-
-#: ../gcr/gcr-certificate-renderer.c:140
-msgid "Critical"
-msgstr "ئاچقۇچلۇق"
-
-#: ../gcr/gcr-certificate-renderer.c:140
-msgid "Yes"
-msgstr "ھەئە"
-
-#: ../gcr/gcr-certificate-renderer.c:140
-msgid "No"
-msgstr "ياق"
-
-#: ../gcr/gcr-certificate-renderer.c:358
-msgid "Identity"
-msgstr "كىملىك"
-
-#: ../gcr/gcr-certificate-renderer.c:362
-msgid "Verified by"
-msgstr "دەلىللىگۈچى"
-
-#: ../gcr/gcr-certificate-renderer.c:369
-msgid "Expires"
-msgstr "ۋاقتى ئۆتتى"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:379
-msgid "Subject Name"
-msgstr "تÛما ئاتى"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:383
-msgid "Issuer Name"
-msgstr "تارقاتقۇچى ئاتى"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:387
-msgid "Issued Certificate"
-msgstr "تارقاتقان گۇۋاھنامە"
-
-#: ../gcr/gcr-certificate-renderer.c:392
-msgid "Version"
-msgstr "نەشرى"
-
-#: ../gcr/gcr-certificate-renderer.c:406
-msgid "Not Valid Before"
-msgstr "بۇندىن بۇرۇن ئىناۋەتسىز"
-
-#: ../gcr/gcr-certificate-renderer.c:411
-msgid "Not Valid After"
-msgstr "بۇندىن ÙƒÛيىن ئىناۋەتسىز"
-
-#: ../gcr/gcr-certificate-renderer.c:420
-msgid "Signature Algorithm"
-msgstr "ئىمزا ئالگورىزىمى"
-
-#: ../gcr/gcr-certificate-renderer.c:425
-msgid "Signature Parameters"
-msgstr "ئىمزا پارامÛتىرى"
-
-#: ../gcr/gcr-certificate-renderer.c:432
-msgid "Signature"
-msgstr "ئىمزا"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:437
-msgid "Public Key Info"
-msgstr "ئاممىۋى شىÙىرلىك ئاچقۇچ ئۇچۇرى"
-
-#: ../gcr/gcr-certificate-renderer.c:442
-msgid "Key Algorithm"
-msgstr "ئاچقۇچ ئالگورىزىمى"
-
-#: ../gcr/gcr-certificate-renderer.c:448
-msgid "Key Parameters"
-msgstr "شىÙىرلىق ئاچقۇچ پارامÛتىرى"
-
-#: ../gcr/gcr-certificate-renderer.c:455
-msgid "Key Size"
-msgstr "شىÙىرلىق ئاچقۇچ چوڭلۇقى"
-
-#: ../gcr/gcr-certificate-renderer.c:463 ../gcr/gcr-key-renderer.c:285
-#: ../gcr/gcr-parser.c:278
-msgid "Public Key"
-msgstr "ئاممىۋى شىÙىرلىق ئاچقۇچ"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:468
-msgid "Fingerprints"
-msgstr "بارماق ئىزى"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "ئىسپاتنامىلەرنى ۋە ئاچقۇچلارنى ئىمپورت قىلىش"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "تۆۋەندىكىگە ئىمپورت قىلىش:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "ئىم:"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "تىزىمغا كىرگەندە بۇ ئاچقۇچ ھالقىسىنىڭ قۇلۇپىنى ئاپتوماتىك ئاچ"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "بۇ ئاچقۇچ ھالقىسىنى قۇلۇپلا"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "بوش قالغان ۋاقىتتا ئاچقۇچ ھالقىسىنى قۇلۇپلا"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "تىزىمدىن چىققان ۋاقىتتا ئاچقۇچ ھالقىسىنى قۇلۇپلا"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "مىنۇت"
-
-#: ../gcr/gcr-importer.c:170 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "خۇسۇسىي ئاچقۇچنى قۇلۇپسىزلاش ئۈچۈن ئىم كىرگۈزۈڭ"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "ئىسپاتنامىنى قۇلۇپسىزلاش ئۈچۈن ئىم كىرگۈزۈڭ"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "قۇلۇپسىزلاش ئۈچۈن ئىم كىرگۈزۈڭ"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:183
-msgid "In order to import the private key, it must be unlocked"
-msgstr ""
-"خۇسۇسىي ئاچقۇچنىڭ ئىمپورت قىلىنىشى ئۈچۈن، ئۇ قۇلۇپسىزلانغان بولۇشى ÙƒÛرەك."
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:186
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "ئىسپاتنامىنىڭ ئىمپورت قىلىنىشى ئۈچۈن، ئۇ قۇلۇپسىزلانغان بولۇشى ÙƒÛرەك."
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:189
-msgid "In order to import the data, it must be unlocked"
-msgstr ""
-"سانلىق-مەلۇماتنى ئىمپورت قىلىنىشى ئۈچۈن، ئۇ قۇلۇپسىزلانغان بولۇشى ÙƒÛرەك."
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:194
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr ""
-"خۇسۇسىي ئاچقۇچ «%s» نىڭ ئىمپورت قىلىنىشى ئۈچۈن، ئۇ قۇلۇپسىزلانغان بولۇشى "
-"ÙƒÛرەك."
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:197
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr ""
-"ئىسپاتنامە «%s» نىڭ ئىمپورت قىلىنىشى ئۈچۈن، ئۇ قۇلۇپسىزلانغان بولۇشى ÙƒÛرەك."
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:200
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "«%s» نىڭ ئىمپورت قىلىنىشى ئۈچۈن، ئۇ قۇلۇپسىزلانغان بولۇشى ÙƒÛرەك."
-
-#: ../gcr/gcr-importer.c:291 ../gcr/gcr-parser.c:1708 ../gcr/gcr-parser.c:1947
-#: ../gck/gck-misc.c:104
-msgid "The operation was cancelled"
-msgstr "مەشغۇلاتتىن ۋاز كەچتى"
-
-#: ../gcr/gcr-importer.c:383
-#, c-format
-msgid "No location available to import to"
-msgstr "ئەكىرگىلى بولىدىغان ئورۇن يوق"
-
-#: ../gcr/gcr-importer.c:532
-msgid "Import Certificates/Keys"
-msgstr "ئىسپاتنامىلەر/ئاچقۇچلارنى ئىمپورت قىلىش"
-
-#: ../gcr/gcr-importer.c:539
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "گۇۋانامەلەر/شىÙىرلىق ئاچقۇچلارنى ئەكىرىپ ساقلايدىغان ئورۇننى تاللاڭ."
-
-#: ../gcr/gcr-key-renderer.c:83
-msgid "Key"
-msgstr "ئاچقۇچ"
-
-#: ../gcr/gcr-key-renderer.c:274
-msgid "Private RSA Key"
-msgstr "RSA شەخسىي ئاچقۇچى"
-
-#: ../gcr/gcr-key-renderer.c:276
-msgid "Private DSA Key"
-msgstr "DSA شەخسىي ئاچقۇچى"
-
-#: ../gcr/gcr-key-renderer.c:278 ../gcr/gcr-parser.c:272
-msgid "Private Key"
-msgstr "مەخپىي ئاچقۇچ"
-
-#: ../gcr/gcr-key-renderer.c:281 ../gcr/gcr-key-renderer.c:283
-msgid "Public DSA Key"
-msgstr "DSA ئاممىۋى ئاچقۇچ"
-
-#: ../gcr/gcr-key-renderer.c:292
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d بىت"
-
-#: ../gcr/gcr-key-renderer.c:293
-msgid "Strength"
-msgstr "كۈچلۈكلۈك"
-
-#: ../gcr/gcr-key-renderer.c:306
-msgid "Algorithm"
-msgstr "ئالگورىزىم"
-
-#: ../gcr/gcr-key-renderer.c:313
-msgid "Size"
-msgstr "چوڭلۇقى"
-
-#. TODO: We need to have consistent key fingerprints.
-#: ../gcr/gcr-key-renderer.c:317
-msgid "Fingerprint"
-msgstr "بارماق ئىزى"
-
-#: ../gcr/gcr-parser.c:1711
-msgid "Unrecognized or unsupported data."
-msgstr "تونۇتۇلمىغان ياكى قوللىمايدىغان تەپسىلات"
-
-#: ../gcr/gcr-parser.c:1714
-msgid "Could not parse invalid or corrupted data."
-msgstr "ئىناۋەتسىز ياكى بۇزۇلغان سانلىق-مەلۇماتنى تەھلىل قىلالمىدى."
-
-#: ../gcr/gcr-parser.c:1717
-msgid "The data is locked"
-msgstr "مەلۇمات قۇلۇپلاقلىق"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:420
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "قادالغان گۇۋاھنامىنى ساقلايدىغان ئورۇننى تاپالمىدى"
-
-#: ../gck/gck-uri.c:129 ../gck/gck-uri.c:186 ../gck/gck-uri.c:221
-#: ../gck/gck-uri.c:253
-#, c-format
-msgid "The URI has invalid syntax. The '%s' field encoding is invalid."
-msgstr "بۇ URI توغرا بولمىغانلىقتىن،'%s' ئابزاسنى كودلاش ئىناۋەتسىز."
-
-#: ../gck/gck-uri.c:292
-msgid "The URI has does not have the 'pkcs11' scheme."
-msgstr "بۇ URIغا ÙƒÛرەكلىك بولغان 'pkcs11' لايىھە ÙƒÛ•Ù…."
-
-#: ../gck/gck-misc.c:107
-msgid "Insufficient memory available"
-msgstr "ÙŠÛتەرلىك ئەسلەك يوق"
-
-#: ../gck/gck-misc.c:109
-msgid "The specified slot ID is not valid"
-msgstr "كۆرسىتىلگەن ساقلاش ئوقۇرى IDسى ئىناۋەتسىز"
-
-#: ../gck/gck-misc.c:111
-msgid "Internal error"
-msgstr "ئىچكى خاتالىق"
-
-#: ../gck/gck-misc.c:113
-msgid "The operation failed"
-msgstr "مەشغۇلات مەغلۇپ بولدى."
-
-#: ../gck/gck-misc.c:115
-msgid "Invalid arguments"
-msgstr "ئارگۇمÛنت خاتا"
-
-#: ../gck/gck-misc.c:117
-msgid "The module cannot create needed threads"
-msgstr "بۇ بۆلەك لازىملىق جەرياننى قۇرالمىدى"
-
-#: ../gck/gck-misc.c:119
-msgid "The module cannot lock data properly"
-msgstr "بۇ بۆلەك مەلۇماتنى توغرا قولۇپلىيالمىدى"
-
-#: ../gck/gck-misc.c:121
-msgid "The field is read-only"
-msgstr "بۇ سۆز بۆلىكىنى ئوقۇشقىلا بولىدۇ."
-
-#: ../gck/gck-misc.c:123
-msgid "The field is sensitive and cannot be revealed"
-msgstr "بۇ سۆز بۆلىكى سەزگۈر بولۇپ كۆرسىتىشكە بولمايدۇ."
-
-#: ../gck/gck-misc.c:125
-msgid "The field is invalid or does not exist"
-msgstr "بۇ سۆز بۆلىكى ئىناۋەتسىز ياكى مەۋجۇت ئەمەس"
-
-#: ../gck/gck-misc.c:127
-msgid "Invalid value for field"
-msgstr "ئىناۋەتسىز سۆز بۆلىكى قىممىتى"
-
-#: ../gck/gck-misc.c:129
-msgid "The data is not valid or unrecognized"
-msgstr "بۇ مەلۇمات ئىناۋەتسىز ياكى تونۇيالمىدى."
-
-#: ../gck/gck-misc.c:131
-msgid "The data is too long"
-msgstr "بۇ مەلۇمات بەك ئۇزۇن"
-
-#: ../gck/gck-misc.c:133
-msgid "An error occurred on the device"
-msgstr "ئۈسكىنىدە خاتالىق يۈز بەردى"
-
-#: ../gck/gck-misc.c:135
-msgid "Insufficient memory available on the device"
-msgstr "ئۈسكىنىدە ÙŠÛتەرلىك ئەسلەك يوق"
-
-#: ../gck/gck-misc.c:137
-msgid "The device was removed or unplugged"
-msgstr "بۇ ئۈسكۈنە چىقىرىۋÛتىلگەن ياكى Ú†Ûتىلمىغان"
-
-#: ../gck/gck-misc.c:139
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "بۇ شىÙىرلانغان مەلۇمات ئىناۋەتسىز ياكى تونۇيالمىدى."
-
-#: ../gck/gck-misc.c:141
-msgid "The encrypted data is too long"
-msgstr "شىÙىرلايدىغان مەلۇمات بەك ئۇزۇن"
-
-#: ../gck/gck-misc.c:143
-msgid "This operation is not supported"
-msgstr "بۇ مەشغۇلاتنى قوللىمايدۇ"
-
-#: ../gck/gck-misc.c:145
-msgid "The key is missing or invalid"
-msgstr "بۇ ئاچقۇچ يوقالغان ياكى ئىناۋەتسىز"
-
-#: ../gck/gck-misc.c:147
-msgid "The key is the wrong size"
-msgstr "بۇ ئاچقۇچنىڭ چوڭلۇقى خاتا"
-
-#: ../gck/gck-misc.c:149
-msgid "The key is of the wrong type"
-msgstr "بۇ ئاچقۇچنىڭ تىپى خاتا"
-
-#: ../gck/gck-misc.c:151
-msgid "No key is needed"
-msgstr "ئاچقۇچ ÙƒÛرەك ئەمەس"
-
-#: ../gck/gck-misc.c:153
-msgid "The key is different than before"
-msgstr "بۇ ئاچقۇچ بۇرۇنقىسىغا ئوخشىمايدۇ"
-
-#: ../gck/gck-misc.c:155
-msgid "A key is needed"
-msgstr "بىر تال ئاچقۇچ ÙƒÛرەك"
-
-#: ../gck/gck-misc.c:157
-msgid "Cannot include the key in the digest"
-msgstr "ئۈزۈندىدە بۇ ئاچقۇچنى ئۆز ئىچىگە ئالالمايدۇ"
-
-#: ../gck/gck-misc.c:159
-msgid "This operation cannot be done with this key"
-msgstr "مەزكۇر مەشغۇلاتنى بۇ ئاچقۇچ ئارقىلىق تاماملىغىلى بولمىدى"
-
-#: ../gck/gck-misc.c:161
-msgid "The key cannot be wrapped"
-msgstr "بۇ ئاچقۇچنى قاپلىغىلى بولمىدى"
-
-#: ../gck/gck-misc.c:163
-msgid "Cannot export this key"
-msgstr "بۇ ئاچقۇچنى ئÛكسپورت قىلغىلى بولمىدى"
-
-#: ../gck/gck-misc.c:165
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "شىÙىرلاش تۈزۈلمىسى ئىناۋەتسىز ياكى تونۇيالمىدى."
-
-#: ../gck/gck-misc.c:167
-msgid "The crypto mechanism has an invalid argument"
-msgstr "شىÙىرلاش تۈزۈلمىسدە بىر ئىناۋەتسىز ئەركىن ئۆزگەرگۈچى بار"
-
-#: ../gck/gck-misc.c:169
-msgid "The object is missing or invalid"
-msgstr "بۇ نەڭ كەم ياكى ئىناۋەتسىز"
-
-#: ../gck/gck-misc.c:171
-msgid "Another operation is already taking place"
-msgstr "باشقا بىر مەشغۇلات ئÛلىپ بÛرىلىۋاتىدۇ"
-
-#: ../gck/gck-misc.c:173
-msgid "No operation is taking place"
-msgstr "ئىجرا بولۇۋاتقان مەشغۇلات يوق"
-
-#: ../gck/gck-misc.c:175
-msgid "The password or PIN is incorrect"
-msgstr "ئىم ياكى PIN خاتا"
-
-#: ../gck/gck-misc.c:177
-msgid "The password or PIN is invalid"
-msgstr "ئىم ياكى PIN ئىناۋەتسىز"
-
-#: ../gck/gck-misc.c:179
-msgid "The password or PIN is of an invalid length"
-msgstr "ئىم ياكى PIN نىڭ ئۇزۇنلۇقى ئىناۋەتسىز"
-
-#: ../gck/gck-misc.c:181
-msgid "The password or PIN has expired"
-msgstr "ئىم ياكى PIN نىڭ ۋاقتى ئۆتكەن"
-
-#: ../gck/gck-misc.c:183
-msgid "The password or PIN is locked"
-msgstr "ئىم ياكى PIN قۇلۇپلانغان"
-
-#: ../gck/gck-misc.c:185
-msgid "The session is closed"
-msgstr "ئەڭگىمە تاقالدى"
-
-#: ../gck/gck-misc.c:187
-msgid "Too many sessions are active"
-msgstr "بەك كۆپ ئەڭگىمە ئاكتىپلاغلىق"
-
-#: ../gck/gck-misc.c:189
-msgid "The session is invalid"
-msgstr "ئەڭگىمە ئىناۋەتسىز"
-
-#: ../gck/gck-misc.c:191
-msgid "The session is read-only"
-msgstr "بۇ ئەڭگىمەنى ئوقۇشقىلا بولىدۇ"
-
-#: ../gck/gck-misc.c:193
-msgid "An open session exists"
-msgstr "بىر ئوچۇق ئەڭگىمە بار"
-
-#: ../gck/gck-misc.c:195
-msgid "A read-only session exists"
-msgstr "ئوقۇشقىلا بولىدىغان بىر ئەڭگىمە مەۋجۇت"
-
-#: ../gck/gck-misc.c:197
-msgid "An administrator session exists"
-msgstr "باشقۇرغۇچى ئەڭگىمەسى مەۋجۇت"
-
-#: ../gck/gck-misc.c:199
-msgid "The signature is bad or corrupted"
-msgstr "بۇ ئىمزا چاتاق ياكى بۇزۇلغان"
-
-#: ../gck/gck-misc.c:201
-msgid "The signature is unrecognized or corrupted"
-msgstr "بۇ ئىمزا تونۇتۇلمىغان ياكى بۇزۇلغان"
-
-#: ../gck/gck-misc.c:203
-msgid "Certain required fields are missing"
-msgstr "بەزى زۆرۈر بولغان ئابزاس يوقالغان"
-
-#: ../gck/gck-misc.c:205
-msgid "Certain fields have invalid values"
-msgstr "بەزى ئابزاسلارنىڭ ئىناۋەتسىز قىممەتلىرى بار"
-
-#: ../gck/gck-misc.c:207
-msgid "The device is not present or unplugged"
-msgstr "بۇ ئۈسكۈنە يوق ياكى چىتىلمىغان"
-
-#: ../gck/gck-misc.c:209
-msgid "The device is invalid or unrecognizable"
-msgstr "بۇ ئۈسكۈنە ئىناۋەتسىز ياكى تونۇتۇلمىغان"
-
-#: ../gck/gck-misc.c:211
-msgid "The device is write protected"
-msgstr "بۇ قوزغاتقۇچ ÙŠÛزىشتىن قوغدالغان ھالەتتە"
-
-#: ../gck/gck-misc.c:213
-msgid "Cannot import because the key is invalid"
-msgstr "ئاچقۇچ ئىناۋەتسىز بولغاچقا ئىمپورت قىلغىلى بولمىدى"
-
-#: ../gck/gck-misc.c:215
-msgid "Cannot import because the key is of the wrong size"
-msgstr "ئاچقۇچ ئۇزۇنلۇقى خاتا بولغاچقا ئىمپورت قىلغىلى بولمىدى"
-
-#: ../gck/gck-misc.c:217
-msgid "Cannot import because the key is of the wrong type"
-msgstr "ئاچقۇچ تىپى خاتا بولغاچقا ئىمپورت قىلغىلى بولمىدى"
-
-#: ../gck/gck-misc.c:219
-msgid "You are already logged in"
-msgstr "سىز تىزىمغا كىرگەن ھالەتتە"
-
-#: ../gck/gck-misc.c:221
-msgid "No user has logged in"
-msgstr "Ú¾Ûچقانداق ئىشلەتكۈچى تىزىمغا كىرمىگەن"
-
-#: ../gck/gck-misc.c:223
-msgid "The user's password or PIN is not set"
-msgstr "ئىشلەتكۈچى ئىمى ياكى PIN تەڭشەلمىگەن"
-
-#: ../gck/gck-misc.c:225
-msgid "The user is of an invalid type"
-msgstr "بۇ ئىناۋەتسىز تىپتىكى ئىشلەتكۈچى"
-
-#: ../gck/gck-misc.c:227
-msgid "Another user is already logged in"
-msgstr "باشقا ئىشلەتكۈچى ئاللىقاچان تىزىمغا كىرگەن"
-
-#: ../gck/gck-misc.c:229
-msgid "Too many users of different types are logged in"
-msgstr "ئوخشىمىغان تىپتا تىزىمغا كىرگەن ئىشلەتكۈچىلەر زىيادە كۆپ"
-
-#: ../gck/gck-misc.c:231
-msgid "Cannot import an invalid key"
-msgstr "ئىناۋەتسىز ئاچقۇچنى ئىمپورت قىلغىلى بولمىدى"
-
-#: ../gck/gck-misc.c:233
-msgid "Cannot import a key of the wrong size"
-msgstr "چوڭلۇقى خاتا بولغان ئاچقۇچنى ئىمپورت قىلغىلى بولمىدى"
-
-#: ../gck/gck-misc.c:235
-msgid "Cannot export because the key is invalid"
-msgstr "ئاچقۇچ ئىناۋەتسىز بولغاچقا ئÛكسپورت قىلغىلى بولمىدى"
-
-#: ../gck/gck-misc.c:237
-msgid "Cannot export because the key is of the wrong size"
-msgstr "ئاچقۇچ چوڭلۇقى توغرا بولمىغاچقا ئÛكسپورت قىلغىلى بولمىدى"
-
-#: ../gck/gck-misc.c:239
-msgid "Cannot export because the key is of the wrong type"
-msgstr "ئاچقۇچ تىپى توغرا بولمىغاچقا ئÛكسپورت قىلغىلى بولمىدى"
-
-#: ../gck/gck-misc.c:241
-msgid "Unable to initialize the random number generator"
-msgstr "خالىغانچە سان ھاسللىغۇچنى دەسلەپلەشتۈرگىلى بولمىدى."
-
-#: ../gck/gck-misc.c:243
-msgid "No random number generator available"
-msgstr "ئىشلەتكىلى بولىدىغان خالىغانچە سان ھاسىللىغۇچ يوق."
-
-#: ../gck/gck-misc.c:245
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "شىÙىرلاش تۈزۈلمىسدە بىر ئىناۋەتسىز پارامÛتىر بار"
-
-#: ../gck/gck-misc.c:247
-msgid "Not enough space to store the result"
-msgstr "نەتىجىنى ساقلايدىغان ÙŠÛتەرلىك بوشلۇق يوق"
-
-#: ../gck/gck-misc.c:249
-msgid "The saved state is invalid"
-msgstr "ساقلانغان ھالەت ئىناۋەتسىز"
-
-#: ../gck/gck-misc.c:251
-msgid "The information is sensitive and cannot be revealed"
-msgstr "بۇ سەزگۈر ئۇچۇرنى ئاشكارىلاشقا بولمايدۇ."
-
-#: ../gck/gck-misc.c:253
-msgid "The state cannot be saved"
-msgstr "بۇ ھالەتنى ساقلىغىلى بولمىدى"
-
-#: ../gck/gck-misc.c:255
-msgid "The module has not been initialized"
-msgstr "بۆلەك دەسلەپلەشتۈرۈلمىگەن"
-
-#: ../gck/gck-misc.c:257
-msgid "The module has already been initialized"
-msgstr "بۆلەك دەسلەپلەشتۈرۈلگەن"
-
-#: ../gck/gck-misc.c:259
-msgid "Cannot lock data"
-msgstr "سانلىق-مەلۇماتلارنى قۇلۇپلىغىلى بولمىدى"
-
-#: ../gck/gck-misc.c:261
-msgid "The data cannot be locked"
-msgstr "سانلىق-مەلۇماتلارنى قۇلۇپلىغىلى بولمىدى"
-
-#: ../gck/gck-misc.c:263
-msgid "The signature request was rejected by the user"
-msgstr "ئىمزا ئىلتىماسى ئىشلەتكۈچى تەرىپىدىن رەت قىلىندى"
-
-#: ../gck/gck-misc.c:267
-msgid "Unknown error"
-msgstr "نامەلۇم خاتالىق"
-
-#: ../pkcs11/gkm/gkm-certificate.c:572
-msgid "Unnamed Certificate"
-msgstr "ئات قويۇلمىغان گۇۋاھنامە"
-
-#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
-msgid "Couldn't parse public SSH key"
-msgstr "ئاممىۋى SSH ئاچقۇچىنى تەھلىل قىلالمىدى"
-
-#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
-#, c-format
-msgid "Unlock password for: %s"
-msgstr "%s نىڭ قۇلۇپسىزلاش ئىمى"
-
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
-msgid "The unlock password was incorrect"
-msgstr "قۇلۇپسىزلاش ئىمى توغرا ئەمەس"
-
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
-msgid "Unlock Login Keyring"
-msgstr "ئاچقۇچ ھالقىسىغا كىرىشنى قۇلۇپسىزلا"
-
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
-msgid "Enter password to unlock your login keyring"
-msgstr "ئاچقۇچ ھالقىسىنى قۇلۇپسىزلاش ئۈچۈن ئىم كىرگۈزۈڭ"
-
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
-msgid ""
-"The password you use to log in to your computer no longer matches that of "
-"your login keyring."
-msgstr ""
-"كومپيۇتÛرغا تىزىمغا كىرىش ئۈچۈن ئىشلىتىدىغان ئىم بىلەن ئاچقۇچ ھالقىسىغا "
-"تىزىمغا كىرىدىغان ئىم ماسلاشتۇرۇلمايدۇ."
-
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
-msgid ""
-"The login keyring did not get unlocked when you logged into your computer."
-msgstr ""
-"كومپيۇتÛرغا تىزىمغا كىرگەندە ئاچقۇچ ھالقىسىغا تىزىملىتىش قۇلۇپسىزلانمايدۇ."
-
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
-msgid "Unlock Keyring"
-msgstr "ئاچقۇچ ھالقىىسى(Keyring)نى قۇلۇپسىزلا"
-
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "قۇلۇپسىزلاش ئۈچۈن ئاچقۇچ ھالقىىسى '%s' نىڭ ئىمىنى كىرگۈزۈڭ"
-
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
-#, c-format
-msgid "An application wants access to the keyring '%s', but it is locked"
-msgstr ""
-"بىر پروگرامما keyring '%s' نى زىيارەت قىلماقچى ئىدى، بىراق ئۇ قۇلۇپلاقلىق "
-"ئىكەن"
-
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
-msgid "Unlock private key"
-msgstr "شەخسىي ئاچقۇچنى قۇلۇپسىزلا"
-
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
-msgid "Unlock certificate"
-msgstr "گۇۋاھنامىنى قۇلۇپسىزلا"
-
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
-msgid "Unlock public key"
-msgstr "ئاممىۋى ئاچقۇچنى قۇلۇپسىزلا"
-
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "قۇلۇپ ئاچ"
-
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
-msgid "Enter password to unlock the public key"
-msgstr "ئاممىۋى ئاچقۇچنى قۇلۇپسىزلاش ئۈچۈن ئىم كىرگۈزۈڭ"
-
-#. TRANSLATORS: The private key is locked
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
-#, c-format
-msgid "An application wants access to the private key '%s', but it is locked"
-msgstr ""
-"بىر پروگرامما مەخپىي ئاچقۇچ '%s' نى زىيارەت قىلماقچى ئىدى، بىراق ئۇ "
-"قۇلۇپلاقلىق ئىكەن"
-
-#. TRANSLATORS: The certificate is locked
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
-#, c-format
-msgid "An application wants access to the certificate '%s', but it is locked"
-msgstr ""
-"بىر پروگرامما گۇۋاھنامە '%s' نى زىيارەت قىلماقچى ئىدى، بىراق ئۇ قۇلۇپلاقلىق "
-"ئىكەن"
-
-#. TRANSLATORS: The public key is locked
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
-#, c-format
-msgid "An application wants access to the public key '%s', but it is locked"
-msgstr ""
-"بىر پروگرامما ئاممىۋى ئاچقۇچ '%s' نى زىيارەت قىلماقچى ئىدى، بىراق ئۇ "
-"قۇلۇپلاقلىق ئىكەن"
-
-#. TRANSLATORS: The object '%s' is locked
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
-#, c-format
-msgid "An application wants access to '%s', but it is locked"
-msgstr ""
-"بىر پروگرامما '%s' نى زىيارەت قىلماقچى ئىدى، بىراق ئۇ قۇلۇپلاقلىق ئىكەن."
-
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
-msgid "Unlock certificate/key storage"
-msgstr "گۇۋاھنامە قۇلۇپسىزلاش/شىÙىرلىق ئاچقۇچ ساقلىغۇچ"
-
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
-msgid "Enter password to unlock the certificate/key storage"
-msgstr "گۇۋاھنامە قۇلۇپسىزلاش/شىÙىرلىق ئاچقۇچ ساقلىغۇچ ئۈچۈن ئىم كىرگۈزۈڭ"
-
-#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
-#, c-format
-msgid ""
-"An application wants access to the certificate/key storage '%s', but it is "
-"locked"
-msgstr ""
-"بىر پروگرامما گۇۋاھنامە قۇلۇپسىزلاش/شىÙىرلىق ئاچقۇچ ساقلىغۇچ '%s' نى "
-"زىيارەت قىلماقچى ئىدى، بىراق ئۇ قۇلۇپلاقلىق ئىكەن"
-
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
-msgid "New Password Required"
-msgstr "ÙŠÛÚ­Ù‰ ئىم ÙƒÛرەك"
-
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
-msgid "New password required for secure storage"
-msgstr "بىخەتەر ساقلىغۇچنى قوغداش ئۈچۈن ÙŠÛÚ­Ù‰ ئىم ÙƒÛرەك"
-
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
-#, c-format
-msgid ""
-"In order to prepare '%s' for storage of certificates or keys, a password is "
-"required"
-msgstr ""
-"بۇ %s Ú¯Û• گۇۋاھنامە ياكى شىÙىرلىق ئاچقۇچ ساقلاش ئۈچۈن چوقۇم بىر ئىم بولۇشى "
-"ÙƒÛرەك"
-
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
-msgid "Change Password"
-msgstr "ئىم ئۆزگەرت"
-
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
-msgid "Change password for secure storage"
-msgstr "بىخەتەر ساقلىغۇچنى قوغداش ئۈچۈن ئىم ئۆزگەرت"
-
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
-#, c-format
-msgid ""
-"To change the password for '%s', the original and new passwords are required"
-msgstr "بۇ %s نىڭ ئىمىنى ئۆزگەرتىش ئۈچۈن، ئەسلىدىكى ئىم بىلەن ÙŠÛÚ­Ù‰ ئىم ÙƒÛرەك"
-
-#: ../tool/gkr-tool.c:102
-#, c-format
-msgid "usage: gnome-keyring command [options]\n"
-msgstr "ئىشلىتىلىشى: gnome-keyring بۇيرۇقى [تاللانما]\n"
-
-#: ../tool/gkr-tool.c:104
-msgid "commands: "
-msgstr "بۇيرۇقلار: "
-
-#. Translators: keep same length as translated message "commands: "
-#: ../tool/gkr-tool.c:108
-msgid " "
-msgstr " "
-
-#: ../ui/gku-prompt-tool.c:618
-msgid "Store passwords unencrypted?"
-msgstr "ئىمنى شىÙىرلىماي ساقلامدۇ؟"
-
-#: ../ui/gku-prompt-tool.c:619
-msgid ""
-"By choosing to use a blank password, your stored passwords will not be "
-"safely encrypted. They will be accessible by anyone with access to your "
-"files."
-msgstr ""
-"بوش ئىم ئىشلەتسىڭىز، ساقلانغان ئىم بىخەتەر ھالدا مەخپىيلەشتۈرۈلمەيدۇ، "
-"باشقىلار سىزنىڭ ھۆججىتىڭىزنى خالىغانچە زىيارەت قىلالايدۇ."
-
-#: ../ui/gku-prompt-tool.c:626
-msgid "Use Unsafe Storage"
-msgstr "ئىختىيارى ساقلىغۇچ ئىشلەت"
-
-#: ../ui/gku-prompt-tool.c:666
-msgid "Passwords do not match."
-msgstr "ئىم ماس كەلمىدى."
-
-#: ../ui/gku-prompt-tool.c:676
-msgid "Password cannot be blank"
-msgstr "ئىم قۇرۇق بولسا بولمايدۇ"
-
-#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
-msgid "Keyring Access"
-msgstr "ئاچقۇچ ھالقىسى زىيارەت"
-
-#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
-msgid "Unlock access to passwords and other secrets"
-msgstr "قۇلۇپ ئاچىدىغان ئاچقۇچ ھالقىسى ئىم ئوقۇش ۋە باشقا بىخەتەرلىك ھوقۇقى"
-
-#: ../ui/gku-prompt.ui.h:1
-msgid "New password strength"
-msgstr "ÙŠÛÚ­Ù‰ ئىم كۈچلۈكلۈكى"
-
-#: ../ui/gku-prompt.ui.h:2
-msgid "_Application:"
-msgstr "پروگرامما(_A):"
-
-#: ../ui/gku-prompt.ui.h:3
-msgid "_Confirm:"
-msgstr "جەزملە(_C):"
-
-#: ../ui/gku-prompt.ui.h:4
-msgid "_Details:"
-msgstr "تەپسىلاتى(_D):"
-
-#: ../ui/gku-prompt.ui.h:5
-msgid "_Name:"
-msgstr "ئاتى(_N):"
-
-#: ../ui/gku-prompt.ui.h:6
-msgid "_Old Password:"
-msgstr "كونا ئىم(_O):"
-
-#: ../ui/gku-prompt.ui.h:7
-msgid "_Password:"
-msgstr "ئىم(_P):"
+# Uyghur translation for gnome-keyring.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Gheyret Kenji<gheyret@yahoo.com>,2010.
+# Sahran <sahran.ug@gmail.com>, 2010.
+# Zeper <zeper@msn.com>, 2010.
+# Oghlan Temkin <temkin119@gmail.com>,2011
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gnome-keyring\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
+"PO-Revision-Date: 2011-04-26 09:25+0600\n"
+"Last-Translator: Sahran <sahran.ug@gmail.com>\n"
+"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
+msgstr "ئاتسىز"
+
+#: ../daemon/dbus/gkd-secret-change.c:86
+msgid "Change Keyring Password"
+msgstr "ئاچقۇچ ھالقىسى ئىمىنى ئۆزگەرت"
+
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "%s نىڭ ئاچقۇچ ھالقىسى ئۈچۈن ÙŠÛÚ­Ù‰ ئىم تاللاڭ"
+
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, c-format
+msgid ""
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
+msgstr ""
+"بىر پروگرامما '%s' دÛÚ¯Û•Ù† keyring نىڭ ئىمىنى ئۆزگەرتمەكچى. ئۇنىڭغا ÙŠÛÚ­Ù‰ ئىم "
+"تاللاڭ."
+
+#: ../daemon/dbus/gkd-secret-change.c:111
+msgid "The original password was incorrect"
+msgstr "ئەسلى ئىم توغرا ئەمەس"
+
+#: ../daemon/dbus/gkd-secret-create.c:83
+msgid "New Keyring Password"
+msgstr "ÙŠÛÚ­Ù‰ ئاچقۇچ ھالقىسى (Keyring) ئىمى"
+
+#: ../daemon/dbus/gkd-secret-create.c:84
+msgid "Choose password for new keyring"
+msgstr "ÙŠÛÚ­Ù‰ ئاچقۇچ ھالقىسى ئۈچۈن ئىم تاللاڭ"
+
+#: ../daemon/dbus/gkd-secret-create.c:86
+#, c-format
+msgid ""
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
+msgstr ""
+"بىر پروگرامما ÙŠÛڭىدىن '%s' دÛÚ¯Û•Ù† keyring نى قۇرماقچى. ئۇنىڭغا ئىم تاللاڭ."
+
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+msgid "Certificate and Key Storage"
+msgstr "گۇۋاھنامە Û‹Û• شىÙىرلىق ئاچقۇچ ئامبىرى"
+
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+msgid "GNOME Keyring: PKCS#11 Component"
+msgstr "GNOME ئاچقۇچ ھالقىسى:PKCS#11 دÛتالى"
+
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+msgid "GNOME Keyring: Secret Service"
+msgstr "GNOME ئاچقۇچ ھالقىسى:مەخپىيەت مۇلازىمÛتى"
+
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
+msgstr "مەخپىيەتلىكنى ساقلاش مۇلازىمÛتى"
+
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+msgid "GNOME Keyring: SSH Agent"
+msgstr "GNOME ئاچقۇچ ھالقىسى:SSH ياردەمچىسى"
+
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
+msgstr "SSH ئاچقۇچ ياردەمچىسى"
+
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+msgid "GNOME Keyring: GPG Agent"
+msgstr "NOME ئاچقۇچ ھالقىسى:GPG ياردەمچىسى"
+
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+msgid "GPG Password Agent"
+msgstr "GPG ئىم ياردەمچىسى"
+
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+msgid "Unknown"
+msgstr "نامەلۇم"
+
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
+#, c-format
+msgid "PGP Key: %s"
+msgstr "PGP ئاچقۇچ: %s"
+
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
+msgstr "ئىم جۈملىسى كىرگۈزۈڭ"
+
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
+msgstr "بوش قالغان ۋاقتى بۇ ۋاقىتتىن ھالقىپ كەتسە ئىمنى ئۇنتۇپ كەت"
+
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
+msgstr "بۇ ئىمنى ئاخىرىدا ئۇنتۇپ كەت"
+
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
+msgstr "تىزىمدىن چىققان ۋاقتىمدا بۇ ئىمنى ئۇنتۇپ كەت"
+
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
+msgstr "تىزىمغا كىر"
+
+#: ../egg/egg-oid.c:41
+msgid "Domain Component"
+msgstr "دائىرە دÛتالى"
+
+#: ../egg/egg-oid.c:43
+msgid "User ID"
+msgstr "ئىشلەتكۈچى ID"
+
+#: ../egg/egg-oid.c:46
+msgid "Email Address"
+msgstr "ئÛلخەت مەنزىل"
+
+#: ../egg/egg-oid.c:54
+msgid "Date of Birth"
+msgstr "تۇغۇلغان ۋاقتى"
+
+#: ../egg/egg-oid.c:56
+msgid "Place of Birth"
+msgstr "تۇغۇلغان ئورنى"
+
+#: ../egg/egg-oid.c:58
+msgid "Gender"
+msgstr "جىنسى"
+
+#: ../egg/egg-oid.c:60
+msgid "Country of Citizenship"
+msgstr "دۆلەت تەۋەلىكى"
+
+#: ../egg/egg-oid.c:62
+msgid "Country of Residence"
+msgstr "تۇرۇۋاتقان دۆلىتى"
+
+#: ../egg/egg-oid.c:65
+msgid "Common Name"
+msgstr "ئادەتتىكى ئات"
+
+#: ../egg/egg-oid.c:67
+msgid "Surname"
+msgstr "تەگات"
+
+#: ../egg/egg-oid.c:69
+msgid "Serial Number"
+msgstr "تەرتىپ نومۇرى"
+
+#: ../egg/egg-oid.c:71
+msgid "Country"
+msgstr "دۆلەت"
+
+#: ../egg/egg-oid.c:73
+msgid "Locality"
+msgstr "ئورۇن"
+
+#: ../egg/egg-oid.c:75
+msgid "State"
+msgstr "ھالەت"
+
+#: ../egg/egg-oid.c:77
+msgid "Street"
+msgstr "كوچا"
+
+#: ../egg/egg-oid.c:79
+msgid "Organization"
+msgstr "ئورگان"
+
+#: ../egg/egg-oid.c:81
+msgid "Organizational Unit"
+msgstr "ئىدارىسى"
+
+#: ../egg/egg-oid.c:83
+msgid "Title"
+msgstr "ماۋزۇ"
+
+#: ../egg/egg-oid.c:85
+msgid "Telephone Number"
+msgstr "تÛÙ„ÛÙون نومۇرى"
+
+#: ../egg/egg-oid.c:87
+msgid "Given Name"
+msgstr "بÛرىلگەن ئاتى"
+
+#: ../egg/egg-oid.c:89
+msgid "Initials"
+msgstr "قىسقارتىلمىسى"
+
+#: ../egg/egg-oid.c:91
+msgid "Generation Qualifier"
+msgstr "مەشغۇلات چەكلىگۈچى"
+
+#: ../egg/egg-oid.c:93
+msgid "DN Qualifier"
+msgstr "DN چەكلىگۈچى"
+
+#: ../egg/egg-oid.c:95
+msgid "Pseudonym"
+msgstr "تەخەللۇسى"
+
+#: ../egg/egg-oid.c:98
+msgid "RSA"
+msgstr "RSA"
+
+#: ../egg/egg-oid.c:99
+msgid "MD2 with RSA"
+msgstr "MD2 بىلەن شىÙىرلەنگەنRSA"
+
+#: ../egg/egg-oid.c:100
+msgid "MD5 with RSA"
+msgstr "MD5 بىلەن شىÙىرلەنگەنRSA"
+
+#: ../egg/egg-oid.c:101
+msgid "SHA1 with RSA"
+msgstr "SHA1 بىلەن شىÙىرلەنگەنRSA"
+
+#: ../egg/egg-oid.c:103
+msgid "DSA"
+msgstr "DSA"
+
+#: ../egg/egg-oid.c:104
+msgid "SHA1 with DSA"
+msgstr "SHA1 بىلەن شىÙىرلەنگەنDSA"
+
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
+
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
+
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
+
+#: ../egg/egg-spawn.c:273
+#, c-format
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr ""
+"ئىجرا (%s) دىن سانلىق-مەلۇمات ئوقۇۋاتقاندا select() دا تاسادىپىي خاتالىق "
+"كۆرۈلدى"
+
+#: ../egg/egg-spawn.c:320
+#, c-format
+msgid "Unexpected error in waitpid() (%s)"
+msgstr "waitpid() دا تاسادىپىي خاتالىق كۆرۈلدى (%s)"
+
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr "ئات قويۇلمىغان گۇۋاھنامە"
+
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
+msgstr "ئاممىۋى SSH ئاچقۇچىنى تەھلىل قىلالمىدى"
+
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#, c-format
+msgid "Unlock password for: %s"
+msgstr "%s نىڭ قۇلۇپسىزلاش ئىمى"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+msgid "The unlock password was incorrect"
+msgstr "قۇلۇپسىزلاش ئىمى توغرا ئەمەس"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+msgid "Unlock Login Keyring"
+msgstr "ئاچقۇچ ھالقىسىغا كىرىشنى قۇلۇپسىزلا"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+msgid "Enter password to unlock your login keyring"
+msgstr "ئاچقۇچ ھالقىسىنى قۇلۇپسىزلاش ئۈچۈن ئىم كىرگۈزۈڭ"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
+msgid ""
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
+msgstr ""
+"كومپيۇتÛرغا تىزىمغا كىرىش ئۈچۈن ئىشلىتىدىغان ئىم بىلەن ئاچقۇچ ھالقىسىغا "
+"تىزىمغا كىرىدىغان ئىم ماسلاشتۇرۇلمايدۇ."
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
+msgid ""
+"The login keyring did not get unlocked when you logged into your computer."
+msgstr ""
+"كومپيۇتÛرغا تىزىمغا كىرگەندە ئاچقۇچ ھالقىسىغا تىزىملىتىش قۇلۇپسىزلانمايدۇ."
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "ئاچقۇچ ھالقىىسى(Keyring)نى قۇلۇپسىزلا"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
+#, c-format
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "قۇلۇپسىزلاش ئۈچۈن ئاچقۇچ ھالقىىسى '%s' نىڭ ئىمىنى كىرگۈزۈڭ"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
+msgstr ""
+"بىر پروگرامما keyring '%s' نى زىيارەت قىلماقچى ئىدى، بىراق ئۇ قۇلۇپلاقلىق "
+"ئىكەن"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
+msgstr "شەخسىي ئاچقۇچنى قۇلۇپسىزلا"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+msgid "Unlock certificate"
+msgstr "گۇۋاھنامىنى قۇلۇپسىزلا"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
+msgstr "ئاممىۋى ئاچقۇچنى قۇلۇپسىزلا"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "قۇلۇپ ئاچ"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "خۇسۇسىي ئاچقۇچنى قۇلۇپسىزلاش ئۈچۈن ئىم كىرگۈزۈڭ"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "ئىسپاتنامىنى قۇلۇپسىزلاش ئۈچۈن ئىم كىرگۈزۈڭ"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+msgid "Enter password to unlock the public key"
+msgstr "ئاممىۋى ئاچقۇچنى قۇلۇپسىزلاش ئۈچۈن ئىم كىرگۈزۈڭ"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "قۇلۇپسىزلاش ئۈچۈن ئىم كىرگۈزۈڭ"
+
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
+#, c-format
+msgid "An application wants access to the private key '%s', but it is locked"
+msgstr ""
+"بىر پروگرامما مەخپىي ئاچقۇچ '%s' نى زىيارەت قىلماقچى ئىدى، بىراق ئۇ "
+"قۇلۇپلاقلىق ئىكەن"
+
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
+#, c-format
+msgid "An application wants access to the certificate '%s', but it is locked"
+msgstr ""
+"بىر پروگرامما گۇۋاھنامە '%s' نى زىيارەت قىلماقچى ئىدى، بىراق ئۇ قۇلۇپلاقلىق "
+"ئىكەن"
+
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
+#, c-format
+msgid "An application wants access to the public key '%s', but it is locked"
+msgstr ""
+"بىر پروگرامما ئاممىۋى ئاچقۇچ '%s' نى زىيارەت قىلماقچى ئىدى، بىراق ئۇ "
+"قۇلۇپلاقلىق ئىكەن"
+
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
+#, c-format
+msgid "An application wants access to '%s', but it is locked"
+msgstr ""
+"بىر پروگرامما '%s' نى زىيارەت قىلماقچى ئىدى، بىراق ئۇ قۇلۇپلاقلىق ئىكەن."
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
+msgstr "گۇۋاھنامە قۇلۇپسىزلاش/شىÙىرلىق ئاچقۇچ ساقلىغۇچ"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
+msgstr "گۇۋاھنامە قۇلۇپسىزلاش/شىÙىرلىق ئاچقۇچ ساقلىغۇچ ئۈچۈن ئىم كىرگۈزۈڭ"
+
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
+#, c-format
+msgid ""
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
+msgstr ""
+"بىر پروگرامما گۇۋاھنامە قۇلۇپسىزلاش/شىÙىرلىق ئاچقۇچ ساقلىغۇچ '%s' نى "
+"زىيارەت قىلماقچى ئىدى، بىراق ئۇ قۇلۇپلاقلىق ئىكەن"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
+msgstr "ÙŠÛÚ­Ù‰ ئىم ÙƒÛرەك"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
+msgstr "بىخەتەر ساقلىغۇچنى قوغداش ئۈچۈن ÙŠÛÚ­Ù‰ ئىم ÙƒÛرەك"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
+#, c-format
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
+"بۇ %s Ú¯Û• گۇۋاھنامە ياكى شىÙىرلىق ئاچقۇچ ساقلاش ئۈچۈن چوقۇم بىر ئىم بولۇشى "
+"ÙƒÛرەك"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
+msgid "Change Password"
+msgstr "ئىم ئۆزگەرت"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+msgid "Change password for secure storage"
+msgstr "بىخەتەر ساقلىغۇچنى قوغداش ئۈچۈن ئىم ئۆزگەرت"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
+#, c-format
+msgid ""
+"To change the password for '%s', the original and new passwords are required"
+msgstr "بۇ %s نىڭ ئىمىنى ئۆزگەرتىش ئۈچۈن، ئەسلىدىكى ئىم بىلەن ÙŠÛÚ­Ù‰ ئىم ÙƒÛرەك"
+
+#: ../tool/gkr-tool.c:102
+#, c-format
+msgid "usage: gnome-keyring command [options]\n"
+msgstr "ئىشلىتىلىشى: gnome-keyring بۇيرۇقى [تاللانما]\n"
+
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
+msgstr "بۇيرۇقلار: "
+
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr " "
+
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
+msgstr "ئىمنى شىÙىرلىماي ساقلامدۇ؟"
+
+#: ../ui/gku-prompt-tool.c:592
+msgid ""
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
+msgstr ""
+"بوش ئىم ئىشلەتسىڭىز، ساقلانغان ئىم بىخەتەر ھالدا مەخپىيلەشتۈرۈلمەيدۇ، "
+"باشقىلار سىزنىڭ ھۆججىتىڭىزنى خالىغانچە زىيارەت قىلالايدۇ."
+
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
+msgstr "ئىختىيارى ساقلىغۇچ ئىشلەت"
+
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr "ئىم ماس كەلمىدى."
+
+#: ../ui/gku-prompt-tool.c:649
+msgid "Password cannot be blank"
+msgstr "ئىم قۇرۇق بولسا بولمايدۇ"
+
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
+msgstr "ئاچقۇچ ھالقىسى زىيارەت"
+
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
+msgstr "قۇلۇپ ئاچىدىغان ئاچقۇچ ھالقىسى ئىم ئوقۇش ۋە باشقا بىخەتەرلىك ھوقۇقى"
+
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
+msgstr "ÙŠÛÚ­Ù‰ ئىم كۈچلۈكلۈكى"
+
+#: ../ui/gku-prompt.ui.h:2
+msgid "_Application:"
+msgstr "پروگرامما(_A):"
+
+#: ../ui/gku-prompt.ui.h:3
+msgid "_Confirm:"
+msgstr "جەزملە(_C):"
+
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr "تەپسىلاتى(_D):"
+
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr "ئاتى(_N):"
+
+#: ../ui/gku-prompt.ui.h:6
+msgid "_Old Password:"
+msgstr "كونا ئىم(_O):"
+
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr "ئىم(_P):"
diff --git a/po/uk.po b/po/uk.po
index d8d7c6a9..0aa7f42f 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-03-10 21:04+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-03-10 23:40+0300\n"
"Last-Translator: Korostil Daniel <ted.korostiled@gmail.com>\n"
"Language-Team: translation@linux.org.ua\n"
@@ -15,14 +15,14 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Virtaal 0.6.1\n"
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Без назви"
@@ -98,35 +98,34 @@ msgstr "Служба в'Ñзки ключів GNOME: агент GPG"
msgid "GPG Password Agent"
msgstr "Ðгента паролів GPG"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:291
-#: ../gcr/gcr-key-renderer.c:296
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Ðевідомо"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:199
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "Ключ PGP: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:348
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:349
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Введіть фразу"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:383
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Забути цей пароль, Ñкщо він неактивний "
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:384
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Забути цей пароль піÑлÑ"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:385
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Забути цей пароль, коли Ñ Ð²Ð¸Ñ…Ð¾Ð´Ð¶Ñƒ"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Вхід"
@@ -170,7 +169,7 @@ msgstr "Звичайне ім'Ñ"
msgid "Surname"
msgstr "Прізвище"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:436
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Серійний номер"
@@ -226,30 +225,53 @@ msgstr "Позначка розрізнюваного мені"
msgid "Pseudonym"
msgstr "ПÑевдонім"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:287
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "MD2 з ключем RSA"
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "MD5 з ключем RSA"
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "SHA1 з ключем RSA"
-#: ../egg/egg-oid.c:107 ../gcr/gcr-key-renderer.c:289
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "SHA1 з ключем DSA"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+#, fuzzy
+msgid "Server Authentication"
+msgstr "Сертифікат Ñервера SSL"
+
+#: ../egg/egg-oid.c:108
+#, fuzzy
+msgid "Client Authentication"
+msgstr "Сертифікат клієнту SSL"
+
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
+
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
+
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
+
#: ../egg/egg-spawn.c:273
#, c-format
msgid "Unexpected error in select() reading data from a child process (%s)"
@@ -261,607 +283,6 @@ msgstr ""
msgid "Unexpected error in waitpid() (%s)"
msgstr "ÐеÑподівана помилка у waitpid() (%s)"
-#: ../gcr/gcr-certificate-renderer.c:83 ../gcr/gcr-parser.c:201
-msgid "Certificate"
-msgstr "Сертифікат"
-
-#: ../gcr/gcr-certificate-renderer.c:108
-msgid "Extension"
-msgstr "РозширеннÑ"
-
-#: ../gcr/gcr-certificate-renderer.c:113
-msgid "Identifier"
-msgstr "Ідентифікатор"
-
-#: ../gcr/gcr-certificate-renderer.c:121
-msgid "Value"
-msgstr "ЗначеннÑ"
-
-#: ../gcr/gcr-certificate-renderer.c:127
-msgid "Critical"
-msgstr "Критичний"
-
-#: ../gcr/gcr-certificate-renderer.c:127
-msgid "Yes"
-msgstr "Так"
-
-#: ../gcr/gcr-certificate-renderer.c:127
-msgid "No"
-msgstr "ÐÑ–"
-
-#: ../gcr/gcr-certificate-renderer.c:198
-msgid "Couldn't export the certificate."
-msgstr "Ðеможливо екÑпортувати Ñертифікат."
-
-#: ../gcr/gcr-certificate-renderer.c:396
-msgid "Identity"
-msgstr "Профіль"
-
-#: ../gcr/gcr-certificate-renderer.c:400
-msgid "Verified by"
-msgstr "Перевірено"
-
-#: ../gcr/gcr-certificate-renderer.c:407
-msgid "Expires"
-msgstr "Строк дії"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:417
-msgid "Subject Name"
-msgstr "Ім'Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ñ‡Ð°"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:421
-msgid "Issuer Name"
-msgstr "Ім'Ñ Ð²Ð¸Ð´Ð°Ð²Ñ†Ñ"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:425
-msgid "Issued Certificate"
-msgstr "Виданий Ñертифікат"
-
-#: ../gcr/gcr-certificate-renderer.c:430
-msgid "Version"
-msgstr "ВерÑÑ–Ñ"
-
-#: ../gcr/gcr-certificate-renderer.c:444
-msgid "Not Valid Before"
-msgstr "Ðе дійÑний до"
-
-#: ../gcr/gcr-certificate-renderer.c:449
-msgid "Not Valid After"
-msgstr "Ðе дійÑний піÑлÑ"
-
-#: ../gcr/gcr-certificate-renderer.c:458
-msgid "Signature Algorithm"
-msgstr "Ðлгоритм підпиÑу"
-
-#: ../gcr/gcr-certificate-renderer.c:463
-msgid "Signature Parameters"
-msgstr "Параметри підпиÑу"
-
-#: ../gcr/gcr-certificate-renderer.c:470
-msgid "Signature"
-msgstr "ПідпиÑ"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:475
-msgid "Public Key Info"
-msgstr "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ відкритий ключ"
-
-#: ../gcr/gcr-certificate-renderer.c:480
-msgid "Key Algorithm"
-msgstr "Ðлгоритм ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:486
-msgid "Key Parameters"
-msgstr "Параметри ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:493
-msgid "Key Size"
-msgstr "Розмір ключа"
-
-#: ../gcr/gcr-certificate-renderer.c:501 ../gcr/gcr-key-renderer.c:271
-#: ../gcr/gcr-parser.c:204
-msgid "Public Key"
-msgstr "Публічний ключ"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:506
-msgid "Fingerprints"
-msgstr "Відбитки"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Імпортувати Ñертифікати та ключі"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Імпортувати у:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Пароль:"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Ðвтоматично розблоковувати цю в'Ñзку ключів піÑÐ»Ñ Ð²Ñ…Ð¾Ð´Ñƒ у ÑеанÑ"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Блокувати в'Ñзку ключів піÑлÑ"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Блокувати в'Ñзку при проÑтої"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Ðвтоматично блокувати в'Ñзку ключів при завершенні ÑеанÑу"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "хвилин"
-
-#: ../gcr/gcr-importer.c:133 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Введіть пароль Ð´Ð»Ñ Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ñ— в'Ñзки ключів"
-
-#: ../gcr/gcr-importer.c:135 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Введіть пароль Ð´Ð»Ñ Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñертифіката"
-
-#: ../gcr/gcr-importer.c:137 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Введіть пароль Ð´Ð»Ñ Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:146
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Треба розблокувати закритий ключ, щоб імпортувати його"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:149
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Треба розблокувати Ñертифікат «%s», щоб імпортувати його"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:152
-msgid "In order to import the data, it must be unlocked"
-msgstr "Треба розблокувати дані, щоб імпортувати їх"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:157
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Треба розблокувати закритий ключ «%s», щоб імпортувати його"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:160
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Треба розблокувати Ñертифікат «%s», щоб імпортувати його"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:163
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Щоб імпортувати «%s», треба його розблокувати"
-
-#: ../gcr/gcr-importer.c:254 ../gcr/gcr-parser.c:1566 ../gcr/gcr-parser.c:1757
-#: ../gck/gck-misc.c:98
-msgid "The operation was cancelled"
-msgstr "Операцію ÑкаÑовано"
-
-#: ../gcr/gcr-importer.c:346
-#, c-format
-msgid "No location available to import to"
-msgstr "Ðемає Ñховища Ð´Ð»Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ"
-
-#: ../gcr/gcr-importer.c:495
-msgid "Import Certificates/Keys"
-msgstr "Імпортувати ключі/Ñертифікати"
-
-#: ../gcr/gcr-importer.c:502
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Виберіть Ñховище Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ñ–Ð² та Ñертифікатів."
-
-#: ../gcr/gcr-key-renderer.c:69
-msgid "Key"
-msgstr "Ключ"
-
-#: ../gcr/gcr-key-renderer.c:260
-msgid "Private RSA Key"
-msgstr "Закритий ключ RSA"
-
-#: ../gcr/gcr-key-renderer.c:262
-msgid "Private DSA Key"
-msgstr "Закритий ключ DSA"
-
-#: ../gcr/gcr-key-renderer.c:264 ../gcr/gcr-parser.c:198
-msgid "Private Key"
-msgstr "Закритий ключ"
-
-#: ../gcr/gcr-key-renderer.c:267 ../gcr/gcr-key-renderer.c:269
-msgid "Public DSA Key"
-msgstr "Відкритий ключ DSA"
-
-#: ../gcr/gcr-key-renderer.c:278
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d біт"
-msgstr[1] "%d біти"
-msgstr[2] "%d бітів"
-
-#: ../gcr/gcr-key-renderer.c:279
-msgid "Strength"
-msgstr "МіцніÑÑ‚ÑŒ"
-
-#: ../gcr/gcr-key-renderer.c:292
-msgid "Algorithm"
-msgstr "Ðлгоритм"
-
-#: ../gcr/gcr-key-renderer.c:299
-msgid "Size"
-msgstr "Розмір"
-
-#. TODO: We need to have consistent key fingerprints.
-#: ../gcr/gcr-key-renderer.c:303
-msgid "Fingerprint"
-msgstr "Відбитки"
-
-#: ../gcr/gcr-parser.c:1569
-msgid "Unrecognized or unsupported data."
-msgstr "Ðерозпізнані чи непідтримувані дані."
-
-#: ../gcr/gcr-parser.c:1572
-msgid "Could not parse invalid or corrupted data."
-msgstr "Ðе вдалоÑÑŒ розібрати некоректні чи пошкоджені дані."
-
-#: ../gcr/gcr-parser.c:1575
-msgid "The data is locked"
-msgstr "Дані заблоковано"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:420
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Ðеможливо знайти міÑце Ð´Ð»Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ ÑƒÑ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¸Ñ… Ñертифікатів"
-
-#: ../gck/gck-uri.c:124 ../gck/gck-uri.c:181 ../gck/gck-uri.c:216
-#: ../gck/gck-uri.c:248
-#, c-format
-msgid "The URI has invalid syntax. The '%s' field encoding is invalid."
-msgstr "URI має неправильний ÑинтакÑиÑ. Поле ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Â«%s» неправильне."
-
-#: ../gck/gck-uri.c:287
-msgid "The URI has does not have the 'pkcs11' scheme."
-msgstr "URI не має Ñхеми «pkcs11»."
-
-#: ../gck/gck-misc.c:101
-msgid "Insufficient memory available"
-msgstr "ÐедоÑтатньо пам'ÑÑ‚Ñ–"
-
-#: ../gck/gck-misc.c:103
-msgid "The specified slot ID is not valid"
-msgstr "Вказане ідентифікатор гнізда некоректний"
-
-#: ../gck/gck-misc.c:105
-msgid "Internal error"
-msgstr "Ðевідома помилка"
-
-#: ../gck/gck-misc.c:107
-msgid "The operation failed"
-msgstr "Помилка при операції"
-
-#: ../gck/gck-misc.c:109
-msgid "Invalid arguments"
-msgstr "Ðеправильні аргументи"
-
-#: ../gck/gck-misc.c:111
-msgid "The module cannot create needed threads"
-msgstr "Модуль не може Ñтворити потрібні потоки виконаннÑ"
-
-#: ../gck/gck-misc.c:113
-msgid "The module cannot lock data properly"
-msgstr "Модуль не може заблокувати дані відповідним чином"
-
-#: ../gck/gck-misc.c:115
-msgid "The field is read-only"
-msgstr "Поле доÑтупне лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ"
-
-#: ../gck/gck-misc.c:117
-msgid "The field is sensitive and cannot be revealed"
-msgstr "Поле є важливим, та не може бути розкритим"
-
-#: ../gck/gck-misc.c:119
-msgid "The field is invalid or does not exist"
-msgstr "Поле Ñ” некоректним або не Ñ–Ñнує"
-
-#: ../gck/gck-misc.c:121
-msgid "Invalid value for field"
-msgstr "Ðекоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ"
-
-#: ../gck/gck-misc.c:123
-msgid "The data is not valid or unrecognized"
-msgstr "Дані некоректні або нерозпізнані"
-
-#: ../gck/gck-misc.c:125
-msgid "The data is too long"
-msgstr "Дані надто довгі"
-
-#: ../gck/gck-misc.c:127
-msgid "An error occurred on the device"
-msgstr "Помилка при роботі з приÑтроєм"
-
-#: ../gck/gck-misc.c:129
-msgid "Insufficient memory available on the device"
-msgstr "ÐедоÑтатньо доÑтупної пам'ÑÑ‚Ñ– на приÑтрої"
-
-#: ../gck/gck-misc.c:131
-msgid "The device was removed or unplugged"
-msgstr "ПриÑтрій вилучено або від'єднано"
-
-#: ../gck/gck-misc.c:133
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "Шифровані дані є некоректними або нерозпізнаними"
-
-#: ../gck/gck-misc.c:135
-msgid "The encrypted data is too long"
-msgstr "Шифровані дані надто довгі"
-
-#: ../gck/gck-misc.c:137
-msgid "This operation is not supported"
-msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ñ–Ñ Ð½Ðµ підтримуєтьÑÑ"
-
-#: ../gck/gck-misc.c:139
-msgid "The key is missing or invalid"
-msgstr "Ключа нема або він некоректний"
-
-#: ../gck/gck-misc.c:141
-msgid "The key is the wrong size"
-msgstr "Ключ має неправильний розмір"
-
-#: ../gck/gck-misc.c:143
-msgid "The key is of the wrong type"
-msgstr "Ключ має неправильний тип"
-
-#: ../gck/gck-misc.c:145
-msgid "No key is needed"
-msgstr "Ключ не потрібно"
-
-#: ../gck/gck-misc.c:147
-msgid "The key is different than before"
-msgstr "Ключ відрізнÑєтьÑÑ Ð²Ñ–Ð´ попереднього"
-
-#: ../gck/gck-misc.c:149
-msgid "A key is needed"
-msgstr "Потрібен ключ"
-
-#: ../gck/gck-misc.c:151
-msgid "Cannot include the key in the digest"
-msgstr "Ðеможливо внеÑти ключ у збірник"
-
-#: ../gck/gck-misc.c:153
-msgid "This operation cannot be done with this key"
-msgstr "Операцію неможливо завершити з цим ключем"
-
-#: ../gck/gck-misc.c:155
-msgid "The key cannot be wrapped"
-msgstr "Ключ неможливо загорнути"
-
-#: ../gck/gck-misc.c:157
-msgid "Cannot export this key"
-msgstr "Ðеможливо екÑпортувати цей ключ"
-
-#: ../gck/gck-misc.c:159
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "Механізм ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ або нерозпізнаний"
-
-#: ../gck/gck-misc.c:161
-msgid "The crypto mechanism has an invalid argument"
-msgstr "Механізм ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð°Ñ” некоректний аргумент"
-
-#: ../gck/gck-misc.c:163
-msgid "The object is missing or invalid"
-msgstr "Об'єкта нема або він некоректний"
-
-#: ../gck/gck-misc.c:165
-msgid "Another operation is already taking place"
-msgstr "Вже виконуєтьÑÑ Ñ–Ð½ÑˆÐ° операціÑ"
-
-#: ../gck/gck-misc.c:167
-msgid "No operation is taking place"
-msgstr "ÐÑ–Ñка Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ Ð½Ðµ виконуєтьÑÑ"
-
-#: ../gck/gck-misc.c:169
-msgid "The password or PIN is incorrect"
-msgstr "Ðекоректний пароль або PIN"
-
-#: ../gck/gck-misc.c:171
-msgid "The password or PIN is invalid"
-msgstr "Ðеправильний пароль або PIN"
-
-#: ../gck/gck-misc.c:173
-msgid "The password or PIN is of an invalid length"
-msgstr "Ðеправильна довжина паролю або PIN"
-
-#: ../gck/gck-misc.c:175
-msgid "The password or PIN has expired"
-msgstr "Вийшов термін дії паролю або PIN"
-
-#: ../gck/gck-misc.c:177
-msgid "The password or PIN is locked"
-msgstr "Пароль або PIN заблоковано"
-
-#: ../gck/gck-misc.c:179
-msgid "The session is closed"
-msgstr "Ð¡ÐµÐ°Ð½Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾"
-
-#: ../gck/gck-misc.c:181
-msgid "Too many sessions are active"
-msgstr "Ðадто багато активних ÑеанÑів"
-
-#: ../gck/gck-misc.c:183
-msgid "The session is invalid"
-msgstr "Ð¡ÐµÐ°Ð½Ñ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹"
-
-#: ../gck/gck-misc.c:185
-msgid "The session is read-only"
-msgstr "Ð¡ÐµÐ°Ð½Ñ Ñƒ Ñтані лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ"
-
-#: ../gck/gck-misc.c:187
-msgid "An open session exists"
-msgstr "ІÑнує відкритий ÑеанÑ"
-
-#: ../gck/gck-misc.c:189
-msgid "A read-only session exists"
-msgstr "ІÑнує ÑÐµÐ½Ñ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ"
-
-#: ../gck/gck-misc.c:191
-msgid "An administrator session exists"
-msgstr "ІÑнує ÑÐµÐ°Ð½Ñ Ð°Ð´Ð¼Ñ–Ð½Ñ–Ñтратора"
-
-#: ../gck/gck-misc.c:193
-msgid "The signature is bad or corrupted"
-msgstr "ÐŸÑ–Ð´Ð¿Ð¸Ñ Ñ” некоректним або пошкодженим"
-
-#: ../gck/gck-misc.c:195
-msgid "The signature is unrecognized or corrupted"
-msgstr "ÐŸÑ–Ð´Ð¿Ð¸Ñ Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹ або пошкоджений"
-
-#: ../gck/gck-misc.c:197
-msgid "Certain required fields are missing"
-msgstr "Ðема деÑких потрібних полів"
-
-#: ../gck/gck-misc.c:199
-msgid "Certain fields have invalid values"
-msgstr "ДеÑкі Ð¿Ð¾Ð»Ñ Ð¼Ð°ÑŽÑ‚ÑŒ неправильні значеннÑ"
-
-#: ../gck/gck-misc.c:201
-msgid "The device is not present or unplugged"
-msgstr "ПриÑтрою нема або його від'єднано"
-
-#: ../gck/gck-misc.c:203
-msgid "The device is invalid or unrecognizable"
-msgstr "ПриÑтрій некоректний або нерозпізнаний"
-
-#: ../gck/gck-misc.c:205
-msgid "The device is write protected"
-msgstr "ПриÑтрій захищений від запиÑу"
-
-#: ../gck/gck-misc.c:207
-msgid "Cannot import because the key is invalid"
-msgstr "Ðеможливо імпортувати, оÑкільки ключ некоректний"
-
-#: ../gck/gck-misc.c:209
-msgid "Cannot import because the key is of the wrong size"
-msgstr "Ðеможливо імпортувати, оÑкільки ключ має неправильний розмір"
-
-#: ../gck/gck-misc.c:211
-msgid "Cannot import because the key is of the wrong type"
-msgstr "Ðеможливо імпортувати, оÑкільки ключ некоректного типу"
-
-#: ../gck/gck-misc.c:213
-msgid "You are already logged in"
-msgstr "Ви вже увійшли у ÑеанÑ"
-
-#: ../gck/gck-misc.c:215
-msgid "No user has logged in"
-msgstr "КориÑтувач вже увійшов у ÑеанÑ"
-
-#: ../gck/gck-misc.c:217
-msgid "The user's password or PIN is not set"
-msgstr "Пароль кориÑтувач або PIN не вÑтановлено"
-
-#: ../gck/gck-misc.c:219
-msgid "The user is of an invalid type"
-msgstr "Ðекоректний тип кориÑтувача"
-
-#: ../gck/gck-misc.c:221
-msgid "Another user is already logged in"
-msgstr "Інший кориÑтувач вже увійшов"
-
-#: ../gck/gck-misc.c:223
-msgid "Too many users of different types are logged in"
-msgstr "Ðадто багато кориÑтувачів різних типів увійшло"
-
-#: ../gck/gck-misc.c:225
-msgid "Cannot import an invalid key"
-msgstr "Ðеможливо імпортувати некоректний ключ"
-
-#: ../gck/gck-misc.c:227
-msgid "Cannot import a key of the wrong size"
-msgstr "Ðеможливо імпортувати ключ неправильного розміру"
-
-#: ../gck/gck-misc.c:229
-msgid "Cannot export because the key is invalid"
-msgstr "Ðеможливо екÑпортувати, оÑкільки ключ некоректний"
-
-#: ../gck/gck-misc.c:231
-msgid "Cannot export because the key is of the wrong size"
-msgstr "Ðеможливо екÑпортувати оÑкільки ключ має неправильний розмір"
-
-#: ../gck/gck-misc.c:233
-msgid "Cannot export because the key is of the wrong type"
-msgstr "Ðеможливо екÑпортувати оÑкільки ключ некоректного типу"
-
-#: ../gck/gck-misc.c:235
-msgid "Unable to initialize the random number generator"
-msgstr "Ðе вдалоÑÑŒ запуÑтити породжувача випадкових чиÑел"
-
-#: ../gck/gck-misc.c:237
-msgid "No random number generator available"
-msgstr "Ðема породжувача випадкових чиÑел"
-
-#: ../gck/gck-misc.c:239
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "Механізм ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð² неправильний параметр"
-
-#: ../gck/gck-misc.c:241
-msgid "Not enough space to store the result"
-msgstr "ÐедоÑтатньо проÑтору Ð´Ð»Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñƒ"
-
-#: ../gck/gck-misc.c:243
-msgid "The saved state is invalid"
-msgstr "Збережений Ñтан некоректний"
-
-#: ../gck/gck-misc.c:245
-msgid "The information is sensitive and cannot be revealed"
-msgstr "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ñ” важливою та не може бути розкрита"
-
-#: ../gck/gck-misc.c:247
-msgid "The state cannot be saved"
-msgstr "Ðеможливо зберегти Ñтан"
-
-#: ../gck/gck-misc.c:249
-msgid "The module has not been initialized"
-msgstr "Модуль не запущено"
-
-#: ../gck/gck-misc.c:251
-msgid "The module has already been initialized"
-msgstr "Модуль вже запущено"
-
-#: ../gck/gck-misc.c:253
-msgid "Cannot lock data"
-msgstr "Ðеможливо заблокувати дані"
-
-#: ../gck/gck-misc.c:255
-msgid "The data cannot be locked"
-msgstr "Ðеможливо заблокувати дані"
-
-#: ../gck/gck-misc.c:257
-msgid "The signature request was rejected by the user"
-msgstr "Запит підпиÑу відхилено кориÑтувачем"
-
-#: ../gck/gck-misc.c:261
-msgid "Unknown error"
-msgstr "Ðевідома помилка"
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "Ðеназваний Ñертифікат"
@@ -871,7 +292,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Ðеможливо розібрати відкритий ключ SSH"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Пароль Ð´Ð»Ñ Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ: %s"
@@ -935,10 +356,22 @@ msgstr "Розблокувати відкритий ключ"
msgid "Unlock"
msgstr "Розблокувати"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Введіть пароль Ð´Ð»Ñ Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ñ— в'Ñзки ключів"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Введіть пароль Ð´Ð»Ñ Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñертифіката"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Введіть пароль Ð´Ð»Ñ Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ ключа"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Введіть пароль Ð´Ð»Ñ Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1031,11 +464,11 @@ msgstr "команди:"
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:597
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Зберігати паролі незашифрованими?"
-#: ../ui/gku-prompt-tool.c:598
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1045,15 +478,15 @@ msgstr ""
"зашифрувати безпечним чином. Вони будуть доÑтупні будь-кому, хто має доÑтуп "
"до ваших файлів."
-#: ../ui/gku-prompt-tool.c:605
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "ВикориÑтовувати небезпечне Ñховище"
-#: ../ui/gku-prompt-tool.c:643
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Паролі не збігаютьÑÑ."
-#: ../ui/gku-prompt-tool.c:653
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Пароль не може бути порожнім"
@@ -1092,124 +525,3 @@ msgstr "_Старий пароль:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Пароль:"
-
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Цей параметр вмикає компонент PKCS#11 Ñлужби gnome-keyring. Він діє лише "
-#~ "Ñкщо запуÑкаєтьÑÑ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ñтарту gnome-session, (наприклад: коли "
-#~ "кориÑтувач входить у ÑеанÑ). Цей параметр можна перевизначити "
-#~ "передаваннÑм певних аргументів команді запуÑку Ñлужби."
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "Цей параметр вмикає агента SSH Ñлужби gnome-keyring. Він діє лише при "
-#~ "запущеному gnome-keyring-daemon, (наприклад: коли кориÑтувач входить у "
-#~ "ÑеанÑ). Цей параметр можна перевизначити передаваннÑм певних аргументів "
-#~ "команді запуÑку Ñлужби."
-
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Цей параметр вмикає Ñлужбу ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ gnome-keyring. Він діє лише Ñкщо "
-#~ "запуÑкаєтьÑÑ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ñтарту gnome-session, (наприклад: коли кориÑтувач "
-#~ "входить у ÑеанÑ). Цей параметр можна перевизначити передаваннÑм певних "
-#~ "аргументів команді запуÑку Ñлужби."
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "Чи увімкнено компонент PKCS#11 Ñлужби gnome-keyring."
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "Чи увімкнено агента SSH Ñлужби gnome-keyring."
-
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr "Чи увімкнено компонент ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñлужби gnome-keyring."
-
-#~ msgid "Email"
-#~ msgstr "ÐдреÑа ел.пошти"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>не Ñ” чаÑтиною Ñертифікату</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>невідомо</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<не чаÑтина Ñертифікату>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>Відбитки пальців</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Джерело</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Отримувач</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>Цей Ñертифікат був виданий Ð´Ð»Ñ Ð½Ð°Ñтупного:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>ДійÑніÑÑ‚ÑŒ</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "Загальна назва (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "Сертифікат отримувача пошти"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "Сертифікат відправника пошти"
-
-#~ msgid "Issued On"
-#~ msgstr "Виданий"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "Відбиток MD5"
-
-#~ msgid "Organization (O)"
-#~ msgstr "ÐžÑ€Ð³Ð°Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "Підрозділ (OU)"
-
-#~ msgid "SHA1 Fingerprint"
-#~ msgstr "Відбиток SHA1"
-
-#~ msgid "SSL Client Certificate"
-#~ msgstr "Сертифікат клієнту SSL"
-
-#~ msgid "SSL Server Certificate"
-#~ msgstr "Сертифікат Ñервера SSL"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr ""
-#~ "<span size='large' weight='bold'>Імпорт ключів та Ñертифікатів</span>"
-
-#~ msgid "Automatically unlock secure storage when I log in."
-#~ msgstr "Ðвтоматично розблоковувати цей Ñертифікат піÑÐ»Ñ Ð²Ñ…Ð¾Ð´Ñƒ у ÑеанÑ"
-
-#~ msgid ""
-#~ "<span size=\"large\" weight=\"bold\">Enter password for keyring 'login' "
-#~ "to unlock</span>\n"
-#~ "\n"
-#~ "An application wants access to the keyring 'xxx', but it is locked."
-#~ msgstr ""
-#~ "<span size=\"large\" weight=\"bold\">Введіть пароль в'Ñзки ключів 'login' "
-#~ "Ð´Ð»Ñ Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ</span>\n"
-#~ "\n"
-#~ "Програма бажає отримати доÑтуп до в'Ñзки ключів 'xxx', але вона "
-#~ "заблокована"
-
-#~ msgid "Prompt me for each application that accesses this keyring."
-#~ msgstr "Питати мене, перш ніж надавати програмі доÑтуп до в'Ñзки ключів."
diff --git a/po/vi.po b/po/vi.po
index 7d39dd8b..d766a4bb 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -6,12 +6,12 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring 2.26.3\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&component=general\n"
-"POT-Creation-Date: 2011-03-10 08:08+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-04-03 14:55+0700\n"
"Last-Translator: Nguyen Vu Hung <vuhung16plus@gmail.com>\n"
"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
+"Language: vi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -21,7 +21,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "Không tên"
@@ -97,35 +97,34 @@ msgstr "Vòng Khoá GNOME: GPG Agent"
msgid "GPG Password Agent"
msgstr "Agent cho mật khẩu GPG"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:291
-#: ../gcr/gcr-key-renderer.c:296
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "Không biết"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:199
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "Khóa PGP: %s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:348
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:349
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "Nhập mật mã"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:383
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "Quên mật khẩu này nếu không dùng trong"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:384
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "Quên mật khẩu sau"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:385
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "Quên mật khẩu sau khi đăng xuất"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "Äăng nhập"
@@ -169,7 +168,7 @@ msgstr "Tên chung"
msgid "Surname"
msgstr "Há»"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:379
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "Số thứ tự"
@@ -225,638 +224,64 @@ msgstr "Tên miá»n dè dặt"
msgid "Pseudonym"
msgstr "Biệt hiệu"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:287
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
-#: ../egg/egg-oid.c:100
+#: ../egg/egg-oid.c:99
msgid "MD2 with RSA"
msgstr "MD2 với mã hoá RSA"
-#: ../egg/egg-oid.c:102
+#: ../egg/egg-oid.c:100
msgid "MD5 with RSA"
msgstr "MD5 với mã hoá RSA"
-#: ../egg/egg-oid.c:104
+#: ../egg/egg-oid.c:101
msgid "SHA1 with RSA"
msgstr "SHA1 với mã hoá RSA"
-#: ../egg/egg-oid.c:107 ../gcr/gcr-key-renderer.c:289
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
-#: ../egg/egg-oid.c:109
+#: ../egg/egg-oid.c:104
msgid "SHA1 with DSA"
msgstr "SHA1 với mã hoá DSA"
-#: ../egg/egg-spawn.c:273
-#, c-format
-msgid "Unexpected error in select() reading data from a child process (%s)"
-msgstr ""
-"Gặp lá»—i bất thÆ°á»ng trong « select() » khi Ä‘á»c dữ liệu từ má»™t tiến trình con (%"
-"s)"
-
-#: ../egg/egg-spawn.c:320
-#, c-format
-msgid "Unexpected error in waitpid() (%s)"
-msgstr "Gặp lá»—i bất thÆ°á»ng trong « waitpid() » (%s)"
-
-#: ../gcr/gcr-certificate-renderer.c:82 ../gcr/gcr-parser.c:201
-msgid "Certificate"
-msgstr "Chứng nhận"
-
-#: ../gcr/gcr-certificate-renderer.c:107
-msgid "Extension"
-msgstr "Phần mở rộng"
-
-#: ../gcr/gcr-certificate-renderer.c:112
-msgid "Identifier"
-msgstr "Dấu nhận diện"
-
-#: ../gcr/gcr-certificate-renderer.c:120
-msgid "Value"
-msgstr "Giá trị"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "Critical"
-msgstr "Tới hạn"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "Yes"
-msgstr "Có"
-
-#: ../gcr/gcr-certificate-renderer.c:126
-msgid "No"
-msgstr "Không"
-
-#: ../gcr/gcr-certificate-renderer.c:339
-msgid "Identity"
-msgstr "Nhận diện"
-
-#: ../gcr/gcr-certificate-renderer.c:343
-msgid "Verified by"
-msgstr "Kiểm chứng bởi"
-
-#: ../gcr/gcr-certificate-renderer.c:350
-msgid "Expires"
-msgstr "Hết hạn"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:360
-msgid "Subject Name"
-msgstr "Tên chủ Ä‘á»"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:364
-msgid "Issuer Name"
-msgstr "Tên nhà cấp"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:368
-msgid "Issued Certificate"
-msgstr "Chứng nhận đã cấp"
-
-#: ../gcr/gcr-certificate-renderer.c:373
-msgid "Version"
-msgstr "Phiên bản"
-
-#: ../gcr/gcr-certificate-renderer.c:387
-msgid "Not Valid Before"
-msgstr "Không đúng đắn trước"
-
-#: ../gcr/gcr-certificate-renderer.c:392
-msgid "Not Valid After"
-msgstr "Không đúng đắn sau"
-
-#: ../gcr/gcr-certificate-renderer.c:401
-msgid "Signature Algorithm"
-msgstr "Thuật toán chữ ký"
-
-#: ../gcr/gcr-certificate-renderer.c:406
-msgid "Signature Parameters"
-msgstr "Tham số Chữ ký"
-
-#: ../gcr/gcr-certificate-renderer.c:413
-msgid "Signature"
-msgstr "Chữ ký"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:418
-msgid "Public Key Info"
-msgstr "Thông tin khoá công khai"
-
-#: ../gcr/gcr-certificate-renderer.c:423
-msgid "Key Algorithm"
-msgstr "Thuật toán khoá"
-
-#: ../gcr/gcr-certificate-renderer.c:429
-msgid "Key Parameters"
-msgstr "Tham số Khoá"
-
-#: ../gcr/gcr-certificate-renderer.c:436
-msgid "Key Size"
-msgstr "Cỡ khoá"
-
-#: ../gcr/gcr-certificate-renderer.c:444 ../gcr/gcr-key-renderer.c:271
-#: ../gcr/gcr-parser.c:204
-msgid "Public Key"
-msgstr "Khoá công khai"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:449
-msgid "Fingerprints"
-msgstr "Vân tay"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "Nhập chứng nhận/khoá"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "Nhập vào:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "Mật khẩu:"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "Tự động gỡ khoá vòng khoá này khi nào tôi đã đăng nhập"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "Khoá vòng khoá này sau"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "Khoá vòng khoá này nếu vẫn nghỉ sau"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "Khoá vòng khoá này khi tôi đang xuất"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "phút"
-
-#: ../gcr/gcr-importer.c:133 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "Gõ mật khẩu để mở khoá cá nhân"
-
-#: ../gcr/gcr-importer.c:135 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "Gõ mật khẩu để mở chứng nhận"
-
-#: ../gcr/gcr-importer.c:137 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "Gõ mật khẩu để gỡ khoá"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:146
-msgid "In order to import the private key, it must be unlocked"
-msgstr "Äể nhập khoá riêng thì nó phải được mở khoá"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:149
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "Äể nhập chứng nhận thì nó phải được mở khoá"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:152
-msgid "In order to import the data, it must be unlocked"
-msgstr "Äể nhập dữ liệu, nó phải được mở khoá"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:157
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "Äể nhập khoá riêng « %s » thì nó phải được mở khoá"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:160
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "Äể nhập chứng nhận « %s » thì nó phải được mở khoá"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:163
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "Äể nhập « %s » thì nó phải được mở khoá"
-
-#: ../gcr/gcr-importer.c:254 ../gcr/gcr-parser.c:1566 ../gcr/gcr-parser.c:1757
-#: ../gck/gck-misc.c:98
-msgid "The operation was cancelled"
-msgstr "Thao tác bị huỷ"
-
-#: ../gcr/gcr-importer.c:346
-#, c-format
-msgid "No location available to import to"
-msgstr "Không có vị trí vào đó có thể nhập dữ liệu"
-
-#: ../gcr/gcr-importer.c:495
-msgid "Import Certificates/Keys"
-msgstr "Nhập các chứng nhận/khoá"
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+#, fuzzy
+msgid "Server Authentication"
+msgstr "Chứng nhận trình phục vụ SSL"
-#: ../gcr/gcr-importer.c:502
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "Hãy chá»n má»™t vị trí vào đó cần lÆ°u các chứng nhận/khoá được nhập."
+#: ../egg/egg-oid.c:108
+#, fuzzy
+msgid "Client Authentication"
+msgstr "Chứng nhận ứng dụng khách SSL"
-#: ../gcr/gcr-key-renderer.c:69
-msgid "Key"
-msgstr "Khóa"
-
-#: ../gcr/gcr-key-renderer.c:260
-msgid "Private RSA Key"
-msgstr "Khoá cá nhân RSA"
-
-#: ../gcr/gcr-key-renderer.c:262
-msgid "Private DSA Key"
-msgstr "Khoá cá nhân DSA"
-
-#: ../gcr/gcr-key-renderer.c:264 ../gcr/gcr-parser.c:198
-msgid "Private Key"
-msgstr "Khoá cá nhân"
-
-#: ../gcr/gcr-key-renderer.c:267 ../gcr/gcr-key-renderer.c:269
-msgid "Public DSA Key"
-msgstr "Khoá công khai DSA"
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
-#: ../gcr/gcr-key-renderer.c:278
-#, c-format
-#| msgid "%d bits"
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d bit"
-
-#: ../gcr/gcr-key-renderer.c:279
-msgid "Strength"
-msgstr "Äá»™ mạnh"
-
-#: ../gcr/gcr-key-renderer.c:292
-msgid "Algorithm"
-msgstr "Thuật toán"
-
-#: ../gcr/gcr-key-renderer.c:299
-msgid "Size"
-msgstr "Cỡ"
-
-#. TODO: We need to have consistent key fingerprints.
-#: ../gcr/gcr-key-renderer.c:303
-msgid "Fingerprint"
-msgstr "Vân tay"
-
-#: ../gcr/gcr-parser.c:1569
-msgid "Unrecognized or unsupported data."
-msgstr "Dữ liệu không được nhận ra hay không được hỗ trợ."
-
-#: ../gcr/gcr-parser.c:1572
-msgid "Could not parse invalid or corrupted data."
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
msgstr ""
-"Không thể phân tích cú pháp của dữ liệu không hợp lệ hay dữ liệu bị há»ng."
-#: ../gcr/gcr-parser.c:1575
-msgid "The data is locked"
-msgstr "Dữ liệu bị khoá"
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:420
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "Không tìm thấy vị trí lưu chứng nhận/khoá được nhập."
+msgid "Unexpected error in select() reading data from a child process (%s)"
+msgstr ""
+"Gặp lá»—i bất thÆ°á»ng trong « select() » khi Ä‘á»c dữ liệu từ má»™t tiến trình con "
+"(%s)"
-#: ../gck/gck-uri.c:124 ../gck/gck-uri.c:181 ../gck/gck-uri.c:216
-#: ../gck/gck-uri.c:248
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid "The URI has invalid syntax. The '%s' field encoding is invalid."
-msgstr "URI sai cú pháp. TrÆ°á»ng '%s' sai."
-
-#: ../gck/gck-uri.c:287
-msgid "The URI has does not have the 'pkcs11' scheme."
-msgstr "URI không có 'pkcs11'."
-
-#: ../gck/gck-misc.c:101
-msgid "Insufficient memory available"
-msgstr "Không đủ bộ nhớ"
-
-#: ../gck/gck-misc.c:103
-msgid "The specified slot ID is not valid"
-msgstr "ID khe xác định không hợp lệ"
-
-#: ../gck/gck-misc.c:105
-msgid "Internal error"
-msgstr "Lá»—i ná»™i bá»™"
-
-#: ../gck/gck-misc.c:107
-msgid "The operation failed"
-msgstr "Thao tác thất bại"
-
-#: ../gck/gck-misc.c:109
-msgid "Invalid arguments"
-msgstr "Äối số không hợp lệ"
-
-#: ../gck/gck-misc.c:111
-msgid "The module cannot create needed threads"
-msgstr "Module không thể tạo các thread cần thiết"
-
-#: ../gck/gck-misc.c:113
-msgid "The module cannot lock data properly"
-msgstr "Module không thể khoá dữ liệu đúng cách"
-
-#: ../gck/gck-misc.c:115
-msgid "The field is read-only"
-msgstr "TrÆ°á»ng này chỉ Ä‘á»c"
-
-#: ../gck/gck-misc.c:117
-msgid "The field is sensitive and cannot be revealed"
-msgstr "TrÆ°á»ng nhạy cảm và không thể tiết lá»™"
-
-#: ../gck/gck-misc.c:119
-msgid "The field is invalid or does not exist"
-msgstr "TrÆ°á»ng này không hợp lệ hoặc không tồn tại"
-
-#: ../gck/gck-misc.c:121
-msgid "Invalid value for field"
-msgstr "Giá trị không hợp lệ vá»›i trÆ°á»ng"
-
-#: ../gck/gck-misc.c:123
-msgid "The data is not valid or unrecognized"
-msgstr "Dữ liệu không hợp lệ hoặc không nhận ra được"
-
-#: ../gck/gck-misc.c:125
-msgid "The data is too long"
-msgstr "Dữ liệu quá dài"
-
-#: ../gck/gck-misc.c:127
-msgid "An error occurred on the device"
-msgstr "Lỗi xảy ra trên thiết bị"
-
-#: ../gck/gck-misc.c:129
-msgid "Insufficient memory available on the device"
-msgstr "Không đủ bộ nhớ trên thiết bị."
-
-#: ../gck/gck-misc.c:131
-msgid "The device was removed or unplugged"
-msgstr "Thiết bị đã bị rút ra"
-
-#: ../gck/gck-misc.c:133
-msgid "The encrypted data is not valid or unrecognized"
-msgstr "Dữ liệu mã hoá không hợp lệ hoặc không thể nhận ra"
-
-#: ../gck/gck-misc.c:135
-msgid "The encrypted data is too long"
-msgstr "Dữ liệu mã hoá quá dài"
-
-#: ../gck/gck-misc.c:137
-msgid "This operation is not supported"
-msgstr "Thao tác không được hỗ trợ"
-
-#: ../gck/gck-misc.c:139
-msgid "The key is missing or invalid"
-msgstr "Thiếu khoá hoặc khoá không hợp lệ"
-
-#: ../gck/gck-misc.c:141
-msgid "The key is the wrong size"
-msgstr "Khoá sai kích thước"
-
-#: ../gck/gck-misc.c:143
-msgid "The key is of the wrong type"
-msgstr "Khoá sai kiểu"
-
-#: ../gck/gck-misc.c:145
-msgid "No key is needed"
-msgstr "Không cần khoá"
-
-#: ../gck/gck-misc.c:147
-msgid "The key is different than before"
-msgstr "Khoá khác trước"
-
-#: ../gck/gck-misc.c:149
-msgid "A key is needed"
-msgstr "Cần khoá"
-
-#: ../gck/gck-misc.c:151
-msgid "Cannot include the key in the digest"
-msgstr "Không thể kèm khoá trong tóm tắt"
-
-#: ../gck/gck-misc.c:153
-msgid "This operation cannot be done with this key"
-msgstr "Không thể thực hiện thao tác này với khoá này"
-
-#: ../gck/gck-misc.c:155
-msgid "The key cannot be wrapped"
-msgstr "Khoá không thể bị cuộn"
-
-#: ../gck/gck-misc.c:157
-msgid "Cannot export this key"
-msgstr "Không thể xuất khoá"
-
-#: ../gck/gck-misc.c:159
-msgid "The crypto mechanism is invalid or unrecognized"
-msgstr "Cơ chế mã hoá không hợp lệ hoặc không thể nhận ra"
-
-#: ../gck/gck-misc.c:161
-msgid "The crypto mechanism has an invalid argument"
-msgstr "Cơ chế mã hoá có đối số không hợp lệ"
-
-#: ../gck/gck-misc.c:163
-msgid "The object is missing or invalid"
-msgstr "Thiếu hoặc sai đối tượng"
-
-#: ../gck/gck-misc.c:165
-msgid "Another operation is already taking place"
-msgstr "Một thao tác khác đang được tiến hành"
-
-#: ../gck/gck-misc.c:167
-msgid "No operation is taking place"
-msgstr "Không có thao tác nào đang được tiến hành"
-
-#: ../gck/gck-misc.c:169
-msgid "The password or PIN is incorrect"
-msgstr "Mật khẩu hoặc PIN không đúng"
-
-#: ../gck/gck-misc.c:171
-msgid "The password or PIN is invalid"
-msgstr "Mật khẩu hoặc PIN không hợp lệ"
-
-#: ../gck/gck-misc.c:173
-msgid "The password or PIN is of an invalid length"
-msgstr "Mật khẩu hoặc PIN sai độ dài"
-
-#: ../gck/gck-misc.c:175
-msgid "The password or PIN has expired"
-msgstr "Mật khẩu hoặc PIN đã quá hạn"
-
-#: ../gck/gck-misc.c:177
-msgid "The password or PIN is locked"
-msgstr "Mật khẩu hoặc PIN đã bị khoá"
-
-#: ../gck/gck-misc.c:179
-msgid "The session is closed"
-msgstr "Phiên làm việc đã kết thúc"
-
-#: ../gck/gck-misc.c:181
-msgid "Too many sessions are active"
-msgstr "Quá nhiá»u phiên làm việc Ä‘ang hoạt Ä‘á»™ng"
-
-#: ../gck/gck-misc.c:183
-msgid "The session is invalid"
-msgstr "Phiên làm việc không hợp lệ"
-
-#: ../gck/gck-misc.c:185
-msgid "The session is read-only"
-msgstr "Phiên làm việc chỉ Ä‘á»c"
-
-#: ../gck/gck-misc.c:187
-msgid "An open session exists"
-msgstr "Äang có phiên làm việc mở"
-
-#: ../gck/gck-misc.c:189
-msgid "A read-only session exists"
-msgstr "Äang có phiên làm việc chỉ Ä‘á»c"
-
-#: ../gck/gck-misc.c:191
-msgid "An administrator session exists"
-msgstr "Äang có phiên làm việc quản trị"
-
-#: ../gck/gck-misc.c:193
-msgid "The signature is bad or corrupted"
-msgstr "Chữ ký hư hoặc không đúng"
-
-#: ../gck/gck-misc.c:195
-msgid "The signature is unrecognized or corrupted"
-msgstr "Chữ ký hư hoặc không thể nhận ra"
-
-#: ../gck/gck-misc.c:197
-msgid "Certain required fields are missing"
-msgstr "Thiếu má»™t số trÆ°á»ng bắt buá»™c"
-
-#: ../gck/gck-misc.c:199
-msgid "Certain fields have invalid values"
-msgstr "Má»™t số trÆ°á»ng bắt buá»™c có giá trị không hợp lệ"
-
-#: ../gck/gck-misc.c:201
-msgid "The device is not present or unplugged"
-msgstr "Thiết bị không có hoặc đã bị rút ra"
-
-#: ../gck/gck-misc.c:203
-msgid "The device is invalid or unrecognizable"
-msgstr "Thiết bị không hợp lệ hoặc không thể nhận ra"
-
-#: ../gck/gck-misc.c:205
-msgid "The device is write protected"
-msgstr "Thiết bị được chống ghi"
-
-#: ../gck/gck-misc.c:207
-msgid "Cannot import because the key is invalid"
-msgstr "Không thể nhập vì khoá không hợp lệ"
-
-#: ../gck/gck-misc.c:209
-msgid "Cannot import because the key is of the wrong size"
-msgstr "Không thể nhập vì khoá sai kích thước"
-
-#: ../gck/gck-misc.c:211
-msgid "Cannot import because the key is of the wrong type"
-msgstr "Không thể nhập vì khoá sai kiểu"
-
-#: ../gck/gck-misc.c:213
-msgid "You are already logged in"
-msgstr "Bạn đã đăng nhập rồi"
-
-#: ../gck/gck-misc.c:215
-msgid "No user has logged in"
-msgstr "Không có ngÆ°á»i dùng nào đăng nhập"
-
-#: ../gck/gck-misc.c:217
-msgid "The user's password or PIN is not set"
-msgstr "ChÆ°a đặt mật khẩu ngÆ°á»i dùng hoặc PIN"
-
-#: ../gck/gck-misc.c:219
-msgid "The user is of an invalid type"
-msgstr "NgÆ°á»i dùng sai kiểu"
-
-#: ../gck/gck-misc.c:221
-msgid "Another user is already logged in"
-msgstr "NgÆ°á»i dùng khác đã đăng nhập"
-
-#: ../gck/gck-misc.c:223
-msgid "Too many users of different types are logged in"
-msgstr "Quá nhiá»u ngÆ°á»i dùng thuá»™c các loại khác nhau Ä‘ang đăng nhập"
-
-#: ../gck/gck-misc.c:225
-msgid "Cannot import an invalid key"
-msgstr "Không thể nhập khoá không hợp lệ"
-
-#: ../gck/gck-misc.c:227
-msgid "Cannot import a key of the wrong size"
-msgstr "Không thể nhập khoá sai kích thước"
-
-#: ../gck/gck-misc.c:229
-msgid "Cannot export because the key is invalid"
-msgstr "Không thể xuất vì khoá không hợp lệ"
-
-#: ../gck/gck-misc.c:231
-msgid "Cannot export because the key is of the wrong size"
-msgstr "Không thể xuất vì khoá sai kích thước"
-
-#: ../gck/gck-misc.c:233
-msgid "Cannot export because the key is of the wrong type"
-msgstr "Không thể xuất vì khoá sai kiểu"
-
-#: ../gck/gck-misc.c:235
-msgid "Unable to initialize the random number generator"
-msgstr "Không thể khởi động bộ phát số ngẫu nhiên"
-
-#: ../gck/gck-misc.c:237
-msgid "No random number generator available"
-msgstr "Không có bộ phát sinh số ngẫu nhiên"
-
-#: ../gck/gck-misc.c:239
-msgid "The crypto mechanism has an invalid parameter"
-msgstr "Cơ chế mã hoá có tham số không hợp lệ"
-
-#: ../gck/gck-misc.c:241
-msgid "Not enough space to store the result"
-msgstr "Không đủ chỗ lưu kết quả"
-
-#: ../gck/gck-misc.c:243
-msgid "The saved state is invalid"
-msgstr "Trạng thái được lưu không hợp lệ"
-
-#: ../gck/gck-misc.c:245
-msgid "The information is sensitive and cannot be revealed"
-msgstr "Thông tin nhạy cảm và không thể tiết lộ"
-
-#: ../gck/gck-misc.c:247
-msgid "The state cannot be saved"
-msgstr "Không thể lưu trạng thái"
-
-#: ../gck/gck-misc.c:249
-msgid "The module has not been initialized"
-msgstr "Module đã được khởi động"
-
-#: ../gck/gck-misc.c:251
-msgid "The module has already been initialized"
-msgstr "Module đã khởi động rồi"
-
-#: ../gck/gck-misc.c:253
-msgid "Cannot lock data"
-msgstr "Không thể khoá dữ liệu"
-
-#: ../gck/gck-misc.c:255
-msgid "The data cannot be locked"
-msgstr "Không thể khoá dữ liệu"
-
-#: ../gck/gck-misc.c:257
-msgid "The signature request was rejected by the user"
-msgstr "NgÆ°á»i dùng từ chối yêu cầu ký"
-
-#: ../gck/gck-misc.c:261
-msgid "Unknown error"
-msgstr "Lỗi lạ"
+msgid "Unexpected error in waitpid() (%s)"
+msgstr "Gặp lá»—i bất thÆ°á»ng trong « waitpid() » (%s)"
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
@@ -867,7 +292,7 @@ msgid "Couldn't parse public SSH key"
msgstr "Không thể phân tích cú pháp của khoá SSH công khai"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "Mật khẩu gỡ khoá cho: %s"
@@ -929,10 +354,22 @@ msgstr "Mở khoá công khai"
msgid "Unlock"
msgstr "Mở khoá"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "Gõ mật khẩu để mở khoá cá nhân"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "Gõ mật khẩu để mở chứng nhận"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "Gõ mật khẩu để mở khoá công khai"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "Gõ mật khẩu để gỡ khoá"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1018,11 +455,11 @@ msgstr "lệnh: "
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:597
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "Lưu mật khẩu không mật mã không?"
-#: ../ui/gku-prompt-tool.c:598
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1031,15 +468,15 @@ msgstr ""
"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 "
"toàn. Má»i ngÆ°á»i Ä‘á»u có thể truy cập vào tập tin của bạn."
-#: ../ui/gku-prompt-tool.c:605
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "Lưu không an toàn"
-#: ../ui/gku-prompt-tool.c:643
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "Mật khẩu không khớp."
-#: ../ui/gku-prompt-tool.c:653
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "Không cho phép mật khẩu trắng"
@@ -1078,115 +515,3 @@ msgstr "Mật khẩu _cũ:"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "_Mật khẩu:"
-
-#~| msgid ""
-#~| "This option enables the PKCS#11 component in the gnome-keyring daemon. "
-#~| "It only takes effect as gnome-keyring-daemon starts, (ie: when the user "
-#~| "logs in). This setting may be overridden when certain command line "
-#~| "arguments are passed to the daemon."
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Tuỳ chá»n này hiệu lá»±c thành phần PKCS#11 trong trình ná»n gnome-keyring. "
-#~ "Nó chỉ có tác dụng trong khi khởi chạy bằng gnome-session (ví dụ: khi "
-#~ "ngÆ°á»i dùng đăng nhập). Thiết lập này có thể bị ghi đè bằng đối số dòng "
-#~ "lệnh truyá»n cho trình ná»n."
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "Tuỳ chá»n này bật SSH agent trong gnome-keyring daemon. Nó chỉ có tác dụng "
-#~ "khi gnome-keyring-daemon hoạt Ä‘á»™ng, (ví dụ: khi ngÆ°á»i dùng đăng nhập). "
-#~ "Thiết lập này có thể bị ghi đè bằng đối số dòng lệnh truyá»n cho daemon."
-
-#~| msgid ""
-#~| "This option enables the PKCS#11 component in the gnome-keyring daemon. "
-#~| "It only takes effect as gnome-keyring-daemon starts, (ie: when the user "
-#~| "logs in). This setting may be overridden when certain command line "
-#~| "arguments are passed to the daemon."
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "Tuỳ chá»n này hiệu lá»±c thành phần dịch vụ mật trong trình ná»n gnome-"
-#~ "keyring. Nó chỉ có tác dụng trong khi khi khởi chạy bằng gnome-session "
-#~ "(ví dụ: khi ngÆ°á»i dùng đăng nhập). Thiết lập này có thể bị ghi đè bằng "
-#~ "đối số dòng lệnh truyá»n cho trình ná»n."
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "Có bật thành phần gnome-keyring PKCS#11 hay không."
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "Có bật gnome-keyring SSH agent hay không."
-
-#~| msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr "Có bật dịch vụ mật của gnome-keyring hay không."
-
-#~ msgid "Email"
-#~ msgstr "Äịa chỉ thÆ°"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>Không phải phần của chứng nhận</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>không rõ</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<Không phải phần của chứng nhận>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>Vân tay</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>Cấp bởi</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>Cấp cho</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>Chứng nhận này đã được thẩm tra cho những mục đích theo đây:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>Äúng đắn</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "Tên chung (TC)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "Chứng nhận ngÆ°á»i nhận thÆ° Ä‘iện tá»­"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "Chứng nhận ngÆ°á»i ký thÆ° Ä‘iện tá»­"
-
-#~ msgid "Issued On"
-#~ msgstr "Cấp vào"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "Vân tay MD5"
-
-#~ msgid "Organization (O)"
-#~ msgstr "Tổ chức (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "ÄÆ¡n vị tổ chức (OU)"
-
-#~ msgid "SHA1 Fingerprint"
-#~ msgstr "Vân tay SHA1"
-
-#~ msgid "SSL Client Certificate"
-#~ msgstr "Chứng nhận ứng dụng khách SSL"
-
-#~ msgid "SSL Server Certificate"
-#~ msgstr "Chứng nhận trình phục vụ SSL"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr "<span size='large' weight='bold'>Nhập các Chứng nhận và Khoá</span>"
diff --git a/po/xh.po b/po/xh.po
index ac1a5021..d46637b0 100644
--- a/po/xh.po
+++ b/po/xh.po
@@ -8,400 +8,520 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-18 20:49+0200\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2005-02-22 20:36+0200\n"
"Last-Translator: Canonical Ltd <translations@canonical.com>\n"
"Language-Team: Xhosa <xh-translate@ubuntu.com>\n"
+"Language: xh\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../gnome-keyring-ask.c:241
-msgid "_Old password:"
+#. TRANSLATORS: This is the label for an keyring created without a label
+#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
+#: ../pkcs11/secret-store/gkm-secret-collection.c:325
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
+msgid "Unnamed"
msgstr ""
-#: ../gnome-keyring-ask.c:262
-msgid "_Password:"
+#: ../daemon/dbus/gkd-secret-change.c:86
+#, fuzzy
+msgid "Change Keyring Password"
+msgstr "i-Password Entsha Yomsesane wesitshixo"
+
+#: ../daemon/dbus/gkd-secret-change.c:88
+#, fuzzy, c-format
+msgid "Choose a new password for the '%s' keyring"
+msgstr "Khetha i-password usenzela umsesane omtsha wesitshixo"
+
+#: ../daemon/dbus/gkd-secret-change.c:92
+#, fuzzy, c-format
+msgid ""
+"An application wants to change the password for the '%s' keyring. Choose the "
+"new password you want to use for it."
msgstr ""
+"Inkqubo engaziwayo ifuna ukudala umsesane omtsha wesitshixo wokumisela. "
+"Kufuneka ukhethe i-password ofuna ukuyisebenzisela wona."
-#: ../gnome-keyring-ask.c:284
-msgid "_Confirm new password:"
+#: ../daemon/dbus/gkd-secret-change.c:111
+msgid "The original password was incorrect"
msgstr ""
-#. Strength bar:
-#: ../gnome-keyring-ask.c:303
-msgid "<span weight=\"bold\">Password strength meter:</span>"
+#: ../daemon/dbus/gkd-secret-create.c:83
+msgid "New Keyring Password"
+msgstr "i-Password Entsha Yomsesane wesitshixo"
+
+#: ../daemon/dbus/gkd-secret-create.c:84
+msgid "Choose password for new keyring"
+msgstr "Khetha i-password usenzela umsesane omtsha wesitshixo"
+
+#: ../daemon/dbus/gkd-secret-create.c:86
+#, fuzzy, c-format
+msgid ""
+"An application wants to create a new keyring called '%s'. Choose the "
+"password you want to use for it."
msgstr ""
+"Inkqubo engaziwayo ifuna ukudala umsesane omtsha wesitshixo obizwa ngokuba "
+"yi '%s'. Kufuneka ukhethe i-password ofuna ukuyisebenzisela wona."
-#: ../gnome-keyring-ask.c:329
-msgid "Old password cannot be blank."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:1
+msgid "Certificate and Key Storage"
msgstr ""
-#: ../gnome-keyring-ask.c:340
-msgid "Password cannot be blank."
+#: ../daemon/gnome-keyring-pkcs11.desktop.in.in.h:2
+msgid "GNOME Keyring: PKCS#11 Component"
msgstr ""
-#: ../gnome-keyring-ask.c:348
-msgid "Passwords do not match."
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:1
+msgid "GNOME Keyring: Secret Service"
msgstr ""
-#: ../gnome-keyring-ask.c:407
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the default keyring, but it is "
-"locked"
+#: ../daemon/gnome-keyring-secrets.desktop.in.in.h:2
+msgid "Secret Storage Service"
msgstr ""
-"Inkqubo i '%s' (%s) ifuna ufikelelo kumsesane wesitshixo wokumisela, kodwa "
-"utshixiwe"
-#: ../gnome-keyring-ask.c:411
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to the keyring '%s', but it is locked"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:1
+msgid "GNOME Keyring: SSH Agent"
msgstr ""
-"Inkqubo i '%s' (%s) ifuna ufikelelo kumsesane wesitshixo we '%s', kodwa "
-"utshixiwe"
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:416
-#, c-format
-msgid ""
-"The application '%s' (%s) wants access to an unknown keyring, but it is "
-"locked"
+#: ../daemon/gnome-keyring-ssh.desktop.in.in.h:2
+msgid "SSH Key Agent"
msgstr ""
-"Inkqubo i '%s' (%s) ifuna ufikelelo kumsesane wesitshixo ongaziwayo, kodwa "
-"utshixiwe"
-#: ../gnome-keyring-ask.c:422 ../gnome-keyring-ask.c:436
-#, c-format
-msgid ""
-"The application '%s' wants access to the default keyring, but it is locked"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:1
+msgid "GNOME Keyring: GPG Agent"
msgstr ""
-"Inkqubo i '%s' ifuna ufikelelo kumsesane wesitshixo wokumisela, kodwa "
-"utshixiwe"
-#: ../gnome-keyring-ask.c:426 ../gnome-keyring-ask.c:441
-#, c-format
-msgid "The application '%s' wants access to the keyring '%s', but it is locked"
+#: ../daemon/gnome-keyring-gpg.desktop.in.in.h:2
+msgid "GPG Password Agent"
+msgstr ""
+
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
+msgid "Unknown"
msgstr ""
-"Inkqubo i '%s' ifuna ufikelelo kumsesane wesitshixo we '%s', kodwa utshixiwe"
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:430 ../gnome-keyring-ask.c:446
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
-msgid ""
-"The application '%s' wants access to an unknown keyring, but it is locked"
+msgid "PGP Key: %s"
msgstr ""
-"Inkqubo i '%s' ifuna ufikelelo kumsesane wesitshixo ongaziwayo, kodwa "
-"utshixiwe"
-#: ../gnome-keyring-ask.c:452
-msgid ""
-"An unknown application wants access to the default keyring, but it is locked"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
+msgid "Enter Passphrase"
msgstr ""
-"Inkqubo engaziwayo ifuna ufikelelo kumsesane wesitshixo wokumisela, kodwa "
-"utshixiwe"
-#: ../gnome-keyring-ask.c:456
-#, c-format
-msgid ""
-"An unknown application wants access to the keyring '%s', but it is locked"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+msgid "Forget this password if idle for"
msgstr ""
-"Inkqubo engaziwayo ifuna ufikelelo kumsesane wesitshixo we '%s', kodwa "
-"utshixiwe"
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:461
-msgid ""
-"An unknown application wants access to an unknown keyring, but it is locked"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
+msgid "Forget this password after"
msgstr ""
-"Inkqubo engaziwayo ifuna ufikelelo kumsesane wesitshixo ongaziwayo, kodwa "
-"utshixiwe"
-#: ../gnome-keyring-ask.c:468
-msgid "Enter password for default keyring to unlock"
-msgstr "Ngenisa i-password ukwenzela ukuba umsesane wesitshixo uvuleke"
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
+msgid "Forget this password when I log out"
+msgstr ""
-#: ../gnome-keyring-ask.c:470
-#, c-format
-msgid "Enter password for keyring '%s' to unlock"
-msgstr "Ngenisa i-password ukwenzela ukuba umsesane wesitshixo we '%s' uvuleke"
+#. TRANSLATORS: This is the display label for the login keyring
+#: ../daemon/login/gkd-login.c:149
+msgid "Login"
+msgstr ""
-#: ../gnome-keyring-ask.c:474
-msgid "Unlock Keyring"
-msgstr "Vula Umsesane wesitshixo"
+#: ../egg/egg-oid.c:41
+msgid "Domain Component"
+msgstr ""
+
+#: ../egg/egg-oid.c:43
+msgid "User ID"
+msgstr ""
+
+#: ../egg/egg-oid.c:46
+msgid "Email Address"
+msgstr ""
+
+#: ../egg/egg-oid.c:54
+msgid "Date of Birth"
+msgstr ""
+
+#: ../egg/egg-oid.c:56
+msgid "Place of Birth"
+msgstr ""
+
+#: ../egg/egg-oid.c:58
+msgid "Gender"
+msgstr ""
+
+#: ../egg/egg-oid.c:60
+msgid "Country of Citizenship"
+msgstr ""
+
+#: ../egg/egg-oid.c:62
+msgid "Country of Residence"
+msgstr ""
+
+#: ../egg/egg-oid.c:65
+msgid "Common Name"
+msgstr ""
+
+#: ../egg/egg-oid.c:67
+msgid "Surname"
+msgstr ""
+
+#: ../egg/egg-oid.c:69
+msgid "Serial Number"
+msgstr ""
+
+#: ../egg/egg-oid.c:71
+msgid "Country"
+msgstr ""
+
+#: ../egg/egg-oid.c:73
+msgid "Locality"
+msgstr ""
+
+#: ../egg/egg-oid.c:75
+msgid "State"
+msgstr ""
+
+#: ../egg/egg-oid.c:77
+msgid "Street"
+msgstr ""
+
+#: ../egg/egg-oid.c:79
+msgid "Organization"
+msgstr ""
+
+#: ../egg/egg-oid.c:81
+msgid "Organizational Unit"
+msgstr ""
+
+#: ../egg/egg-oid.c:83
+msgid "Title"
+msgstr ""
+
+#: ../egg/egg-oid.c:85
+msgid "Telephone Number"
+msgstr ""
+
+#: ../egg/egg-oid.c:87
+msgid "Given Name"
+msgstr ""
+
+#: ../egg/egg-oid.c:89
+msgid "Initials"
+msgstr ""
+
+#: ../egg/egg-oid.c:91
+msgid "Generation Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:93
+msgid "DN Qualifier"
+msgstr ""
+
+#: ../egg/egg-oid.c:95
+msgid "Pseudonym"
+msgstr ""
+
+#: ../egg/egg-oid.c:98
+msgid "RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:99
+msgid "MD2 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:100
+msgid "MD5 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:101
+msgid "SHA1 with RSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:103
+msgid "DSA"
+msgstr ""
+
+#: ../egg/egg-oid.c:104
+msgid "SHA1 with DSA"
+msgstr ""
+
+#. Extended Key Usages
+#: ../egg/egg-oid.c:107
+msgid "Server Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:108
+msgid "Client Authentication"
+msgstr ""
+
+#: ../egg/egg-oid.c:109
+msgid "Code Signing"
+msgstr ""
-#: ../gnome-keyring-ask.c:479 ../gnome-keyring-ask.c:563
-#: ../gnome-keyring-ask.c:655 ../gnome-keyring-ask.c:711
-#: ../gnome-keyring-ask.c:798
-msgid "_Deny"
-msgstr "_Yala"
+#: ../egg/egg-oid.c:110
+msgid "Email Protection"
+msgstr ""
+
+#: ../egg/egg-oid.c:111
+msgid "Time Stamping"
+msgstr ""
-#: ../gnome-keyring-ask.c:517
+#: ../egg/egg-spawn.c:273
#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new keyring called '%s'. You "
-"have to choose the password you want to use for it."
+msgid "Unexpected error in select() reading data from a child process (%s)"
msgstr ""
-"Inkqubo i '%s' (%s) ifuna ukudala umsesane omtsha wesitshixo obizwa ngokuba "
-"yi '%s'. Kufuneka ukhethe i-password ofuna ukuyisebenzisela wona."
-#: ../gnome-keyring-ask.c:521
+#: ../egg/egg-spawn.c:320
#, c-format
-msgid ""
-"The application '%s' (%s) wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+msgid "Unexpected error in waitpid() (%s)"
+msgstr ""
+
+#: ../pkcs11/gkm/gkm-certificate.c:572
+msgid "Unnamed Certificate"
+msgstr ""
+
+#: ../pkcs11/ssh-store/gkm-ssh-private-key.c:339
+msgid "Couldn't parse public SSH key"
msgstr ""
-"Inkqubo i '%s' (%s) ifuna ukudala umsesane omtsha wesitshixo wokumisela. "
-"Kufuneka ukhethe i-password ofuna ukuyisebenzisela wona."
-#: ../gnome-keyring-ask.c:527 ../gnome-keyring-ask.c:537
+#. Get the label ready
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
+msgid "Unlock password for: %s"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:90
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:801
+msgid "The unlock password was incorrect"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:634
+#, fuzzy
+msgid "Unlock Login Keyring"
+msgstr "Vula Umsesane wesitshixo"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:636
+#, fuzzy
+msgid "Enter password to unlock your login keyring"
+msgstr "Khetha i-password usenzela umsesane omtsha wesitshixo"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:640
msgid ""
-"The application '%s' wants to create a new keyring called '%s'. You have to "
-"choose the password you want to use for it."
+"The password you use to log in to your computer no longer matches that of "
+"your login keyring."
msgstr ""
-"Inkqubo i '%s' ifuna ukudala umsesane omtsha wesitshixo obizwa ngokuba yi '%"
-"s'. Kufuneka ukhethe i-password ofuna ukuyisebenzisela wona."
-#: ../gnome-keyring-ask.c:531 ../gnome-keyring-ask.c:541
-#, c-format
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:642
msgid ""
-"The application '%s' wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+"The login keyring did not get unlocked when you logged into your computer."
msgstr ""
-"Inkqubo i '%s' ifuna ukudala umsesane omtsha wesitshixo wokumisela. Kufuneka "
-"ukhethe i-password ofuna ukuyisebenzisela wona."
-#: ../gnome-keyring-ask.c:547
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:660
+msgid "Unlock Keyring"
+msgstr "Vula Umsesane wesitshixo"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:662
#, c-format
-msgid ""
-"An unknown application wants to create a new keyring called '%s'. You have "
-"to choose the password you want to use for it."
+msgid "Enter password for keyring '%s' to unlock"
+msgstr "Ngenisa i-password ukwenzela ukuba umsesane wesitshixo we '%s' uvuleke"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:666
+#, fuzzy, c-format
+msgid "An application wants access to the keyring '%s', but it is locked"
msgstr ""
-"Inkqubo engaziwayo ifuna ukudala umsesane omtsha wesitshixo obizwa ngokuba "
-"yi '%s'. Kufuneka ukhethe i-password ofuna ukuyisebenzisela wona."
+"Inkqubo engaziwayo ifuna ufikelelo kumsesane wesitshixo we '%s', kodwa "
+"utshixiwe"
-#: ../gnome-keyring-ask.c:551
-msgid ""
-"An unknown application wants to create a new default keyring. You have to "
-"choose the password you want to use for it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:686
+msgid "Unlock private key"
msgstr ""
-"Inkqubo engaziwayo ifuna ukudala umsesane omtsha wesitshixo wokumisela. "
-"Kufuneka ukhethe i-password ofuna ukuyisebenzisela wona."
-#: ../gnome-keyring-ask.c:558
-msgid "New Keyring Password"
-msgstr "i-Password Entsha Yomsesane wesitshixo"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:688
+#, fuzzy
+msgid "Unlock certificate"
+msgstr "Vula Umsesane wesitshixo"
-#: ../gnome-keyring-ask.c:559
-msgid "Choose password for new keyring"
-msgstr "Khetha i-password usenzela umsesane omtsha wesitshixo"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:690
+msgid "Unlock public key"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+#, fuzzy
+msgid "Unlock"
+msgstr "Vula Umsesane wesitshixo"
-#: ../gnome-keyring-ask.c:602
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+#, fuzzy
+msgid "Enter password to unlock the private key"
+msgstr "Ngenisa i-password ukwenzela ukuba umsesane wesitshixo uvuleke"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr ""
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
+#, fuzzy
+msgid "Enter password to unlock the public key"
+msgstr "Ngenisa i-password ukwenzela ukuba umsesane wesitshixo uvuleke"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+#, fuzzy
+msgid "Enter password to unlock"
+msgstr "Ngenisa i-password ukwenzela ukuba umsesane wesitshixo we '%s' uvuleke"
+
+#. TRANSLATORS: The private key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, fuzzy, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+msgid "An application wants access to the private key '%s', but it is locked"
msgstr ""
-"Inkqubo i '%s' (%s) ifuna ukudala umsesane omtsha wesitshixo wokumisela. "
-"Kufuneka ukhethe i-password ofuna ukuyisebenzisela wona."
+"Inkqubo engaziwayo ifuna ufikelelo kumsesane wesitshixo we '%s', kodwa "
+"utshixiwe"
-#: ../gnome-keyring-ask.c:606
+#. TRANSLATORS: The certificate is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:720
#, fuzzy, c-format
-msgid ""
-"The application '%s' (%s) wants to change the password for the default "
-"keyring. You have to choose the password you want to use for it."
+msgid "An application wants access to the certificate '%s', but it is locked"
msgstr ""
-"Inkqubo i '%s' (%s) ifuna ukudala umsesane omtsha wesitshixo wokumisela. "
-"Kufuneka ukhethe i-password ofuna ukuyisebenzisela wona."
+"Inkqubo engaziwayo ifuna ufikelelo kumsesane wesitshixo we '%s', kodwa "
+"utshixiwe"
-#: ../gnome-keyring-ask.c:612 ../gnome-keyring-ask.c:622
+#. TRANSLATORS: The public key is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:723
#, fuzzy, c-format
-msgid ""
-"The application '%s' wants to change the password for the '%s' keyring. You "
-"have to choose the password you want to use for it."
+msgid "An application wants access to the public key '%s', but it is locked"
msgstr ""
-"Inkqubo i '%s' ifuna ukudala umsesane omtsha wesitshixo wokumisela. Kufuneka "
-"ukhethe i-password ofuna ukuyisebenzisela wona."
+"Inkqubo engaziwayo ifuna ufikelelo kumsesane wesitshixo we '%s', kodwa "
+"utshixiwe"
-#: ../gnome-keyring-ask.c:616 ../gnome-keyring-ask.c:626
+#. TRANSLATORS: The object '%s' is locked
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:726
#, fuzzy, c-format
-msgid ""
-"The application '%s' wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+msgid "An application wants access to '%s', but it is locked"
+msgstr ""
+"Inkqubo engaziwayo ifuna ufikelelo kumsesane wesitshixo we '%s', kodwa "
+"utshixiwe"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:822
+msgid "Unlock certificate/key storage"
msgstr ""
-"Inkqubo i '%s' ifuna ukudala umsesane omtsha wesitshixo wokumisela. Kufuneka "
-"ukhethe i-password ofuna ukuyisebenzisela wona."
-#: ../gnome-keyring-ask.c:632
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:823
+msgid "Enter password to unlock the certificate/key storage"
+msgstr ""
+
+#. TRANSLATORS: The storage is locked, and needs unlocking before the application can use it.
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:826
#, fuzzy, c-format
msgid ""
-"An unknown application wants to change the password for the '%s' keyring. "
-"You have to choose the password you want to use for it."
+"An application wants access to the certificate/key storage '%s', but it is "
+"locked"
msgstr ""
-"Inkqubo engaziwayo ifuna ukudala umsesane omtsha wesitshixo wokumisela. "
-"Kufuneka ukhethe i-password ofuna ukuyisebenzisela wona."
+"Inkqubo engaziwayo ifuna ufikelelo kumsesane wesitshixo we '%s', kodwa "
+"utshixiwe"
-#: ../gnome-keyring-ask.c:636
-#, fuzzy
-msgid ""
-"An unknown application wants to change the password for the default keyring. "
-"You have to choose the password you want to use for it."
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1132
+msgid "New Password Required"
msgstr ""
-"Inkqubo engaziwayo ifuna ukudala umsesane omtsha wesitshixo wokumisela. "
-"Kufuneka ukhethe i-password ofuna ukuyisebenzisela wona."
-#: ../gnome-keyring-ask.c:643
-#, fuzzy, c-format
-msgid "Choose a new password for the '%s' keyring. "
-msgstr "Khetha i-password usenzela umsesane omtsha wesitshixo"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1133
+msgid "New password required for secure storage"
+msgstr ""
-#: ../gnome-keyring-ask.c:645
-#, fuzzy
-msgid "Choose a new password for the default keyring. "
-msgstr "Khetha i-password yomsesane wesitshixo wokumisela"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1135
+#, c-format
+msgid ""
+"In order to prepare '%s' for storage of certificates or keys, a password is "
+"required"
+msgstr ""
-#: ../gnome-keyring-ask.c:650
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1258
#, fuzzy
-msgid "Change Keyring Password"
+msgid "Change Password"
msgstr "i-Password Entsha Yomsesane wesitshixo"
-#: ../gnome-keyring-ask.c:689
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1259
+#, fuzzy
+msgid "Change password for secure storage"
+msgstr "Khetha i-password usenzela umsesane omtsha wesitshixo"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:1261
#, c-format
msgid ""
-"The application '%s' (%s) wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+"To change the password for '%s', the original and new passwords are required"
msgstr ""
-"Inkqubo i '%s' (%s) ifuna ukugcina i-password, kodwa awukho umsesane "
-"wesitshixo wokumisela. Ukudala omnye, kufuneka ukhethe i-password onqwenela "
-"ukuyisebenzisela wona."
-#: ../gnome-keyring-ask.c:693 ../gnome-keyring-ask.c:697
+#: ../tool/gkr-tool.c:102
#, c-format
-msgid ""
-"The application '%s' wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+msgid "usage: gnome-keyring command [options]\n"
msgstr ""
-"Inkqubo i '%s' ifuna ukugcina i-password, kodwa akukho msesane wesitshixo "
-"wokumisela. Ukudala omnye, kufuneka ukhethe i-password onqwenela "
-"ukuyisebenzela wona."
-#. app == APPLICATION_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:701
-msgid ""
-"An unknown application wants to store a password, but there is no default "
-"keyring. To create one, you need to choose the password you wish to use for "
-"it."
+#: ../tool/gkr-tool.c:104
+msgid "commands: "
msgstr ""
-"Inkqubo engaziwayo ifuna ukugcina i-password, koda akukho msesane wesitshixo "
-"wokumisela. Ukudala omnye, kufuneka ukhethe i-password onqwenela "
-"ukuyisebenzisela wona."
-
-#: ../gnome-keyring-ask.c:706
-msgid "Create Default Keyring"
-msgstr "Dala Umsesane wesitshixo Wokumisela"
-#: ../gnome-keyring-ask.c:707
-msgid "Choose password for default keyring"
-msgstr "Khetha i-password yomsesane wesitshixo wokumisela"
-
-#: ../gnome-keyring-ask.c:747
-msgid "Allow application access to keyring?"
-msgstr "Uvumela ufikelelo lwenkqubo ukuya kumsesane wesitshixo?"
+#. Translators: keep same length as translated message "commands: "
+#: ../tool/gkr-tool.c:108
+msgid " "
+msgstr ""
-#: ../gnome-keyring-ask.c:750
-#, c-format
-msgid "The application '%s' (%s) wants to access the password for '%s' in %s."
+#: ../ui/gku-prompt-tool.c:591
+msgid "Store passwords unencrypted?"
msgstr ""
-"Inkqubo i '%s' (%s) ifuna ukufikelela kwi-password isenzela i '%s' kwi %s."
-#: ../gnome-keyring-ask.c:753
-#, c-format
+#: ../ui/gku-prompt-tool.c:592
msgid ""
-"The application '%s' (%s) wants to access the password for '%s' in the "
-"default keyring."
+"By choosing to use a blank password, your stored passwords will not be "
+"safely encrypted. They will be accessible by anyone with access to your "
+"files."
msgstr ""
-"Inkqubo i '%s' (%s) ifuna ukufikelela kwi-password isenzela i '%s' kumsesane "
-"wesitshixo wokumisela."
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:756
-#, c-format
-msgid ""
-"The application '%s' (%s) wants to access the password for '%s' in an "
-"unknown keyring."
+#: ../ui/gku-prompt-tool.c:599
+msgid "Use Unsafe Storage"
msgstr ""
-"Inkqubo i '%s' (%s) ifuna ukufikelela kwi-password isenzela i '%s' kumsesane "
-"wesitshixo ongaziwayo."
-#: ../gnome-keyring-ask.c:761 ../gnome-keyring-ask.c:772
-#, c-format
-msgid "The application '%s' wants to access the password for '%s' in %s."
-msgstr "Inkqubo i '%s' ifuna ukufikelela kwi-password isenzela i '%s' kwi %s."
+#: ../ui/gku-prompt-tool.c:639
+msgid "Passwords do not match."
+msgstr ""
-#: ../gnome-keyring-ask.c:764 ../gnome-keyring-ask.c:775
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '%s' in the default "
-"keyring."
+#: ../ui/gku-prompt-tool.c:649
+msgid "Password cannot be blank"
msgstr ""
-"Inkqubo i '%s' ifuna ukufikelela kwi-password isenzela i '%s' kumsesane "
-"wesitshixo wokumisela."
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:767 ../gnome-keyring-ask.c:778
-#, c-format
-msgid ""
-"The application '%s' wants to access the password for '%s' in an unknown "
-"keyring."
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:1
+msgid "Keyring Access"
msgstr ""
-"Inkqubo i '%s' ifuna ukufikelela kwi-password isenzela i '%s' kumsesane "
-"westshixo ongaziwayo."
-#: ../gnome-keyring-ask.c:783
-#, c-format
-msgid "An unknown application wants to access the password for '%s' in %s."
+#: ../ui/gnome-keyring-prompt.desktop.in.in.h:2
+msgid "Unlock access to passwords and other secrets"
msgstr ""
-"Inkqubo engaziwayo ifuna ukufikelela kwi-password isenzela i '%s' kwi %s."
-#: ../gnome-keyring-ask.c:786
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '%s' in the default "
-"keyring."
+#: ../ui/gku-prompt.ui.h:1
+msgid "New password strength"
msgstr ""
-"Inkqubo engaziwayo ifuna ukufikelela kwi-password isenzela i '%s' kumsesane "
-"wesitshixo wokumisela."
-#. keyring == KEYRING_NAME_UNKNOWN
-#: ../gnome-keyring-ask.c:789
-#, c-format
-msgid ""
-"An unknown application wants to access the password for '%s' in an unknown "
-"keyring."
+#: ../ui/gku-prompt.ui.h:2
+msgid "_Application:"
msgstr ""
-"Inkqubo engaziwayo ifuna ukufikelela kwi-password isenzela i '%s' kumsesane "
-"wesitshixo ongaziwayo."
-#: ../gnome-keyring-ask.c:794
-msgid "Allow access"
-msgstr "Vumela ufikelelo"
+#: ../ui/gku-prompt.ui.h:3
+msgid "_Confirm:"
+msgstr ""
-#: ../gnome-keyring-ask.c:799
-msgid "Allow _Once"
-msgstr "Vumela _Kanye"
+#: ../ui/gku-prompt.ui.h:4
+msgid "_Details:"
+msgstr ""
-#: ../gnome-keyring-ask.c:800
-msgid "_Always Allow"
-msgstr "Vumela _Rhoqo"
+#: ../ui/gku-prompt.ui.h:5
+msgid "_Name:"
+msgstr ""
-#: ../gnome-keyring-ask.c:840
-msgid "You must specify the type of request to run\n"
-msgstr "Kufuneka ubalule uhlobo lwesicelo lokuphumeza\n"
+#: ../ui/gku-prompt.ui.h:6
+msgid "_Old Password:"
+msgstr ""
-#: ../gnome-keyring-ask.c:857
-msgid "Unknown request type\n"
-msgstr "Uhlobo lwesicelo olungaziwayo\n"
+#: ../ui/gku-prompt.ui.h:7
+msgid "_Password:"
+msgstr ""
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 84141fa5..e05edc50 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -18,12 +18,12 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring master\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
-"keyring&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-09-19 08:45+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-19 09:22+0000\n"
"Last-Translator: YunQiang Su <wzssyqa@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
+"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bits\n"
@@ -32,7 +32,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "未命å"
@@ -104,35 +104,34 @@ msgstr "GNOME 密钥环:GPG 助手"
msgid "GPG Password Agent"
msgstr "GPG 密ç åŠ©æ‰‹"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "未知"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP 密钥:%s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "输入å£ä»¤"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "空闲超过该时间则åœæ­¢è®°å¿†å¯†ç "
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "该时间以åŽåœæ­¢è®°å¿†å¯†ç "
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "在我注销时åœæ­¢è®°å¿†å¯†ç "
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "登录"
@@ -176,7 +175,7 @@ msgstr "常用å"
msgid "Surname"
msgstr "姓"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "åºåˆ—å·"
@@ -232,7 +231,7 @@ msgstr "DN é™å®šäºº"
msgid "Pseudonym"
msgstr "笔å"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -248,7 +247,7 @@ msgstr "使用 MD5 算法的 RSA 密钥对"
msgid "SHA1 with RSA"
msgstr "使用 SHA1 算法的 RSA 密钥对"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA"
@@ -287,584 +286,6 @@ msgstr "select() 在从å­è¿›ç¨‹ä¸­è¯»å–æ•°æ®æ—¶å‡ºçŽ°å¼‚常错误(%s)"
msgid "Unexpected error in waitpid() (%s)"
msgstr "waitpid() 出现异常错误(%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "加载 PKCS#11 模å—失败:%s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "无效的 PKCS#11 模å—:%s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "无法设置 PKCS#11 模å—:%s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "无法åˆå§‹åŒ– PKCS#11 模å—:%s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "无法åˆå§‹åŒ–注册的 PKCS#11 模å—:%s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "å称"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "é¢å‘者"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "过期"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "è¯ä¹¦"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>以此命å的文件已ç»å­˜åœ¨ã€‚</b>\n"
-"\n"
-"您想用新文件替æ¢å®ƒå—?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "替æ¢(_R)"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "æ“作已å–消。"
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "导出è¯ä¹¦"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "è¯ä¹¦æ–‡ä»¶"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "PEM 文件"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "其他å称"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "XMPP 地å€"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "电å­é‚®ä»¶"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "X400 地å€"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "目录å"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "EDI 方的å称"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "IP 地å€"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "注册的 ID"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "基本约æŸ"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "è¯ä¹¦æŽˆæƒ"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "是"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "å¦"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "最大路径长度"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "æ— é™åˆ¶"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "延长密钥使用"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "å…许的用途"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "主体密钥标识"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "密钥标识"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "æ•°å­—ç­¾å"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "密钥加密"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "æ•°æ®åŠ å¯†"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "密钥åè®®"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "è¯ä¹¦ç­¾å"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "作废列表签å"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "密钥使用"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "使用"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "主体备用å称"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "扩展"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "识别标志"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "值"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "关键"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "ä¸èƒ½å¯¼å‡ºè¯ä¹¦ã€‚"
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "身份"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "认è¯æœºæž„"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "过期"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "主体å"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "é¢å‘者å称"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "é¢å‘çš„è¯ä¹¦"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "版本"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "在此之å‰æ— æ•ˆ"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "在此之åŽæ— æ•ˆ"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "è¯ä¹¦æŒ‡çº¹"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "ç­¾å"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "ç­¾å算法"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "ç­¾åå‚æ•°"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "公共密钥信æ¯"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "密钥算法"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "密钥å‚æ•°"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "密钥大å°"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "密钥 SHA1 指纹"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "公钥"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "详细信æ¯(_D)"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "无法显示“%sâ€"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "无法显示文件"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "原因"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "无法显示此类型的文件。"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "导入è¯ä¹¦å’Œå¯†é’¥"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "导入到:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "密ç ï¼š"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "PGP 密钥"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "密钥 ID"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Gnupg 进程退出,退出代ç ä¸ºï¼š%d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Gnupg 进程由 %d ä¿¡å·ä¸­æ­¢"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1919 ../gcr/gcr-parser.c:2177
-msgid "The operation was cancelled"
-msgstr "æ“作已å–消"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "输入密ç ä»¥è§£é”ç§é’¥"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "输入密ç ä»¥è§£é”è¯ä¹¦"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "输入密é”以解é”"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "è¦å¯¼å…¥ç§é’¥ï¼Œå¿…须将其解密"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "è¦å¯¼å…¥è¯ä¹¦ï¼Œå¿…须将其解密"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "è¦å¯¼å…¥æ•°æ®ï¼Œå¿…须将其解密"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "è¦å¯¼å…¥ç§é’¥ %s,必须将其解密"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "è¦å¯¼å…¥è¯ä¹¦ %s,必须将其解密"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "è¦å¯¼å…¥ %s,必须将其解密"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "没有å¯ç”¨çš„导入ä½ç½®"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "导入è¯ä¹¦/密钥"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "选择æŸä¸ªä½ç½®æ¥ä¿å­˜å¯¼å…¥çš„è¯ä¹¦åŠå¯†é’¥ã€‚"
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "密钥"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "RSA ç§é’¥"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "DSA ç§é’¥"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "ç§é’¥"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "DSA 公钥"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d ä½"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "强度"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "算法"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "长度"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "指纹"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1922
-msgid "Unrecognized or unsupported data."
-msgstr "无法识别或ä¸æ”¯æŒçš„æ•°æ®ã€‚"
-
-#: ../gcr/gcr-parser.c:1925
-msgid "Could not parse invalid or corrupted data."
-msgstr "无法解æžéžæ³•çš„或已æŸåçš„æ•°æ®ã€‚"
-
-#: ../gcr/gcr-parser.c:1928
-msgid "The data is locked"
-msgstr "æ•°æ®å·²è¢«é”定"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "没有找到å¯ä»¥ç”¨æ¥æ¥ä¿å­˜ä¸ªäººèº«ä»½è¯æ˜Žçš„ä½ç½®ã€‚"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "当我登录时自动解é”此密钥环。"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "之åŽé”ä½æ­¤å¯†é’¥çŽ¯"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "é”定该密钥环于空闲"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "在我注销时é”ä½æ­¤å¯†é’¥çŽ¯"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "分钟"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "解é”:%s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "解é”"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "密ç é”™è¯¯"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "密ç "
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr "“%sâ€çš„内容已é”定。è¦æŸ¥çœ‹å…¶å†…容,请输入正确的密ç ã€‚"
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr "内容已é”定。è¦æŸ¥çœ‹å†…容,请输入正确的密ç ã€‚"
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "GCR è¯ä¹¦å’Œå¯†é’¥æŸ¥çœ‹å™¨"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "显示应用程åºç‰ˆæœ¬"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[文件...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- 查看è¯ä¹¦å’Œå¯†é’¥æ–‡ä»¶"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "è¯ä¹¦æŸ¥çœ‹å™¨"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "该 URI çš„ç¼–ç æ— æ•ˆã€‚"
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "该 URI 没有“pkcs11â€ç»“构。"
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "URI 语法错误。"
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "URI 版本å·é”™è¯¯ã€‚"
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "未命åçš„è¯ä¹¦"
@@ -874,7 +295,7 @@ msgid "Couldn't parse public SSH key"
msgstr "æ— æ³•å¤„ç† SSH 公匙"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr " %s 的解é”密ç "
@@ -929,10 +350,26 @@ msgstr "解é”è¯ä¹¦"
msgid "Unlock public key"
msgstr "解é”公钥"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "解é”"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "输入密ç ä»¥è§£é”ç§é’¥"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "输入密ç ä»¥è§£é”è¯ä¹¦"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "输入密ç ä»¥è§£é”公钥"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "输入密é”以解é”"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1016,11 +453,11 @@ msgstr "命令:"
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "以ä¸åŠ å¯†æ–¹å¼å‚¨å­˜å¯†ç å—?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1029,15 +466,15 @@ msgstr ""
"使用空白密ç ï¼Œæ‚¨æ‰€å‚¨å­˜çš„密ç å°†ä¸ä¼šè¢«å®‰å…¨åœ°åŠ å¯†ã€‚能访问您文件的任何人å‡å¯è®¿é—®"
"它们。"
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "使用ä¸å®‰å…¨çš„存储器"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "密ç ä¸åŒ¹é…。"
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "密ç ä¸èƒ½ä¸ºç©º"
@@ -1076,735 +513,3 @@ msgstr "旧密ç (_O):"
#: ../ui/gku-prompt.ui.h:7
msgid "_Password:"
msgstr "密ç (_P):"
-
-#~ msgid "Insufficient memory available"
-#~ msgstr "没有足够的å¯ç”¨å†…å­˜"
-
-#~ msgid "The specified slot ID is not valid"
-#~ msgstr "指定的存储槽 ID 无效"
-
-#~ msgid "Internal error"
-#~ msgstr "内部错误"
-
-#~ msgid "The operation failed"
-#~ msgstr "æ“作失败"
-
-#~ msgid "Invalid arguments"
-#~ msgstr "无效å‚æ•°"
-
-#~ msgid "The module cannot create needed threads"
-#~ msgstr "该模å—无法创建需è¦çš„线程"
-
-#~ msgid "The module cannot lock data properly"
-#~ msgstr "该模å—无法正确é”定数æ®"
-
-#~ msgid "The field is read-only"
-#~ msgstr "该字段åªè¯»"
-
-#~ msgid "The field is sensitive and cannot be revealed"
-#~ msgstr "该字段为æ•æ„Ÿå­—段,无法显示"
-
-#~ msgid "The field is invalid or does not exist"
-#~ msgstr "该字段无效或ä¸å­˜åœ¨"
-
-#~ msgid "Invalid value for field"
-#~ msgstr "无效的字段值"
-
-#~ msgid "The data is not valid or unrecognized"
-#~ msgstr "该数æ®æ— æ•ˆæˆ–无法识别"
-
-#~ msgid "The data is too long"
-#~ msgstr "该数æ®å¤ªé•¿"
-
-#~ msgid "An error occurred on the device"
-#~ msgstr "在设备上å‘生一个错误"
-
-#~ msgid "Insufficient memory available on the device"
-#~ msgstr "设备上å¯ç”¨ç©ºé—´ä¸è¶³"
-
-#~ msgid "The device was removed or unplugged"
-#~ msgstr "该设备已移除或未æ’å…¥"
-
-#~ msgid "The encrypted data is not valid or unrecognized"
-#~ msgstr "该加密数æ®æ— æ•ˆæˆ–无法识别"
-
-#~ msgid "The encrypted data is too long"
-#~ msgstr "该加密数æ®å¤ªé•¿"
-
-#~ msgid "This operation is not supported"
-#~ msgstr "ä¸æ”¯æŒè¯¥æ“作"
-
-#~ msgid "The key is missing or invalid"
-#~ msgstr "该密钥丢失或无效"
-
-#~ msgid "The key is the wrong size"
-#~ msgstr "该密钥大å°é”™è¯¯"
-
-#~ msgid "The key is of the wrong type"
-#~ msgstr "该密钥类型错误"
-
-#~ msgid "No key is needed"
-#~ msgstr "ä¸éœ€è¦å¯†é’¥"
-
-#~ msgid "The key is different than before"
-#~ msgstr "该密钥与之å‰çš„ä¸åŒ"
-
-#~ msgid "A key is needed"
-#~ msgstr "需è¦ä¸€ä¸ªå¯†é’¥"
-
-#~ msgid "Cannot include the key in the digest"
-#~ msgstr "无法在摘è¦ä¸­åŒ…括该密钥"
-
-#~ msgid "This operation cannot be done with this key"
-#~ msgstr "无法用这个密钥完æˆè¿™æ¬¡æ“作"
-
-#~ msgid "The key cannot be wrapped"
-#~ msgstr "该密钥无法å°è£…"
-
-#~ msgid "Cannot export this key"
-#~ msgstr "无法导出该密钥"
-
-#~ msgid "The crypto mechanism is invalid or unrecognized"
-#~ msgstr "加密机制无效或无法识别"
-
-#~ msgid "The crypto mechanism has an invalid argument"
-#~ msgstr "加密机制有一个无效å‚æ•°"
-
-#~ msgid "The object is missing or invalid"
-#~ msgstr "对象缺失或无效"
-
-#~ msgid "Another operation is already taking place"
-#~ msgstr "å¦å¤–çš„æ“作已正在进行"
-
-#~ msgid "No operation is taking place"
-#~ msgstr "没有正在进行的æ“作"
-
-#~ msgid "The password or PIN is incorrect"
-#~ msgstr "密ç æˆ– PIN 错误"
-
-#~ msgid "The password or PIN is invalid"
-#~ msgstr "密ç æˆ– PIN 无效"
-
-#~ msgid "The password or PIN is of an invalid length"
-#~ msgstr "密ç æˆ– PIN 长度无效"
-
-#~ msgid "The password or PIN has expired"
-#~ msgstr "密ç æˆ– PIN 已过期"
-
-#~ msgid "The password or PIN is locked"
-#~ msgstr "密ç æˆ– PIN å·²é”定"
-
-#~ msgid "The session is closed"
-#~ msgstr "会è¯å·²å…³é—­"
-
-#~ msgid "Too many sessions are active"
-#~ msgstr "太多会è¯å¤„于活动中"
-
-#~ msgid "The session is invalid"
-#~ msgstr "本会è¯æ— æ•ˆ"
-
-#~ msgid "The session is read-only"
-#~ msgstr "本会è¯åªè¯»"
-
-#~ msgid "An open session exists"
-#~ msgstr "存在一个打开的会è¯"
-
-#~ msgid "A read-only session exists"
-#~ msgstr "存在一个åªè¯»ä¼šè¯"
-
-#~ msgid "An administrator session exists"
-#~ msgstr "存在一个管ç†è€…会è¯"
-
-#~ msgid "The signature is bad or corrupted"
-#~ msgstr "该签å为å的或已æŸå"
-
-#~ msgid "The signature is unrecognized or corrupted"
-#~ msgstr "该签å无法识别或已æŸå"
-
-#~ msgid "Certain required fields are missing"
-#~ msgstr "æŸè¦æ±‚的字段缺失"
-
-#~ msgid "Certain fields have invalid values"
-#~ msgstr "æŸå­—段有无效值"
-
-#~ msgid "The device is not present or unplugged"
-#~ msgstr "该设备ä¸åœ¨æˆ–未æ’å…¥"
-
-#~ msgid "The device is invalid or unrecognizable"
-#~ msgstr "该设备无效或无法识别"
-
-#~ msgid "The device is write protected"
-#~ msgstr "该设备处于写ä¿æŠ¤ä¸­"
-
-#~ msgid "Cannot import because the key is invalid"
-#~ msgstr "无法导入因为密钥无效"
-
-#~ msgid "Cannot import because the key is of the wrong size"
-#~ msgstr "无法导入因为密钥大å°é”™è¯¯"
-
-#~ msgid "Cannot import because the key is of the wrong type"
-#~ msgstr "无法导入因为密钥类型错误"
-
-#~ msgid "You are already logged in"
-#~ msgstr "您已登录"
-
-#~ msgid "No user has logged in"
-#~ msgstr "没有用户登录"
-
-#~ msgid "The user's password or PIN is not set"
-#~ msgstr "用户密ç æˆ– PIN 没有设定"
-
-#~ msgid "The user is of an invalid type"
-#~ msgstr "该用户为无效类型"
-
-#~ msgid "Another user is already logged in"
-#~ msgstr "å¦å¤–的用户已ç»ç™»å½•"
-
-#~ msgid "Too many users of different types are logged in"
-#~ msgstr "ä¸åŒç±»åž‹çš„用户登录数é‡è¿‡å¤š"
-
-#~ msgid "Cannot import an invalid key"
-#~ msgstr "无法导入无效的密钥"
-
-#~ msgid "Cannot import a key of the wrong size"
-#~ msgstr "无法导入错误大å°çš„密钥"
-
-#~ msgid "Cannot export because the key is invalid"
-#~ msgstr "无法导出因为密钥无效"
-
-#~ msgid "Cannot export because the key is of the wrong size"
-#~ msgstr "无法导出因为密钥大å°é”™è¯¯"
-
-#~ msgid "Cannot export because the key is of the wrong type"
-#~ msgstr "无法导出因为密钥类型错误"
-
-#~ msgid "Unable to initialize the random number generator"
-#~ msgstr "无法åˆå§‹åŒ–éšæœºæ•°äº§ç”Ÿå™¨"
-
-#~ msgid "No random number generator available"
-#~ msgstr "没有éšæœºæ•°äº§ç”Ÿå™¨å¯ç”¨"
-
-#~ msgid "The crypto mechanism has an invalid parameter"
-#~ msgstr "加密机制有一个无效的å‚æ•°"
-
-#~ msgid "Not enough space to store the result"
-#~ msgstr "没有足够的空间æ¥å‚¨å­˜ç»“æžœ"
-
-#~ msgid "The saved state is invalid"
-#~ msgstr "无效的已ä¿å­˜çŠ¶æ€"
-
-#~ msgid "The information is sensitive and cannot be revealed"
-#~ msgstr "æ•æ„Ÿä¿¡æ¯ï¼Œä¸èƒ½é€éœ²"
-
-#~ msgid "The state cannot be saved"
-#~ msgstr "状æ€æ— æ³•ä¿å­˜"
-
-#~ msgid "The module has not been initialized"
-#~ msgstr "模å—没有被åˆå§‹åŒ–"
-
-#~ msgid "The module has already been initialized"
-#~ msgstr "模å—已被åˆå§‹åŒ–"
-
-#~ msgid "Cannot lock data"
-#~ msgstr "无法é”定数æ®"
-
-#~ msgid "The data cannot be locked"
-#~ msgstr "æ•°æ®æ— æ³•è¢«é”定"
-
-#~ msgid "The signature request was rejected by the user"
-#~ msgstr "ç­¾å请求被用户拒ç»"
-
-#~ msgid "Unknown error"
-#~ msgstr "未知错误"
-
-#~ msgid "Fingerprint"
-#~ msgstr "指纹"
-
-#~ msgid "<i>Not Part of Certificate</i>"
-#~ msgstr "<i>éžè¯ä¹¦éƒ¨åˆ†</i>"
-
-#~ msgid "<i>unknown</i>"
-#~ msgstr "<i>未知</i>"
-
-#~ msgid "<Not Part of Certificate>"
-#~ msgstr "<éžè¯ä¹¦éƒ¨åˆ†>"
-
-#~ msgid "<b>Fingerprints</b>"
-#~ msgstr "<b>指纹</b>"
-
-#~ msgid "<b>Issued By</b>"
-#~ msgstr "<b>é¢å‘者</b>"
-
-#~ msgid "<b>Issued To</b>"
-#~ msgstr "<b>é¢å‘ç»™</b>"
-
-#~ msgid "<b>This certificate has been verified for the following uses:</b>"
-#~ msgstr "<b>该è¯ä¹¦å·²ç»éªŒè¯å¯ç”¨ä¸ºä¸‹åˆ—情况:</b>"
-
-#~ msgid "<b>Validity</b>"
-#~ msgstr "<b>有效性</b>"
-
-#~ msgid "Common Name (CN)"
-#~ msgstr "常用å (CN)"
-
-#~ msgid "Email Recipient Certificate"
-#~ msgstr "电å­é‚®ä»¶æŽ¥æ”¶è€…è¯ä¹¦"
-
-#~ msgid "Email Signer Certificate"
-#~ msgstr "电å­é‚®ä»¶ç­¾å‘者è¯ä¹¦"
-
-#~ msgid "MD5 Fingerprint"
-#~ msgstr "MD5 指纹"
-
-#~ msgid "Organization (O)"
-#~ msgstr "组织 (O)"
-
-#~ msgid "Organizational Unit (OU)"
-#~ msgstr "组织å•ä½ (OU)"
-
-#~ msgid "<span size='large' weight='bold'>Import Certificates and Keys</span>"
-#~ msgstr "<span size='large' weight='bold'>导入è¯ä¹¦å’Œå¯†é’¥</span>"
-
-#~ msgid ""
-#~ "This option enables the PKCS#11 component in the gnome-keyring daemon. It "
-#~ "only takes effect during startup with gnome-session, (ie: when the user "
-#~ "logs in). This setting may be overridden when certain command line "
-#~ "arguments are passed to the daemon."
-#~ msgstr ""
-#~ "此选项å¯ç”¨ gnome-keyring 守护进程的 PKCS#11 组件。它仅在 gnome-session å¯"
-#~ "动时生效(å³ç”¨æˆ·ç™»å½•æ—¶)。当一些特定的命令行å‚数传给守护进程时,此设定å¯ä»¥è¢«"
-#~ "覆盖。"
-
-#~ msgid ""
-#~ "This option enables the SSH agent in the gnome-keyring daemon. It only "
-#~ "takes effect as gnome-keyring-daemon starts, (ie: when the user logs in). "
-#~ "This setting may be overridden when certain command line arguments are "
-#~ "passed to the daemon."
-#~ msgstr ""
-#~ "此选项å¯ç”¨ gnome-keyring 守护进程的 SSH 代ç†ã€‚它仅在 gnome-keyring-daemon "
-#~ "å¯åŠ¨æ—¶ç”Ÿæ•ˆ(å³ç”¨æˆ·ç™»å½•æ—¶)。当一些特定的命令行å‚数传给守护进程时,此设定å¯ä»¥"
-#~ "被覆盖。"
-
-#~ msgid ""
-#~ "This option enables the secret service component in the gnome-keyring "
-#~ "daemon. It only takes effect during startup with gnome-session, (ie: when "
-#~ "the user logs in). This setting may be overridden when certain command "
-#~ "line arguments are passed to the daemon."
-#~ msgstr ""
-#~ "此选项å¯ç”¨ gnome-keyring 守护进程的ä¿å¯†æœåŠ¡ç»„件。它仅在 gnome-session å¯åŠ¨"
-#~ "时生效(å³ç”¨æˆ·ç™»å½•æ—¶)。当一些特定的命令行å‚数传给守护进程时,此设定å¯ä»¥è¢«è¦†"
-#~ "盖。"
-
-#~ msgid "Whether the gnome-keyring PKCS#11 component is enabled."
-#~ msgstr "是å¦å¯ç”¨ gnome-keyring PKCS#11 组件"
-
-#~ msgid "Whether the gnome-keyring SSH agent is enabled."
-#~ msgstr "是å¦å¯ç”¨ gnome-keyring SSH 代ç†"
-
-#~ msgid "Whether the gnome-keyring secret service is enabled."
-#~ msgstr "是å¦å¯ç”¨ gnome-keyring ä¿å¯†æœåŠ¡ã€‚"
-
-#~ msgid "Removable Disk: %s"
-#~ msgstr "å¯ç§»åŠ¨ç£ç›˜ï¼š%s"
-
-#~ msgid "Removable Disk"
-#~ msgstr "å¯ç§»åŠ¨ç£ç›˜"
-
-#~ msgid "Home"
-#~ msgstr "主目录"
-
-#~ msgid "The disk or drive this file is located on is not present"
-#~ msgstr "此文件所在的ç£ç›˜æˆ–驱动器ä¸å­˜åœ¨"
-
-#~ msgid "Couldn't create directory: %s"
-#~ msgstr "无法创建目录:%s"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr ""
-#~ "åº”ç”¨ç¨‹åº %s (%s)想è¦è®¿é—®é»˜è®¤å¯†é’¥çŽ¯ä¸­çš„ <object prop='name'/> 的密ç ã€‚"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr "åº”ç”¨ç¨‹åº %s (%s)想è¦è®¿é—® %s 中 <object prop='name'/> 的密ç ã€‚"
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr "åº”ç”¨ç¨‹åº %s 想è¦è®¿é—®é»˜è®¤å¯†é’¥çŽ¯ä¸­ <object prop='name'/> 的密ç ã€‚"
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr "åº”ç”¨ç¨‹åº %s 想è¦è®¿é—® %s 中 <object prop='name'/> 的密ç ã€‚"
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in the default keyring."
-#~ msgstr "一个未知程åºæƒ³è¦è®¿é—®é»˜è®¤å¯†é’¥çŽ¯ä¸­ <object prop='name'/> 的密ç ã€‚"
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '<object "
-#~ "prop='name'/>' in %s."
-#~ msgstr "一个未知程åºæƒ³è¦è®¿é—® %s 中 <object prop='name'/> 的密ç ã€‚"
-
-#~ msgid "Allow access"
-#~ msgstr "å…许访问"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr "åº”ç”¨ç¨‹åº %s (%s)想è¦è®¿é—®é»˜è®¤å¯†é’¥çŽ¯ï¼Œä½†è¯¥å¯†é’¥çŽ¯å·²ä¸Šé”"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to the keyring '%s', but it is "
-#~ "locked"
-#~ msgstr "åº”ç”¨ç¨‹åº %s (%s)想è¦è®¿é—®å¯†é’¥çŽ¯ %s ,但该密钥环已上é”"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the default keyring, but it is locked"
-#~ msgstr "åº”ç”¨ç¨‹åº %s 想è¦è®¿é—®é»˜è®¤å¯†é’¥çŽ¯ï¼Œä½†è¯¥å¯†é’¥çŽ¯å·²ä¸Šé”"
-
-#~ msgid ""
-#~ "The application '%s' wants access to the keyring '%s', but it is locked"
-#~ msgstr "åº”ç”¨ç¨‹åº %s 想è¦è®¿é—®å¯†é’¥çŽ¯ %s ,但该密钥环已上é”"
-
-#~ msgid ""
-#~ "An unknown application wants access to the default keyring, but it is "
-#~ "locked"
-#~ msgstr "未知应用程åºæƒ³è¦è®¿é—®é»˜è®¤å¯†é’¥çŽ¯ï¼Œä½†è¯¥å¯†é’¥çŽ¯å·²ä¸Šé”"
-
-#~ msgid "Enter password for default keyring to unlock"
-#~ msgstr "è¦è§£é™¤é”定,请输入默认密钥环的密ç "
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new keyring called '%s'. You "
-#~ "have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "åº”ç”¨ç¨‹åº %s (%s)想è¦åˆ›å»ºå为 %s 的新密钥环。您必须为该密钥环选择一个密ç ã€‚"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to create a new default keyring. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "åº”ç”¨ç¨‹åº %s (%s)想è¦åˆ›å»ºæ–°çš„默认密钥环。您必须为该密钥环选择一个密ç ã€‚"
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new keyring called '%s'. You have "
-#~ "to choose the password you want to use for it."
-#~ msgstr ""
-#~ "åº”ç”¨ç¨‹åº %s 想è¦åˆ›å»ºå为 %s 的新密钥环。您必须为该密钥环选择一个密ç ã€‚"
-
-#~ msgid ""
-#~ "The application '%s' wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr "åº”ç”¨ç¨‹åº %s 想è¦åˆ›å»ºæ–°çš„默认密钥环。您必须为该密钥环选择一个密ç ã€‚"
-
-#~ msgid ""
-#~ "An unknown application wants to create a new default keyring. You have to "
-#~ "choose the password you want to use for it."
-#~ msgstr "未知应用程åºæƒ³è¦åˆ›å»ºæ–°çš„默认密钥环。您必须为该密钥环选择一个密ç ã€‚"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the '%s' "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "åº”ç”¨ç¨‹åº %s (%s)想è¦æ›´æ”¹ %s 密钥环的密ç ã€‚您必须为该密钥环选择一个密ç ã€‚"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "åº”ç”¨ç¨‹åº %s (%s)想è¦æ›´æ”¹é»˜è®¤å¯†é’¥çŽ¯çš„密ç ã€‚您必须为该密钥环选择一个密ç ã€‚"
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the '%s' keyring. "
-#~ "You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "åº”ç”¨ç¨‹åº %s 想è¦æ›´æ”¹ %s 密钥环的密ç ã€‚您必须为该密钥环选择一个密ç ã€‚"
-
-#~ msgid ""
-#~ "The application '%s' wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "åº”ç”¨ç¨‹åº %s 想è¦æ›´æ”¹é»˜è®¤å¯†é’¥çŽ¯çš„密ç ã€‚您必须为该密钥环选择一个密ç ã€‚"
-
-#~ msgid ""
-#~ "An unknown application wants to change the password for the default "
-#~ "keyring. You have to choose the password you want to use for it."
-#~ msgstr ""
-#~ "未知应用程åºæƒ³è¦æ›´æ”¹é»˜è®¤å¯†é’¥çŽ¯çš„密ç ã€‚您必须为该密钥环选择一个密ç ã€‚"
-
-#~ msgid "Choose a new password for the default keyring. "
-#~ msgstr "为默认密钥环选择新密ç ã€‚"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to store a password, but there is no "
-#~ "default keyring. To create one, you need to choose the password you wish "
-#~ "to use for it."
-#~ msgstr ""
-#~ "åº”ç”¨ç¨‹åº %s (%s)想è¦å­˜å‚¨å¯†ç ï¼Œä½†å°šæ²¡æœ‰é»˜è®¤çš„密钥环。若è¦åˆ›å»ºé»˜è®¤çš„密钥环,"
-#~ "请为其输入密ç ã€‚"
-
-#~ msgid ""
-#~ "The application '%s' wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "åº”ç”¨ç¨‹åº %s 想è¦å­˜å‚¨å¯†ç ï¼Œä½†å°šæ²¡æœ‰é»˜è®¤çš„密钥环。若è¦åˆ›å»ºé»˜è®¤çš„密钥环,请为"
-#~ "其输入密ç ã€‚"
-
-#~ msgid ""
-#~ "An unknown application wants to store a password, but there is no default "
-#~ "keyring. To create one, you need to choose the password you wish to use "
-#~ "for it."
-#~ msgstr ""
-#~ "未知应用程åºæƒ³è¦å­˜å‚¨å¯†ç ï¼Œä½†å°šæ²¡æœ‰é»˜è®¤çš„密钥环。若è¦åˆ›å»ºé»˜è®¤çš„密钥环,请为"
-#~ "其输入密ç ã€‚"
-
-#~ msgid "Create Default Keyring"
-#~ msgstr "创建默认密钥环"
-
-#~ msgid "Choose password for default keyring"
-#~ msgstr "选择默认密钥环的密ç "
-
-#~ msgid "Create Login Keyring"
-#~ msgstr "创建登录密钥环"
-
-#~ msgid "Enter your login password"
-#~ msgstr "输入您的登录密ç "
-
-#~ msgid ""
-#~ "Your login keyring was not automatically created when you logged into "
-#~ "this computer. It will now be created."
-#~ msgstr "您登录到此计算机时,您的登录密钥环未被自动创建。现在创建它。"
-
-#~ msgid "Unlock password for %s keyring"
-#~ msgstr "%s 密钥环的解é”密ç "
-
-#~ msgid "Automatically unlock this private key when I log in."
-#~ msgstr "当我登录时自动解é”æ­¤ç§é’¥ã€‚"
-
-#~ msgid "Automatically unlock this certificate when I log in."
-#~ msgstr "当我登录时自动解é”æ­¤è¯ä¹¦ã€‚"
-
-#~ msgid "Automatically unlock this public key when I log in."
-#~ msgstr "当我登录时自动解é”此公钥。"
-
-#~ msgid "Automatically unlock this when I log in"
-#~ msgstr "当我登录时自动解除此é”定。"
-
-#~ msgid "Automatically unlock secure storage when I log in."
-#~ msgstr "当我登录时自动解é”安全存储器。"
-
-#~ msgid ""
-#~ "<b><big>Could not grab your mouse.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>无法抓å–您的鼠标</big></b>\n"
-#~ "\n"
-#~ "æŸä¸ªæ¶æ„客户端也许正在窃å¬æ‚¨çš„进程,或您正好点击了æŸä¸ªèœå•æˆ–æŸäº›ç¨‹åºåˆšå¥½éœ€"
-#~ "è¦å¾—到焦点\n"
-#~ "\n"
-#~ "请é‡è¯•ã€‚"
-
-#~ msgid ""
-#~ "<b><big>Could not grab your keyboard.</big></b>\n"
-#~ "\n"
-#~ "A malicious client may be eavesdropping on your session or you may have "
-#~ "just clicked a menu or some application just decided to get focus.\n"
-#~ "\n"
-#~ "Try again."
-#~ msgstr ""
-#~ "<b><big>无法抓å–您的键盘</big></b>\n"
-#~ "\n"
-#~ "æŸä¸ªæ¶æ„客户端也许正在窃å¬æ‚¨çš„进程,或您正好点击了æŸä¸ªèœå•æˆ–æŸäº›ç¨‹åºåˆšå¥½éœ€"
-#~ "è¦å¾—到焦点\n"
-#~ "\n"
-#~ "请é‡è¯•ã€‚"
-
-#~ msgid "_Deny"
-#~ msgstr "ç¦æ­¢(_D)"
-
-#~ msgid "C_reate"
-#~ msgstr "创建(_r)"
-
-#~ msgid "C_hange"
-#~ msgstr "改å˜(_h)"
-
-#~ msgid "Allow _Once"
-#~ msgstr "å…许一次(_O)"
-
-#~ msgid "_Always Allow"
-#~ msgstr "总是å…许(_A)"
-
-#~ msgid "Access Denied"
-#~ msgstr "访问被拒ç»"
-
-#~ msgid "The gnome-keyring-daemon application is not running."
-#~ msgstr "gnome-keyring-daemon 应用程åºæ²¡æœ‰è¿è¡Œã€‚"
-
-#~ msgid "Error communicating with gnome-keyring-daemon"
-#~ msgstr "与 gnome-keyring-daemon 通信出错"
-
-#~ msgid "A keyring with that name already exists"
-#~ msgstr "已存在一个åŒå的密钥环"
-
-#~ msgid "Programmer error: The application sent invalid data."
-#~ msgstr "程åºå‘˜é”™è¯¯ï¼šåº”用程åºå‘é€äº†éžæ³•æ•°æ®ã€‚"
-
-#~ msgid "No matching results"
-#~ msgstr "无匹é…结果"
-
-#~ msgid "A keyring with that name does not exist."
-#~ msgstr "ä¸å­˜åœ¨æ­¤å称对应的密钥环"
-
-#~ msgid "The keyring has already been unlocked."
-#~ msgstr "密钥环已被解é”。"
-
-#~ msgid ""
-#~ "A list of paths to PKCS#11 modules to load. No modules are currently "
-#~ "listed by default, as this is still an experimental feature. This is used "
-#~ "by seahorse and other PKCS#11 aware applications."
-#~ msgstr ""
-#~ "加载 PKCS#11 模å—的路径列表。由于这ä»ç„¶æ˜¯ä¸€ä¸ªå®žéªŒä¸­çš„特性,默认情况下,当"
-#~ "å‰æ²¡æœ‰æ¨¡å—被列出。这用于 seahorse 或其他知晓 PKCS#11 的程åºã€‚"
-
-#~ msgid "Import private key"
-#~ msgstr "导入ç§é’¥"
-
-#~ msgid "Import public key"
-#~ msgstr "导入公钥"
-
-#~ msgid "Import"
-#~ msgstr "导入"
-
-#~ msgid "The system wants to import the private key '%s', but it is locked"
-#~ msgstr "系统想è¦å¯¼å…¥ç§é’¥ %s ,但它已上é”"
-
-#~ msgid "The system wants to import the certificate '%s', but it is locked"
-#~ msgstr "系统想è¦å¯¼å…¥è¯ä¹¦ %s ,但它已上é”"
-
-#~ msgid "The system wants to import the public key '%s', but it is locked"
-#~ msgstr "系统想è¦å¯¼å…¥å…¬é’¥ %s ,但它已上é”"
-
-#~ msgid "The system wants to import '%s', but it is locked"
-#~ msgstr "系统想è¦å¯¼å…¥ %s ,但它已上é”"
-
-#~ msgid "Create Storage for Key Information"
-#~ msgstr "为密钥信æ¯åˆ›å»ºå‚¨å­˜å™¨"
-
-#~ msgid "Choose password to protect storage"
-#~ msgstr "选择ä¿æŠ¤å­˜å‚¨å™¨çš„密ç "
-
-#~ msgid ""
-#~ "The system wants to store information about your keys and certificates. "
-#~ "In order to protect this information, choose a password with which it "
-#~ "will be locked."
-#~ msgstr ""
-#~ "系统想è¦ä¿å­˜å…³äºŽæ‚¨å¯†é’¥å’Œè¯ä¹¦çš„ä¿¡æ¯ã€‚为了ä¿æŠ¤è¯¥ä¿¡æ¯ï¼Œè¯·é€‰æ‹©ä¸€ä¸ªå¯†ç ä»¥ç”¨äºŽé”"
-#~ "定。"
-
-#~ msgid "Unlock Storage for Key Information"
-#~ msgstr "为密钥信æ¯è§£é™¤å‚¨å­˜å™¨é”定"
-
-#~ msgid "Enter password to unlock storage"
-#~ msgstr "输入密é”以解除存储器é”定"
-
-#~ msgid ""
-#~ "The system wants to access information about your keys and certificates, "
-#~ "but it is locked."
-#~ msgstr "系统想è¦è®¿é—®å…³äºŽæ‚¨å¯†é’¥å’Œè¯ä¹¦çš„ä¿¡æ¯ï¼Œä½†å®ƒå·²è¢«é”定"
-
-#~ msgid "Trust Association"
-#~ msgstr "ä¿¡ä»»è”盟"
-
-#~ msgid "Cannot delete '%s' because it is tied to other objects."
-#~ msgstr "无法删除 '%s' ,因为它和其他对象绑在一起。"
-
-#~ msgid "Lock private key"
-#~ msgstr "é”定ç§é’¥"
-
-#~ msgid "Lock"
-#~ msgstr "é”定"
-
-#~ msgid "Enter password to protect the private key"
-#~ msgstr "输入密ç ä»¥ä¿æŠ¤ç§åŒ™"
-
-#~ msgid "Enter password to protect storage"
-#~ msgstr "输入密ç ä»¥ä¿æŠ¤å­˜å‚¨å™¨"
-
-#~ msgid ""
-#~ "The system wants to store the private key '%s' on your disk. Please enter "
-#~ "a password to lock it with."
-#~ msgstr "系统想è¦åœ¨æ‚¨çš„ç£ç›˜ä¸Šä¿å­˜ç§é’¥ %s 。请输入一个密ç ä»¥é”定。"
-
-#~ msgid ""
-#~ "The system wants to store '%s' on your disk. Please enter a password to "
-#~ "lock it with."
-#~ msgstr "系统想è¦åœ¨æ‚¨çš„ç£ç›˜ä¸Šå‚¨å­˜ '%s' 。请输入一个密ç ä»¥å°†å…¶é”定。"
-
-#~ msgid "Unrecognized or unsupported file."
-#~ msgstr "未识别的或ä¸è¢«æ”¯æŒçš„文件。"
-
-#~ msgid "Could not parse invalid or corrupted file."
-#~ msgstr "无法解æžéžæ³•çš„或已æŸå的文件。"
-
-#~ msgid "Couldn't read secure shell private key: %s"
-#~ msgstr "无法读å–安全外壳ç§åŒ™ï¼š%s"
-
-#~ msgid "Invalid secure shell private key at: %s"
-#~ msgstr "无效的安全外壳ç§åŒ™åœ¨ï¼š%s"
-
-#~ msgid "Couldn't encrypt the SSH key to store it."
-#~ msgstr "无法加密该 SSH 密钥以ä¿å­˜ã€‚"
-
-#~ msgid "Couldn't encode the SSH key to store it."
-#~ msgstr "无法编ç è¯¥ SSH 密钥以ä¿å­˜ã€‚"
-
-#~ msgid "Old password cannot be blank."
-#~ msgstr "旧密ç ä¸èƒ½ä¸ºç©ºã€‚"
-
-#~ msgid "<span weight=\"bold\">Password strength meter:</span>"
-#~ msgstr "<span weight=\"bold\">密ç é•¿åº¦æµ‹é‡ï¼š</span>"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr "åº”ç”¨ç¨‹åº %s (%s)想è¦è®¿é—®æœªçŸ¥å¯†é’¥çŽ¯ï¼Œä½†è¯¥å¯†é’¥çŽ¯å·²ä¸Šé”"
-
-#~ msgid ""
-#~ "The application '%s' wants access to an unknown keyring, but it is locked"
-#~ msgstr "åº”ç”¨ç¨‹åº %s 想è¦è®¿é—®æœªçŸ¥å¯†é’¥çŽ¯ï¼Œä½†è¯¥å¯†é’¥çŽ¯å·²ä¸Šé”"
-
-#~ msgid ""
-#~ "An unknown application wants access to an unknown keyring, but it is "
-#~ "locked"
-#~ msgstr "未知应用程åºæƒ³è¦è®¿é—®æœªçŸ¥å¯†é’¥çŽ¯ï¼Œä½†è¯¥å¯†é’¥çŽ¯å·²ä¸Šé”"
-
-#~ msgid ""
-#~ "The application '%s' (%s) wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr "åº”ç”¨ç¨‹åº %s (%s)想è¦è®¿é—®æœªçŸ¥å¯†é’¥çŽ¯ä¸­ %s 的密ç ã€‚"
-
-#~ msgid ""
-#~ "The application '%s' wants to access the password for '%s' in an unknown "
-#~ "keyring."
-#~ msgstr "åº”ç”¨ç¨‹åº %s 想è¦è®¿é—®æœªçŸ¥å¯†é’¥çŽ¯ä¸­ %s 的密ç ã€‚"
-
-#~ msgid ""
-#~ "An unknown application wants to access the password for '%s' in an "
-#~ "unknown keyring."
-#~ msgstr "一个未知程åºæƒ³è¦è®¿é—®æœªçŸ¥å¯†é’¥çŽ¯ä¸­ %s 的密ç ã€‚"
-
-#~ msgid "You must specify the type of request to run\n"
-#~ msgstr "您必须指定è¦æ‰§è¡Œçš„请求类型\n"
-
-#~ msgid "Unknown request type\n"
-#~ msgstr "未知的请求类型\n"
diff --git a/po/zh_HK.po b/po/zh_HK.po
index da0aab73..0b1c43be 100644
--- a/po/zh_HK.po
+++ b/po/zh_HK.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring 3.1.91\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-10 15:08+0800\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-10 15:08+0800\n"
"Last-Translator: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>\n"
"Language-Team: Chinese (Hong Kong) <community@linuxhall.org>\n"
@@ -19,7 +19,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "未命åçš„"
@@ -91,35 +91,34 @@ msgstr "GNOME 密碼匙圈:GPG 代ç†ç¨‹å¼"
msgid "GPG Password Agent"
msgstr "GPG 密碼代ç†ç¨‹å¼"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "ä¸æ˜Ž"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP 密碼匙:%s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "輸入密語"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "忘記這個密碼於閒置"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "忘記這個密碼於"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "當我登出時忘記這個密碼"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "登入"
@@ -163,7 +162,7 @@ msgstr "普通å稱"
msgid "Surname"
msgstr "姓"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "åºè™Ÿ"
@@ -219,7 +218,7 @@ msgstr "DN 辨識符號"
msgid "Pseudonym"
msgstr "ç­†å"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -235,7 +234,7 @@ msgstr "MD5 附 RSA 加密"
msgid "SHA1 with RSA"
msgstr "SHA1 附 RSA 加密"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA 加密"
@@ -274,584 +273,6 @@ msgstr "當 select() 從å­ç¨‹åºè®€å–資料時發生未é æœŸçš„錯誤 (%s)"
msgid "Unexpected error in waitpid() (%s)"
msgstr "waitpid() 發生未é æœŸçš„錯誤 (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "載入 PKCS#11 模組時發生錯誤:%s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "無效的 PKCS#11 模組:%s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "無法設定 PKCS#11 模組:%s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "無法åˆå§‹åŒ– PKCS#11 模組:%s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "無法åˆå§‹åŒ–註冊的 PKCS#11 模組:%s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "å稱"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "發照者"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "到期"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "證書"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>以這å稱命å的檔案已經存在。</b>\n"
-"\n"
-"你是å¦å¸Œæœ›ä»¥æ–°çš„檔案來å–代它?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "å–代(_R)"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "æ“作已被å–消。"
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "匯出證書"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "證書檔案"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "PEM 檔案"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "其他å稱"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "XMPP Addr"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "é›»å­éƒµä»¶"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "X400 ä½å€"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "目錄å稱"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "EDI æ–¹å稱"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "IP ä½å€"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "已註冊 ID"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "基本é™åˆ¶"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "核證機關"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "是"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "å¦"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "最大路徑長度"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "ç„¡é™åˆ¶"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "延伸密碼匙用法"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "å…許的用途"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "主旨密碼匙識別碼"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "密碼匙識別碼"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "數碼簽署"
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "密碼匙加密"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "資料加密"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "密碼匙å”è­°"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "證書簽署"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "撤銷清單簽署"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "密碼匙用法"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "用法"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "主旨替代å稱"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "延伸"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "識別碼"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "數值"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "é‡è¦"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "無法匯出這個證書。"
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "身分"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "檢驗者"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "到期"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "主旨å稱"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "發照者å稱"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "已簽發的證書"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "版本"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "在此之å‰ç„¡æ•ˆ"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "在此之後無效"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "證書數碼指紋"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "簽署"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "證書簽署演算法"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "簽署åƒæ•¸"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "公開密碼匙資訊"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "密碼匙演算法"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "密碼匙åƒæ•¸"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "密碼匙大å°"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "密碼匙 SHA1 數碼指紋"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "公開密碼匙"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "詳細資料(_D)"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "無法顯示「%sã€"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "無法顯示檔案"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "原因"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "ä¸èƒ½é¡¯ç¤ºé€™å€‹é¡žåž‹çš„檔案"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "匯入證書和密碼匙"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "匯入到:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "密碼:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "PGP 密碼匙"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "密碼匙 ID"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Gnupg 程åºä¸æ­£å¸¸çµæŸã€‚錯誤碼:%d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Gnupg 程åºè¢«ä¿¡è™Ÿ %d 中止。"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1786 ../gcr/gcr-parser.c:2044
-msgid "The operation was cancelled"
-msgstr "該æ“作已å–消"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "輸入解鎖ç§å¯†å¯†ç¢¼åŒ™çš„密碼"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "輸入解鎖證書的密碼"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "輸入解鎖的密碼"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "為了匯入ç§å¯†å¯†ç¢¼åŒ™ï¼Œå¿…須先把它解鎖"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "為了匯入證書,必須先把它解鎖"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "為了匯入資料,它必須解鎖"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "為了匯入ç§å¯†å¯†ç¢¼åŒ™ã€Œ%sã€ï¼Œå¿…須先把它解鎖"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "為了匯入證書「%sã€ï¼Œå¿…須先把它解鎖"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "為了匯入「%sã€ï¼Œå¿…須先把它解鎖"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "沒有å¯ç”¨çš„ä½ç½®å¯åŒ¯å…¥"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "匯入證書/密碼匙"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "é¸æ“‡ä¸€å€‹ç”¨ä¾†å„²å­˜åŒ¯å…¥çš„證書/密碼匙的ä½ç½®ã€‚"
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "密碼匙"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "RSA ç§å¯†å¯†ç¢¼åŒ™"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "DSA ç§å¯†å¯†ç¢¼åŒ™"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "ç§å¯†å¯†ç¢¼åŒ™"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "DSA 公開密碼匙"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d ä½å…ƒ"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "強度"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "演算法"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "大å°"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "數碼指紋"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1789
-msgid "Unrecognized or unsupported data."
-msgstr "無法辨識或ä¸æ”¯æ´çš„資料。"
-
-#: ../gcr/gcr-parser.c:1792
-msgid "Could not parse invalid or corrupted data."
-msgstr "無法解æžç„¡æ•ˆæˆ–æ毀的資料。"
-
-#: ../gcr/gcr-parser.c:1795
-msgid "The data is locked"
-msgstr "資料已被鎖定"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "找ä¸åˆ°ä½ç½®ä¾†å„²å­˜åŒ¯å…¥çš„證書"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "當我登入時自動解鎖密碼匙圈"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "鎖定這個密碼匙圈於"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "鎖定這個密碼匙圈於閒置"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "當我登出時自動鎖定密碼匙圈"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "分é˜"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "解鎖:%s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "解鎖"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "密碼是ä¸æ­£ç¢ºçš„"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "密碼"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr "「%sã€çš„內容已鎖定。為了檢視內容,請輸入正確的密碼。"
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr "內容已鎖定。為了檢視內容,請輸入正確的密碼。"
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "GCR 證書與密碼匙檢視器"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "顯示應用程å¼çš„版本"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[檔案...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- 檢視證書與密碼匙檔案"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "證書檢視器"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "URI 有無效的編碼。"
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "這個 URI 沒有「pkcs11ã€scheme。"
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "這個 URI 的語法錯誤。"
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "這個 URI 有錯誤的版本號碼。"
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "未命å的證書"
@@ -861,7 +282,7 @@ msgid "Couldn't parse public SSH key"
msgstr "ç„¡æ³•è§£æž SSH 公開密碼匙。"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "解鎖密碼用於:%s"
@@ -916,10 +337,26 @@ msgstr "解鎖證書"
msgid "Unlock public key"
msgstr "解鎖公開密碼匙"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "解鎖"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "輸入解鎖ç§å¯†å¯†ç¢¼åŒ™çš„密碼"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "輸入解鎖證書的密碼"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "輸入解鎖公開密碼匙的密碼"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "輸入解鎖的密碼"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1003,26 +440,28 @@ msgstr "命令:"
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "是å¦å„²å­˜ä¸åŠ å¯†çš„密碼?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
"files."
-msgstr "è‹¥é¸æ“‡ä½¿ç”¨ç©ºç™½å¯†ç¢¼ï¼Œä½ æ‰€å„²å­˜çš„密碼將ä¸æœƒè¢«å®‰å…¨çš„加密。任何能存å–你的檔案的人都將能看到這些密碼。"
+msgstr ""
+"è‹¥é¸æ“‡ä½¿ç”¨ç©ºç™½å¯†ç¢¼ï¼Œä½ æ‰€å„²å­˜çš„密碼將ä¸æœƒè¢«å®‰å…¨çš„加密。任何能存å–你的檔案的人"
+"都將能看到這些密碼。"
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "使用ä¸å®‰å…¨çš„儲存"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "密碼ä¸ç›¸ç¬¦ã€‚"
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "密碼ä¸èƒ½ç©ºç™½"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index f10e4522..0a72681d 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-keyring 3.1.91\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-10 15:08+0800\n"
+"POT-Creation-Date: 2011-10-06 12:59+0200\n"
"PO-Revision-Date: 2011-09-10 15:07+0800\n"
"Last-Translator: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>\n"
"Language-Team: Chinese (traditional)\n"
@@ -19,7 +19,7 @@ msgstr ""
#. TRANSLATORS: This is the label for an keyring created without a label
#: ../daemon/dbus/gkd-secret-change.c:78 ../daemon/dbus/gkd-secret-create.c:79
#: ../pkcs11/secret-store/gkm-secret-collection.c:325
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:789
msgid "Unnamed"
msgstr "未命åçš„"
@@ -91,35 +91,34 @@ msgstr "GNOME 鑰匙圈:GPG 代ç†ç¨‹å¼"
msgid "GPG Password Agent"
msgstr "GPG 密碼代ç†ç¨‹å¼"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:104 ../gcr/gcr-key-renderer.c:314
-#: ../gcr/gcr-key-renderer.c:319
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:106
msgid "Unknown"
msgstr "ä¸æ˜Ž"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:202
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:204
#, c-format
msgid "PGP Key: %s"
msgstr "PGP 金鑰:%s"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:354
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:355
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:356
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:357
msgid "Enter Passphrase"
msgstr "輸入密語"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:397
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
msgid "Forget this password if idle for"
msgstr "忘記這個密碼於閒置"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:398
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:400
msgid "Forget this password after"
msgstr "忘記這個密碼於"
-#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:399
+#: ../daemon/gpg-agent/gkd-gpg-agent-ops.c:401
msgid "Forget this password when I log out"
msgstr "當我登出時忘記這個密碼"
#. TRANSLATORS: This is the display label for the login keyring
-#: ../daemon/login/gkd-login.c:147
+#: ../daemon/login/gkd-login.c:149
msgid "Login"
msgstr "登入"
@@ -163,7 +162,7 @@ msgstr "普通å稱"
msgid "Surname"
msgstr "姓"
-#: ../egg/egg-oid.c:69 ../gcr/gcr-certificate-renderer.c:652
+#: ../egg/egg-oid.c:69
msgid "Serial Number"
msgstr "åºè™Ÿ"
@@ -219,7 +218,7 @@ msgstr "DN 辨識符號"
msgid "Pseudonym"
msgstr "ç­†å"
-#: ../egg/egg-oid.c:98 ../gcr/gcr-key-renderer.c:310
+#: ../egg/egg-oid.c:98
msgid "RSA"
msgstr "RSA"
@@ -235,7 +234,7 @@ msgstr "MD5 附 RSA 加密"
msgid "SHA1 with RSA"
msgstr "SHA1 附 RSA 加密"
-#: ../egg/egg-oid.c:103 ../gcr/gcr-key-renderer.c:312
+#: ../egg/egg-oid.c:103
msgid "DSA"
msgstr "DSA 加密"
@@ -274,584 +273,6 @@ msgstr "當 select() 從å­ç¨‹åºè®€å–資料時發生未é æœŸçš„錯誤 (%s)"
msgid "Unexpected error in waitpid() (%s)"
msgstr "waitpid() 發生未é æœŸçš„錯誤 (%s)"
-#: ../gck/gck-module.c:396
-#, c-format
-msgid "Error loading PKCS#11 module: %s"
-msgstr "載入 PKCS#11 模組時發生錯誤:%s"
-
-#: ../gck/gck-module.c:403
-#, c-format
-msgid "Invalid PKCS#11 module: %s"
-msgstr "無效的 PKCS#11 模組:%s"
-
-#: ../gck/gck-module.c:412
-#, c-format
-msgid "Couldn't setup PKCS#11 module: %s"
-msgstr "無法設定 PKCS#11 模組:%s"
-
-#: ../gck/gck-module.c:428
-#, c-format
-msgid "Couldn't initialize PKCS#11 module: %s"
-msgstr "無法åˆå§‹åŒ– PKCS#11 模組:%s"
-
-#: ../gck/gck-modules.c:67
-#, c-format
-msgid "Couldn't initialize registered PKCS#11 modules: %s"
-msgstr "無法åˆå§‹åŒ–註冊的 PKCS#11 模組:%s"
-
-#. later
-#. later
-#: ../gcr/gcr-certificate.c:388 ../gcr/gcr-gnupg-key.c:629
-msgctxt "column"
-msgid "Name"
-msgstr "å稱"
-
-#: ../gcr/gcr-certificate.c:390
-msgctxt "column"
-msgid "Issued By"
-msgstr "發照者"
-
-#. later
-#: ../gcr/gcr-certificate.c:392
-msgctxt "column"
-msgid "Expires"
-msgstr "到期"
-
-#: ../gcr/gcr-certificate.c:1060 ../gcr/gcr-certificate-exporter.c:462
-#: ../gcr/gcr-certificate-renderer.c:101 ../gcr/gcr-parser.c:260
-msgid "Certificate"
-msgstr "憑證"
-
-#: ../gcr/gcr-certificate-exporter.c:224
-msgid ""
-"<b>A file already exists with this name.</b>\n"
-"\n"
-"Do you want to replace it with a new file?"
-msgstr ""
-"<b>以這å稱命å的檔案已經存在。</b>\n"
-"\n"
-"您是å¦å¸Œæœ›ä»¥æ–°çš„檔案來å–代它?"
-
-#: ../gcr/gcr-certificate-exporter.c:227
-msgid "_Replace"
-msgstr "å–代(_R)"
-
-#: ../gcr/gcr-certificate-exporter.c:257
-#, c-format
-msgid "The operation was cancelled."
-msgstr "æ“作已被å–消。"
-
-#: ../gcr/gcr-certificate-exporter.c:301
-msgid "Export certificate"
-msgstr "匯出憑證"
-
-#: ../gcr/gcr-certificate-exporter.c:313
-msgid "Certificate files"
-msgstr "憑證檔案"
-
-#: ../gcr/gcr-certificate-exporter.c:324
-msgid "PEM files"
-msgstr "PEM 檔案"
-
-#: ../gcr/gcr-certificate-extensions.c:141
-msgid "Other Name"
-msgstr "其他å稱"
-
-#: ../gcr/gcr-certificate-extensions.c:150
-msgid "XMPP Addr"
-msgstr "XMPP Addr"
-
-#: ../gcr/gcr-certificate-extensions.c:154
-msgid "DNS SRV"
-msgstr "DNS SRV"
-
-#: ../gcr/gcr-certificate-extensions.c:166
-msgid "Email"
-msgstr "é›»å­éƒµä»¶"
-
-#: ../gcr/gcr-certificate-extensions.c:174
-msgid "DNS"
-msgstr "DNS"
-
-#: ../gcr/gcr-certificate-extensions.c:182
-msgid "X400 Address"
-msgstr "X400 ä½å€"
-
-#: ../gcr/gcr-certificate-extensions.c:189
-msgid "Directory Name"
-msgstr "目錄å稱"
-
-#: ../gcr/gcr-certificate-extensions.c:197
-msgid "EDI Party Name"
-msgstr "EDI æ–¹å稱"
-
-#: ../gcr/gcr-certificate-extensions.c:204
-msgid "URI"
-msgstr "URI"
-
-#: ../gcr/gcr-certificate-extensions.c:212
-msgid "IP Address"
-msgstr "IP ä½å€"
-
-#: ../gcr/gcr-certificate-extensions.c:220
-msgid "Registered ID"
-msgstr "已註冊 ID"
-
-#: ../gcr/gcr-certificate-renderer.c:116
-msgid "Basic Constraints"
-msgstr "基本é™åˆ¶"
-
-#: ../gcr/gcr-certificate-renderer.c:118
-msgid "Certificate Authority"
-msgstr "憑證管ç†ä¸­å¿ƒ"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "Yes"
-msgstr "是"
-
-#: ../gcr/gcr-certificate-renderer.c:119 ../gcr/gcr-certificate-renderer.c:314
-msgid "No"
-msgstr "å¦"
-
-#: ../gcr/gcr-certificate-renderer.c:122
-msgid "Max Path Length"
-msgstr "最大路徑長度"
-
-#: ../gcr/gcr-certificate-renderer.c:123
-msgid "Unlimited"
-msgstr "ç„¡é™åˆ¶"
-
-#: ../gcr/gcr-certificate-renderer.c:142
-msgid "Extended Key Usage"
-msgstr "延伸金鑰用法"
-
-#: ../gcr/gcr-certificate-renderer.c:153
-msgid "Allowed Purposes"
-msgstr "å…許的用途"
-
-#: ../gcr/gcr-certificate-renderer.c:173
-msgid "Subject Key Identifier"
-msgstr "主旨金鑰識別碼"
-
-#: ../gcr/gcr-certificate-renderer.c:174
-msgid "Key Identifier"
-msgstr "金鑰識別碼"
-
-#: ../gcr/gcr-certificate-renderer.c:185
-msgid "Digital signature"
-msgstr "數ä½ç°½ç« "
-
-#: ../gcr/gcr-certificate-renderer.c:186
-msgid "Key encipherment"
-msgstr "金鑰加密"
-
-#: ../gcr/gcr-certificate-renderer.c:187
-msgid "Data encipherment"
-msgstr "資料加密"
-
-#: ../gcr/gcr-certificate-renderer.c:188
-msgid "Key agreement"
-msgstr "金鑰å”è­°"
-
-#: ../gcr/gcr-certificate-renderer.c:189
-msgid "Certificate signature"
-msgstr "憑證簽章"
-
-#: ../gcr/gcr-certificate-renderer.c:190
-msgid "Revocation list signature"
-msgstr "撤銷清單簽章"
-
-#: ../gcr/gcr-certificate-renderer.c:215
-msgid "Key Usage"
-msgstr "金鑰用法"
-
-#: ../gcr/gcr-certificate-renderer.c:216
-msgid "Usages"
-msgstr "用法"
-
-#: ../gcr/gcr-certificate-renderer.c:236
-msgid "Subject Alternative Names"
-msgstr "主旨替代å稱"
-
-#: ../gcr/gcr-certificate-renderer.c:261
-msgid "Extension"
-msgstr "延伸"
-
-#: ../gcr/gcr-certificate-renderer.c:265
-msgid "Identifier"
-msgstr "識別碼"
-
-#: ../gcr/gcr-certificate-renderer.c:266
-msgid "Value"
-msgstr "數值"
-
-#: ../gcr/gcr-certificate-renderer.c:313
-msgid "Critical"
-msgstr "é‡è¦"
-
-#: ../gcr/gcr-certificate-renderer.c:386
-msgid "Couldn't export the certificate."
-msgstr "無法匯出這個憑證。"
-
-#: ../gcr/gcr-certificate-renderer.c:613
-msgid "Identity"
-msgstr "身分"
-
-#: ../gcr/gcr-certificate-renderer.c:617
-msgid "Verified by"
-msgstr "檢驗者"
-
-#: ../gcr/gcr-certificate-renderer.c:624
-msgid "Expires"
-msgstr "到期"
-
-#. The subject
-#: ../gcr/gcr-certificate-renderer.c:634
-msgid "Subject Name"
-msgstr "主旨å稱"
-
-#. The Issuer
-#: ../gcr/gcr-certificate-renderer.c:638
-msgid "Issuer Name"
-msgstr "發照者å稱"
-
-#. The Issued Parameters
-#: ../gcr/gcr-certificate-renderer.c:642
-msgid "Issued Certificate"
-msgstr "已簽發的憑證"
-
-#: ../gcr/gcr-certificate-renderer.c:647
-msgid "Version"
-msgstr "版本"
-
-#: ../gcr/gcr-certificate-renderer.c:659
-msgid "Not Valid Before"
-msgstr "在此之å‰ç„¡æ•ˆ"
-
-#: ../gcr/gcr-certificate-renderer.c:664
-msgid "Not Valid After"
-msgstr "在此之後無效"
-
-#. Fingerprints
-#: ../gcr/gcr-certificate-renderer.c:669
-msgid "Certificate Fingerprints"
-msgstr "憑證數ä½æŒ‡ç´‹"
-
-#. Signature
-#: ../gcr/gcr-certificate-renderer.c:675 ../gcr/gcr-certificate-renderer.c:687
-msgid "Signature"
-msgstr "簽章"
-
-#: ../gcr/gcr-certificate-renderer.c:679
-msgid "Signature Algorithm"
-msgstr "憑證簽章演算法"
-
-#: ../gcr/gcr-certificate-renderer.c:683
-msgid "Signature Parameters"
-msgstr "簽章åƒæ•¸"
-
-#. Public Key Info
-#: ../gcr/gcr-certificate-renderer.c:691
-msgid "Public Key Info"
-msgstr "公開金鑰資訊"
-
-#: ../gcr/gcr-certificate-renderer.c:696
-msgid "Key Algorithm"
-msgstr "金鑰演算法"
-
-#: ../gcr/gcr-certificate-renderer.c:701
-msgid "Key Parameters"
-msgstr "金鑰åƒæ•¸"
-
-#: ../gcr/gcr-certificate-renderer.c:706
-msgid "Key Size"
-msgstr "金鑰大å°"
-
-#: ../gcr/gcr-certificate-renderer.c:713
-msgid "Key SHA1 Fingerprint"
-msgstr "金鑰 SHA1 數ä½æŒ‡ç´‹"
-
-#: ../gcr/gcr-certificate-renderer.c:719 ../gcr/gcr-key-renderer.c:294
-#: ../gcr/gcr-parser.c:263
-msgid "Public Key"
-msgstr "公開金鑰"
-
-#: ../gcr/gcr-display-view.c:308
-msgid "_Details"
-msgstr "詳細資料(_D)"
-
-#: ../gcr/gcr-failure-renderer.c:163
-#, c-format
-msgid "Could not display '%s'"
-msgstr "無法顯示「%sã€"
-
-#: ../gcr/gcr-failure-renderer.c:165
-msgid "Could not display file"
-msgstr "無法顯示檔案"
-
-#: ../gcr/gcr-failure-renderer.c:170
-msgid "Reason"
-msgstr "原因"
-
-#: ../gcr/gcr-failure-renderer.c:203
-#, c-format
-msgid "Cannot display a file of this type."
-msgstr "ä¸èƒ½é¡¯ç¤ºé€™å€‹é¡žåž‹çš„檔案"
-
-#: ../gcr/gcr-import-dialog.ui.h:1
-msgid "Import Certificates and Keys"
-msgstr "匯入憑證和金鑰"
-
-#: ../gcr/gcr-import-dialog.ui.h:2
-msgid "Import Into:"
-msgstr "匯入到:"
-
-#: ../gcr/gcr-import-dialog.ui.h:3
-msgid "Password:"
-msgstr "密碼:"
-
-#: ../gcr/gcr-gnupg-key.c:251
-msgid "PGP Key"
-msgstr "PGP 金鑰"
-
-#: ../gcr/gcr-gnupg-key.c:631
-msgctxt "column"
-msgid "Key ID"
-msgstr "金鑰 ID"
-
-#: ../gcr/gcr-gnupg-process.c:632
-#, c-format
-msgid "Gnupg process exited with code: %d"
-msgstr "Gnupg 程åºä¸æ­£å¸¸çµæŸã€‚錯誤碼:%d"
-
-#: ../gcr/gcr-gnupg-process.c:639
-#, c-format
-msgid "Gnupg process was terminated with signal: %d"
-msgstr "Gnupg 程åºè¢«ä¿¡è™Ÿ %d 中止。"
-
-#: ../gcr/gcr-gnupg-process.c:695 ../gcr/gcr-importer.c:293
-#: ../gcr/gcr-parser.c:1786 ../gcr/gcr-parser.c:2044
-msgid "The operation was cancelled"
-msgstr "該æ“作已å–消"
-
-#: ../gcr/gcr-importer.c:172 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
-msgid "Enter password to unlock the private key"
-msgstr "輸入解鎖ç§å¯†é‡‘鑰的密碼"
-
-#: ../gcr/gcr-importer.c:174 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
-msgid "Enter password to unlock the certificate"
-msgstr "輸入解鎖憑證的密碼"
-
-#: ../gcr/gcr-importer.c:176 ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
-msgid "Enter password to unlock"
-msgstr "輸入解鎖的密碼"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:185
-msgid "In order to import the private key, it must be unlocked"
-msgstr "為了匯入ç§å¯†é‡‘鑰,必須先把它解鎖"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:188
-msgid "In order to import the certificate, it must be unlocked"
-msgstr "為了匯入憑證,必須先把它解鎖"
-
-#. TRANSLATORS: The data is locked.
-#: ../gcr/gcr-importer.c:191
-msgid "In order to import the data, it must be unlocked"
-msgstr "為了匯入資料,它必須解鎖"
-
-#. TRANSLATORS: The key is locked.
-#: ../gcr/gcr-importer.c:196
-#, c-format
-msgid "In order to import the private key '%s', it must be unlocked"
-msgstr "為了匯入ç§å¯†é‡‘鑰「%sã€ï¼Œå¿…須先把它解鎖"
-
-#. TRANSLATORS: The certificate is locked.
-#: ../gcr/gcr-importer.c:199
-#, c-format
-msgid "In order to import the certificate '%s', it must be unlocked"
-msgstr "為了匯入憑證「%sã€ï¼Œå¿…須先把它解鎖"
-
-#. TRANSLATORS: The object '%s' is locked.
-#: ../gcr/gcr-importer.c:202
-#, c-format
-msgid "In order to import '%s', it must be unlocked"
-msgstr "為了匯入「%sã€ï¼Œå¿…須先把它解鎖"
-
-#: ../gcr/gcr-importer.c:386
-#, c-format
-msgid "No location available to import to"
-msgstr "沒有å¯ç”¨çš„ä½ç½®å¯åŒ¯å…¥"
-
-#: ../gcr/gcr-importer.c:537
-msgid "Import Certificates/Keys"
-msgstr "匯入憑證/金鑰"
-
-#: ../gcr/gcr-importer.c:544
-msgid "Choose a location to store the imported certificates/keys."
-msgstr "é¸æ“‡ä¸€å€‹ç”¨ä¾†å„²å­˜åŒ¯å…¥çš„憑證/金鑰的ä½ç½®ã€‚"
-
-#: ../gcr/gcr-key-renderer.c:82
-msgid "Key"
-msgstr "金鑰"
-
-#: ../gcr/gcr-key-renderer.c:283
-msgid "Private RSA Key"
-msgstr "RSA ç§å¯†é‡‘é‘°"
-
-#: ../gcr/gcr-key-renderer.c:285
-msgid "Private DSA Key"
-msgstr "DSA ç§å¯†é‡‘é‘°"
-
-#: ../gcr/gcr-key-renderer.c:287 ../gcr/gcr-parser.c:257
-msgid "Private Key"
-msgstr "ç§å¯†é‡‘é‘°"
-
-#: ../gcr/gcr-key-renderer.c:290 ../gcr/gcr-key-renderer.c:292
-msgid "Public DSA Key"
-msgstr "DSA 公開金鑰"
-
-#: ../gcr/gcr-key-renderer.c:301
-#, c-format
-msgid "%d bit"
-msgid_plural "%d bits"
-msgstr[0] "%d ä½å…ƒ"
-
-#: ../gcr/gcr-key-renderer.c:302
-msgid "Strength"
-msgstr "強度"
-
-#: ../gcr/gcr-key-renderer.c:315
-msgid "Algorithm"
-msgstr "演算法"
-
-#: ../gcr/gcr-key-renderer.c:322
-msgid "Size"
-msgstr "大å°"
-
-#. Fingerprints
-#: ../gcr/gcr-key-renderer.c:326
-msgid "Fingerprints"
-msgstr "數ä½æŒ‡ç´‹"
-
-#: ../gcr/gcr-key-renderer.c:331
-msgid "SHA1"
-msgstr "SHA1"
-
-#: ../gcr/gcr-key-renderer.c:337
-msgid "SHA256"
-msgstr "SHA256"
-
-#: ../gcr/gcr-parser.c:1789
-msgid "Unrecognized or unsupported data."
-msgstr "無法辨識或ä¸æ”¯æ´çš„資料。"
-
-#: ../gcr/gcr-parser.c:1792
-msgid "Could not parse invalid or corrupted data."
-msgstr "無法解æžç„¡æ•ˆæˆ–æ毀的資料。"
-
-#: ../gcr/gcr-parser.c:1795
-msgid "The data is locked"
-msgstr "資料已被鎖定"
-
-#. Translators: A pinned certificate is an exception which
-#. trusts a given certificate explicitly for a purpose and
-#. communication with a certain peer.
-#: ../gcr/gcr-trust.c:377
-#, c-format
-msgid "Couldn't find a place to store the pinned certificate"
-msgstr "找ä¸åˆ°ä½ç½®ä¾†å„²å­˜åŒ¯å…¥çš„憑證"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:1
-msgid "Automatically unlock this keyring whenever I'm logged in"
-msgstr "當我登入時自動解鎖鑰匙圈"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:2
-msgid "Lock this keyring after"
-msgstr "鎖定這個鑰匙圈於"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:3
-msgid "Lock this keyring if idle for"
-msgstr "鎖定這個鑰匙圈於閒置"
-
-#: ../gcr/gcr-unlock-options-widget.ui.h:4
-msgid "Lock this keyring when I log out"
-msgstr "當我登出時自動鎖定鑰匙圈"
-
-#. Translators: The 'minutes' from 'Lock this keyring if idle for x minutes'.
-#: ../gcr/gcr-unlock-options-widget.ui.h:6
-msgid "minutes"
-msgstr "分é˜"
-
-#: ../gcr/gcr-unlock-renderer.c:63
-#, c-format
-msgid "Unlock: %s"
-msgstr "解鎖:%s"
-
-#: ../gcr/gcr-unlock-renderer.c:65 ../gcr/gcr-unlock-renderer.c:176
-#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
-msgid "Unlock"
-msgstr "解鎖"
-
-#: ../gcr/gcr-unlock-renderer.c:135
-msgid "The password was incorrect"
-msgstr "密碼是ä¸æ­£ç¢ºçš„"
-
-#: ../gcr/gcr-unlock-renderer.c:173
-msgid "Password"
-msgstr "密碼"
-
-#: ../gcr/gcr-unlock-renderer.c:324
-#, c-format
-msgid ""
-"The contents of '%s' are locked. In order to view the contents, enter the "
-"correct password."
-msgstr "「%sã€çš„內容已鎖定。為了檢視內容,請輸入正確的密碼。"
-
-#: ../gcr/gcr-unlock-renderer.c:327
-msgid ""
-"The contents are locked. In order to view the contents, enter the correct "
-"password."
-msgstr "內容已鎖定。為了檢視內容,請輸入正確的密碼。"
-
-#: ../gcr/gcr-viewer-tool.c:41
-msgid "GCR Certificate and Key Viewer"
-msgstr "GCR 憑證與金鑰檢視器"
-
-#: ../gcr/gcr-viewer-tool.c:48
-msgid "Show the application's version"
-msgstr "顯示應用程å¼çš„版本"
-
-#: ../gcr/gcr-viewer-tool.c:50
-msgid "[file...]"
-msgstr "[檔案...]"
-
-#: ../gcr/gcr-viewer-tool.c:104
-msgid "- View certificate and key files"
-msgstr "- 檢視憑證與金鑰檔案"
-
-#: ../gcr/gcr-viewer-tool.c:118
-msgid "Certificate Viewer"
-msgstr "憑證檢視器"
-
-#: ../gck/gck-uri.c:173
-#, c-format
-msgid "The URI has invalid encoding."
-msgstr "URI 有無效的編碼。"
-
-#: ../gck/gck-uri.c:177
-msgid "The URI does not have the 'pkcs11' scheme."
-msgstr "這個 URI 沒有「pkcs11ã€scheme。"
-
-#: ../gck/gck-uri.c:181
-msgid "The URI has bad syntax."
-msgstr "這個 URI 的語法錯誤。"
-
-#: ../gck/gck-uri.c:185
-msgid "The URI has a bad version number."
-msgstr "這個 URI 有錯誤的版本號碼。"
-
#: ../pkcs11/gkm/gkm-certificate.c:572
msgid "Unnamed Certificate"
msgstr "未命å的憑證"
@@ -861,7 +282,7 @@ msgid "Couldn't parse public SSH key"
msgstr "ç„¡æ³•è§£æž SSH 公開金鑰。"
#. Get the label ready
-#: ../pkcs11/wrap-layer/gkm-wrap-login.c:343
+#: ../pkcs11/wrap-layer/gkm-wrap-login.c:345
#, c-format
msgid "Unlock password for: %s"
msgstr "解鎖密碼用於:%s"
@@ -916,10 +337,26 @@ msgstr "解鎖憑證"
msgid "Unlock public key"
msgstr "解鎖公開金鑰"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:692
+msgid "Unlock"
+msgstr "解鎖"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:701
+msgid "Enter password to unlock the private key"
+msgstr "輸入解鎖ç§å¯†é‡‘鑰的密碼"
+
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:703
+msgid "Enter password to unlock the certificate"
+msgstr "輸入解鎖憑證的密碼"
+
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:705
msgid "Enter password to unlock the public key"
msgstr "輸入解鎖公開金鑰的密碼"
+#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:707
+msgid "Enter password to unlock"
+msgstr "輸入解鎖的密碼"
+
#. TRANSLATORS: The private key is locked
#: ../pkcs11/wrap-layer/gkm-wrap-prompt.c:717
#, c-format
@@ -1003,11 +440,11 @@ msgstr "命令:"
msgid " "
msgstr " "
-#: ../ui/gku-prompt-tool.c:594
+#: ../ui/gku-prompt-tool.c:591
msgid "Store passwords unencrypted?"
msgstr "是å¦å„²å­˜ä¸åŠ å¯†çš„密碼?"
-#: ../ui/gku-prompt-tool.c:595
+#: ../ui/gku-prompt-tool.c:592
msgid ""
"By choosing to use a blank password, your stored passwords will not be "
"safely encrypted. They will be accessible by anyone with access to your "
@@ -1016,15 +453,15 @@ msgstr ""
"è‹¥é¸æ“‡ä½¿ç”¨ç©ºç™½å¯†ç¢¼ï¼Œæ‚¨æ‰€å„²å­˜çš„密碼將ä¸æœƒè¢«å®‰å…¨çš„加密。任何能存å–您的檔案的人"
"都將能看到這些密碼。"
-#: ../ui/gku-prompt-tool.c:602
+#: ../ui/gku-prompt-tool.c:599
msgid "Use Unsafe Storage"
msgstr "使用ä¸å®‰å…¨çš„儲存"
-#: ../ui/gku-prompt-tool.c:642
+#: ../ui/gku-prompt-tool.c:639
msgid "Passwords do not match."
msgstr "密碼ä¸ç›¸ç¬¦ã€‚"
-#: ../ui/gku-prompt-tool.c:652
+#: ../ui/gku-prompt-tool.c:649
msgid "Password cannot be blank"
msgstr "密碼ä¸èƒ½ç©ºç™½"
diff --git a/schema/Makefile.am b/schema/Makefile.am
index ad0f15a3..b0f2eefe 100644
--- a/schema/Makefile.am
+++ b/schema/Makefile.am
@@ -1,14 +1,11 @@
gsettings_SCHEMAS = \
- org.gnome.crypto.cache.gschema.xml \
- org.gnome.crypto.pgp.gschema.xml
+ org.gnome.crypto.cache.gschema.xml
@GSETTINGS_RULES@
convert_DATA = \
- org.gnome.crypto.cache.convert \
- org.gnome.crypto.pgp.convert \
- org.gnome.crypto.pgp_keyservers.convert
+ org.gnome.crypto.cache.convert
convertdir = \
$(datarootdir)/GConf/gsettings
diff --git a/schema/org.gnome.crypto.pgp.convert b/schema/org.gnome.crypto.pgp.convert
deleted file mode 100644
index 86387d54..00000000
--- a/schema/org.gnome.crypto.pgp.convert
+++ /dev/null
@@ -1,6 +0,0 @@
-[org.gnome.crypto.pgp]
-default-key = /desktop/pgp/default_key
-ascii-armor = /desktop/pgp/ascii_armor
-sort-recipients-by = /desktop/pgp/recipients/sort_by
-encrypt-to-self = /desktop/pgp/encrypt_to_self
-last-signer = /desktop/pgp/last_signer_openpgp
diff --git a/schema/org.gnome.crypto.pgp.gschema.xml b/schema/org.gnome.crypto.pgp.gschema.xml
deleted file mode 100644
index 08c9d400..00000000
--- a/schema/org.gnome.crypto.pgp.gschema.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<schemalist>
- <schema id="org.gnome.crypto.pgp" path="/desktop/gnome/crypto/pgp/">
- <key name="default-key" type="s">
- <default>''</default>
- <summary>Default PGP Key</summary>
- <description>This specifies the ID of the default PGP key to use for certain operations, mainly signing.</description>
- </key>
- <key name="ascii-armor" type="b">
- <default>true</default>
- <summary>ASCII Armor</summary>
- <description>When encrypting or signing PGP files whether to use ASCII armor encoding.</description>
- </key>
- <key name="sort-recipients-by" type="s">
- <default>'name'</default>
- <summary>The column to sort the recipients</summary>
- <description>Specify the column to sort the recipients window by. Columns are: 'name' and 'id'. Put a '-' in front of the column name to sort in descending order.</description>
- </key>
- <key name="encrypt-to-self" type="b">
- <default>true</default>
- <summary>Whether to always encrypt to default key</summary>
- <description>If set to true, then the default key will always be added to an encryption recipients list.</description>
- </key>
- <key name="last-signer" type="s">
- <default>''</default>
- <summary>Last key used to sign a message.</summary>
- <description>The ID of the last secret key used to sign a message.</description>
- </key>
- <key name="keyservers" type="as">
- <default>['hkp://pool.sks-keyservers.net', 'ldap://keyserver.pgp.com']</default>
- <summary>PGP key servers</summary>
- <description>A list of key server URIs to search for remote PGP keys. A display name can be included, by appending a space and then the name.</description>
- </key>
- </schema>
-</schemalist>
diff --git a/schema/org.gnome.crypto.pgp_keyservers.convert b/schema/org.gnome.crypto.pgp_keyservers.convert
deleted file mode 100644
index 24bbbdda..00000000
--- a/schema/org.gnome.crypto.pgp_keyservers.convert
+++ /dev/null
@@ -1,2 +0,0 @@
-[org.gnome.crypto.pgp]
-keyservers = /desktop/pgp/keyservers/all_keyservers
diff --git a/testing/Makefile.am b/testing/Makefile.am
index 926eaaf6..ea3c9431 100644
--- a/testing/Makefile.am
+++ b/testing/Makefile.am
@@ -1,7 +1,4 @@
-EXTRA_DIST = \
- ca-example
-
CLEANFILES = \
coverage \
coverage.info
diff --git a/testing/ca-example/certs/ca.crt b/testing/ca-example/certs/ca.crt
deleted file mode 100644
index b8d60081..00000000
--- a/testing/ca-example/certs/ca.crt
+++ /dev/null
@@ -1,23 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDxjCCAy+gAwIBAgIJAOpd4Em2fjp3MA0GCSqGSIb3DQEBBQUAMIGGMRMwEQYK
-CZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYHRVhBTVBMRTEeMBwGA1UE
-CxMVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv
-bTEdMBsGCSqGSIb3DQEJARYOY2FAZXhhbXBsZS5jb20wHhcNMDcxMjIwMTc1NjA2
-WhcNMzUwNTA4MTc1NjA2WjCBhjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmS
-JomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsTFUNlcnRpZmljYXRlIEF1dGhvcml0
-eTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5jb20xHTAbBgkqhkiG9w0BCQEWDmNhQGV4
-YW1wbGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD5OjHuXXN2LG3s
-FHISaZZ6L1RSYgRdTenu1nvqkMn/xvzOz385oede1z/7f6BoXyM0kNWCf4SOXtXr
-EIGmQoeURhFfLCnoK8NHfNcel3IPyMPhdJUMJlc3gfpWm+QxjkyqVyMhyYxC9Pmg
-QC7zx4ZKcQrL3zVGYtg8wxmaKY2HwQIDAQABo4IBODCCATQwHQYDVR0OBBYEFNSE
-nYhMCPaaFynFeQ2R5y25+AcFMIG7BgNVHSMEgbMwgbCAFNSEnYhMCPaaFynFeQ2R
-5y25+AcFoYGMpIGJMIGGMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPy
-LGQBGRYHRVhBTVBMRTEeMBwGA1UECxMVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRcw
-FQYDVQQDEw5jYS5leGFtcGxlLmNvbTEdMBsGCSqGSIb3DQEJARYOY2FAZXhhbXBs
-ZS5jb22CCQDqXeBJtn46dzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
-BjAZBgNVHREEEjAQgQ5jYUBleGFtcGxlLmNvbTAZBgNVHRIEEjAQgQ5jYUBleGFt
-cGxlLmNvbTANBgkqhkiG9w0BAQUFAAOBgQA6xjU2aPgMOh2yyz2KCb6d5gNNvfr4
-pLGpZWilbRkA36OOG43zxeRZoumh1ybyOvhm73cMvNihDUyOf7vQe75Qtp5koGPS
-V3mSruhsRGvOZxcV+SJnBj1exKyH3mdaZA74Xg4y5qkUkywPqnP5Y+E6UMJM7Nmw
-kHk2bKJC5vjxoA==
------END CERTIFICATE-----
diff --git a/testing/ca-example/certs/client-future.crt b/testing/ca-example/certs/client-future.crt
deleted file mode 100644
index de1cb75b..00000000
--- a/testing/ca-example/certs/client-future.crt
+++ /dev/null
@@ -1,18 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIC3DCCAkUCAQowDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
-T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLExVDZXJ0aWZpY2F0
-ZSBBdXRob3JpdHkxFzAVBgNVBAMTDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
-AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMDAxMTgxNzI3MDNaFw0yMTAxMTcxNzI3
-MDNaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
-UExFMQ8wDQYDVQQDEwZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEgNDM/dg3t
-9DHNAPz/b87LSxEaKhoZ8AcNBym3LEOdCnXGEnKf0b9lkT5caXu5GAM84ahTCJ7n
-79RVNrqGKM7jbBdSX+ZUfkqJQPhOXD2+0niYQicH92nz78kxmjlbizvd3fM1BlO+
-C/++NWf2EAhORVAjvJrHNokJp3PTNRJ1WWteHeU9PwfGmWHKVc1IgvRFMH08604I
-ZzX5CcxIg/b56g27A7CBPh/KO/qKTDLFFNGc1T2asvY/P3+PeN6y+leFHStCTu7R
-Bi/l4hczZdnwq3BGT6mnjEN7wau2s7pA067SXimNOkYi5fgwspMHi8fJWmYyBypU
-mQBRzwfm77ECAwEAATANBgkqhkiG9w0BAQUFAAOBgQBvt8v930fQtxR7f7Vcb1Hg
-irq1CtffsBqtKYupYg6IgloiRA6U5wdU0e6faA3Ppsmd4SmNKb9ZavIgnDBfx8MP
-1/IpsNOkg0366bP/zzkAhcXspo7PU8yZIqep//wT4TOFz04N8Lshqm8HUejShFdA
-fB8C0LX5Y/2219ZVMaaEbw==
------END CERTIFICATE-----
diff --git a/testing/ca-example/certs/client-past.crt b/testing/ca-example/certs/client-past.crt
deleted file mode 100644
index 2dbb4d1a..00000000
--- a/testing/ca-example/certs/client-past.crt
+++ /dev/null
@@ -1,18 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIC3DCCAkUCAQswDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
-T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLExVDZXJ0aWZpY2F0
-ZSBBdXRob3JpdHkxFzAVBgNVBAMTDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
-AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0wMDAxMTgxNzI3NDdaFw0wMTAxMTcxNzI3
-NDdaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
-UExFMQ8wDQYDVQQDEwZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEgNDM/dg3t
-9DHNAPz/b87LSxEaKhoZ8AcNBym3LEOdCnXGEnKf0b9lkT5caXu5GAM84ahTCJ7n
-79RVNrqGKM7jbBdSX+ZUfkqJQPhOXD2+0niYQicH92nz78kxmjlbizvd3fM1BlO+
-C/++NWf2EAhORVAjvJrHNokJp3PTNRJ1WWteHeU9PwfGmWHKVc1IgvRFMH08604I
-ZzX5CcxIg/b56g27A7CBPh/KO/qKTDLFFNGc1T2asvY/P3+PeN6y+leFHStCTu7R
-Bi/l4hczZdnwq3BGT6mnjEN7wau2s7pA067SXimNOkYi5fgwspMHi8fJWmYyBypU
-mQBRzwfm77ECAwEAATANBgkqhkiG9w0BAQUFAAOBgQBC3BOULAOkRFLKLajHIIB2
-VB0tHOFWuflP/LXso3ogGA8ItqbjacqjRHdTGK79etbxSTdi7k8owMVMPavJnBYk
-TraOkf/xxHo2zWy3XES1lniTUfGgKpjYNlALB6K6DJseZorSOmGA4KllL46MYwNu
-jsLO+5HkS/uNxlKo2l+xGw==
------END CERTIFICATE-----
diff --git a/testing/ca-example/certs/client.crt b/testing/ca-example/certs/client.crt
deleted file mode 100644
index 04bc8ac7..00000000
--- a/testing/ca-example/certs/client.crt
+++ /dev/null
@@ -1,18 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIC3DCCAkUCAQkwDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
-T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLExVDZXJ0aWZpY2F0
-ZSBBdXRob3JpdHkxFzAVBgNVBAMTDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
-AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0xMTAxMTgwNjA0MTFaFw0yMTAxMTUwNjA0
-MTFaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
-UExFMQ8wDQYDVQQDEwZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEgNDM/dg3t
-9DHNAPz/b87LSxEaKhoZ8AcNBym3LEOdCnXGEnKf0b9lkT5caXu5GAM84ahTCJ7n
-79RVNrqGKM7jbBdSX+ZUfkqJQPhOXD2+0niYQicH92nz78kxmjlbizvd3fM1BlO+
-C/++NWf2EAhORVAjvJrHNokJp3PTNRJ1WWteHeU9PwfGmWHKVc1IgvRFMH08604I
-ZzX5CcxIg/b56g27A7CBPh/KO/qKTDLFFNGc1T2asvY/P3+PeN6y+leFHStCTu7R
-Bi/l4hczZdnwq3BGT6mnjEN7wau2s7pA067SXimNOkYi5fgwspMHi8fJWmYyBypU
-mQBRzwfm77ECAwEAATANBgkqhkiG9w0BAQUFAAOBgQA3LuElj2QB9wQvmIxk2Jmb
-IPP2/WS8dwPoCv/N3+6nTx8yRsrILf4QsnEbbsxoYO5jW4r9Kt8m8B/M7YgnBDE9
-zlm7JbXKZf2isSm5TyT627Ymzxrzs5d+7o2eS7SN1DB6PyvRh2ye7EMbyEYD8ULi
-itDUkYkssNCVivYwVvJoMg==
------END CERTIFICATE-----
diff --git a/testing/ca-example/certs/email.crt b/testing/ca-example/certs/email.crt
deleted file mode 100644
index 5e26d926..00000000
--- a/testing/ca-example/certs/email.crt
+++ /dev/null
@@ -1,19 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDEDCCAnmgAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBhjETMBEGCgmSJomT8ixk
-ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsTFUNlcnRp
-ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTA3MTIyMDE4MTAyOVoXDTA4MDEx
-OTE4MTAyOVowYDETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
-B0VYQU1QTEUxDjAMBgNVBAMTBWVtYWlsMSAwHgYJKoZIhvcNAQkBFhFlbWFpbEBl
-eGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALGKZRrb
-s6E1i+J0P8bpj2I1nxl/hDkezTgIs0V9SGGEFdwLwG2QqsGu9eD58KCA8pJ65tKG
-XI5XuIozlyw18SfgEL/P4CWWdG99k8Ihyf9UyFP6JE0G0M/8/YDrA1wXaw24adOH
-+CkrZMFgS0DzN39gPu8kggYpyv1re7O4Ls+D2zbELu19j4uDWOAzUY9nRPuIXUQD
-/gKpQMlBi8oVH+ts7rLjc2yiTBTqUMU1ioKW7++LFD/CnZLSwg8SDTUsDf3HYr8F
-ejAZGEgpBiy00COOIzxjMiDr5XgJHm4iCmh/rt4F2IsmpCFlBRJm4hCTKGSDyTCR
-mDY5v27F6SgsbckCAwEAAaMvMC0wCQYDVR0TBAIwADALBgNVHQ8EBAMCBJAwEwYD
-VR0lBAwwCgYIKwYBBQUHAwQwDQYJKoZIhvcNAQEFBQADgYEAeLL/CxUM8BWu2lSs
-CweOyGyU3vjYM4K2wmO0ClDfoSGFkUxjBfuRP92arJ+fQurS9dwKLMz8yr+/X+NT
-K+47rns2hpG5B+YSgGYrIxfKPLFkXRJmDQEhxVe5fGvPAIJeaRKa+cjndyK/taol
-0FOZxhQa+8qBocTde6111xGQn3c=
------END CERTIFICATE-----
diff --git a/testing/ca-example/certs/generic-dsa.crt b/testing/ca-example/certs/generic-dsa.crt
deleted file mode 100644
index 0d81ef21..00000000
--- a/testing/ca-example/certs/generic-dsa.crt
+++ /dev/null
@@ -1,22 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDkjCCAvugAwIBAgIBBDANBgkqhkiG9w0BAQUFADCBhjETMBEGCgmSJomT8ixk
-ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsTFUNlcnRp
-ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTA3MTIyMDE4NDc0N1oXDTA4MDEx
-OTE4NDc0N1owbDETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
-B0VYQU1QTEUxFDASBgNVBAMTC0dlbmVyaWMgRFNBMSYwJAYJKoZIhvcNAQkBFhdn
-ZW5lcmljLWRzYUBleGFtcGxlLmNvbTCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQCd
-LeaVVA8HNMKFr0UUQe/bj6mJvO+I67hxn/KzCWnMjw9h6vtuTI06OI4XXmEHCVdU
-xykTkp1NSaTanoV8seEbJyyUgFQFBVaFOE8xDHp5RZghAKpdXFP2Yn8wj8y2VYSO
-veFKXj9ySj9A38nbG8mF0imBXNg/nL/EPCynR7JBVwIVAM1DKUetENlaaH+QeAO3
-IwcENMSZAoGBAJFujxH2WB5bU+sjjePwBTRev6qtYzPAXPd+srC747afIasS0Q/+
-pE0Q40bjdGNipf3fs5Cq8s0tYTYeNzAqUej1X5YI7TP+uJyRL7QdD06pg1BbdaAz
-SxnnGjf2b25IvPRdxgy1XetgOmT+qA8nXeLROgTLNOQqxG83ymuMi/w7A4GEAAKB
-gH1y5aPJgkIABsu8t9pP9jp7/C1wC+YXEFBDO1kIR5FNkGl4Ie7KpjpeL7zPe2GY
-uSSJUdMIz+/nWYiSZ2EmOTzGhqQCJO4SxrD2yVuk56MwF8Aj5YtV7qHLm76w1o2f
-80nrJzt7IhjwiLj/eyKlWwShkBv7yVMBS9HsG//hVGu/oxAwDjAMBgNVHRMBAf8E
-AjAAMA0GCSqGSIb3DQEBBQUAA4GBAPRyHCHjWKKVHZ7wSJQOS/Ve8e4DWFiuP9J8
-X4/sXEg59yWjScy9EovZVj5iELZI6OqUArvwVV6w6tewK0BAed4UGp+TyTHjPuJG
-WGxBm2AhtZUlYmpHQ+gA+E9weeFNQWP1QOATmFQ+r18eNH0rUONnR3G0XUYQTgd1
-LgEYxM4t
------END CERTIFICATE-----
diff --git a/testing/ca-example/certs/personal.crt b/testing/ca-example/certs/personal.crt
deleted file mode 100644
index 2c3d54e3..00000000
--- a/testing/ca-example/certs/personal.crt
+++ /dev/null
@@ -1,16 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICmTCCAgICAQwwDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
-T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLExVDZXJ0aWZpY2F0
-ZSBBdXRob3JpdHkxFzAVBgNVBAMTDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
-AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0xMTA5MDExMDM0NDRaFw0yMTA4MjkxMDM0
-NDRaMB8xHTAbBgNVBAMMFHBlcnNvbmFsQGV4YW1wbGUuY29tMIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyRaLlKQr538QVsrdCMMOrDLA/Y3VBoRoUtqT
-BAbIX3YEg6TAPSY6Z7ef7mHMSQVr06Bv7bMqPYtzlKe6XMNiRXvEszSlW42e0V+H
-M/KQE24WC1zV/X+2yoEelz1GvUhRX+4oPT1n1cGKGuCE7ceZnBDkyPgP/fDplekz
-YoDKdU/KLcNmdXFNXnLRsEqbRLAjBe1IcXaUhrxb8HM4yc9Jv72q7vP4DZ2bOX4i
-eX775eBMevJcFftsL1jdnEzKX5H00WaK0kVAAji2Ej+yPZ8BLAIgPrjH1CY+we3F
-jD+GUGJUhsCa1sQpDLxNxvk/KuXGOgL4ft0h7Op9X+wQNFwwBQIDAQABMA0GCSqG
-SIb3DQEBBQUAA4GBAFpkc7qYXeyvs4OI8wEefQx2GrJvTl5cciIDRa/gIDX1E4HA
-1EReBRAkrYSYq4BLN8uD1qhIZphlCC6rcdUvkepxbHa4w+uf0O7R0E4zWg3dYog9
-yYjP4nSG/xoh0EsSZjKb904Y4rohrWgQ0AcXCrZIZGl4/Z/rH92rxeMv6VEn
------END CERTIFICATE-----
diff --git a/testing/ca-example/certs/personal.p12 b/testing/ca-example/certs/personal.p12
deleted file mode 100644
index 7ae3d05d..00000000
--- a/testing/ca-example/certs/personal.p12
+++ /dev/null
Binary files differ
diff --git a/testing/ca-example/certs/server-self.crt b/testing/ca-example/certs/server-self.crt
deleted file mode 100644
index 20b3500b..00000000
--- a/testing/ca-example/certs/server-self.crt
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIBiDCCATICCQDJ4QeFpYPYljANBgkqhkiG9w0BAQUFADBLMRMwEQYKCZImiZPy
-LGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYHRVhBTVBMRTEbMBkGA1UEAxMSc2Vy
-dmVyLmV4YW1wbGUuY29tMB4XDTExMDExOTAzMTYzOFoXDTIxMDExNjAzMTYzOFow
-SzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUx
-GzAZBgNVBAMTEnNlcnZlci5leGFtcGxlLmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sA
-MEgCQQDYScTxk55XBmbDM9zzwO+grVySE4rudWuzH2PpObIonqbfhRoAalKVluG9
-jvbHI81eXxCdSObv1KBP1sbN5RzpAgMBAAEwDQYJKoZIhvcNAQEFBQADQQAagc2P
-/lCfDwT3max+D2M7++KMDfGqiO3gI+hMarf/jAaQpcKO/9G95AnNo4lTd6W6/7yj
-YYvUupv+0vi4CtQG
------END CERTIFICATE-----
diff --git a/testing/ca-example/certs/server.crt b/testing/ca-example/certs/server.crt
deleted file mode 100644
index d4bd5263..00000000
--- a/testing/ca-example/certs/server.crt
+++ /dev/null
@@ -1,14 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICJjCCAY+gAwIBAgIBBzANBgkqhkiG9w0BAQUFADCBhjETMBEGCgmSJomT8ixk
-ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsTFUNlcnRp
-ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTExMDExNzE5NDcxN1oXDTIxMDEx
-NDE5NDcxN1owSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
-B0VYQU1QTEUxGzAZBgNVBAMTEnNlcnZlci5leGFtcGxlLmNvbTBcMA0GCSqGSIb3
-DQEBAQUAA0sAMEgCQQDYScTxk55XBmbDM9zzwO+grVySE4rudWuzH2PpObIonqbf
-hRoAalKVluG9jvbHI81eXxCdSObv1KBP1sbN5RzpAgMBAAGjIjAgMAkGA1UdEwQC
-MAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQEFBQADgYEAYx6fMqT1
-Gvo0jq88E8mc+bmp4LfXD4wJ7KxYeadQxt75HFRpj4FhFO3DOpVRFgzHlOEo3Fwk
-PZOKjvkT0cbcoEq5whLH25dHoQxGoVQgFyAP5s+7Vp5AlHh8Y/vAoXeEVyy/RCIH
-QkhUlAflfDMcrrYjsmwoOPSjhx6Mm/AopX4=
------END CERTIFICATE-----
diff --git a/testing/ca-example/commands.txt b/testing/ca-example/commands.txt
deleted file mode 100644
index 7470640e..00000000
--- a/testing/ca-example/commands.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-# Signing a client certificate
-$ openssl x509 -CAserial serial.txt -CA certs/ca.crt -CAkey keys/ca.key \
- -days 3650 -req -in requests/client.req -out certs/client.crt
-
-# Self-signing a certificate
-$ openssl x509 -signkey keys/server.key -days 3650 -req \
- -in requests/server.req -out certs/server-self.crt
-
-# Generating an basic certificate request
-$ openssl req -new -subj /CN=personal@example.com -out requests/personal.req \
- -keyout keys/personal.key
-
-# Creating a PKCS#12 file from key and certificate
-openssl pkcs12 -export -in certs/personal.crt -inkey keys/personal.key \
- -certfile certs/ca.crt -name "Example Certificate" \
- -out certs/personal.p12 \ No newline at end of file
diff --git a/testing/ca-example/database.txt b/testing/ca-example/database.txt
deleted file mode 100644
index e69de29b..00000000
--- a/testing/ca-example/database.txt
+++ /dev/null
diff --git a/testing/ca-example/keys/ca.key b/testing/ca-example/keys/ca.key
deleted file mode 100644
index 451f2b18..00000000
--- a/testing/ca-example/keys/ca.key
+++ /dev/null
@@ -1,15 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIICXQIBAAKBgQD5OjHuXXN2LG3sFHISaZZ6L1RSYgRdTenu1nvqkMn/xvzOz385
-oede1z/7f6BoXyM0kNWCf4SOXtXrEIGmQoeURhFfLCnoK8NHfNcel3IPyMPhdJUM
-Jlc3gfpWm+QxjkyqVyMhyYxC9PmgQC7zx4ZKcQrL3zVGYtg8wxmaKY2HwQIDAQAB
-AoGBAJv0cJ5KWCAQuVBLkv42mHUo/Mj4kOaaBNLx4GTt6ZlmuXfonCJCT/gnFeCZ
-ApWNQwh3wUOB7D7y1UXc9GRHqXJBLhBWEoqCvRhz7aRAWtwfQ7QI7DaepP5+IiG8
-C3aEh+b2Jqd6bEM4M1Rdywl+Hrs2BZYXarGqdqi126D8HXZpAkEA/W6hGLCOto/k
-qdE9JWMfiolBij6xqfW4HVl+dpGZGRb1IUctnxBUVMcTbLKy4o0KKGr5rnbPjnTG
-gRo1pMetMwJBAPvAqLOJIGT8SImZeW9eAF9jvcmZyVhdXtz9bp+dqbMIHd6rBA1l
-b9PhhT2o1BuEpcrl1brVQSznR/xuMIvS7zsCQC5EzVqRmWyRNsEeN1ilETQcvP99
-VLhf6R5KoYEKMfZXr6dEtHqO46aatdwpf+lGsK0SYsVMYbZzcW5Ol66e2esCQQDD
-CNqpXE6wbZJ0p2WglZ6MR+U8TdvijVN0uRH+rlJN1LfvTWXySud7qndi8WyBdR5M
-NgqCl7vKYdMvCN6rNFsJAkA9cTwm8M1cY0OZfMAlH1CCDzwpo0i5jN2JzwMf//cx
-RWqaOLG1RQOqB2S7yKiiiawI47d5fH4kaMsvLwTnLkN6
------END RSA PRIVATE KEY-----
diff --git a/testing/ca-example/keys/client.key b/testing/ca-example/keys/client.key
deleted file mode 100644
index 206f5272..00000000
--- a/testing/ca-example/keys/client.key
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpQIBAAKCAQEAwSA0Mz92De30Mc0A/P9vzstLERoqGhnwBw0HKbcsQ50KdcYS
-cp/Rv2WRPlxpe7kYAzzhqFMInufv1FU2uoYozuNsF1Jf5lR+SolA+E5cPb7SeJhC
-Jwf3afPvyTGaOVuLO93d8zUGU74L/741Z/YQCE5FUCO8msc2iQmnc9M1EnVZa14d
-5T0/B8aZYcpVzUiC9EUwfTzrTghnNfkJzEiD9vnqDbsDsIE+H8o7+opMMsUU0ZzV
-PZqy9j8/f4943rL6V4UdK0JO7tEGL+XiFzNl2fCrcEZPqaeMQ3vBq7azukDTrtJe
-KY06RiLl+DCykweLx8laZjIHKlSZAFHPB+bvsQIDAQABAoIBAQCQUI1RYnHIdPFO
-qZ+8bvDQ+g8tR30ApjM8QZsBrDRyjg579bhhWVY2jSJdFFdqseTkvoDt9KZzgGQy
-Kj9MYOZru3xRbSfmiWsaLbiUFJJPPaIvpa+BVS2oSjX8BYn2pJbF9MRfclc5CsIS
-qMNl3XUbj8mx2hKdIpJ5EvLD1adKE4Se6peqSZAmEHONNCsrMrQ0GSQqV3viInJr
-tc3kp3HcPffSROWqmc6jAJ77Cs3ApgJavL5RGjx30Kd+dKVq4PXZ+IhWM8dOSput
-wcyxEosiP/W2g0rDgNW2mGOVOwa/D5SnOolicHifdV7idjwLAjkyYgvmBMNSsECj
-yKBkE0gxAoGBAN8iHMumyvriHuj9bSLZ1bcyYFz7jIwUxpHTT7VqN/j/Y1BoBIBy
-ZZLDGMa+ID/brpRHzJQAKSNtbFQ0S1HTSKcFud5OWE8Rp3pQJU+sdeO3pCMWAD1z
-Q4ggF07JjTSSnK+4fcXgEN9P2OdfXy7Rj3HFpSahql55Kp5udoUdzUVFAoGBAN2S
-krlcEuqsEYjqsCJw5pctIwPMvCM51JgirrdETwSGquMklSrobH0PHMlR67gsA/9I
-UGShT0LL4UWYpBn/4xLrLbua5aHIBfQQZp9K6jDZddWS+EFL5JkO/Up4/qM6fUbH
-CuweVv1gd6i2Ti35K60mgx6MqVunaB1k8Q9P3Pl9AoGALSVtxha9Qv21W1bLWh3R
-C/v5W1baHQ2nD6I9omsXYB3sLjydjI+Y1ZT70lptk/4S2JWeYuOVb0GYhYD/LFMf
-hAu4i642V+kuhaTpp7ExOR3S6/ZrngNQSp6TmLFXDKgNY9BkQkEPqN8y971oOMTV
-zSM8QxC6s9q4MM4Q1OYuvjECgYEAsO2V1AW95T45Ukd1FktpFlaomyQlJ0vKgyFO
-unEFV+vhETfpFTY7SzGCHxAXVh1vo62u5Gwayo/a9qQIhepa/IRnJGNv8luyxU1D
-ZPeBQjija0PMkPd1NvNNNuafDuBpoNbX1ev0MqeRZVsN2pAZXE5gbUiNA+8NqEsu
-Yre3EFECgYEA13rXE76zZgsefx+2spjqJDUWEmTDd1460xTtxCCgL9dy4rW5bgwo
-MvINphSUXOwSkn8Oja/IvpN28zSj9W/ci5wU52P5w4blkBmuj8UoCjP2FN1b1OBa
-86mkwVsCYUyyI2apuwrHP77yeb8jXZb+reqSns3hU+HyO/nUTVmnews=
------END RSA PRIVATE KEY-----
diff --git a/testing/ca-example/keys/dsa.params b/testing/ca-example/keys/dsa.params
deleted file mode 100644
index bf5d9f3a..00000000
--- a/testing/ca-example/keys/dsa.params
+++ /dev/null
@@ -1,9 +0,0 @@
------BEGIN DSA PARAMETERS-----
-MIIBHwKBgQCdLeaVVA8HNMKFr0UUQe/bj6mJvO+I67hxn/KzCWnMjw9h6vtuTI06
-OI4XXmEHCVdUxykTkp1NSaTanoV8seEbJyyUgFQFBVaFOE8xDHp5RZghAKpdXFP2
-Yn8wj8y2VYSOveFKXj9ySj9A38nbG8mF0imBXNg/nL/EPCynR7JBVwIVAM1DKUet
-ENlaaH+QeAO3IwcENMSZAoGBAJFujxH2WB5bU+sjjePwBTRev6qtYzPAXPd+srC7
-47afIasS0Q/+pE0Q40bjdGNipf3fs5Cq8s0tYTYeNzAqUej1X5YI7TP+uJyRL7Qd
-D06pg1BbdaAzSxnnGjf2b25IvPRdxgy1XetgOmT+qA8nXeLROgTLNOQqxG83ymuM
-i/w7
------END DSA PARAMETERS-----
diff --git a/testing/ca-example/keys/email.key b/testing/ca-example/keys/email.key
deleted file mode 100644
index 54ae2de5..00000000
--- a/testing/ca-example/keys/email.key
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEAsYplGtuzoTWL4nQ/xumPYjWfGX+EOR7NOAizRX1IYYQV3AvA
-bZCqwa714PnwoIDyknrm0oZcjle4ijOXLDXxJ+AQv8/gJZZ0b32TwiHJ/1TIU/ok
-TQbQz/z9gOsDXBdrDbhp04f4KStkwWBLQPM3f2A+7ySCBinK/Wt7s7guz4PbNsQu
-7X2Pi4NY4DNRj2dE+4hdRAP+AqlAyUGLyhUf62zusuNzbKJMFOpQxTWKgpbv74sU
-P8KdktLCDxINNSwN/cdivwV6MBkYSCkGLLTQI44jPGMyIOvleAkebiIKaH+u3gXY
-iyakIWUFEmbiEJMoZIPJMJGYNjm/bsXpKCxtyQIDAQABAoIBAHJ7n36WNVq6wJ0i
-AQ4vBXp6wUEb7RM4PXToh1FD3Cylk8L1APyl0LZcL8kG4pddDw5NmhIe+gf/oMvd
-QJoNnpfr8GD/lrYmMqbB/0mrqCmxbgxYvJe+0V+M75r18JCtuSZ7yCHTB77kcHAR
-u/UB4MOOOIbUr9Nxl6eaa4YUOnsso3KctxpIVUcl8MNXQ7f9HKDZimkqCkQBHDKJ
-mWIzacFE0OmuuhLNKp0fC0PSt+GhLLclBm7Lwq8nPKY4gCNc0GBYnxddWlm58KLW
-dEjTv1KTXr+9wztBrCh+2rhCHgOfEGexSymvFOXg8eykPpSRRCwsnlGN2Yd5evtW
-0NSO31ECgYEA6GPc9aDtLQOIwLlQbHJLvqE2julI3FhV9sttR/DXgtZuRcMMN6gY
-qHt4cg6g2SchGu8un+aZeMLHCNstS1bj2Szh/RxXxILLkPmZVPi68WMF+sIflNtY
-gVZeU0mADFizMOkFRaGBw31zjkC2k8ZZsLpRoausc2Y4eNhOA/QqzvsCgYEAw5P5
-dZd9UVrExyb1diopuG0iRPkHcC96a7kfn69jlXH0Dsnls2kxCskAB9cJzYLzSSNv
-4M6efD6ZmMwOlwErOkkAu6GV4VjCYU7bildHxY/iUD73xxaWIf37H7bo83yKcDOO
-Z5HXevYlzd8NEQ2sGX6fti2Ea11ycZGJ36h2SwsCgYBjW275RdihykUJwTF1bFie
-JGcjKvKP4uS+I7ORcpNxySRUh1QN57zDLCcO/Nogfe5VibWxf/JWA1D9pFf1Qi0g
-iWQFx7xutE08qrq37bBfzCqeT6kZB78LbVXe3in1HWdfngE3CBpm7pgdVeW5wLBQ
-Mxj7ul586FN0t2aDoj07SQKBgQCLu+W3xoya26dMQuGNk4JLam3ZqbNOzB1DafjW
-NpGH7OraxhV/oeCQPBvxfgpa8vyvfMoqbHV/f5puOR0TdppUAmSrqj9Tyf7XV2gz
-5zg4Rx0DCHovnEuX7cbGWgEGNi0TDULpbKHwEH3iIUNMs+AKNxYVK2A49YMW8Uz4
-p3wdEQKBgQCUPublorKW6KmnobFL0iVWkM8hZL1xVDB4Yj8Xr7/Vpjs/Jb1dX/Hc
-u1fkc6p4d8zmueTfDchEkIrmt49ZqtwvWlH55a8nfPvdrOq8sbcEhRVAzre075R4
-s/yD9FBk1FQSJHhy0IcHSWyf4bq9+kt9t4BaxfMP2d+YPphiUa72OQ==
------END RSA PRIVATE KEY-----
diff --git a/testing/ca-example/keys/generic-dsa.key b/testing/ca-example/keys/generic-dsa.key
deleted file mode 100644
index cdd7ca54..00000000
--- a/testing/ca-example/keys/generic-dsa.key
+++ /dev/null
@@ -1,12 +0,0 @@
------BEGIN DSA PRIVATE KEY-----
-MIIBuwIBAAKBgQCdLeaVVA8HNMKFr0UUQe/bj6mJvO+I67hxn/KzCWnMjw9h6vtu
-TI06OI4XXmEHCVdUxykTkp1NSaTanoV8seEbJyyUgFQFBVaFOE8xDHp5RZghAKpd
-XFP2Yn8wj8y2VYSOveFKXj9ySj9A38nbG8mF0imBXNg/nL/EPCynR7JBVwIVAM1D
-KUetENlaaH+QeAO3IwcENMSZAoGBAJFujxH2WB5bU+sjjePwBTRev6qtYzPAXPd+
-srC747afIasS0Q/+pE0Q40bjdGNipf3fs5Cq8s0tYTYeNzAqUej1X5YI7TP+uJyR
-L7QdD06pg1BbdaAzSxnnGjf2b25IvPRdxgy1XetgOmT+qA8nXeLROgTLNOQqxG83
-ymuMi/w7AoGAfXLlo8mCQgAGy7y32k/2Onv8LXAL5hcQUEM7WQhHkU2QaXgh7sqm
-Ol4vvM97YZi5JIlR0wjP7+dZiJJnYSY5PMaGpAIk7hLGsPbJW6TnozAXwCPli1Xu
-ocubvrDWjZ/zSesnO3siGPCIuP97IqVbBKGQG/vJUwFL0ewb/+FUa78CFHgQdcw2
-4vVlnuMrqdmrfXMvzbrw
------END DSA PRIVATE KEY-----
diff --git a/testing/ca-example/keys/personal.key b/testing/ca-example/keys/personal.key
deleted file mode 100644
index fa2f8757..00000000
--- a/testing/ca-example/keys/personal.key
+++ /dev/null
@@ -1,30 +0,0 @@
------BEGIN ENCRYPTED PRIVATE KEY-----
-MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIh0hiA0TV0c8CAggA
-MBQGCCqGSIb3DQMHBAiJTGwjsHvP4wSCBMhwsU0BvXw6lzRCGvJc3B2yvOTGn7zA
-N4skd7Pl0swPFdjw3i1nU55A6+nOt9o2Uf6CL6j2hc8j4j2MbYAJL2OKmsk25utX
-mqxNQs2saDGd1tPhcIfcAOqjSlIDndQl5qxf7czQ9iQCSIPJJ+rPV9h99Pt273q0
-gGSayzlt/wiD9K0v41CBosfLJ0O6w4d+mu1oHXUMSKc02wwsoMOLecnBWoEYeGV+
-6WmBc6jDDwZ14f/eBhOlS4hPduB2D5G59EirVheyjSuVuyIfLS+vSHQbMsJKyNdN
-HD3mK7FVCt1a+VzrezeQaKOnvS2nnLIO0WnI80decYtS0ZIn/bPzOcogrtUEP/yr
-X7rbnw4oWD5LxmDP8yqflJDSCealkcOb4xdvFHvwibuYvfmskTPcaOE31WGMYBXw
-xgq0edd3skBolWa/I4y4gWWpWJNpROLdnKQRi/M4DG0RGidc/HcdV7lEYdj5l5zW
-mPWZob44XMnyzs2WPb4bqKgeu2hSH/sxyMULtjOcKDgLp5EKLKq+SLeWkVqZGFjT
-4ktAvTmsXqNfWMOSmUQQidPO1+He1AfKac4NMO7VMjjyPgDNKCwjPejL4cV376Lg
-yxrk8vKt268LQ/l+hJ+S03mdk60VNWc/56yQ8WaekJYW1KmaY8VvXmkvZydo7+Kc
-VvuUHt4BZoM/mQYEzuM8xL47e/b4MzZk+ygjzHWxubXdMbPtDM1jIN934DwGGWqd
-bFzTK4YFTaw/pEmvvsMGiTBYy4NOxZSJD+JHAl1XMeafc1W4ISO8Hi7QLrApDPa2
-OvITfycPSf/AsR4fX//vldpwwT6NbGerawHR4fWqiYaeEBwCy5LKEo69yL/08Zeb
-D4VJO2KjCcSlXH4iEFuMcQWMTH+jDKehMMhFEA7pYivIGYiN6YfhJbEplReM3Im4
-KJ7aZsUUSbtT/SD94RVM6o/tgiYbpHAYvas1YWyDc+6LV4rnPfU+xbTM25Wr1/uQ
-QZ7pDsYP6t9UgkdwviqC67lid0fVKIuIKK7TJSIhRZK5E0N+ZO+fU5wt2q6lDHIV
-54FLh4xU7F3pqr7zp0jePr4qNK3Mpe5K0hNXPYP7Qa3Y+9k5Ys8MM+ix3LBvwlcg
-T/GaChCIGeIeK/HbKIbjNHHRQp+aCfKLMsmJiyyNZ6LPmt0aeX1xBQ/yelRyGjl8
-H/LPt+RKM3QCVgLAQEB5Sd0Ps7XsZr4X4KAjq0Eh3p5IOGB8pnng5lSBeNE3DzqU
-94bGWnX3Z+bBuUGjpNaybEPWPIhYM2A7MtXNe5cx6Qxl4DJQ9Hu4foWpggbLyvkS
-iViiwMacfBneJVyERMNzbeyu/whR1KfxV+JeYDObYzVvBVNf713UG6FkYWSMvShu
-s+7UrlpX4lkZx78x6W8iOUBiWmzWGlS636pAQgx4GDmtX4D+Hrr5ZO7t9mu3qXYb
-DIRC1Y/8pYpDjJoMdplPu6SuHVOYHgz9k4PKekWgjg417tke5XjoPUz7528CWrJY
-5HCkoMXB0KMgoBvOSMVc99ZDCGSf6d9iWGKGq3teQrEwuexLfXQ08egzW5pmayrl
-fNJw1fwfatRIXs6yUGhxtPMSJKhXtDU/AQC1f8vVZGKRJk1cxm9G0hyM7zh87d+y
-wis=
------END ENCRYPTED PRIVATE KEY-----
diff --git a/testing/ca-example/keys/server.key b/testing/ca-example/keys/server.key
deleted file mode 100644
index 80bcbf63..00000000
--- a/testing/ca-example/keys/server.key
+++ /dev/null
@@ -1,9 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIBOgIBAAJBANhJxPGTnlcGZsMz3PPA76CtXJITiu51a7MfY+k5siiept+FGgBq
-UpWW4b2O9scjzV5fEJ1I5u/UoE/Wxs3lHOkCAwEAAQJAURSWd9lW6ljD/TlcAyS4
-sAtNQJWC55GtJiEGW0/9savXVHPRllN5IlcOJS/L//rD47UzwmGHcxxzsg3p+s51
-YQIhAPaiU+wbUL0cQrxqwIa/TEtNtrU3T21vNvQaFLSHh+uHAiEA4IBuYuPL+xz2
-nDwSB9UWklYV5fKhwqUA96qyMNxTMA8CIGvD6h+Un+bB3nctvgoitFeDEX6FOHN8
-0OpAKyPmxIEpAiEAiwNb1wYhN9QebG3R6GGtQV3m32VXftR3feSHxDOZm0cCIEpA
-7kMFeeQQZb1qYd1PMFSDCG+BkrWh/Fud+VvFAWxI
------END RSA PRIVATE KEY-----
diff --git a/testing/ca-example/profiles/ca.conf b/testing/ca-example/profiles/ca.conf
deleted file mode 100644
index f28d9541..00000000
--- a/testing/ca-example/profiles/ca.conf
+++ /dev/null
@@ -1,32 +0,0 @@
-[ req ]
-distinguished_name = req_distinguished_name
-x509_extensions = v3_ca
-string_mask = nombstr
-
-
-[ req_distinguished_name ]
-0.domainComponent = Domain Component
-0.domainComponent_default = COM
-
-1.domainComponent = Second Domain Component
-1.domainComponent_default = EXAMPLE
-
-organizationalUnitName = Organizational Unit Name (eg, section)
-organizationalUnitName_default = Certificate Authority
-
-commonName = Common Name (eg, YOUR name)
-commonName_max = 64
-
-emailAddress = Email Address
-emailAddress_max = 64
-
-[ v3_ca ]
-
-subjectKeyIdentifier=hash
-authorityKeyIdentifier=keyid:always,issuer:always
-
-basicConstraints = critical,CA:true
-keyUsage = critical,cRLSign, keyCertSign
-
-subjectAltName=email:copy
-issuerAltName=issuer:copy
diff --git a/testing/ca-example/profiles/extensions.conf b/testing/ca-example/profiles/extensions.conf
deleted file mode 100644
index 5978d1b3..00000000
--- a/testing/ca-example/profiles/extensions.conf
+++ /dev/null
@@ -1,16 +0,0 @@
-
-[ email ]
-basicConstraints = CA:FALSE
-keyUsage = digitalSignature, dataEncipherment
-extendedKeyUsage = emailProtection
-
-[ server ]
-basicConstraints = CA:FALSE
-extendedKeyUsage = serverAuth
-
-[ client ]
-basicConstraints = CA:FALSE
-extendedKeyUsage = clientAuth
-
-[ generic ]
-basicConstraints = critical,CA:FALSE
diff --git a/testing/ca-example/profiles/request.conf b/testing/ca-example/profiles/request.conf
deleted file mode 100644
index 0a49508f..00000000
--- a/testing/ca-example/profiles/request.conf
+++ /dev/null
@@ -1,18 +0,0 @@
-[ req ]
-distinguished_name = req_distinguished_name
-string_mask = nombstr
-
-
-[ req_distinguished_name ]
-
-0.domainComponent = Domain Component
-0.domainComponent_default = COM
-
-1.domainComponent = Second Domain Component
-1.domainComponent_default = EXAMPLE
-
-commonName = Common Name
-commonName_max = 64
-
-emailAddress = Email Address (again)
-emailAddress_max = 64
diff --git a/testing/ca-example/requests/client.req b/testing/ca-example/requests/client.req
deleted file mode 100644
index 80245700..00000000
--- a/testing/ca-example/requests/client.req
+++ /dev/null
@@ -1,17 +0,0 @@
------BEGIN CERTIFICATE REQUEST-----
-MIICpzCCAY8CAQAwYjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixk
-ARkWB0VYQU1QTEUxDzANBgNVBAMTBkNsaWVudDEhMB8GCSqGSIb3DQEJARYSY2xp
-ZW50QGV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
-wSA0Mz92De30Mc0A/P9vzstLERoqGhnwBw0HKbcsQ50KdcYScp/Rv2WRPlxpe7kY
-AzzhqFMInufv1FU2uoYozuNsF1Jf5lR+SolA+E5cPb7SeJhCJwf3afPvyTGaOVuL
-O93d8zUGU74L/741Z/YQCE5FUCO8msc2iQmnc9M1EnVZa14d5T0/B8aZYcpVzUiC
-9EUwfTzrTghnNfkJzEiD9vnqDbsDsIE+H8o7+opMMsUU0ZzVPZqy9j8/f4943rL6
-V4UdK0JO7tEGL+XiFzNl2fCrcEZPqaeMQ3vBq7azukDTrtJeKY06RiLl+DCykweL
-x8laZjIHKlSZAFHPB+bvsQIDAQABoAAwDQYJKoZIhvcNAQEFBQADggEBAEEfK+a4
-yCsQEfVTVhJnJ519UeX6AaW4dtt1/w02DB2Ntn/O/SoJCtsREWkZTJW1RcqA6hcD
-KWqRu6G5QOOdEDq1OulbI5dPISqjQ+INcgSyo4PznARsx3pzBZ3mfl+WLBypj2wn
-IpNLhF6mKb6dS7rkYywi1kNLXX4U0UtSNx3Hl39xjcKNoNyaPW3P8Lw9ftycjOZf
-HspIXjfcLFBJMnXTV8wZ8LmyhmKt0d0rOlU/OreOo6JfXVSypUaAhFSMdD5ENDxT
-ld9dzQx1FzHNH4Miqf7rKxxhgqIQ+yeaJnaVIqxsX6gvIjtCKj5L5jU/jHArnCGo
-XFlV4rO8nPyAGRE=
------END CERTIFICATE REQUEST-----
diff --git a/testing/ca-example/requests/email.req b/testing/ca-example/requests/email.req
deleted file mode 100644
index 71bd130f..00000000
--- a/testing/ca-example/requests/email.req
+++ /dev/null
@@ -1,17 +0,0 @@
------BEGIN CERTIFICATE REQUEST-----
-MIICpTCCAY0CAQAwYDETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixk
-ARkWB0VYQU1QTEUxDjAMBgNVBAMTBWVtYWlsMSAwHgYJKoZIhvcNAQkBFhFlbWFp
-bEBleGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALGK
-ZRrbs6E1i+J0P8bpj2I1nxl/hDkezTgIs0V9SGGEFdwLwG2QqsGu9eD58KCA8pJ6
-5tKGXI5XuIozlyw18SfgEL/P4CWWdG99k8Ihyf9UyFP6JE0G0M/8/YDrA1wXaw24
-adOH+CkrZMFgS0DzN39gPu8kggYpyv1re7O4Ls+D2zbELu19j4uDWOAzUY9nRPuI
-XUQD/gKpQMlBi8oVH+ts7rLjc2yiTBTqUMU1ioKW7++LFD/CnZLSwg8SDTUsDf3H
-Yr8FejAZGEgpBiy00COOIzxjMiDr5XgJHm4iCmh/rt4F2IsmpCFlBRJm4hCTKGSD
-yTCRmDY5v27F6SgsbckCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQB312vpA1P4
-Jb35YVmNBtLlUL8OlBLj6hr48NBjkRigHSBeUiKMgUFjbWmTSK1DRddD6hZFTjBm
-S1yquCXxh+JMXi957NVHVk8w3fS1ySFpOxXMmZCjT5edgae7VTDBveDBQfAVtTP+
-02VUhdnwZGQAH7mBM8Ml9iHB5rcgS5BsMexu0YH3p7Qi5DBHeVo6CqbguST1Wczm
-Faql7m329stKQHf1nCOsSroLWb4qugtZ9rxpQJVIqOxVPxP3tBK1GQg/nM/VwI0l
-jMZ8lpn7J77XEYgb+Q642RoXxV8PRLtG4GKeZ13/5LssAsTvS4EkzuhxD+bPAcYu
-WXklJECG6mpw
------END CERTIFICATE REQUEST-----
diff --git a/testing/ca-example/requests/generic-dsa.req b/testing/ca-example/requests/generic-dsa.req
deleted file mode 100644
index f59b5da8..00000000
--- a/testing/ca-example/requests/generic-dsa.req
+++ /dev/null
@@ -1,16 +0,0 @@
------BEGIN CERTIFICATE REQUEST-----
-MIICcDCCAi4CAQAwbDETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixk
-ARkWB0VYQU1QTEUxFDASBgNVBAMTC0dlbmVyaWMgRFNBMSYwJAYJKoZIhvcNAQkB
-FhdnZW5lcmljLWRzYUBleGFtcGxlLmNvbTCCAbcwggEsBgcqhkjOOAQBMIIBHwKB
-gQCdLeaVVA8HNMKFr0UUQe/bj6mJvO+I67hxn/KzCWnMjw9h6vtuTI06OI4XXmEH
-CVdUxykTkp1NSaTanoV8seEbJyyUgFQFBVaFOE8xDHp5RZghAKpdXFP2Yn8wj8y2
-VYSOveFKXj9ySj9A38nbG8mF0imBXNg/nL/EPCynR7JBVwIVAM1DKUetENlaaH+Q
-eAO3IwcENMSZAoGBAJFujxH2WB5bU+sjjePwBTRev6qtYzPAXPd+srC747afIasS
-0Q/+pE0Q40bjdGNipf3fs5Cq8s0tYTYeNzAqUej1X5YI7TP+uJyRL7QdD06pg1Bb
-daAzSxnnGjf2b25IvPRdxgy1XetgOmT+qA8nXeLROgTLNOQqxG83ymuMi/w7A4GE
-AAKBgH1y5aPJgkIABsu8t9pP9jp7/C1wC+YXEFBDO1kIR5FNkGl4Ie7KpjpeL7zP
-e2GYuSSJUdMIz+/nWYiSZ2EmOTzGhqQCJO4SxrD2yVuk56MwF8Aj5YtV7qHLm76w
-1o2f80nrJzt7IhjwiLj/eyKlWwShkBv7yVMBS9HsG//hVGu/oAAwCQYHKoZIzjgE
-AwMxADAuAhUAhUtGgWACqrKIYMG9t2Bjv94s6oMCFQCtjGF1voWxW4HaBofgmbfJ
-cIJkVA==
------END CERTIFICATE REQUEST-----
diff --git a/testing/ca-example/requests/personal.req b/testing/ca-example/requests/personal.req
deleted file mode 100644
index d3a449ae..00000000
--- a/testing/ca-example/requests/personal.req
+++ /dev/null
@@ -1,15 +0,0 @@
------BEGIN CERTIFICATE REQUEST-----
-MIICZDCCAUwCAQAwHzEdMBsGA1UEAwwUcGVyc29uYWxAZXhhbXBsZS5jb20wggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDJFouUpCvnfxBWyt0Iww6sMsD9
-jdUGhGhS2pMEBshfdgSDpMA9Jjpnt5/uYcxJBWvToG/tsyo9i3OUp7pcw2JFe8Sz
-NKVbjZ7RX4cz8pATbhYLXNX9f7bKgR6XPUa9SFFf7ig9PWfVwYoa4ITtx5mcEOTI
-+A/98OmV6TNigMp1T8otw2Z1cU1ectGwSptEsCMF7UhxdpSGvFvwczjJz0m/varu
-8/gNnZs5fiJ5fvvl4Ex68lwV+2wvWN2cTMpfkfTRZorSRUACOLYSP7I9nwEsAiA+
-uMfUJj7B7cWMP4ZQYlSGwJrWxCkMvE3G+T8q5cY6Avh+3SHs6n1f7BA0XDAFAgMB
-AAGgADANBgkqhkiG9w0BAQUFAAOCAQEABjETedVq8CDdpnOLHDoAwmEer4CvWAfK
-ltzIssiZYUmwsGV3ReQ9eSk0uqxu6A5V8r0Bn16zVHA1OSTi5SHkDGWNUWzwXRLs
-8uvJPlK9io5JhsyvAZaR9OxHjvbVGLQJ8a3f86VEdFgDTYZehoT0VdEVpRT3QpZ7
-Zw91ClgZUZGmzGQyNP41shoq/51rSWmoKwcLwOHjV1hF5aTg3yO83EHdKyvsuAUt
-h3+ZeJGLgXx91+Tx4zxOxsDgV3zgSTDnHOUSNms+ZihOEsjoBsn/mlSTIu5t/OAB
-6MReWC+9xocnO0fujfsi9BzFCzojj638IY0BxK8IvO3fc7/TUPdt+A==
------END CERTIFICATE REQUEST-----
diff --git a/testing/ca-example/requests/server.req b/testing/ca-example/requests/server.req
deleted file mode 100644
index 34fedb11..00000000
--- a/testing/ca-example/requests/server.req
+++ /dev/null
@@ -1,8 +0,0 @@
------BEGIN CERTIFICATE REQUEST-----
-MIIBBTCBsAIBADBLMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPyLGQB
-GRYHRVhBTVBMRTEbMBkGA1UEAxMSc2VydmVyLmV4YW1wbGUuY29tMFwwDQYJKoZI
-hvcNAQEBBQADSwAwSAJBANhJxPGTnlcGZsMz3PPA76CtXJITiu51a7MfY+k5siie
-pt+FGgBqUpWW4b2O9scjzV5fEJ1I5u/UoE/Wxs3lHOkCAwEAAaAAMA0GCSqGSIb3
-DQEBBQUAA0EANLzwGQSRCXwpsX/L175/UNghenxUw47qQ7Z0sGCePcXh/WjME8W/
-iUCIDT9xfDP8HkRLbnEOo10e0J9UCtFi2A==
------END CERTIFICATE REQUEST-----
diff --git a/testing/ca-example/serial.txt b/testing/ca-example/serial.txt
deleted file mode 100644
index d73cdef3..00000000
--- a/testing/ca-example/serial.txt
+++ /dev/null
@@ -1 +0,0 @@
-0C
diff --git a/testing/gnupg-example/pubring.gpg b/testing/gnupg-example/pubring.gpg
deleted file mode 100644
index 10b1372d..00000000
--- a/testing/gnupg-example/pubring.gpg
+++ /dev/null
Binary files differ
diff --git a/testing/gnupg-example/secring.gpg b/testing/gnupg-example/secring.gpg
deleted file mode 100644
index 4a21e26c..00000000
--- a/testing/gnupg-example/secring.gpg
+++ /dev/null
Binary files differ
diff --git a/testing/gnupg-example/trustdb.gpg b/testing/gnupg-example/trustdb.gpg
deleted file mode 100644
index c0ba0852..00000000
--- a/testing/gnupg-example/trustdb.gpg
+++ /dev/null
Binary files differ
diff --git a/testing/ssh-example/README b/testing/ssh-example/README
deleted file mode 100644
index f3b240c5..00000000
--- a/testing/ssh-example/README
+++ /dev/null
@@ -1 +0,0 @@
-The passwords for the private keys are: boooo
diff --git a/testing/ssh-example/id_dsa b/testing/ssh-example/id_dsa
deleted file mode 100644
index ef236254..00000000
--- a/testing/ssh-example/id_dsa
+++ /dev/null
@@ -1,15 +0,0 @@
------BEGIN DSA PRIVATE KEY-----
-Proc-Type: 4,ENCRYPTED
-DEK-Info: AES-128-CBC,ECBE9F6DAE948508DB1A5E51AF32B5A5
-
-2LW/70yuiadQM/tVWZ4QqxV0JZQQ3Sjqz28Soj5sUKDuKCszTBFyiRKLvI091Z6G
-NsDZ5agRr6t4e6ysne0aiJg1ex7ymx6GyVDI3PmNEstBqrhrxgrHgtfhwR0vVdSf
-go0nrftWdU/tlAd2h2JGQSwngwaW8aDlqG9rA86CYYcXLTyF9xW9ECtJMXohl3x2
-fS7t4vLZCnCP0lj36andZdRHAMwwHHvO1tgCotQdWeNksN4cIE4m3huM1kIDBcIW
-oL4z9qWM3CC4r++Sutn1I9xXpKu86QosKaOJJmObkpwcMagxz+fMvbMDIl9L0GGw
-PMM7d5Rl2Fs7H7z2tK9PnKwIpNCuHIMe29RUr65LJxqeqoEc9zgWKgZuPjarBlTa
-hob+mWJHi1WntSwoG9QE7Hj0FVuaUwf8QSPBvnNZYFZMzFR8SH4FK57yKXvtVoGI
-JFt+4aea0EClJ0X9+zBfS0aAFkwqi+Lbn99OVHhw/DL2XgZa9mjd5xDcMxseh0wQ
-Kqc8VQdOVeyfYOwLQgoiimtlgwdimzrG7UWCBQomEGf50d7HlBVAEqv9MeJCm2bb
-RJ4ERL/hpmxZulshatfwbA==
------END DSA PRIVATE KEY-----
diff --git a/testing/ssh-example/id_dsa.pub b/testing/ssh-example/id_dsa.pub
deleted file mode 100644
index 1e111d7c..00000000
--- a/testing/ssh-example/id_dsa.pub
+++ /dev/null
@@ -1 +0,0 @@
-ssh-dss AAAAB3NzaC1kc3MAAACBAL4z+ad0ZJYzMOQuGp00UJ+AijKhrPVUEYLcxBmFQonb/KIlLSWJua4Rl9DB4tDj30Y9c/oApqC4n+FIYlUZMSnxmpvcLF6aeXOiHHPvm0EDYjjyVubyYQWI7CROrrzSc+x++ha3TuJEvF3PlKlZmTKKVYEkZNjwFqYysGyPxPalAAAAFQDtDSEF9Gvnv5fQtSbbsp7j78uVBwAAAIAtNpAg/Mbd/E2241enedB9AxAbJWZ5QYnoPe6/zx5dOmU7+qz8mG6tgvF8F7IgXPabuAKslzTDGS3zgaEhWicDS3CIYik2UR8hXdxfovIEqZKZe7u02FCEoXYCEiFUAdzDGzjI7PswgtEJWWNqKeNis3HmDDha9lMkqz/3fLZGXwAAAIEAiaRPYKZDMoJG+aVZ5A3R/m2gl+mYE2MsjPKXuBKcrZ6ItA9BMe4G/An0/+E3A+DuoGxdeNNMF8U9Dy2N8Sch/Ngtg2E/FBo5geljWobJXd1jxmPtF2WAliYJXDdIt6RBVPGL9H/KSjDmBMsVd42wxVJywawzypklVZjSUuWuBMI= dsa-key@example.com
diff --git a/testing/ssh-example/id_rsa b/testing/ssh-example/id_rsa
deleted file mode 100644
index b3b32ab8..00000000
--- a/testing/ssh-example/id_rsa
+++ /dev/null
@@ -1,30 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-Proc-Type: 4,ENCRYPTED
-DEK-Info: AES-128-CBC,2166F6D1CF1E7548690D572639503DCF
-
-vWdHuKtNO8dMYBxgQgxjVUiiek6KTZpb0nnm9tRo6KJp08Ce3TCC184LSA+AQ+zJ
-tJ54GTyHaTB4jf+BTn0LjmHT5VSFevmyWCWvQ2UbEJTmOhmEHwVpzJHcB9jVKhYG
-axHMtckUelUXlOmx7YFVU5YTbnIOyXkG8XSARk3j1NSmSGMK7S4vB0I7KpJi76gN
-LpWGFsiYjr6vUdcvjsZUB/CbyJ456N/ND41AERVM0Ecl6vQC8touN/U9+BHHWOAb
-+e6I0v2Oje0TEm/qDpq834JJb6auCWmCDQLEe63WeWgceG48DmdyDwJ5sOH0kSxq
-HNGYFRB2PEOaNI4b0keSeXTjxKCxhaFs+krJZaXAfKIzGg1AJ1w9Hb7whFpvwRMv
-SUhfdFkzQW1/fj6qCgRlq78h7rAahoLroPpY9Uhd1qKH4PTpx4oD+nvAIqPN4Ch8
-vVGh+NtiGWNT7HnTG6cWkGZnWUQ4PZ9dkPVSPWsea8dVEHjpbUKGikxIx4D7abbC
-ZA2ifcAMt2rklYWoXVST53qBrKTo2hlpI9c5sn3/A7JBZuE3ljgCZL/TozuKk+ZH
-UzqbxWsGl1u3pMNc8/T8l6PuuKl+D3vczBFkQWlSjRGY3UCnQ+nQEI8zxKes61B9
-y/b1/zNYJiGqNzJG427qd3EGAlt0FS5N/5iFCGXyo80rS34i/UnJkcJcAuIQdqIX
-GKgRrekxepff/mirn58WKIxWobp9y0vOMCZm8lD53wXLCIsbbWCqxbmBttvdr6hM
-UWZ2QTbKn+3KeBm2O8PZGDooP2bhocnBP2tdm/6rC9cYbESikFUjC6IJFxFsRr7z
-Hmwnwxdkb0vJCKXLf4ww48nDODrSu3Fhc6YhRR7uIpt3VswKG1Kfm5xVbjUhu+4S
-rf0Y69sivYFi+mlpr0GD6EpQsZ9nHhd1e6pPmVprBt5s5LbOa+SO8k3iTa+/BDGZ
-Ft8PXG3alEEUYllavubkP5kLnsVZ8C+UNFEeDRzhzWjmcv3er6U1WwTEzgIxos76
-2+leOvtQ5l0wzk0U3fL0c694dOoG0rm1E2jAd6LkZwn7e/15raP9igEB72uM5bea
-ikrd2gd5AEwaDKESErRp+CCcHXJ8C1zaAhgws21qbNegV44AwtDPkYN8ID2DSwUv
-KQZX3hwNc0g3sRGlQ35lpwe7H8qTGwr5l5TPM0eKuNi/V+qmFFjCMEpDkp+/hSSu
-ThpazlWoWUg7qBlopOmTLF7wN1byfwiu5DeF56HE1+W1cPyAzhEkbuuEuzZcaJit
-6aS5pCeq2dGwyNgb65+n/jZiucCXJQToIUZvdlPXfsstABDs//iAARwqjtxmIdoZ
-uyI7tjK9MkRIvHIyCSQRKdhpelDuMiKxORhOiLLJsZ3Wd+Acr14vNk7nHJZcvaX/
-UuF6/iKFsg+smWIsSPE/OtsWJ+4g0jOg5oHphOH57m89cqOQe2njcTWpOSMGdF9P
-u9QrCVOaRnswPpFuNJQrRjte+9HIxn5Qgzw3vr+Me21NW0fvDaaKUrBm4PPPEUFg
-V4/XW2WtotyszoIAMdzUOmLNUGNh1I+GwJY7Mb16jHDQe0RjtGYlDjH3ykj1isAM
------END RSA PRIVATE KEY-----
diff --git a/testing/ssh-example/id_rsa.pub b/testing/ssh-example/id_rsa.pub
deleted file mode 100644
index 83067d46..00000000
--- a/testing/ssh-example/id_rsa.pub
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCs8z2y0cCPYRAPkq8tAt6FC/kdfnR/p8B2ZoY0oiLNt7kQEwJfexgwLqTxWYd2fSDUSSDPrsqAxZAwLLS/eF04kXiJO2VfqAWFpTLNToERHpFF1yZQe26ELTlNNfna7LqfCRvpNDwu6AqndsT3eFt7DWvBDXbbEiTLW21Z2OFAAH/J2iCFn4c0a8Myf7IaMYcy5GG3mpk39kEO4aNV/67U7kfooek24ObwD0vlXzlsi5VZIUFOIUi0UdkNEMCtUWpfkZ1STUlmwp9HVM7xb7/9PESQKDnZdxpB09S9cIjdpDecpDlMDDEbEUECM1PIas3ndhB7gAN1i2JsPHTcXZ1 rsa-key@example.com
diff --git a/testing/ssh-example/identity b/testing/ssh-example/identity
deleted file mode 100644
index 35bd5746..00000000
--- a/testing/ssh-example/identity
+++ /dev/null
Binary files differ
diff --git a/testing/ssh-example/identity.pub b/testing/ssh-example/identity.pub
deleted file mode 100644
index 503486b8..00000000
--- a/testing/ssh-example/identity.pub
+++ /dev/null
@@ -1 +0,0 @@
-2048 65537 19574029774826276058535216798260123376543523095248321838931847609905153466056541810037612224715393673871614098429330286659520830571243765643286443579570815080037983898081130875270479278411961605207843971799891833860159372766201922902824211581515042106928142039998651198780602488599726242798484153698322199240326703055839125267280449261588792947133244666304909901315045579230615054415554475861850194097568770065871190731807718592844942425524851665039303855329966512492845780563670061745108336917492850264799573485696060306545465548955817911313021071274638931037011169213563881172297734240201883475566393175838117784693 rsa-key@example.com
diff --git a/tool/Makefile.am b/tool/Makefile.am
index 0bc39129..3efac5ee 100644
--- a/tool/Makefile.am
+++ b/tool/Makefile.am
@@ -1,5 +1,5 @@
bin_PROGRAMS= \
- gnome-keyring-@GCR_MAJOR@
+ gnome-keyring-@GKR_MAJOR@
INCLUDES= \
-I$(top_srcdir) \
@@ -7,28 +7,29 @@ INCLUDES= \
$(GTK_CFLAGS) \
$(GOBJECT_CFLAGS) \
$(GLIB_CFLAGS) \
+ $(GCK_CFLAGS) \
+ $(GCR_CFLAGS) \
-DGCK_API_SUBJECT_TO_CHANGE
-gnome_keyring_@GCR_MAJOR@_SOURCES = \
+gnome_keyring_@GKR_MAJOR@_SOURCES = \
gkr-tool.c gkr-tool.h \
gkr-tool-import.c \
gkr-tool-trust.c \
gkr-tool-version.c
-gnome_keyring_@GCR_MAJOR@_CFLAGS = \
+gnome_keyring_@GKR_MAJOR@_CFLAGS = \
-DGCR_API_SUBJECT_TO_CHANGE \
-DGNOMELOCALEDIR=\""$(datadir)/locale"\"
-gnome_keyring_@GCR_MAJOR@_LDADD = \
- $(top_builddir)/gcr/libgcr-base-@GCR_MAJOR@.la \
- $(top_builddir)/gcr/libgcr-@GCR_MAJOR@.la \
+gnome_keyring_@GKR_MAJOR@_LDADD = \
$(top_builddir)/egg/libegg.la \
- $(top_builddir)/gck/libgck-@GCK_MAJOR@.la \
+ $(GCK_LIBS) \
+ $(GCR_LIBS) \
$(GTHREAD_LIBS) \
$(GTK_LIBS) \
$(GCRYPT_LIBS) \
$(DAEMON_LIBS)
-# Install a link from gnome-keyring > gnome-keyring-@GCR_MAJOR@ to maintain compatibility
+# Install a link from gnome-keyring > gnome-keyring-@GKR_MAJOR@ to maintain compatibility
install-exec-hook:
- @test -e "$(DESTDIR)$(bindir)/gnome-keyring" || (cd $(DESTDIR)$(bindir) && $(LN_S) gnome-keyring-@GCR_MAJOR@ gnome-keyring)
+ @test -e "$(DESTDIR)$(bindir)/gnome-keyring" || (cd $(DESTDIR)$(bindir) && $(LN_S) gnome-keyring-@GKR_MAJOR@ gnome-keyring)
diff --git a/tool/gkr-tool-import.c b/tool/gkr-tool-import.c
index 548831c5..7c0049a0 100644
--- a/tool/gkr-tool-import.c
+++ b/tool/gkr-tool-import.c
@@ -25,8 +25,8 @@
#include "gkr-tool.h"
-#include "gck/gck.h"
-#include "gcr/gcr.h"
+#include <gck/gck.h>
+#include <gcr/gcr.h>
#include "egg/egg-hex.h"
diff --git a/tool/gkr-tool-trust.c b/tool/gkr-tool-trust.c
index a407d332..a9578152 100644
--- a/tool/gkr-tool-trust.c
+++ b/tool/gkr-tool-trust.c
@@ -25,9 +25,8 @@
#include "gkr-tool.h"
-#include "gck/gck.h"
-
-#include "gcr/gcr.h"
+#include <gck/gck.h>
+#include <gcr/gcr.h>
#include "egg/egg-hex.h"
diff --git a/tool/gkr-tool-version.c b/tool/gkr-tool-version.c
index dc1a4149..5dd10c68 100644
--- a/tool/gkr-tool-version.c
+++ b/tool/gkr-tool-version.c
@@ -25,11 +25,6 @@
#include "gkr-tool.h"
-#include "gck/gck.h"
-#include "gcr/gcr.h"
-
-#include "egg/egg-hex.h"
-
static GOptionEntry version_entries[] = {
{ NULL }
};
diff --git a/ui/Makefile.am b/ui/Makefile.am
index ad9d6804..7bbbe06d 100644
--- a/ui/Makefile.am
+++ b/ui/Makefile.am
@@ -3,10 +3,11 @@ SUBDIRS = . tests
INCLUDES= \
-DGNOMELOCALEDIR=\""$(datadir)/locale"\" \
- -DPROMPTEXEC=\""$(libexecdir)/gnome-keyring-prompt-@GCR_MAJOR@"\" \
+ -DPROMPTEXEC=\""$(libexecdir)/gnome-keyring-prompt-@GKR_MAJOR@"\" \
-DGCR_API_SUBJECT_TO_CHANGE \
-I$(top_srcdir) \
-I$(top_builddir) \
+ $(GCR_BASE_CFLAGS) \
$(GOBJECT_CFLAGS) \
$(GLIB_CFLAGS)
@@ -14,7 +15,7 @@ INCLUDES= \
# UI BUILDER
#
-uidir = $(datadir)/gnome-keyring-@GCR_MAJOR@/ui/
+uidir = $(datadir)/gnome-keyring-@GKR_MAJOR@/ui/
ui_DATA = \
gku-prompt.ui
@@ -32,7 +33,7 @@ libgku_prompt_la_SOURCES = \
$(BUILT_SOURCES)
libgku_prompt_la_LIBADD = \
- $(top_builddir)/gcr/libgcr-base-@GCR_MAJOR@.la \
+ $(GCR_BASE_LIBS) \
$(GLIB_LIBS) \
$(GOBJECT_LIBS)
@@ -55,29 +56,27 @@ EXTRA_DIST = \
#
libexec_PROGRAMS= \
- gnome-keyring-prompt-@GCR_MAJOR@
+ gnome-keyring-prompt-@GKR_MAJOR@
-gnome_keyring_prompt_@GCR_MAJOR@_SOURCES = \
+gnome_keyring_prompt_@GKR_MAJOR@_SOURCES = \
gku-prompt-tool.c
-gnome_keyring_prompt_@GCR_MAJOR@_LDADD = \
+gnome_keyring_prompt_@GKR_MAJOR@_LDADD = \
$(top_builddir)/egg/libegg-entry-buffer.la \
$(top_builddir)/egg/libegg-prompt.la \
- $(top_builddir)/gcr/libgcr-base-@GCR_MAJOR@.la \
- $(top_builddir)/gcr/libgcr-@GCR_MAJOR@.la \
- $(top_builddir)/gck/libgck-@GCK_MAJOR@.la \
+ $(GCR_LIBS) \
$(LIBGCRYPT_LIBS) \
$(GTK_LIBS)
-gnome_keyring_prompt_@GCR_MAJOR@_CFLAGS = \
+gnome_keyring_prompt_@GKR_MAJOR@_CFLAGS = \
-DUIDIR=\""$(uidir)"\" \
-DGCR_API_SUBJECT_TO_CHANGE \
$(LIBGCRYPT_CFLAGS) \
$(GTK_CFLAGS)
-# Install a link from gnome-keyring-prompt -> gnome-keyring-prompt-@GCR_MAJOR@ to maintain compatibility
+# Install a link from gnome-keyring-prompt -> gnome-keyring-prompt-@GKR_MAJOR@ to maintain compatibility
install-exec-hook:
- @test -e "$(DESTDIR)$(libexecdir)/gnome-keyring-prompt" || (cd $(DESTDIR)$(libexecdir) && $(LN_S) gnome-keyring-prompt-@GCR_MAJOR@ gnome-keyring-prompt)
+ @test -e "$(DESTDIR)$(libexecdir)/gnome-keyring-prompt" || (cd $(DESTDIR)$(libexecdir) && $(LN_S) gnome-keyring-prompt-@GKR_MAJOR@ gnome-keyring-prompt)
@INTLTOOL_DESKTOP_RULE@
desktopdir= $(datadir)/applications
diff --git a/ui/gku-prompt-tool.c b/ui/gku-prompt-tool.c
index 8e619df8..1d750f2c 100644
--- a/ui/gku-prompt-tool.c
+++ b/ui/gku-prompt-tool.c
@@ -30,7 +30,7 @@
#include "egg/egg-libgcrypt.h"
#include "egg/egg-secure-memory.h"
-#include "gcr/gcr.h"
+#include <gcr/gcr.h>
#include <glib/gi18n.h>
diff --git a/ui/gku-prompt.c b/ui/gku-prompt.c
index 06e7c12b..0a724245 100644
--- a/ui/gku-prompt.c
+++ b/ui/gku-prompt.c
@@ -33,7 +33,7 @@
#include "egg/egg-secure-memory.h"
#include "egg/egg-spawn.h"
-#include "gcr/gcr-base.h"
+#include <gcr/gcr-base.h>
#include "pkcs11/pkcs11i.h"