[Winpt-commits] r175 - in trunk: . Include Po Src
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Tue Feb 7 09:58:14 CET 2006
Author: twoaday
Date: 2006-02-07 09:58:04 +0100 (Tue, 07 Feb 2006)
New Revision: 175
Added:
trunk/Src/wptSigTreeDlg.cpp
Modified:
trunk/Include/wptDlgs.h
trunk/Include/wptGPG.h
trunk/Include/wptKeyEdit.h
trunk/Include/wptW32API.h
trunk/NEWS
trunk/Po/de.po
trunk/Src/ChangeLog
trunk/Src/Makefile.am
trunk/Src/WinPT-en.rc
trunk/Src/resource.h
trunk/Src/wptClipEncryptDlg.cpp
trunk/Src/wptClipSignDlg.cpp
trunk/Src/wptClipSignEncDlg.cpp
trunk/Src/wptGPG.cpp
trunk/Src/wptGPGME.cpp
trunk/Src/wptGPGUtil.cpp
trunk/Src/wptImportList.cpp
trunk/Src/wptKeyCache.cpp
trunk/Src/wptKeyEdit.cpp
trunk/Src/wptKeyEditDlgs.cpp
trunk/Src/wptKeyManager.cpp
trunk/Src/wptKeyManagerDlg.cpp
trunk/Src/wptKeyPropsDlg.cpp
trunk/Src/wptKeyserver.cpp
trunk/Src/wptW32API.cpp
Log:
2006-02-04 Timo Schulz <ts at g10code.de>
* wptKeyManagerDlg.cpp (keymanager_dlg_proc): Check for
at least one ultimately trusted key.
* wptKeyManager.cpp (km_refresh_key_from_keyserver):
Only check inet connection if we refresh all keys.
* wptGPGUtil.cpp (gpg_extract_keys): New.
* wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Use textmode.
* wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Likewise.
* wptClipSignDlg.cpp (get_selected_key): New.
(one_key_proc): Use it here.
(count_useable_seckeys): New.
* wptSigTreeDlg.cpp (sigtree_dlg_proc): New.
* wptKeyEditDlgs.cpp (diff_time): Removed.
(w32_mktime): New.
(keyedit_addsubkey_dlg_proc): Use it here.
2006-02-02 Timo Schulz <ts at g10code.de>
* wptW32API.cpp (get_temp_name): New.
* wptKeyserver.cpp (ldap_recvkey): Use it here.
* wptKeyPropsDlg.cpp (get_photo_tmpname): Likewise.
* wptGPGUtil.cpp (create_tempfile): Likewise.
* wptImportList.cpp (implist_load): Likewise.
* wptKeyCache.cpp (parse_attr_data): Likewise.
(w32_tempfile): Removed.
* wptGPGME.cpp (check_ultimate_trusted_key): New.
Modified: trunk/Include/wptDlgs.h
===================================================================
--- trunk/Include/wptDlgs.h 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Include/wptDlgs.h 2006-02-07 08:58:04 UTC (rev 175)
@@ -229,13 +229,16 @@
WPARAM wparam,
LPARAM lparam );
-BOOL CALLBACK mdsum_dlg_proc( HWND dlg,
- UINT msg,
- WPARAM wparam,
- LPARAM lparam );
+BOOL CALLBACK mdsum_dlg_proc (HWND dlg,
+ UINT msg,
+ WPARAM wparam,
+ LPARAM lparam);
+BOOL CALLBACK sigtree_dlg_proc (HWND dlg, UINT msg,
+ WPARAM wparam, LPARAM lparam);
+
/*-- Filemanager verify log --*/
-int file_verify_create_dlg( void );
+int file_verify_create_dlg (void);
/*-- Key generation callback */
int keygen_cb_dlg_create (void);
Modified: trunk/Include/wptGPG.h
===================================================================
--- trunk/Include/wptGPG.h 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Include/wptGPG.h 2006-02-07 08:58:04 UTC (rev 175)
@@ -1,5 +1,5 @@
/* wptGPG.h - GnuPG interface
- * Copyright (C) 2000-2005 Timo Schulz
+ * Copyright (C) 2000-2006 Timo Schulz
*
* This file is part of WinPT.
*
@@ -175,6 +175,7 @@
int gpg_encrypt_symmetric (void);
const char *get_gpg_sigstat (gpgme_sigsum_t sum);
+int check_ultimate_trusted_key (void);
/*-- wptGPGParser.cpp --*/
/* find */
@@ -245,6 +246,8 @@
char **r_revcert);
gpgme_error_t gpg_decode_c_string (const char *src, char **destp, size_t len);
gpgme_error_t gpg_import_key_list (const char *fname, char **r_out);
+gpgme_error_t gpg_extract_keys (const char *keyfile, const char **keys, DWORD nkeys,
+ char **new_keyfile);
gpgme_error_t get_uat_validity (const char *keyid, gpgme_validity_t *r_valid);
#endif /* WPT_GPG_H */
Modified: trunk/Include/wptKeyEdit.h
===================================================================
--- trunk/Include/wptKeyEdit.h 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Include/wptKeyEdit.h 2006-02-07 08:58:04 UTC (rev 175)
@@ -118,7 +118,9 @@
bool isValid (void);
void reset (void);
+
void clear (void);
+ void clearPassphrase (void);
void setPassphrase (const char *pass);
void setKey (gpgme_key_t key);
Modified: trunk/Include/wptW32API.h
===================================================================
--- trunk/Include/wptW32API.h 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Include/wptW32API.h 2006-02-07 08:58:04 UTC (rev 175)
@@ -71,8 +71,8 @@
char * m_strdup (const char *str);
const char * strtimestamp (long timestamp);
const char* get_locale_date (long tm_t, char *buf, DWORD buflen);
+int get_temp_name (char *buf, DWORD buflen, const char *name);
-
#define listbox_add_string(lb, string) \
SendMessage( (lb), LB_ADDSTRING, 0, (LPARAM)(LPCSTR)(string) )
Modified: trunk/NEWS
===================================================================
--- trunk/NEWS 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/NEWS 2006-02-07 08:58:04 UTC (rev 175)
@@ -747,3 +747,8 @@
* Fix a problem that an unprivileged (normal) user cannot
display photo-ids via the Key Property dialog.
* New key selection system for encryption based dialogs.
+* Always use text mode to avoid line ending problems on
+ different OS systems.
+* Check for ultimately trusted keys and issue a warning
+ if appropriate.
+
\ No newline at end of file
Modified: trunk/Po/de.po
===================================================================
--- trunk/Po/de.po 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Po/de.po 2006-02-07 08:58:04 UTC (rev 175)
@@ -15,7 +15,7 @@
msgstr ""
"Project-Id-Version: WinPT 0.11.6\n"
"Report-Msgid-Bugs-To: winpt at freakmail.de\n"
-"POT-Creation-Date: 2006-01-30 22:56+0100\n"
+"POT-Creation-Date: 2006-02-06 20:54+0100\n"
"PO-Revision-Date: 2005-12-28 16:10+0100\n"
"Last-Translator: Timo Schulz <ts at g10code.de>\n"
"Language-Team: DE <twoaday at freakmail.de>\n"
@@ -32,8 +32,8 @@
#: Src/WinPT.cpp:523 Src/WinPT.cpp:527 Src/WinPT.cpp:544 Src/WinPT.cpp:614
#: Src/WinPT.cpp:627 Src/WinPT.cpp:674 Src/WinPT.cpp:700 Src/WinPT.cpp:718
#: Src/wptErrors.cpp:141 Src/wptGPG.cpp:912 Src/wptGPG.cpp:923
-#: Src/wptGPG.cpp:932 Src/wptGPG.cpp:942 Src/wptMainProc.cpp:345
-#: Src/wptMainProc.cpp:527
+#: Src/wptGPG.cpp:932 Src/wptGPG.cpp:942 Src/wptMainProc.cpp:346
+#: Src/wptMainProc.cpp:530
msgid "WinPT Error"
msgstr "WinPT Fehler"
@@ -169,11 +169,12 @@
"%s: public key not found."
msgstr ""
"Standardschlüssel (in der GPG Config-Datei) nicht gefunden.\n"
-"Bitte überprüfen Sie die gpg.conf oder setzen Sie einen neuen Standardschlüssel um das Problem zu beheben:\n"
+"Bitte überprüfen Sie die gpg.conf oder setzen Sie einen neuen "
+"Standardschlüssel um das Problem zu beheben:\n"
"\n"
"%s: Öffentlicher Schlüssel nicht gefunden."
-#: Src/wptAboutDlgs.cpp:53 Src/wptAboutDlgs.cpp:143
+#: Src/wptAboutDlgs.cpp:53 Src/wptAboutDlgs.cpp:136
msgid "About the GNU Privacy Guard"
msgstr "Über den GNU Privacy Guard"
@@ -181,29 +182,29 @@
msgid "About GnuPG"
msgstr "Über GnuPG"
-#: Src/wptAboutDlgs.cpp:97 Src/wptKeyManagerDlg.cpp:1751
-#: Src/wptMainProc.cpp:576
+#: Src/wptAboutDlgs.cpp:94 Src/wptKeyManagerDlg.cpp:1756
+#: Src/wptMainProc.cpp:579
msgid "About WinPT"
msgstr "Über WinPT"
-#: Src/wptAboutDlgs.cpp:98
+#: Src/wptAboutDlgs.cpp:95
msgid "Warranty"
msgstr "Gewährleistung"
-#: Src/wptAboutDlgs.cpp:100
+#: Src/wptAboutDlgs.cpp:97
msgid "A free open source privacy tray for Windows based on GnuPG."
msgstr "Ein freies OpenSource Privacy Tool für Windows basierend auf GnuPG."
-#: Src/wptAboutDlgs.cpp:102
+#: Src/wptAboutDlgs.cpp:99
msgid "For more information you can visit the homepage: http://www.winpt.org"
msgstr "Mehr Informationen können Sie die auf http://www.winpt.org bekommen"
-#: Src/wptAboutDlgs.cpp:104
+#: Src/wptAboutDlgs.cpp:101
msgid "Please report any BUGS or suggestions for WinPT to <winpt at freakmail.de>"
msgstr ""
"Bitte melden Sie Fehler oder Anregungen zu WinPT an <winpt at freakmail.de>"
-#: Src/wptAboutDlgs.cpp:106
+#: Src/wptAboutDlgs.cpp:103
msgid ""
"WinPT 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 "
@@ -215,7 +216,7 @@
"weitergeben und/oder modifizieren, entweder gemäß Version 2 der Lizenz oder "
"(nach Ihrer Option) jeder späteren Version."
-#: Src/wptAboutDlgs.cpp:111
+#: Src/wptAboutDlgs.cpp:108
msgid ""
"WinPT is distributed in the hope that it will be useful, but WITHOUT ANY "
"WARRANTY; without even the implied warranty of MERCHANTABLITY or FITNESS FOR "
@@ -226,17 +227,17 @@
"Nähere Details entnehmen Sie bitte der General Public License."
# c:\oss\winpt-gpgme\src\wptAboutDlgs.cpp:97
-#: Src/wptAboutDlgs.cpp:115
+#: Src/wptAboutDlgs.cpp:112
msgid "&About GPG..."
msgstr "Über &GPG"
# c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:700
-#: Src/wptAboutDlgs.cpp:116 Src/wptKeyEditDlgs.cpp:1935
+#: Src/wptAboutDlgs.cpp:113 Src/wptKeyEditDlgs.cpp:1953
#: Src/wptKeyManagerDlg.cpp:963
msgid "&Help"
msgstr "&Hilfe"
-#: Src/wptCardDlg.cpp:136 Src/wptCardDlg.cpp:161 Src/wptMainProc.cpp:399
+#: Src/wptCardDlg.cpp:136 Src/wptCardDlg.cpp:161 Src/wptMainProc.cpp:402
msgid "Card Manager"
msgstr "Kartenmanager"
@@ -317,7 +318,7 @@
"Diese Operation wird die Schlüssel auf der Karte überschreiben.\n"
"Trotzdem fortfahren?"
-#: Src/wptCardDlg.cpp:600 Src/wptKeyEditDlgs.cpp:503
+#: Src/wptCardDlg.cpp:600 Src/wptKeyEditDlgs.cpp:505
msgid "&Name"
msgstr "&Name"
@@ -333,7 +334,7 @@
msgid "Off-card passphrase"
msgstr "\"Off-card\" Passwort"
-#: Src/wptCardDlg.cpp:604 Src/wptKeyEditDlgs.cpp:641 Src/wptKeygenDlg.cpp:382
+#: Src/wptCardDlg.cpp:604 Src/wptKeyEditDlgs.cpp:640 Src/wptKeygenDlg.cpp:382
msgid "&Never"
msgstr "&Niemals"
@@ -349,7 +350,7 @@
msgid "Make off-card backup of encryption key"
msgstr "Externes Backup des Verschlüsselungs-Schlüssel"
-#: Src/wptCardDlg.cpp:608 Src/wptKeyManagerDlg.cpp:1645
+#: Src/wptCardDlg.cpp:608 Src/wptKeyManagerDlg.cpp:1650
msgid "Card Key Generation"
msgstr "Karten-Schlüsselerzeugung"
@@ -378,7 +379,7 @@
msgid "Please use plain ASCII charset for the fields."
msgstr "Bitte nur den 7-bit ASCII Zeichensatz verwenden."
-#: Src/wptCardDlg.cpp:683 Src/wptKeyEditDlgs.cpp:1334
+#: Src/wptCardDlg.cpp:683 Src/wptKeyEditDlgs.cpp:1340
msgid "The date you have chosen lies in the past."
msgstr "Das gewählte Datum ist in der Vergangenheit."
@@ -474,10 +475,10 @@
msgstr ""
"Ungültige OpenPGP Nachricht (vielleicht: \"quoted printable\" im Armorteil)."
-#: Src/wptClipDecryptDlg.cpp:164 Src/wptClipEncryptDlg.cpp:206
-#: Src/wptClipSignDlg.cpp:119 Src/wptClipSignDlg.cpp:229
-#: Src/wptClipSignEncDlg.cpp:197 Src/wptKeyManager.cpp:329
-#: Src/wptKeyManager.cpp:798 Src/wptKeyManager.cpp:998 Src/wptSymEnc.cpp:90
+#: Src/wptClipDecryptDlg.cpp:164 Src/wptClipEncryptDlg.cpp:207
+#: Src/wptClipSignDlg.cpp:122 Src/wptClipSignDlg.cpp:262
+#: Src/wptClipSignEncDlg.cpp:198 Src/wptKeyManager.cpp:329
+#: Src/wptKeyManager.cpp:792 Src/wptKeyManager.cpp:979 Src/wptSymEnc.cpp:90
msgid "GnuPG Status: Finished"
msgstr "GnuPG-Status: Abgeschlossen"
@@ -517,10 +518,10 @@
#: Src/wptClipEditDlg.cpp:58 Src/wptClipEditDlg.cpp:111
#: Src/wptClipEditDlg.cpp:119 Src/wptClipEditDlg.cpp:158
-#: Src/wptClipEditDlg.cpp:167 Src/wptClipEditDlg.cpp:245
-#: Src/wptClipEditDlg.cpp:250 Src/wptFileManagerDlg.cpp:211
+#: Src/wptClipEditDlg.cpp:167 Src/wptClipEditDlg.cpp:238
+#: Src/wptClipEditDlg.cpp:243 Src/wptFileManagerDlg.cpp:211
#: Src/wptMainProc.cpp:159 Src/wptMainProc.cpp:227 Src/wptMainProc.cpp:270
-#: Src/wptMainProc.cpp:428 Src/wptMainProc.cpp:509 Src/wptMainProc.cpp:513
+#: Src/wptMainProc.cpp:431 Src/wptMainProc.cpp:512 Src/wptMainProc.cpp:516
msgid "Clipboard"
msgstr "Zwischenablage"
@@ -549,61 +550,61 @@
"\"%s\" existiert bereits.\n"
"Vorhandene Datei überschreiben?"
-#: Src/wptClipEditDlg.cpp:196 Src/wptMainProc.cpp:169 Src/wptMainProc.cpp:235
-#: Src/wptMainProc.cpp:570
+#: Src/wptClipEditDlg.cpp:194 Src/wptMainProc.cpp:169 Src/wptMainProc.cpp:235
+#: Src/wptMainProc.cpp:573
msgid "Clipboard Editor"
msgstr "Zwischenablagen-Editor"
-#: Src/wptClipEditDlg.cpp:197
+#: Src/wptClipEditDlg.cpp:195
msgid "&Copy"
msgstr "&Kopieren"
-#: Src/wptClipEditDlg.cpp:198
+#: Src/wptClipEditDlg.cpp:196
msgid "Clea&r"
msgstr "&Löschen"
-#: Src/wptClipEditDlg.cpp:199 Src/wptGPGOptDlg.cpp:53
+#: Src/wptClipEditDlg.cpp:197 Src/wptGPGOptDlg.cpp:53
#: Src/wptTextInputDlg.cpp:85
msgid "&Load"
msgstr "&Laden"
-#: Src/wptClipEditDlg.cpp:200 Src/wptClipVerifyDlg.cpp:158
+#: Src/wptClipEditDlg.cpp:198 Src/wptClipVerifyDlg.cpp:158
#: Src/wptFileVerifyDlg.cpp:52 Src/wptGPGOptDlg.cpp:52
msgid "&Save"
msgstr "&Speichern"
-#: Src/wptClipEditDlg.cpp:201
+#: Src/wptClipEditDlg.cpp:199
msgid "Add quotes"
msgstr "'>' hinzufügen"
-#: Src/wptClipEditDlg.cpp:202 Src/wptKeyEditDlgs.cpp:1934
+#: Src/wptClipEditDlg.cpp:200 Src/wptKeyEditDlgs.cpp:1952
#: Src/wptKeyserverDlg.cpp:610 Src/wptMDSumDlg.cpp:104
#: Src/wptOwnertrustDlg.cpp:103
msgid "&Close"
msgstr "&Schliessen"
# c:\oss\winpt-gpgme\src\wptClipEncryptDlg.cpp:108
-#: Src/wptClipEncryptDlg.cpp:111
+#: Src/wptClipEncryptDlg.cpp:112
msgid "Recipients unsuable for encryption:\n"
msgstr "Empfänger nicht geeignet für Verschlüsselung\n"
-#: Src/wptClipEncryptDlg.cpp:119 Src/wptClipEncryptDlg.cpp:140
-#: Src/wptClipEncryptDlg.cpp:192 Src/wptClipEncryptDlg.cpp:199
-#: Src/wptClipEncryptDlg.cpp:230 Src/wptMainProc.cpp:141
+#: Src/wptClipEncryptDlg.cpp:120 Src/wptClipEncryptDlg.cpp:141
+#: Src/wptClipEncryptDlg.cpp:193 Src/wptClipEncryptDlg.cpp:200
+#: Src/wptClipEncryptDlg.cpp:231 Src/wptMainProc.cpp:141
#: Src/wptMainProc.cpp:209
msgid "Encryption"
msgstr "Verschlüsseln"
-#: Src/wptClipEncryptDlg.cpp:141
+#: Src/wptClipEncryptDlg.cpp:142
msgid "&Find"
msgstr "&Suche"
-#: Src/wptClipEncryptDlg.cpp:142 Src/wptClipSignEncDlg.cpp:112
+#: Src/wptClipEncryptDlg.cpp:143 Src/wptClipSignEncDlg.cpp:113
#: Src/wptCommonDlg.cpp:68 Src/wptFileManagerDlg.cpp:84
#: Src/wptFileManagerDlg.cpp:217 Src/wptFileManagerDlg.cpp:285
#: Src/wptFileSaveDlg.cpp:58 Src/wptFirstRunDlg.cpp:47
-#: Src/wptKeyEditDlgs.cpp:331 Src/wptKeyEditDlgs.cpp:431
-#: Src/wptKeyEditDlgs.cpp:506 Src/wptKeyEditDlgs.cpp:642
+#: Src/wptKeyEditDlgs.cpp:333 Src/wptKeyEditDlgs.cpp:433
+#: Src/wptKeyEditDlgs.cpp:508 Src/wptKeyEditDlgs.cpp:641
#: Src/wptKeyEditOwnertrustDlg.cpp:67 Src/wptKeygenDlg.cpp:383
#: Src/wptKeygenDlg.cpp:546 Src/wptKeyRevokeDlg.cpp:101
#: Src/wptKeyserverDlg.cpp:542 Src/wptKeyserverSearchDlg.cpp:68
@@ -613,12 +614,12 @@
msgid "&Cancel"
msgstr "&Abbrechen"
-#: Src/wptClipEncryptDlg.cpp:192 Src/wptClipSignEncDlg.cpp:157
+#: Src/wptClipEncryptDlg.cpp:193 Src/wptClipSignEncDlg.cpp:158
msgid "You must select at least one key."
msgstr "Sie müssen wenigstens einen Schlüssel auswählen."
# c:\oss\winpt-gpgme\src\wptClipEncryptDlg.cpp:229
-#: Src/wptClipEncryptDlg.cpp:230
+#: Src/wptClipEncryptDlg.cpp:231
#, c-format
msgid "No recipient found with '%s'"
msgstr "Keine Empfaenger mit '%s' gefunden"
@@ -627,22 +628,22 @@
msgid "Key Import Statistics"
msgstr "Schlüsselimport-Statistiken"
-#: Src/wptClipSignDlg.cpp:104 Src/wptClipSignDlg.cpp:185
-#: Src/wptClipSignEncDlg.cpp:176
+#: Src/wptClipSignDlg.cpp:104 Src/wptClipSignDlg.cpp:219
+#: Src/wptClipSignEncDlg.cpp:177
msgid "Could not get default key."
msgstr "Konnte den Standardschlüssel nicht finden"
#: Src/wptClipSignDlg.cpp:104 Src/wptClipSignDlg.cpp:112
-#: Src/wptClipSignDlg.cpp:117 Src/wptClipSignDlg.cpp:141
-#: Src/wptClipSignDlg.cpp:185 Src/wptClipSignDlg.cpp:193
-#: Src/wptClipSignDlg.cpp:212 Src/wptClipSignDlg.cpp:224
-#: Src/wptClipSignEncDlg.cpp:166 Src/wptClipSignEncDlg.cpp:176
+#: Src/wptClipSignDlg.cpp:120 Src/wptClipSignDlg.cpp:175
+#: Src/wptClipSignDlg.cpp:219 Src/wptClipSignDlg.cpp:227
+#: Src/wptClipSignDlg.cpp:246 Src/wptClipSignDlg.cpp:257
+#: Src/wptClipSignEncDlg.cpp:167 Src/wptClipSignEncDlg.cpp:177
#: Src/wptFileManager.cpp:1086 Src/wptFileManager.cpp:1104
#: Src/wptFileManager.cpp:1366 Src/wptMainProc.cpp:153 Src/wptMainProc.cpp:215
msgid "Signing"
msgstr "Signieren"
-#: Src/wptClipSignDlg.cpp:194
+#: Src/wptClipSignDlg.cpp:228
#, c-format
msgid ""
"No key was chosen.\n"
@@ -651,22 +652,22 @@
"Kein Schlüssel ausgewählt.\n"
"GPG-Standard-Schlüssel '%s' benutzen?"
-#: Src/wptClipSignEncDlg.cpp:111 Src/wptClipSignEncDlg.cpp:158
-#: Src/wptClipSignEncDlg.cpp:185 Src/wptClipSignEncDlg.cpp:194
+#: Src/wptClipSignEncDlg.cpp:112 Src/wptClipSignEncDlg.cpp:159
+#: Src/wptClipSignEncDlg.cpp:186 Src/wptClipSignEncDlg.cpp:195
#: Src/wptMainProc.cpp:147 Src/wptMainProc.cpp:221
msgid "Sign & Encrypt"
msgstr "Signieren & Verschlüsseln"
# c:\oss\winpt-gpgme\src\wptClipSignEncDlg.cpp:121
-#: Src/wptClipSignEncDlg.cpp:121
+#: Src/wptClipSignEncDlg.cpp:122
msgid "Select key for signing"
msgstr "Schlüssel zum Signieren auswählen"
-#: Src/wptClipSignEncDlg.cpp:122
+#: Src/wptClipSignEncDlg.cpp:123
msgid "Signing key:"
msgstr "Signierer Schlüssel:"
-#: Src/wptClipSignEncDlg.cpp:166 Src/wptKeylist.cpp:1175
+#: Src/wptClipSignEncDlg.cpp:167 Src/wptKeylist.cpp:1179
msgid "No key was selected."
msgstr "Kein Schlüssel ausgewählt."
@@ -681,7 +682,7 @@
#: Src/wptFileManagerDlg.cpp:550 Src/wptFileVerifyDlg.cpp:81
#: Src/wptFileVerifyDlg.cpp:145 Src/wptMainProc.cpp:179
#: Src/wptMainProc.cpp:245 Src/wptMainProc.cpp:257 Src/wptMainProc.cpp:265
-#: Src/wptMainProc.cpp:416
+#: Src/wptMainProc.cpp:419
msgid "Verify"
msgstr "Überprüfen"
@@ -729,33 +730,33 @@
msgid "Please enter a valid URL."
msgstr "Bitte eine gültige URL eingeben."
-#: Src/wptCommonDlg.cpp:124 Src/wptKeyEditDlgs.cpp:753
-#: Src/wptKeyEditDlgs.cpp:811 Src/wptKeyEditDlgs.cpp:849
-#: Src/wptKeyEditDlgs.cpp:861 Src/wptKeyEditDlgs.cpp:911
-#: Src/wptKeyEditDlgs.cpp:950 Src/wptKeyEditDlgs.cpp:957
-#: Src/wptKeyEditDlgs.cpp:975 Src/wptKeyEditDlgs.cpp:1024
-#: Src/wptKeyEditDlgs.cpp:1031 Src/wptKeyEditDlgs.cpp:1122
-#: Src/wptKeyEditDlgs.cpp:1128 Src/wptKeyEditDlgs.cpp:1257
-#: Src/wptKeyEditDlgs.cpp:1261 Src/wptKeyEditDlgs.cpp:1265
-#: Src/wptKeyEditDlgs.cpp:1270 Src/wptKeyEditDlgs.cpp:1306
-#: Src/wptKeyEditDlgs.cpp:1310 Src/wptKeyEditDlgs.cpp:1320
-#: Src/wptKeyEditDlgs.cpp:1335 Src/wptKeyEditDlgs.cpp:1339
-#: Src/wptKeyEditDlgs.cpp:1379 Src/wptKeyEditDlgs.cpp:1384
-#: Src/wptKeyEditDlgs.cpp:1391 Src/wptKeyEditDlgs.cpp:1397
-#: Src/wptKeyEditDlgs.cpp:1402 Src/wptKeyEditDlgs.cpp:1445
-#: Src/wptKeyEditDlgs.cpp:1450 Src/wptKeyEditDlgs.cpp:1457
-#: Src/wptKeyEditDlgs.cpp:1464 Src/wptKeyEditDlgs.cpp:1467
-#: Src/wptKeyEditDlgs.cpp:1505 Src/wptKeyEditDlgs.cpp:1513
-#: Src/wptKeyEditDlgs.cpp:1547 Src/wptKeyEditDlgs.cpp:1555
-#: Src/wptKeyEditDlgs.cpp:1654 Src/wptKeyEditDlgs.cpp:1687
-#: Src/wptKeyEditDlgs.cpp:1714 Src/wptKeyEditDlgs.cpp:1718
-#: Src/wptKeyEditDlgs.cpp:1727 Src/wptKeyEditDlgs.cpp:1835
-#: Src/wptKeyEditDlgs.cpp:1840 Src/wptKeyEditDlgs.cpp:1849
-#: Src/wptKeyEditDlgs.cpp:1860 Src/wptKeyEditDlgs.cpp:1864
-#: Src/wptKeyEditDlgs.cpp:1915 Src/wptKeyEditDlgs.cpp:1925
-#: Src/wptKeyEditDlgs.cpp:1936 Src/wptKeyEditDlgs.cpp:1965
-#: Src/wptKeyEditDlgs.cpp:1970 Src/wptKeyManagerDlg.cpp:991
-#: Src/wptKeyManagerDlg.cpp:1786
+#: Src/wptCommonDlg.cpp:124 Src/wptKeyEditDlgs.cpp:756
+#: Src/wptKeyEditDlgs.cpp:814 Src/wptKeyEditDlgs.cpp:852
+#: Src/wptKeyEditDlgs.cpp:865 Src/wptKeyEditDlgs.cpp:915
+#: Src/wptKeyEditDlgs.cpp:955 Src/wptKeyEditDlgs.cpp:962
+#: Src/wptKeyEditDlgs.cpp:980 Src/wptKeyEditDlgs.cpp:1029
+#: Src/wptKeyEditDlgs.cpp:1036 Src/wptKeyEditDlgs.cpp:1127
+#: Src/wptKeyEditDlgs.cpp:1133 Src/wptKeyEditDlgs.cpp:1262
+#: Src/wptKeyEditDlgs.cpp:1266 Src/wptKeyEditDlgs.cpp:1270
+#: Src/wptKeyEditDlgs.cpp:1275 Src/wptKeyEditDlgs.cpp:1312
+#: Src/wptKeyEditDlgs.cpp:1316 Src/wptKeyEditDlgs.cpp:1326
+#: Src/wptKeyEditDlgs.cpp:1341 Src/wptKeyEditDlgs.cpp:1345
+#: Src/wptKeyEditDlgs.cpp:1385 Src/wptKeyEditDlgs.cpp:1390
+#: Src/wptKeyEditDlgs.cpp:1397 Src/wptKeyEditDlgs.cpp:1403
+#: Src/wptKeyEditDlgs.cpp:1408 Src/wptKeyEditDlgs.cpp:1451
+#: Src/wptKeyEditDlgs.cpp:1456 Src/wptKeyEditDlgs.cpp:1463
+#: Src/wptKeyEditDlgs.cpp:1470 Src/wptKeyEditDlgs.cpp:1473
+#: Src/wptKeyEditDlgs.cpp:1511 Src/wptKeyEditDlgs.cpp:1519
+#: Src/wptKeyEditDlgs.cpp:1553 Src/wptKeyEditDlgs.cpp:1561
+#: Src/wptKeyEditDlgs.cpp:1660 Src/wptKeyEditDlgs.cpp:1693
+#: Src/wptKeyEditDlgs.cpp:1720 Src/wptKeyEditDlgs.cpp:1724
+#: Src/wptKeyEditDlgs.cpp:1733 Src/wptKeyEditDlgs.cpp:1852
+#: Src/wptKeyEditDlgs.cpp:1857 Src/wptKeyEditDlgs.cpp:1866
+#: Src/wptKeyEditDlgs.cpp:1878 Src/wptKeyEditDlgs.cpp:1882
+#: Src/wptKeyEditDlgs.cpp:1933 Src/wptKeyEditDlgs.cpp:1943
+#: Src/wptKeyEditDlgs.cpp:1954 Src/wptKeyEditDlgs.cpp:1983
+#: Src/wptKeyEditDlgs.cpp:1988 Src/wptKeyManagerDlg.cpp:991
+#: Src/wptKeyManagerDlg.cpp:1791
msgid "Key Edit"
msgstr "Schlüssel bearbeiten"
@@ -772,8 +773,8 @@
msgid "No"
msgstr "&Nein"
-#: Src/wptCommonDlg.cpp:215 Src/wptKeyEditDlgs.cpp:231
-#: Src/wptKeyEditDlgs.cpp:1088
+#: Src/wptCommonDlg.cpp:215 Src/wptKeyEditDlgs.cpp:233
+#: Src/wptKeyEditDlgs.cpp:1093
msgid "OK"
msgstr "OK"
@@ -1059,7 +1060,7 @@
#: Src/wptFileManager.cpp:1457 Src/wptFileManager.cpp:1484
#: Src/wptFileManager.cpp:1503 Src/wptFileManager.cpp:1761
#: Src/wptFileManager.cpp:1823 Src/wptFileManagerDlg.cpp:497
-#: Src/wptFileStatDlg.cpp:137 Src/wptMainProc.cpp:397 Src/wptMDSumDlg.cpp:153
+#: Src/wptFileStatDlg.cpp:137 Src/wptMainProc.cpp:400 Src/wptMDSumDlg.cpp:153
msgid "File Manager"
msgstr "Dateimanager"
@@ -1090,12 +1091,12 @@
"\n"
"Möchten Sie die Kompression ausschalten?"
-#: Src/wptFileManager.cpp:383 Src/wptKeyEditDlgs.cpp:1011
+#: Src/wptFileManager.cpp:383 Src/wptKeyEditDlgs.cpp:1016
#: Src/wptVerifyList.cpp:98 Src/wptVerifyList.cpp:106
msgid "Status"
msgstr "Status"
-#: Src/wptFileManager.cpp:384 Src/wptKeyEditDlgs.cpp:1114
+#: Src/wptFileManager.cpp:384 Src/wptKeyEditDlgs.cpp:1119
#: Src/wptKeyRevokersDlg.cpp:57 Src/wptMDSumDlg.cpp:73
#: Src/wptVerifyList.cpp:97
msgid "Name"
@@ -1138,17 +1139,17 @@
#: Src/wptFileManager.cpp:1118 Src/wptFileManager.cpp:1402
#: Src/wptFileManagerDlg.cpp:548 Src/wptMainProc.cpp:197
-#: Src/wptMainProc.cpp:413 Src/wptMainProc.cpp:420
+#: Src/wptMainProc.cpp:416 Src/wptMainProc.cpp:423
msgid "Sign"
msgstr "Signieren"
#: Src/wptFileManager.cpp:1131 Src/wptFileManagerDlg.cpp:546
-#: Src/wptMainProc.cpp:412 Src/wptMainProc.cpp:417
+#: Src/wptMainProc.cpp:415 Src/wptMainProc.cpp:420
msgid "Encrypt"
msgstr "Verschlüsseln"
#: Src/wptFileManager.cpp:1158 Src/wptFileManager.cpp:1189
-#: Src/wptFileManager.cpp:1194 Src/wptMainProc.cpp:411
+#: Src/wptFileManager.cpp:1194 Src/wptMainProc.cpp:414
msgid "Symmetric"
msgstr "Symmetrisch"
@@ -1224,11 +1225,11 @@
msgstr "Ungültiger Dateiname. Abbruch"
#: Src/wptFileManager.cpp:1654 Src/wptFileManager.cpp:1665
-#: Src/wptFileManagerDlg.cpp:242 Src/wptImportList.cpp:414
-#: Src/wptImportList.cpp:421 Src/wptImportList.cpp:430
-#: Src/wptImportList.cpp:438 Src/wptImportList.cpp:447
+#: Src/wptFileManagerDlg.cpp:242 Src/wptImportList.cpp:413
+#: Src/wptImportList.cpp:419 Src/wptImportList.cpp:429
+#: Src/wptImportList.cpp:437 Src/wptImportList.cpp:446
#: Src/wptKeyManager.cpp:501 Src/wptKeyManager.cpp:512
-#: Src/wptKeyManager.cpp:647 Src/wptKeyserverDlg.cpp:229
+#: Src/wptKeyManager.cpp:641 Src/wptKeyserverDlg.cpp:229
msgid "Import"
msgstr "Importieren"
@@ -1254,13 +1255,13 @@
msgid "Export"
msgstr "Exportieren"
-#: Src/wptFileManager.cpp:1696 Src/wptKeyManagerDlg.cpp:1709
-#: Src/wptKeyManagerDlg.cpp:1743
+#: Src/wptFileManager.cpp:1696 Src/wptKeyManagerDlg.cpp:1714
+#: Src/wptKeyManagerDlg.cpp:1748
msgid "Choose Name for Key File"
msgstr "Den Namen der Schlüsseldatei wählen"
-#: Src/wptFileManager.cpp:1715 Src/wptKeyEditDlgs.cpp:990
-#: Src/wptKeyEditDlgs.cpp:1287 Src/wptKeyEditDlgs.cpp:1358
+#: Src/wptFileManager.cpp:1715 Src/wptKeyEditDlgs.cpp:995
+#: Src/wptKeyEditDlgs.cpp:1292 Src/wptKeyEditDlgs.cpp:1364
#: Src/wptKeyserverDlg.cpp:106
msgid "GnuPG status"
msgstr "GnuPG Status"
@@ -1379,13 +1380,13 @@
msgid "Options"
msgstr "Optionen"
-#: Src/wptFileManagerDlg.cpp:330 Src/wptKeyEditDlgs.cpp:1261
-#: Src/wptKeyEditDlgs.cpp:1310 Src/wptKeyEditDlgs.cpp:1384
-#: Src/wptKeyManager.cpp:716 Src/wptKeyManager.cpp:817
-#: Src/wptKeyManager.cpp:854 Src/wptKeyManagerDlg.cpp:1490
-#: Src/wptKeyManagerDlg.cpp:1510 Src/wptKeyManagerDlg.cpp:1544
-#: Src/wptKeyManagerDlg.cpp:1563 Src/wptKeyManagerDlg.cpp:1583
-#: Src/wptKeyManagerDlg.cpp:1699 Src/wptKeyManagerDlg.cpp:1718
+#: Src/wptFileManagerDlg.cpp:330 Src/wptKeyEditDlgs.cpp:1266
+#: Src/wptKeyEditDlgs.cpp:1316 Src/wptKeyEditDlgs.cpp:1390
+#: Src/wptKeyManager.cpp:710 Src/wptKeyManager.cpp:811
+#: Src/wptKeyManager.cpp:847 Src/wptKeyManagerDlg.cpp:1495
+#: Src/wptKeyManagerDlg.cpp:1515 Src/wptKeyManagerDlg.cpp:1549
+#: Src/wptKeyManagerDlg.cpp:1568 Src/wptKeyManagerDlg.cpp:1588
+#: Src/wptKeyManagerDlg.cpp:1704 Src/wptKeyManagerDlg.cpp:1723
#: Src/wptKeyserverSearchDlg.cpp:132
msgid "Please select a key."
msgstr "Bitte Schlüssel wählen."
@@ -1399,7 +1400,7 @@
msgid "%d Object(s) marked"
msgstr "%d Objekt(e) markiert"
-#: Src/wptFileManagerDlg.cpp:464 Src/wptMainProc.cpp:540
+#: Src/wptFileManagerDlg.cpp:464 Src/wptMainProc.cpp:543
msgid "File Manager (use drag & drop to add files)"
msgstr "Dateimanager (Drag & Drop möglich)"
@@ -1434,7 +1435,7 @@
msgstr "&Signieren"
#: Src/wptFileManagerDlg.cpp:474 Src/wptFileManagerDlg.cpp:549
-#: Src/wptMainProc.cpp:414 Src/wptMainProc.cpp:418
+#: Src/wptMainProc.cpp:417 Src/wptMainProc.cpp:421
msgid "Sign && Encrypt"
msgstr "Signieren && Verschlüsseln"
@@ -1457,7 +1458,7 @@
# msgid "Executable Files (*.exe)"
# msgstr ""
# XXX \0\0 problem again
-#: Src/wptFileManagerDlg.cpp:479 Src/wptMainProc.cpp:410
+#: Src/wptFileManagerDlg.cpp:479 Src/wptMainProc.cpp:413
msgid "Exit"
msgstr "Beenden"
@@ -1606,7 +1607,7 @@
msgid "Could not reset read-only state."
msgstr "Konnte den Read-Only Zustand nicht zurücksetzen."
-#: Src/wptGPG.cpp:839 Src/wptGPG.cpp:1119 Src/wptGPG.cpp:1128
+#: Src/wptGPG.cpp:839 Src/wptGPG.cpp:1118 Src/wptGPG.cpp:1127
msgid "GPG Error"
msgstr "GPG Fehler"
@@ -1632,8 +1633,8 @@
#: Src/wptGPGPrefsDlg.cpp:222 Src/wptGPGPrefsDlg.cpp:228
#: Src/wptGPGPrefsDlg.cpp:233 Src/wptGPGPrefsDlg.cpp:238
#: Src/wptGPGPrefsDlg.cpp:244 Src/wptGPGPrefsDlg.cpp:258
-#: Src/wptKeyEditDlgs.cpp:1661 Src/wptKeyManagerDlg.cpp:956
-#: Src/wptMainProc.cpp:430 Src/wptPreferencesDlg.cpp:209
+#: Src/wptKeyEditDlgs.cpp:1667 Src/wptKeyManagerDlg.cpp:956
+#: Src/wptMainProc.cpp:433 Src/wptPreferencesDlg.cpp:209
#: Src/wptPreferencesDlg.cpp:252 Src/wptPreferencesDlg.cpp:263
#: Src/wptPreferencesDlg.cpp:275 Src/wptPreferencesDlg.cpp:308
#: Src/wptRegistry.cpp:596
@@ -1697,7 +1698,7 @@
msgid "Invalid backup mode %d"
msgstr "Ungültiger Sicherungsmethode %d"
-#: Src/wptGPG.cpp:1118
+#: Src/wptGPG.cpp:1117
msgid "No GPG error description available."
msgstr "Keine GPG-Fehlerbeschreibung verfügbar."
@@ -1771,8 +1772,8 @@
"Aktuelle Daten gehen verloren\n"
"Sind Sie sicher?"
-#: Src/wptGPGPrefsDlg.cpp:141 Src/wptKeyManagerDlg.cpp:1671
-#: Src/wptMainProc.cpp:588
+#: Src/wptGPGPrefsDlg.cpp:141 Src/wptKeyManagerDlg.cpp:1676
+#: Src/wptMainProc.cpp:591
msgid "GnuPG Preferences"
msgstr "GnuPG-Einstellungen"
@@ -1907,71 +1908,72 @@
#: Src/wptKeyManager.cpp:417 Src/wptKeyManager.cpp:458
#: Src/wptKeyManager.cpp:463 Src/wptKeyManager.cpp:466
#: Src/wptKeyManager.cpp:471 Src/wptKeyManager.cpp:477
-#: Src/wptKeyManager.cpp:482 Src/wptKeyManager.cpp:617
-#: Src/wptKeyManager.cpp:625 Src/wptKeyManager.cpp:716
-#: Src/wptKeyManager.cpp:745 Src/wptKeyManager.cpp:755
-#: Src/wptKeyManager.cpp:766 Src/wptKeyManager.cpp:792
-#: Src/wptKeyManager.cpp:817 Src/wptKeyManager.cpp:824
-#: Src/wptKeyManager.cpp:849 Src/wptKeyManager.cpp:854
-#: Src/wptKeyManager.cpp:882 Src/wptKeyManager.cpp:929
-#: Src/wptKeyManager.cpp:936 Src/wptKeyManager.cpp:996
-#: Src/wptKeyManager.cpp:1026 Src/wptKeyManagerDlg.cpp:1170
-#: Src/wptKeyManagerDlg.cpp:1188 Src/wptKeyManagerDlg.cpp:1469
-#: Src/wptKeyManagerDlg.cpp:1491 Src/wptKeyManagerDlg.cpp:1510
-#: Src/wptKeyManagerDlg.cpp:1518 Src/wptKeyManagerDlg.cpp:1528
-#: Src/wptKeyManagerDlg.cpp:1544 Src/wptKeyManagerDlg.cpp:1550
-#: Src/wptKeyManagerDlg.cpp:1563 Src/wptKeyManagerDlg.cpp:1583
-#: Src/wptKeyManagerDlg.cpp:1612 Src/wptKeyManagerDlg.cpp:1641
-#: Src/wptKeyManagerDlg.cpp:1700 Src/wptKeyManagerDlg.cpp:1718
+#: Src/wptKeyManager.cpp:482 Src/wptKeyManager.cpp:611
+#: Src/wptKeyManager.cpp:619 Src/wptKeyManager.cpp:710
+#: Src/wptKeyManager.cpp:739 Src/wptKeyManager.cpp:749
+#: Src/wptKeyManager.cpp:760 Src/wptKeyManager.cpp:786
+#: Src/wptKeyManager.cpp:811 Src/wptKeyManager.cpp:818
+#: Src/wptKeyManager.cpp:842 Src/wptKeyManager.cpp:847
+#: Src/wptKeyManager.cpp:867 Src/wptKeyManager.cpp:912
+#: Src/wptKeyManager.cpp:917 Src/wptKeyManager.cpp:977
+#: Src/wptKeyManager.cpp:1007 Src/wptKeyManagerDlg.cpp:1170
+#: Src/wptKeyManagerDlg.cpp:1183 Src/wptKeyManagerDlg.cpp:1193
+#: Src/wptKeyManagerDlg.cpp:1474 Src/wptKeyManagerDlg.cpp:1496
+#: Src/wptKeyManagerDlg.cpp:1515 Src/wptKeyManagerDlg.cpp:1523
+#: Src/wptKeyManagerDlg.cpp:1533 Src/wptKeyManagerDlg.cpp:1549
+#: Src/wptKeyManagerDlg.cpp:1555 Src/wptKeyManagerDlg.cpp:1568
+#: Src/wptKeyManagerDlg.cpp:1588 Src/wptKeyManagerDlg.cpp:1617
+#: Src/wptKeyManagerDlg.cpp:1646 Src/wptKeyManagerDlg.cpp:1705
#: Src/wptKeyManagerDlg.cpp:1723 Src/wptKeyManagerDlg.cpp:1728
-#: Src/wptKeyManagerDlg.cpp:1815 Src/wptKeyManagerDlg.cpp:1996
-#: Src/wptKeysigDlg.cpp:93 Src/wptKeysigDlg.cpp:105 Src/wptKeysigDlg.cpp:277
-#: Src/wptKeysigDlg.cpp:354 Src/wptKeysigDlg.cpp:363 Src/wptKeysigDlg.cpp:407
-#: Src/wptMainProc.cpp:398 Src/wptMainProc.cpp:551 Src/wptMainProc.cpp:559
+#: Src/wptKeyManagerDlg.cpp:1733 Src/wptKeyManagerDlg.cpp:1820
+#: Src/wptKeyManagerDlg.cpp:2001 Src/wptKeysigDlg.cpp:93
+#: Src/wptKeysigDlg.cpp:105 Src/wptKeysigDlg.cpp:277 Src/wptKeysigDlg.cpp:354
+#: Src/wptKeysigDlg.cpp:363 Src/wptKeysigDlg.cpp:407 Src/wptMainProc.cpp:401
+#: Src/wptMainProc.cpp:554 Src/wptMainProc.cpp:562
msgid "Key Manager"
msgstr "Schlüsselverwaltung"
-#: Src/wptImportList.cpp:264 Src/wptKeyEditDlgs.cpp:227
-#: Src/wptKeyEditDlgs.cpp:1086 Src/wptKeyEditDlgs.cpp:1147
-#: Src/wptKeyEditDlgs.cpp:1396 Src/wptKeyEditDlgs.cpp:1416
-#: Src/wptKeyEditDlgs.cpp:1455 Src/wptKeyEditDlgs.cpp:1486
-#: Src/wptKeylist.cpp:392 Src/wptKeylist.cpp:426 Src/wptKeyPropsDlg.cpp:165
+#: Src/wptImportList.cpp:263 Src/wptKeyEditDlgs.cpp:229
+#: Src/wptKeyEditDlgs.cpp:1091 Src/wptKeyEditDlgs.cpp:1152
+#: Src/wptKeyEditDlgs.cpp:1402 Src/wptKeyEditDlgs.cpp:1422
+#: Src/wptKeyEditDlgs.cpp:1461 Src/wptKeyEditDlgs.cpp:1492
+#: Src/wptKeylist.cpp:392 Src/wptKeylist.cpp:426 Src/wptKeyPropsDlg.cpp:163
#: Src/wptKeysigDlg.cpp:143 Src/wptKeysigDlg.cpp:208
msgid "Revoked"
msgstr "Widerrufen"
-#: Src/wptImportList.cpp:266 Src/wptKeyEditDlgs.cpp:229
-#: Src/wptKeyEditDlgs.cpp:1084 Src/wptKeyEditDlgs.cpp:1317
-#: Src/wptKeylist.cpp:394 Src/wptKeylist.cpp:424 Src/wptKeyPropsDlg.cpp:162
+#: Src/wptImportList.cpp:265 Src/wptKeyEditDlgs.cpp:231
+#: Src/wptKeyEditDlgs.cpp:1089 Src/wptKeyEditDlgs.cpp:1323
+#: Src/wptKeylist.cpp:394 Src/wptKeylist.cpp:424 Src/wptKeyPropsDlg.cpp:160
#: Src/wptKeysigDlg.cpp:142 Src/wptKeysigDlg.cpp:209
msgid "Expired"
msgstr "Abgelaufen"
-#: Src/wptImportList.cpp:270
+#: Src/wptImportList.cpp:269
msgid "secret key"
msgstr "geheimer Schlüssel"
-#: Src/wptImportList.cpp:272 Src/wptKeylist.cpp:430
+#: Src/wptImportList.cpp:271 Src/wptKeylist.cpp:430
msgid "public key"
msgstr "öffentlicher Schlüssel"
-#: Src/wptImportList.cpp:303 Src/wptKeyEditDlgs.cpp:1164
+#: Src/wptImportList.cpp:302 Src/wptKeyEditDlgs.cpp:1169
msgid "Invalid user ID"
msgstr "Ungültige Benutzerkennung"
-#: Src/wptImportList.cpp:352 Src/wptKeylist.cpp:544 Src/wptKeylist.cpp:552
+#: Src/wptImportList.cpp:351 Src/wptKeylist.cpp:544 Src/wptKeylist.cpp:552
#: Src/wptKeyManagerDlg.cpp:873 Src/wptKeyManagerDlg.cpp:942
#: Src/wptKeyserverSearchDlg.cpp:54 Src/wptSigList.cpp:51
#: Src/wptVerifyList.cpp:101 Src/wptVerifyList.cpp:110
msgid "User ID"
msgstr "Benutzerkennung"
-#: Src/wptImportList.cpp:353 Src/wptKeylist.cpp:546 Src/wptKeylist.cpp:555
+#: Src/wptImportList.cpp:352 Src/wptKeylist.cpp:546 Src/wptKeylist.cpp:555
#: Src/wptKeyManagerDlg.cpp:876 Src/wptKeyserverSearchDlg.cpp:51
msgid "Size"
msgstr "Größe"
-#: Src/wptImportList.cpp:354 Src/wptKeyEditDlgs.cpp:1008
+#: Src/wptImportList.cpp:353 Src/wptKeyEditDlgs.cpp:1013
#: Src/wptKeylist.cpp:545 Src/wptKeylist.cpp:553 Src/wptKeyManagerDlg.cpp:874
#: Src/wptKeyManagerDlg.cpp:965 Src/wptKeyRevokersDlg.cpp:58
#: Src/wptKeyserverSearchDlg.cpp:52 Src/wptSigList.cpp:55
@@ -1979,20 +1981,20 @@
msgid "Key ID"
msgstr "Schlüssel-ID"
-#: Src/wptImportList.cpp:355 Src/wptKeyEditDlgs.cpp:1009
-#: Src/wptKeyEditDlgs.cpp:1116 Src/wptKeylist.cpp:559
+#: Src/wptImportList.cpp:354 Src/wptKeyEditDlgs.cpp:1014
+#: Src/wptKeyEditDlgs.cpp:1121 Src/wptKeylist.cpp:559
#: Src/wptKeyManagerDlg.cpp:880 Src/wptKeyManagerDlg.cpp:968
#: Src/wptKeyserverSearchDlg.cpp:53 Src/wptSigList.cpp:54
msgid "Creation"
msgstr "Erstellung"
-#: Src/wptImportList.cpp:356 Src/wptKeylist.cpp:554
+#: Src/wptImportList.cpp:355 Src/wptKeylist.cpp:554
#: Src/wptKeyManagerDlg.cpp:875 Src/wptKeyManagerDlg.cpp:967
msgid "Type"
msgstr "Typ"
# c:\oss\winpt-gpgme\src\wptImportList.cpp:424
-#: Src/wptImportList.cpp:429
+#: Src/wptImportList.cpp:427
msgid ""
"It is possible that the ASCII-Armor is damaged\n"
"and thus a CRC error occurs."
@@ -2001,7 +2003,7 @@
"und deshalb ein CRC Fehler auftrat."
# c:\oss\winpt-gpgme\src\wptKeyCache.cpp:479
-#: Src/wptKeyCache.cpp:656
+#: Src/wptKeyCache.cpp:642
msgid "Load GPG Keyrings..."
msgstr "Lade GPG Keyrings"
@@ -2017,20 +2019,20 @@
msgid "Key Cache"
msgstr "Schlüssel Cache"
-#: Src/wptKeyEditDlgs.cpp:200
+#: Src/wptKeyEditDlgs.cpp:202
msgid "Ultimate"
msgstr "Absolut"
-#: Src/wptKeyEditDlgs.cpp:215 Src/wptKeyEditDlgs.cpp:1081
+#: Src/wptKeyEditDlgs.cpp:217 Src/wptKeyEditDlgs.cpp:1086
#: Src/wptKeylist.cpp:235 Src/wptKeylist.cpp:354
msgid "Never"
msgstr "Niemals"
-#: Src/wptKeyEditDlgs.cpp:255
+#: Src/wptKeyEditDlgs.cpp:257
msgid "user ID"
msgstr "Benutzerkennung"
-#: Src/wptKeyEditDlgs.cpp:256
+#: Src/wptKeyEditDlgs.cpp:258
#, c-format
msgid ""
"Could not get key information for: \"%s\":\n"
@@ -2040,7 +2042,7 @@
"%s"
# c:\oss\winpt-gpgme\src\wptKeyEditDlgs.cpp:258
-#: Src/wptKeyEditDlgs.cpp:328
+#: Src/wptKeyEditDlgs.cpp:330
msgid ""
"Remember that the image is stored within your public key. If you use a very "
"large picture, your key will become very large as well! Keeping the image "
@@ -2051,7 +2053,7 @@
"240x288 grosses Bild ist eine gute Größe."
# c:\oss\winpt-gpgme\src\wptKeyEditDlgs.cpp:259
-#: Src/wptKeyEditDlgs.cpp:329
+#: Src/wptKeyEditDlgs.cpp:331
msgid ""
"Pick an image to use for your photo ID.\n"
"The image must be a JPEG file."
@@ -2059,39 +2061,39 @@
"Bitte ein Bild auswaehlen fuer die photo ID.\n"
"Das Bild muss eine JPEG Datei sein."
-#: Src/wptKeyEditDlgs.cpp:330 Src/wptKeyEditDlgs.cpp:430
+#: Src/wptKeyEditDlgs.cpp:332 Src/wptKeyEditDlgs.cpp:432
#: Src/wptKeysignDlg.cpp:267
msgid "Passphrase"
msgstr "Passwort"
-#: Src/wptKeyEditDlgs.cpp:332
+#: Src/wptKeyEditDlgs.cpp:334
msgid "Add Photo ID"
msgstr "Photo ID hinzufügen"
-#: Src/wptKeyEditDlgs.cpp:348
+#: Src/wptKeyEditDlgs.cpp:350
msgid "Select Image File"
msgstr "Bilddatei auswählen"
-#: Src/wptKeyEditDlgs.cpp:349
+#: Src/wptKeyEditDlgs.cpp:351
msgid "JPEG Files (*.jpg, *.jpeg)"
msgstr ""
-#: Src/wptKeyEditDlgs.cpp:352 Src/wptKeyEditDlgs.cpp:362
-#: Src/wptKeyEditDlgs.cpp:368 Src/wptKeyEditDlgs.cpp:374
-#: Src/wptKeyEditDlgs.cpp:386 Src/wptKeyEditDlgs.cpp:876
+#: Src/wptKeyEditDlgs.cpp:354 Src/wptKeyEditDlgs.cpp:364
+#: Src/wptKeyEditDlgs.cpp:370 Src/wptKeyEditDlgs.cpp:376
+#: Src/wptKeyEditDlgs.cpp:388 Src/wptKeyEditDlgs.cpp:880
msgid "Add Photo"
msgstr "Foto hinzufügen"
-#: Src/wptKeyEditDlgs.cpp:353
+#: Src/wptKeyEditDlgs.cpp:355
#, c-format
msgid "'%s' is not a valid JPEG file."
msgstr "'%s' is keine gültige JPEG Datei."
-#: Src/wptKeyEditDlgs.cpp:362 Src/wptKeyRevokeDlg.cpp:142
+#: Src/wptKeyEditDlgs.cpp:364 Src/wptKeyRevokeDlg.cpp:142
msgid "Please enter a file name."
msgstr "Bitte Dateinamen eingeben."
-#: Src/wptKeyEditDlgs.cpp:366
+#: Src/wptKeyEditDlgs.cpp:368
msgid ""
"The JPEG is really large.\n"
"Are you sure you want to use it?"
@@ -2099,156 +2101,156 @@
"Das JPEG ist sehr groß.\n"
"Sind Sie sicher, dass Sie es benutzen wollen?"
-#: Src/wptKeyEditDlgs.cpp:374
+#: Src/wptKeyEditDlgs.cpp:376
msgid "Please enter a passphrase."
msgstr "Bitte ein Passwort eingeben."
-#: Src/wptKeyEditDlgs.cpp:391
+#: Src/wptKeyEditDlgs.cpp:393
msgid "Photo successfully added."
msgstr "Foto erfolgreich hinzugefügt."
-#: Src/wptKeyEditDlgs.cpp:392 Src/wptKeyEditDlgs.cpp:471
-#: Src/wptKeyEditDlgs.cpp:553 Src/wptKeyEditDlgs.cpp:720
-#: Src/wptKeyEditDlgs.cpp:1418 Src/wptKeyEditDlgs.cpp:1488
-#: Src/wptKeyEditDlgs.cpp:1568 Src/wptKeyEditDlgs.cpp:1746
+#: Src/wptKeyEditDlgs.cpp:394 Src/wptKeyEditDlgs.cpp:473
+#: Src/wptKeyEditDlgs.cpp:556 Src/wptKeyEditDlgs.cpp:723
+#: Src/wptKeyEditDlgs.cpp:1424 Src/wptKeyEditDlgs.cpp:1494
+#: Src/wptKeyEditDlgs.cpp:1574 Src/wptKeyEditDlgs.cpp:1752
#: Src/wptKeygenDlg.cpp:496 Src/wptKeygenDlg.cpp:612
-#: Src/wptKeyPropsDlg.cpp:363 Src/wptOwnertrustDlg.cpp:124
+#: Src/wptKeyPropsDlg.cpp:361 Src/wptOwnertrustDlg.cpp:124
#: Src/wptOwnertrustDlg.cpp:136
msgid "GnuPG Status"
msgstr "GnuPG-Status"
# c:\oss\winpt-gpgme\src\wptKeyEditDlgs.cpp:350
-#: Src/wptKeyEditDlgs.cpp:428
+#: Src/wptKeyEditDlgs.cpp:430
msgid "Appointing a key as designated revoker cannot be undone."
msgstr ""
"Hinzufügen eines \"Revokers\" kann nicht mehr\n"
"rückgängig gemacht werden."
-#: Src/wptKeyEditDlgs.cpp:429
+#: Src/wptKeyEditDlgs.cpp:431
msgid "Public key"
msgstr "öff. Schlüssel"
-#: Src/wptKeyEditDlgs.cpp:432 Src/wptKeyEditDlgs.cpp:448
-#: Src/wptKeyEditDlgs.cpp:454 Src/wptKeyEditDlgs.cpp:465
-#: Src/wptKeyEditDlgs.cpp:889
+#: Src/wptKeyEditDlgs.cpp:434 Src/wptKeyEditDlgs.cpp:450
+#: Src/wptKeyEditDlgs.cpp:456 Src/wptKeyEditDlgs.cpp:467
+#: Src/wptKeyEditDlgs.cpp:893
msgid "Add Revoker"
msgstr "\"Revoker\" hinzufügen"
-#: Src/wptKeyEditDlgs.cpp:448 Src/wptKeyEditDlgs.cpp:1450
-#: Src/wptKeyEditDlgs.cpp:1505 Src/wptKeyEditDlgs.cpp:1547
-#: Src/wptKeyEditDlgs.cpp:1687 Src/wptKeyEditDlgs.cpp:1718
-#: Src/wptKeyEditDlgs.cpp:1835
+#: Src/wptKeyEditDlgs.cpp:450 Src/wptKeyEditDlgs.cpp:1456
+#: Src/wptKeyEditDlgs.cpp:1511 Src/wptKeyEditDlgs.cpp:1553
+#: Src/wptKeyEditDlgs.cpp:1693 Src/wptKeyEditDlgs.cpp:1724
+#: Src/wptKeyEditDlgs.cpp:1852
msgid "Please select a user ID."
msgstr "Bitte eine Benutzerkennung wählen."
-#: Src/wptKeyEditDlgs.cpp:454 Src/wptKeygenDlg.cpp:457
+#: Src/wptKeyEditDlgs.cpp:456 Src/wptKeygenDlg.cpp:457
#: Src/wptKeyRevokeDlg.cpp:150
msgid "Please enter the passphrase."
msgstr "Bitte das Passwort eingeben."
-#: Src/wptKeyEditDlgs.cpp:470
+#: Src/wptKeyEditDlgs.cpp:472
msgid "Revoker successfully addded."
msgstr "Widerrufer erfolgreich hinzugefügt."
-#: Src/wptKeyEditDlgs.cpp:502
+#: Src/wptKeyEditDlgs.cpp:504
msgid "Add new User ID"
msgstr "Neue Benutzerkennung hinzufügen"
-#: Src/wptKeyEditDlgs.cpp:504
+#: Src/wptKeyEditDlgs.cpp:506
msgid "&Email"
msgstr "&E-Mail"
-#: Src/wptKeyEditDlgs.cpp:505
+#: Src/wptKeyEditDlgs.cpp:507
msgid "&Comment"
msgstr "&Kommentar"
-#: Src/wptKeyEditDlgs.cpp:521
+#: Src/wptKeyEditDlgs.cpp:523
msgid "Please enter a name (min. 5 chars.)"
msgstr "Bitte Namen eingeben (mindestens 5 Zeichen)"
-#: Src/wptKeyEditDlgs.cpp:521 Src/wptKeyEditDlgs.cpp:525
-#: Src/wptKeyEditDlgs.cpp:530 Src/wptKeyEditDlgs.cpp:534
-#: Src/wptKeyEditDlgs.cpp:551
+#: Src/wptKeyEditDlgs.cpp:523 Src/wptKeyEditDlgs.cpp:527
+#: Src/wptKeyEditDlgs.cpp:532 Src/wptKeyEditDlgs.cpp:536
+#: Src/wptKeyEditDlgs.cpp:554
msgid "UserID"
msgstr "Benutzerkennung"
-#: Src/wptKeyEditDlgs.cpp:525
+#: Src/wptKeyEditDlgs.cpp:527
msgid ""
"Please enter the email address in the email field and not in the name field"
msgstr ""
"Bitte E-Mail-Adresse in das E-Mail-Feld und nicht in das Namensfeld eingeben"
-#: Src/wptKeyEditDlgs.cpp:530
+#: Src/wptKeyEditDlgs.cpp:532
msgid "Please enter an email address."
msgstr "Bitte eine E-Mail-Adresse eingeben."
-#: Src/wptKeyEditDlgs.cpp:534
+#: Src/wptKeyEditDlgs.cpp:536
msgid "Invalid email address."
msgstr "Ungültige E-Mail-Adresse"
-#: Src/wptKeyEditDlgs.cpp:553
+#: Src/wptKeyEditDlgs.cpp:556
msgid "user ID successfully added."
msgstr "Benutzerkennung erfolgreich hinzugefügt"
-#: Src/wptKeyEditDlgs.cpp:637 Src/wptKeyEditDlgs.cpp:824
+#: Src/wptKeyEditDlgs.cpp:636 Src/wptKeyEditDlgs.cpp:827
msgid "Add new Subkey"
msgstr "Neuen Unterschlüssel hinzufügen"
-#: Src/wptKeyEditDlgs.cpp:638
+#: Src/wptKeyEditDlgs.cpp:637
msgid "Key type"
msgstr "Schlüssel Typ"
-#: Src/wptKeyEditDlgs.cpp:639
+#: Src/wptKeyEditDlgs.cpp:638
msgid "Size in bits"
msgstr "Größe in Bits"
-#: Src/wptKeyEditDlgs.cpp:640
+#: Src/wptKeyEditDlgs.cpp:639
msgid "Key expiration"
msgstr "Key Ablaufdatum"
-#: Src/wptKeyEditDlgs.cpp:685
+#: Src/wptKeyEditDlgs.cpp:684
msgid "Please select one entry."
msgstr "Bitte einen Eintrag wählen."
-#: Src/wptKeyEditDlgs.cpp:685 Src/wptKeyEditDlgs.cpp:691
-#: Src/wptKeyEditDlgs.cpp:718 Src/wptKeyEditDlgs.cpp:807
+#: Src/wptKeyEditDlgs.cpp:684 Src/wptKeyEditDlgs.cpp:690
+#: Src/wptKeyEditDlgs.cpp:721 Src/wptKeyEditDlgs.cpp:810
msgid "Add Subkey"
msgstr "Unterschlüssel hinzufügen"
-#: Src/wptKeyEditDlgs.cpp:690
+#: Src/wptKeyEditDlgs.cpp:689
msgid "DSS uses a fixed keysize of 1024. Size changed."
msgstr "DSS benötigt feste Schlüssellänge von 1024. Größe geändert."
-#: Src/wptKeyEditDlgs.cpp:720
+#: Src/wptKeyEditDlgs.cpp:723
msgid "Subkey successfully added."
msgstr "Unterschlüssel erfolgreich hinzugefügt."
-#: Src/wptKeyEditDlgs.cpp:748 Src/wptKeyEditDlgs.cpp:807
-#: Src/wptKeyEditDlgs.cpp:876 Src/wptKeyEditDlgs.cpp:889
-#: Src/wptKeyEditDlgs.cpp:950 Src/wptKeyEditDlgs.cpp:1306
-#: Src/wptKeyEditDlgs.cpp:1379 Src/wptKeyEditDlgs.cpp:1439
-#: Src/wptKeyManagerDlg.cpp:1517
+#: Src/wptKeyEditDlgs.cpp:751 Src/wptKeyEditDlgs.cpp:810
+#: Src/wptKeyEditDlgs.cpp:880 Src/wptKeyEditDlgs.cpp:893
+#: Src/wptKeyEditDlgs.cpp:954 Src/wptKeyEditDlgs.cpp:1312
+#: Src/wptKeyEditDlgs.cpp:1385 Src/wptKeyEditDlgs.cpp:1445
+#: Src/wptKeyManagerDlg.cpp:1522
msgid "There is no secret key available!"
msgstr "Kein geheimer Schlüssel vorhanden!"
-#: Src/wptKeyEditDlgs.cpp:748 Src/wptKeyEditDlgs.cpp:764
+#: Src/wptKeyEditDlgs.cpp:751 Src/wptKeyEditDlgs.cpp:767
msgid "Add user ID"
msgstr "Benutzerkennung hinzufügen"
-#: Src/wptKeyEditDlgs.cpp:861
+#: Src/wptKeyEditDlgs.cpp:865
msgid "Preferred keyserver successfully set."
msgstr "Bevorzugter Keyserver wurde erfolgreich gesetzt."
-#: Src/wptKeyEditDlgs.cpp:908 Src/wptKeyEditOwnertrustDlg.cpp:55
-#: Src/wptKeyPropsDlg.cpp:355
+#: Src/wptKeyEditDlgs.cpp:912 Src/wptKeyEditOwnertrustDlg.cpp:55
+#: Src/wptKeyPropsDlg.cpp:353
msgid "Change Ownertrust"
msgstr "Besitzervertrauen ändern"
-#: Src/wptKeyEditDlgs.cpp:911 Src/wptKeyManager.cpp:232
+#: Src/wptKeyEditDlgs.cpp:915 Src/wptKeyManager.cpp:232
msgid "Key status changed."
msgstr "Schlüsselstatus geändert"
-#: Src/wptKeyEditDlgs.cpp:955
+#: Src/wptKeyEditDlgs.cpp:960
msgid ""
"Cannot change passphrase because the key\n"
"is protected with the IDEA encryption algorithm."
@@ -2256,15 +2258,15 @@
"Kann das Passwort das Schlüssels nicht ändern, da der \n"
"Schlüssel mit dem IDEA Verschlüsselungs-Algorithmus gesichert ist."
-#: Src/wptKeyEditDlgs.cpp:962
+#: Src/wptKeyEditDlgs.cpp:967
msgid "Current (old) Passphrase"
msgstr "Aktuelles (altes) Passwort"
-#: Src/wptKeyEditDlgs.cpp:966
+#: Src/wptKeyEditDlgs.cpp:971
msgid "New Passphrase"
msgstr "Neues Passwort"
-#: Src/wptKeyEditDlgs.cpp:973 Src/wptPassphraseDlg.cpp:175
+#: Src/wptKeyEditDlgs.cpp:978 Src/wptPassphraseDlg.cpp:175
msgid ""
"The passphrase contains 8-bit characters.\n"
"It is not suggested to use charset specific characters."
@@ -2272,44 +2274,44 @@
"Das Passwort enthält 8-bit Zeichen.\n"
"Es ist nicht zu empfehlen zeichensatzspezifische Zeichen zu benutzen."
-#: Src/wptKeyEditDlgs.cpp:988
+#: Src/wptKeyEditDlgs.cpp:993
msgid "Change Passwd"
msgstr "Passwort ändern"
-#: Src/wptKeyEditDlgs.cpp:990
+#: Src/wptKeyEditDlgs.cpp:995
msgid "Passphrase successfully changed."
msgstr "Passwort erfolgreich geändert."
-#: Src/wptKeyEditDlgs.cpp:1007 Src/wptKeyManagerDlg.cpp:881
+#: Src/wptKeyEditDlgs.cpp:1012 Src/wptKeyManagerDlg.cpp:881
msgid "Description"
msgstr "Beschreibung"
-#: Src/wptKeyEditDlgs.cpp:1010
+#: Src/wptKeyEditDlgs.cpp:1015
msgid "Expires"
msgstr "Verfällt"
-#: Src/wptKeyEditDlgs.cpp:1024 Src/wptKeyEditDlgs.cpp:1122
+#: Src/wptKeyEditDlgs.cpp:1029 Src/wptKeyEditDlgs.cpp:1127
msgid "Could not find key."
msgstr "Konnte Schlüssel nicht finden"
-#: Src/wptKeyEditDlgs.cpp:1031
+#: Src/wptKeyEditDlgs.cpp:1036
msgid "No subkey(s) found."
msgstr "Kein(e) Unterschlüssel gefunden."
-#: Src/wptKeyEditDlgs.cpp:1113 Src/wptKeylist.cpp:548 Src/wptKeylist.cpp:557
+#: Src/wptKeyEditDlgs.cpp:1118 Src/wptKeylist.cpp:548 Src/wptKeylist.cpp:557
#: Src/wptKeyManagerDlg.cpp:878
msgid "Validity"
msgstr "Gültigkeit"
-#: Src/wptKeyEditDlgs.cpp:1115
+#: Src/wptKeyEditDlgs.cpp:1120
msgid "Email"
msgstr "Email"
-#: Src/wptKeyEditDlgs.cpp:1128
+#: Src/wptKeyEditDlgs.cpp:1133
msgid "No user ID(s) found."
msgstr "Keine Benutzerkennung(en) gefunden."
-#: Src/wptKeyEditDlgs.cpp:1222
+#: Src/wptKeyEditDlgs.cpp:1227
msgid ""
"ADDUID \t\tadd a user ID\r\n"
"ADDPHOTO \t\tadd a photo ID\r\n"
@@ -2349,19 +2351,19 @@
"SIGN\t \t\tBenutzerkennung signieren (exportierbar)\r\n"
"LSIGN\t \t\tBenutzerkennung signieren (nicht-exportierbar)\r\n"
-#: Src/wptKeyEditDlgs.cpp:1241
+#: Src/wptKeyEditDlgs.cpp:1246
msgid "Key Edit Help"
msgstr "Hilfe zum Schlüssel bearbeiten"
-#: Src/wptKeyEditDlgs.cpp:1257
+#: Src/wptKeyEditDlgs.cpp:1262
msgid "Primary key can not be deleted!"
msgstr "Primärer Schlüssel kann nicht gelöscht werden!"
-#: Src/wptKeyEditDlgs.cpp:1265
+#: Src/wptKeyEditDlgs.cpp:1270
msgid "Primary subkey can not be deleted!"
msgstr "Primärer Unterschlüssel kann nicht gelöscht werden!"
-#: Src/wptKeyEditDlgs.cpp:1271
+#: Src/wptKeyEditDlgs.cpp:1276
#, c-format
msgid ""
"\"Subkey %s.\"\n"
@@ -2378,15 +2380,15 @@
"\n"
"Möchten Sie diesen Unterschlüssel wirklich löschen?"
-#: Src/wptKeyEditDlgs.cpp:1283
+#: Src/wptKeyEditDlgs.cpp:1288
msgid "Delete Subkey"
msgstr "Unterschlüssel löschen"
-#: Src/wptKeyEditDlgs.cpp:1287
+#: Src/wptKeyEditDlgs.cpp:1292
msgid "Subkey successfully deleted."
msgstr "Unterschlüssel erfolgreich gelöscht."
-#: Src/wptKeyEditDlgs.cpp:1318
+#: Src/wptKeyEditDlgs.cpp:1324
msgid ""
"Key already expired.\n"
"\n"
@@ -2396,19 +2398,19 @@
"\n"
"Wollen Sie das Ablaufdatum ändern?"
-#: Src/wptKeyEditDlgs.cpp:1327 Src/wptKeyEditDlgs.cpp:1330
+#: Src/wptKeyEditDlgs.cpp:1333 Src/wptKeyEditDlgs.cpp:1336
msgid "Key Expiration Date"
msgstr "Ablaufdatum"
-#: Src/wptKeyEditDlgs.cpp:1351
+#: Src/wptKeyEditDlgs.cpp:1357
msgid "Expire Subkey"
msgstr "Untschlüssel Ablauf"
-#: Src/wptKeyEditDlgs.cpp:1357
+#: Src/wptKeyEditDlgs.cpp:1363
msgid "Subkey expire date successfully set."
msgstr "Unterschlüsselablaufdatum erfolgreich hinzugefügt."
-#: Src/wptKeyEditDlgs.cpp:1388
+#: Src/wptKeyEditDlgs.cpp:1394
msgid ""
"No subkeys were found, if you want to revoke the\n"
"whole key, please use the Key Manager command directly.\n"
@@ -2420,31 +2422,31 @@
"\n"
"Diese Funktion ist nur für das Widerrufen einzelner Unterschlüssel gedacht."
-#: Src/wptKeyEditDlgs.cpp:1397
+#: Src/wptKeyEditDlgs.cpp:1403
msgid "Key already revoked."
msgstr "Der Schlüssel ist bereits widerrufen."
-#: Src/wptKeyEditDlgs.cpp:1414
+#: Src/wptKeyEditDlgs.cpp:1420
msgid "Revoke Subkey"
msgstr "Unterschlüssel widerrufen"
-#: Src/wptKeyEditDlgs.cpp:1418
+#: Src/wptKeyEditDlgs.cpp:1424
msgid "Subkey successfully revoked."
msgstr "Unterschlüssel erfolgreich widerrufen."
-#: Src/wptKeyEditDlgs.cpp:1440
+#: Src/wptKeyEditDlgs.cpp:1446
msgid "Revoke user ID"
msgstr "Benutzerkennung widerrufen"
-#: Src/wptKeyEditDlgs.cpp:1445
+#: Src/wptKeyEditDlgs.cpp:1451
msgid "Key has only one user ID."
msgstr "Schlüssel hat nur eine Benutzerkennung."
-#: Src/wptKeyEditDlgs.cpp:1456
+#: Src/wptKeyEditDlgs.cpp:1462
msgid "This user ID has been already revoked."
msgstr "Diese Benutzerkennung wurde bereits widerrufen."
-#: Src/wptKeyEditDlgs.cpp:1462
+#: Src/wptKeyEditDlgs.cpp:1468
#, c-format
msgid ""
"user ID \"%s\".\n"
@@ -2454,39 +2456,39 @@
"Benutzerkennung %s.\r\n"
"Diese Benutzerkennung wirklich widerrufen?"
-#: Src/wptKeyEditDlgs.cpp:1484
+#: Src/wptKeyEditDlgs.cpp:1490
msgid "Revoke User ID"
msgstr "Benutzerkennung widerrufen"
-#: Src/wptKeyEditDlgs.cpp:1488
+#: Src/wptKeyEditDlgs.cpp:1494
msgid "User ID successfully revoked"
msgstr "Benutzerkennung erfolgreich widerrufen"
-#: Src/wptKeyEditDlgs.cpp:1565
+#: Src/wptKeyEditDlgs.cpp:1571
msgid "Primary"
msgstr "Primär"
-#: Src/wptKeyEditDlgs.cpp:1568
+#: Src/wptKeyEditDlgs.cpp:1574
msgid "User ID successfully flagged"
msgstr "Benutzerkennung erfolgreich gekennzeichnet"
-#: Src/wptKeyEditDlgs.cpp:1654
+#: Src/wptKeyEditDlgs.cpp:1660
msgid "No preferences available."
msgstr "Keine Präferenzen verfübar."
-#: Src/wptKeyEditDlgs.cpp:1660
+#: Src/wptKeyEditDlgs.cpp:1666
msgid "MDC feature"
msgstr "Unterstützt MDC"
-#: Src/wptKeyEditDlgs.cpp:1662 Src/wptKeyeditSetPrefDlg.cpp:116
+#: Src/wptKeyEditDlgs.cpp:1668 Src/wptKeyeditSetPrefDlg.cpp:116
msgid "Key Preferences"
msgstr "Schlüsseleinstellungen"
-#: Src/wptKeyEditDlgs.cpp:1713
+#: Src/wptKeyEditDlgs.cpp:1719
msgid "Primary user ID can not be deleted!"
msgstr "Primäre Benutzerkennung kann nicht gelöscht werden!"
-#: Src/wptKeyEditDlgs.cpp:1724
+#: Src/wptKeyEditDlgs.cpp:1730
#, c-format
msgid ""
"user ID \"%s\".\n"
@@ -2496,40 +2498,40 @@
"Benutzerkennung %s.\r\n"
"Diese Benutzerkennung wirklich löschen?"
-#: Src/wptKeyEditDlgs.cpp:1742
+#: Src/wptKeyEditDlgs.cpp:1748
msgid "Delete user ID"
msgstr "Benutzerkennung löschen"
-#: Src/wptKeyEditDlgs.cpp:1746
+#: Src/wptKeyEditDlgs.cpp:1752
msgid "User ID successfully deleted"
msgstr "Benutzerkennung erfolgreich gelöscht"
-#: Src/wptKeyEditDlgs.cpp:1839
+#: Src/wptKeyEditDlgs.cpp:1856
msgid "Do you really want to make this sig exportable?"
msgstr "Wollen Sie diese Signatur wirklich exportierbar machen?"
-#: Src/wptKeyEditDlgs.cpp:1860 Src/wptKeysignDlg.cpp:358
+#: Src/wptKeyEditDlgs.cpp:1878 Src/wptKeysignDlg.cpp:358
msgid "Key successfully signed."
msgstr "Schlüssel erfolgreich signiert."
-#: Src/wptKeyEditDlgs.cpp:1915
+#: Src/wptKeyEditDlgs.cpp:1933
msgid "Could not set subkey window procedure."
msgstr "Konnte \"subkey window procedure\" nicht setzen."
-#: Src/wptKeyEditDlgs.cpp:1925
+#: Src/wptKeyEditDlgs.cpp:1943
msgid "Could not set user ID window procedure."
msgstr "Konnte \"userID window procedure\" nicht setzen."
# c:\oss\winpt-gpgme\src\wptKeyEditDlgs.cpp:1739
-#: Src/wptKeyEditDlgs.cpp:1933
+#: Src/wptKeyEditDlgs.cpp:1951
msgid "Command>"
msgstr "Kommando>"
-#: Src/wptKeyEditDlgs.cpp:1965
+#: Src/wptKeyEditDlgs.cpp:1983
msgid "Please select a command."
msgstr "Bitte einen Befehl auswählen."
-#: Src/wptKeyEditDlgs.cpp:1969
+#: Src/wptKeyEditDlgs.cpp:1987
msgid "This command cannot be used with PGP 2 (v3) keys.\n"
msgstr "Dieser Befehl kann mit PGP2 (v3) Schlüsseln nicht verwendet werden.\n"
@@ -2569,7 +2571,7 @@
#: Src/wptKeyEditOwnertrustDlg.cpp:88 Src/wptKeyEditOwnertrustDlg.cpp:95
#: Src/wptKeyEditOwnertrustDlg.cpp:104 Src/wptKeyManagerDlg.cpp:936
-#: Src/wptKeyManagerDlg.cpp:1767 Src/wptKeyPropsDlg.cpp:295
+#: Src/wptKeyManagerDlg.cpp:1772 Src/wptKeyPropsDlg.cpp:293
#: Src/wptOwnertrustDlg.cpp:97 Src/wptOwnertrustDlg.cpp:121
#: Src/wptOwnertrustDlg.cpp:133
msgid "Ownertrust"
@@ -2592,7 +2594,7 @@
#: Src/wptKeygenDlg.cpp:421 Src/wptKeygenDlg.cpp:426 Src/wptKeygenDlg.cpp:432
#: Src/wptKeygenDlg.cpp:439 Src/wptKeygenDlg.cpp:451 Src/wptKeygenDlg.cpp:458
#: Src/wptKeygenDlg.cpp:493 Src/wptKeygenDlg.cpp:586
-#: Src/wptKeyManagerDlg.cpp:1632 Src/wptPassphraseDlg.cpp:94
+#: Src/wptKeyManagerDlg.cpp:1637 Src/wptPassphraseDlg.cpp:94
msgid "Key Generation"
msgstr "Schlüsselerzeugung"
@@ -2746,7 +2748,7 @@
#: Src/wptKeygenDlg.cpp:545 Src/wptKeygenDlg.cpp:567 Src/wptKeygenDlg.cpp:572
#: Src/wptKeygenDlg.cpp:578 Src/wptKeygenDlg.cpp:583 Src/wptKeygenDlg.cpp:607
-#: Src/wptKeyManagerDlg.cpp:1655
+#: Src/wptKeyManagerDlg.cpp:1660
msgid "Key Generation Wizard"
msgstr "Schlüsselerzeugungs-Assistent"
@@ -2831,7 +2833,7 @@
msgid "Full"
msgstr "Voll"
-#: Src/wptKeylist.cpp:396 Src/wptKeylist.cpp:422 Src/wptKeyPropsDlg.cpp:168
+#: Src/wptKeylist.cpp:396 Src/wptKeylist.cpp:422 Src/wptKeyPropsDlg.cpp:166
msgid "Disabled"
msgstr "Inaktiv"
@@ -2849,12 +2851,12 @@
msgid "Trust"
msgstr "Vertrauen"
-#: Src/wptKeylist.cpp:728 Src/wptPassphraseCB.cpp:112
+#: Src/wptKeylist.cpp:732 Src/wptPassphraseCB.cpp:112
#: Src/wptVerifyList.cpp:191
msgid "Invalid User ID"
msgstr "Ungültige Benutzerkennung"
-#: Src/wptKeylist.cpp:1001
+#: Src/wptKeylist.cpp:1005
#, c-format
msgid ""
"It is NOT certain that the key belongs to the person\n"
@@ -2869,11 +2871,11 @@
"\n"
"\"%s\" benutzen?"
-#: Src/wptKeylist.cpp:1009 Src/wptKeylist.cpp:1072
+#: Src/wptKeylist.cpp:1013 Src/wptKeylist.cpp:1076
msgid "Recipients"
msgstr "Empfänger"
-#: Src/wptKeylist.cpp:1073
+#: Src/wptKeylist.cpp:1077
#, c-format
msgid ""
"KeyID %s.\n"
@@ -2882,7 +2884,7 @@
"Schlüssel ID %s.\n"
"Wollen Sie wirklich einen widerrufenen Schlüssel exportieren?"
-#: Src/wptKeylist.cpp:1175
+#: Src/wptKeylist.cpp:1179
msgid "Secret Key List"
msgstr "Liste der geheimen Schlüssel"
@@ -2932,7 +2934,7 @@
msgid "Cannot import dash escaped OpenPGP keys."
msgstr "Kann keine beschädigten OpenPGP-Schlüssel importieren."
-#: Src/wptKeyManager.cpp:510 Src/wptKeyManager.cpp:645
+#: Src/wptKeyManager.cpp:510 Src/wptKeyManager.cpp:639
msgid ""
"Key without a self signature was dectected!\n"
"(This key is NOT usable for encryption, etc)\n"
@@ -2940,38 +2942,38 @@
"Schlüssel ohne Eigensignatur erkannt!\n"
"(Dieser Schlüssel ist für Verschlüsselung, etc. NICHT verwendbar)\n"
-#: Src/wptKeyManager.cpp:541 Src/wptKeyManager.cpp:552
-#: Src/wptKeyManager.cpp:566
+#: Src/wptKeyManager.cpp:540 Src/wptKeyManager.cpp:547
+#: Src/wptKeyManager.cpp:561
msgid "Key Import HTTP"
msgstr "Schlüssel Import HTTP"
# c:\oss\winpt-gpgme\src\wptKeyManager.cpp:448
-#: Src/wptKeyManager.cpp:541
+#: Src/wptKeyManager.cpp:540
#, c-format
msgid "Invalid HTTP URL: %s"
msgstr "Ungültige HTTP URL: %s"
-#: Src/wptKeyManager.cpp:592
+#: Src/wptKeyManager.cpp:586
msgid "Choose Name of the Key File"
msgstr "Den Namen der Schlüsseldatei wählen"
-#: Src/wptKeyManager.cpp:605
+#: Src/wptKeyManager.cpp:599
msgid "File Import"
msgstr "Dateiimport"
-#: Src/wptKeyManager.cpp:616
+#: Src/wptKeyManager.cpp:610
msgid "Could not read key-data from file."
msgstr "Konnte Schlüsseldaten nicht aus Datei lesen."
-#: Src/wptKeyManager.cpp:721
+#: Src/wptKeyManager.cpp:715
msgid "Do you really want to confirm each key?"
msgstr "Wollen Sie wirklich jeden Schlüssel bestätigen?"
-#: Src/wptKeyManager.cpp:722
+#: Src/wptKeyManager.cpp:716
msgid "Delete Confirmation"
msgstr "Löschen Bestätigen"
-#: Src/wptKeyManager.cpp:746
+#: Src/wptKeyManager.cpp:740
#, c-format
msgid ""
"Do you really want to delete this key?\n"
@@ -2983,7 +2985,7 @@
"%s"
# c:\oss\winpt-gpgme\src\wptKeyManager.cpp:605
-#: Src/wptKeyManager.cpp:756
+#: Src/wptKeyManager.cpp:750
#, c-format
msgid ""
"Do you really want to delete this KEY PAIR?\n"
@@ -3000,7 +3002,7 @@
"\n"
"%s"
-#: Src/wptKeyManager.cpp:763
+#: Src/wptKeyManager.cpp:757
msgid ""
"The actual secret key is stored on a smartcard.\n"
"Only the public key and the secret key \n"
@@ -3010,34 +3012,34 @@
"Nur der öffentliche Schlüssel und der Zeiger auf den geheimen\n"
"Schlüssel werden gelöscht.\n"
-#: Src/wptKeyManager.cpp:825
+#: Src/wptKeyManager.cpp:819
#, c-format
msgid "Do you really want to send '%s' to keyserver %s?"
msgstr "Wollen Sie '%s' wirklich zum Schlüsselserver %s senden?"
-#: Src/wptKeyManager.cpp:848
+#: Src/wptKeyManager.cpp:841
msgid "Please only select one key."
msgstr "Bitte nur einen Schlüssel auswählen."
-#: Src/wptKeyManager.cpp:928
+#: Src/wptKeyManager.cpp:911
+msgid "Do you really want to refresh all keys in the keyring?"
+msgstr "Wirklich alle Schlüssel im Schlüsselbund neu laden?"
+
+#: Src/wptKeyManager.cpp:916
msgid "Could not connect to keyserver, abort procedure."
msgstr ""
"Verbindung zum Keyserver fehlgeschlagen; Die Prozedur wird abgebrochen."
-#: Src/wptKeyManager.cpp:935
-msgid "Do you really want to refresh all keys in the keyring?"
-msgstr "Wirklich alle Schlüssel im Schlüsselbund neu laden?"
-
-#: Src/wptKeyManager.cpp:1010
+#: Src/wptKeyManager.cpp:991
msgid "Search"
msgstr "Suchen"
-#: Src/wptKeyManager.cpp:1010
+#: Src/wptKeyManager.cpp:991
msgid "Search for:"
msgstr "Suche nach:"
# c:\oss\winpt-gpgme\src\wptKeyManager.cpp:896
-#: Src/wptKeyManager.cpp:1021
+#: Src/wptKeyManager.cpp:1002
#, c-format
msgid "String pattern \"%s\" not found."
msgstr "Zeichenkette \"%s\" nicht gefunden."
@@ -3071,7 +3073,7 @@
msgid "Key"
msgstr "Schlüssel"
-#: Src/wptKeyManagerDlg.cpp:932 Src/wptKeyManagerDlg.cpp:1202
+#: Src/wptKeyManagerDlg.cpp:932 Src/wptKeyManagerDlg.cpp:1207
msgid "Groups"
msgstr "Gruppen"
@@ -3125,7 +3127,7 @@
msgid "&List Signatures"
msgstr "Signaturen anzeigen"
-#: Src/wptKeyManagerDlg.cpp:951 Src/wptKeyManagerDlg.cpp:1558
+#: Src/wptKeyManagerDlg.cpp:951 Src/wptKeyManagerDlg.cpp:1563
#: Src/wptKeyTrustPathDlg.cpp:130
msgid "List Trust Path"
msgstr "Zeige Vertrauenspfad"
@@ -3252,90 +3254,96 @@
msgid "Send to Keyserver"
msgstr "Sende an Keyserver"
-#: Src/wptKeyManagerDlg.cpp:1187
+#: Src/wptKeyManagerDlg.cpp:1181
+msgid ""
+"No ultimately trusted key found.\n"
+"Please set at least one secret key to ultimate trust."
+msgstr ""
+
+#: Src/wptKeyManagerDlg.cpp:1192
msgid "Could not set keylist window procedure."
msgstr "Konnte \"keylist window procedure\" nicht setzen."
# c:\oss\winpt-gpgme\src\wptFirstRunDlg.cpp:42
-#: Src/wptKeyManagerDlg.cpp:1305
+#: Src/wptKeyManagerDlg.cpp:1310
msgid "Generate new key pair"
msgstr "Neues Schlüsselpaar erzeugen"
-#: Src/wptKeyManagerDlg.cpp:1309
+#: Src/wptKeyManagerDlg.cpp:1314
msgid "Search for a specific key"
msgstr "Suche nach einem bestimmten Schlüssel"
# c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:842
-#: Src/wptKeyManagerDlg.cpp:1313
+#: Src/wptKeyManagerDlg.cpp:1318
msgid "Delete key from keyring"
msgstr "Schlüssel aus Keyring löschen"
-#: Src/wptKeyManagerDlg.cpp:1317
+#: Src/wptKeyManagerDlg.cpp:1322
msgid "Show key properties"
msgstr "Schlüsseleigenschaften anzeigen"
-#: Src/wptKeyManagerDlg.cpp:1321
+#: Src/wptKeyManagerDlg.cpp:1326
msgid "Sign key"
msgstr "Signiere Schlüssel"
-#: Src/wptKeyManagerDlg.cpp:1325
+#: Src/wptKeyManagerDlg.cpp:1330
msgid "Copy key to clipboard"
msgstr "Kopiere Schlüssel in Ablage"
-#: Src/wptKeyManagerDlg.cpp:1329
+#: Src/wptKeyManagerDlg.cpp:1334
msgid "Paste key from clipboard"
msgstr "Schlüssel aus Ablage einfügen"
# c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:854
-#: Src/wptKeyManagerDlg.cpp:1333
+#: Src/wptKeyManagerDlg.cpp:1338
msgid "Import key to keyring"
msgstr "In Schlüsselbund importieren"
# c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:858
-#: Src/wptKeyManagerDlg.cpp:1337
+#: Src/wptKeyManagerDlg.cpp:1342
msgid "Export key to a file"
msgstr "Schlüssel in Datei exportieren"
# c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:499
-#: Src/wptKeyManagerDlg.cpp:1456
+#: Src/wptKeyManagerDlg.cpp:1461
msgid "New"
msgstr "Neu"
-#: Src/wptKeyManagerDlg.cpp:1468
+#: Src/wptKeyManagerDlg.cpp:1473
msgid "Could not access public keyring"
msgstr "Konnte nicht auf öffentlichen Schlüsselbund zugreifen"
-#: Src/wptKeyManagerDlg.cpp:1503 Src/wptKeysignDlg.cpp:241
+#: Src/wptKeyManagerDlg.cpp:1508 Src/wptKeysignDlg.cpp:241
#: Src/wptKeysignDlg.cpp:259 Src/wptKeysignDlg.cpp:334
#: Src/wptKeysignDlg.cpp:351 Src/wptKeysignDlg.cpp:356
#: Src/wptKeysignDlg.cpp:358
msgid "Key Signing"
msgstr "Schlüsselsignierung"
-#: Src/wptKeyManagerDlg.cpp:1527
+#: Src/wptKeyManagerDlg.cpp:1532
msgid "Key already revoked!"
msgstr "Schlüssel ist bereits widerrufen!"
-#: Src/wptKeyManagerDlg.cpp:1539 Src/wptKeyRevokeDlg.cpp:72
+#: Src/wptKeyManagerDlg.cpp:1544 Src/wptKeyRevokeDlg.cpp:72
#: Src/wptKeyRevokeDlg.cpp:100 Src/wptKeyRevokeDlg.cpp:138
#: Src/wptKeyRevokeDlg.cpp:143 Src/wptKeyRevokeDlg.cpp:151
#: Src/wptKeyRevokeDlg.cpp:167 Src/wptKeyRevokeDlg.cpp:173
msgid "Key Revocation Cert"
msgstr "Schlüsselwiderruf Zertifikat"
-#: Src/wptKeyManagerDlg.cpp:1549
+#: Src/wptKeyManagerDlg.cpp:1554
msgid "It does not make any sense with a key pair!"
msgstr "Diese Aktion macht keinen Sinn mit einem Schlüsselpaar!"
-#: Src/wptKeyManagerDlg.cpp:1576
+#: Src/wptKeyManagerDlg.cpp:1581
msgid "Key Signature List"
msgstr "Schlüssel-Signatur-Liste"
-#: Src/wptKeyManagerDlg.cpp:1598 Src/wptKeyPropsDlg.cpp:291
+#: Src/wptKeyManagerDlg.cpp:1603 Src/wptKeyPropsDlg.cpp:289
msgid "Key Properties"
msgstr "Schlüsseleigenschaften"
-#: Src/wptKeyManagerDlg.cpp:1609
+#: Src/wptKeyManagerDlg.cpp:1614
msgid ""
"This is only useful when the keyring has been modified (sign a key...).\n"
"Do you really want to reload the keycache?"
@@ -3344,27 +3352,27 @@
"Signierung etc.)\n"
"Möchten Sie den Zwischenspeicher reinitialisieren?"
-#: Src/wptKeyManagerDlg.cpp:1640
+#: Src/wptKeyManagerDlg.cpp:1645
msgid "Smart Card support is not available."
msgstr "SmartCard-Unterstützung ist nicht verfügbar."
-#: Src/wptKeyManagerDlg.cpp:1663 Src/wptKeyserverDlg.cpp:601
+#: Src/wptKeyManagerDlg.cpp:1668 Src/wptKeyserverDlg.cpp:601
msgid "Keyserver Access"
msgstr "Schlüsselserver-Zugriff"
-#: Src/wptKeyManagerDlg.cpp:1680
+#: Src/wptKeyManagerDlg.cpp:1685
msgid "GnuPG Options"
msgstr "GnuPG Optionen"
-#: Src/wptKeyManagerDlg.cpp:1722
+#: Src/wptKeyManagerDlg.cpp:1727
msgid "There is no corresponding secret key for this key."
msgstr "Für diesen Schlüssel ist kein geheimer Schlüssel vorhanden."
-#: Src/wptKeyManagerDlg.cpp:1727
+#: Src/wptKeyManagerDlg.cpp:1732
msgid "You can only export one secret key."
msgstr "Sie können nur einen geheimen Schlüssel exportieren."
-#: Src/wptKeyManagerDlg.cpp:1732
+#: Src/wptKeyManagerDlg.cpp:1737
msgid ""
"This operation will export your *SECRET* key!\n"
"\n"
@@ -3382,11 +3390,11 @@
"\n"
"Wirklich den Schlüssel exportieren?"
-#: Src/wptKeyManagerDlg.cpp:1737
+#: Src/wptKeyManagerDlg.cpp:1742
msgid "WARNING"
msgstr "WARNUNG"
-#: Src/wptKeyManagerDlg.cpp:1814
+#: Src/wptKeyManagerDlg.cpp:1819
msgid "No key was selected, select all by default."
msgstr "Kein Schlüssel ausgewählt, es wurden alle ausgewählt."
@@ -3399,13 +3407,13 @@
msgid "Unknown"
msgstr "Unbekannt"
-#: Src/wptKeyPropsDlg.cpp:215
+#: Src/wptKeyPropsDlg.cpp:213
#, c-format
msgid "Card-Type: %s\r\n"
msgstr ""
# c:\oss\winpt-gpgme\src\wptKeyPropsDlg.cpp:214
-#: Src/wptKeyPropsDlg.cpp:244
+#: Src/wptKeyPropsDlg.cpp:242
#, c-format
msgid ""
"Type: %s\r\n"
@@ -3428,25 +3436,25 @@
"Cipher: %s\r\n"
"%s\r\n"
-#: Src/wptKeyPropsDlg.cpp:292
+#: Src/wptKeyPropsDlg.cpp:290
msgid "&Change"
msgstr "&Ändern"
-#: Src/wptKeyPropsDlg.cpp:293
+#: Src/wptKeyPropsDlg.cpp:291
msgid "&Revokers"
msgstr "\"&Revokers\""
-#: Src/wptKeyPropsDlg.cpp:294
+#: Src/wptKeyPropsDlg.cpp:292
msgid "Change &Password"
msgstr "&Passwort ändern"
-#: Src/wptKeyPropsDlg.cpp:301
+#: Src/wptKeyPropsDlg.cpp:299
msgid "Photo-ID not validated."
msgstr "Foto-ID nicht geprüft."
# msgid "Unknown"
# msgstr "Unbekannt"
-#: Src/wptKeyPropsDlg.cpp:339
+#: Src/wptKeyPropsDlg.cpp:337
msgid ""
"The status of this key is 'revoked' or 'expired'.\n"
"You cannot change the ownertrust of such keys."
@@ -3454,11 +3462,11 @@
"Der Status dieses Schlüssels ist 'widerrufen' oder 'abgelaufen'.\n"
"Sie können das Vertrauen in solche Schlüssel nicht ändern."
-#: Src/wptKeyPropsDlg.cpp:341 Src/wptKeyPropsDlg.cpp:348
+#: Src/wptKeyPropsDlg.cpp:339 Src/wptKeyPropsDlg.cpp:346
msgid "WinPT Warning"
msgstr "WinPT Warnung"
-#: Src/wptKeyPropsDlg.cpp:345
+#: Src/wptKeyPropsDlg.cpp:343
msgid ""
"This is a non-valid key.\n"
"Modifying the ownertrust has no effect on such keys.\n"
@@ -3469,11 +3477,11 @@
"Das Vertrauen solcher Schlüssel zu ändern hat keinerlei Effekt.\n"
"Trotzdem fortfahren?"
-#: Src/wptKeyPropsDlg.cpp:362
+#: Src/wptKeyPropsDlg.cpp:360
msgid "Ownertrust successfully changed."
msgstr "Besitzervertrauen erfolgreich geändert."
-#: Src/wptKeyPropsDlg.cpp:375 Src/wptKeyRevokersDlg.cpp:146
+#: Src/wptKeyPropsDlg.cpp:373 Src/wptKeyRevokersDlg.cpp:146
msgid "Key Revokers"
msgstr "Schlüsselwiderrufer"
@@ -4005,42 +4013,42 @@
msgid "Unknown OpenPGP type."
msgstr "Unbekannter OpenPGP Typ."
-#: Src/wptMainProc.cpp:344
+#: Src/wptMainProc.cpp:345
msgid "Could not set current window mode hooks."
msgstr "Konnte \"Current Window\" Hooks nicht setzen."
-#: Src/wptMainProc.cpp:408
+#: Src/wptMainProc.cpp:411
msgid "Edit Clipboard"
msgstr "Zwischenablage bearbeiten"
-#: Src/wptMainProc.cpp:409
+#: Src/wptMainProc.cpp:412
msgid "About..."
msgstr "Über..."
-#: Src/wptMainProc.cpp:415 Src/wptMainProc.cpp:419
+#: Src/wptMainProc.cpp:418 Src/wptMainProc.cpp:422
msgid "Decrypt/Verify"
msgstr "Entschlüsseln/Überprüfen"
# c:\oss\winpt-gpgme\src\wptMainProc.cpp:414
-#: Src/wptMainProc.cpp:429
+#: Src/wptMainProc.cpp:432
msgid "Current Window"
msgstr "Aktuelles Fenster"
-#: Src/wptMainProc.cpp:485
+#: Src/wptMainProc.cpp:488
msgid "Remove all passphrases from cache?"
msgstr "Alle Passwörter aus Zwischenspeicher entfernen?"
-#: Src/wptMainProc.cpp:486 Src/wptProgressDlg.cpp:122 Src/wptRegistry.cpp:202
+#: Src/wptMainProc.cpp:489 Src/wptProgressDlg.cpp:122 Src/wptRegistry.cpp:202
msgid "WinPT"
msgstr "WinPT"
-#: Src/wptMainProc.cpp:496
+#: Src/wptMainProc.cpp:499
msgid "Could not access public keyring, exit WinPT?"
msgstr ""
"Auf den öffentlichen Schlüsselbund kann nicht zugegriffen werden. WinPT "
"beenden?"
-#: Src/wptMainProc.cpp:528
+#: Src/wptMainProc.cpp:531
#, c-format
msgid ""
"Make sure that the window contains text.\n"
@@ -4049,7 +4057,7 @@
"Stellen Sie sicher, dass das Fenster Text enthält.\n"
"%s."
-#: Src/wptMainProc.cpp:582 Src/wptPreferencesDlg.cpp:132
+#: Src/wptMainProc.cpp:585 Src/wptPreferencesDlg.cpp:132
msgid "WinPT Preferences"
msgstr "WinPT Einstellungen"
Modified: trunk/Src/ChangeLog
===================================================================
--- trunk/Src/ChangeLog 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Src/ChangeLog 2006-02-07 08:58:04 UTC (rev 175)
@@ -1,3 +1,31 @@
+2006-02-04 Timo Schulz <ts at g10code.de>
+
+ * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Check for
+ at least one ultimately trusted key.
+ * wptKeyManager.cpp (km_refresh_key_from_keyserver):
+ Only check inet connection if we refresh all keys.
+ * wptGPGUtil.cpp (gpg_extract_keys): New.
+ * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Use textmode.
+ * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Likewise.
+ * wptClipSignDlg.cpp (get_selected_key): New.
+ (one_key_proc): Use it here.
+ (count_useable_seckeys): New.
+ * wptSigTreeDlg.cpp (sigtree_dlg_proc): New.
+ * wptKeyEditDlgs.cpp (diff_time): Removed.
+ (w32_mktime): New.
+ (keyedit_addsubkey_dlg_proc): Use it here.
+
+2006-02-02 Timo Schulz <ts at g10code.de>
+
+ * wptW32API.cpp (get_temp_name): New.
+ * wptKeyserver.cpp (ldap_recvkey): Use it here.
+ * wptKeyPropsDlg.cpp (get_photo_tmpname): Likewise.
+ * wptGPGUtil.cpp (create_tempfile): Likewise.
+ * wptImportList.cpp (implist_load): Likewise.
+ * wptKeyCache.cpp (parse_attr_data): Likewise.
+ (w32_tempfile): Removed.
+ * wptGPGME.cpp (check_ultimate_trusted_key): New.
+
2006-01-31 Timo Schulz <ts at g10code.de>
* wptMainProc.cpp (winpt_main_proc): Fix usage of the
Modified: trunk/Src/Makefile.am
===================================================================
--- trunk/Src/Makefile.am 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Src/Makefile.am 2006-02-07 08:58:04 UTC (rev 175)
@@ -74,7 +74,8 @@
wptPreferencesDlg.cpp \
wptProgressDlg.cpp \
wptProxySettingsDlg.cpp \
- wptTextInputDlg.cpp
+ wptTextInputDlg.cpp \
+ wptSigTreeDlg.cpp
code_files = \
WinPT.cpp \
@@ -126,7 +127,7 @@
-lgnupg ../PTD/PTD.dll \
$(GPGME_LIBS) $(W32LIBS) \
-lcomctl32 -lkernel32 -luser32 -lcomdlg32 -ladvapi32 \
- -lshell32 -lgdi32 -loleaut32 -lversion
+ -lshell32 -lgdi32 -lversion
WinPT-en.o: $(resource_files)
Modified: trunk/Src/WinPT-en.rc
===================================================================
--- trunk/Src/WinPT-en.rc 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Src/WinPT-en.rc 2006-02-07 08:58:04 UTC (rev 175)
@@ -1378,7 +1378,18 @@
PUSHBUTTON "&Cancel",IDCANCEL,131,83,50,14
END
+IDD_WINPT_KEYSIG_TREE DIALOG DISCARDABLE 0, 0, 234, 129
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Key Signature Tree"
+FONT 8, "MS Sans Serif"
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,177,110,50,14
+ CONTROL "Tree1",IDC_VKEYSIG_TREE,"SysTreeView32",TVS_HASBUTTONS |
+ TVS_HASLINES | TVS_LINESATROOT | WS_BORDER | WS_TABSTOP,
+ 2,5,225,90
+END
+
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
@@ -1898,6 +1909,14 @@
TOPMARGIN, 1
BOTTOMMARGIN, 97
END
+
+ IDD_WINPT_KEYSIG_TREE, DIALOG
+ BEGIN
+ LEFTMARGIN, 2
+ RIGHTMARGIN, 227
+ TOPMARGIN, 3
+ BOTTOMMARGIN, 124
+ END
END
#endif // APSTUDIO_INVOKED
@@ -1909,8 +1928,8 @@
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 0,11,7,0
- PRODUCTVERSION 0,11,7,0
+ FILEVERSION 0,11,8,0
+ PRODUCTVERSION 0,11,8,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -1928,14 +1947,14 @@
VALUE "Comments", "This is free software under the terms of the GNU GPL v2\0"
VALUE "CompanyName", "\0"
VALUE "FileDescription", "Windows Privacy Tray (WinPT)\0"
- VALUE "FileVersion", "0.11.7\0"
+ VALUE "FileVersion", "0.11.8\0"
VALUE "InternalName", "WinPT\0"
VALUE "LegalCopyright", " Copyright (C) 2006 Timo Schulz\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "WinPT.exe\0"
VALUE "PrivateBuild", "\0"
VALUE "ProductName", "Windows Privacy Tray\0"
- VALUE "ProductVersion", "0.11.6\0"
+ VALUE "ProductVersion", "0.11.8\0"
VALUE "SpecialBuild", "\0"
END
END
Modified: trunk/Src/resource.h
===================================================================
--- trunk/Src/resource.h 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Src/resource.h 2006-02-07 08:58:04 UTC (rev 175)
@@ -161,6 +161,7 @@
#define IDD_WINPT_INFODLG 237
#define IDD_WINPT_KEYSERVER_ADD 238
#define IDR_WINPT_KEYSERVER_CTX 239
+#define IDD_WINPT_KEYSIG_TREE 241
#define IDC_CLIPEDIT_SEND 1000
#define IDC_CLIPEDIT_CLEAR 1001
#define IDC_CLIPEDIT_CLIPTEXT 1002
@@ -632,6 +633,7 @@
#define IDC_KSERVADD_PORT 1509
#define IDC_GPGPREFS_OVRDEFAULT 1510
#define IDC_MDSUM_TOCLIP 1511
+#define IDC_VKEYSIG_TREE 1512
#define ID_GPG_ENCRYPT 40003
#define ID_GPG_DECRYPT 40004
#define ID_GPG_SIGN 40005
@@ -810,9 +812,9 @@
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 241
+#define _APS_NEXT_RESOURCE_VALUE 242
#define _APS_NEXT_COMMAND_VALUE 40186
-#define _APS_NEXT_CONTROL_VALUE 1512
+#define _APS_NEXT_CONTROL_VALUE 1513
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
Modified: trunk/Src/wptClipEncryptDlg.cpp
===================================================================
--- trunk/Src/wptClipEncryptDlg.cpp 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Src/wptClipEncryptDlg.cpp 2006-02-07 08:58:04 UTC (rev 175)
@@ -56,13 +56,14 @@
return err;
gpgme_set_armor (ctx, 1);
+ gpgme_set_textmode (ctx, 1);
err = gpg_data_new_from_clipboard (&plain, 0);
if (err)
goto leave;
err = gpgme_data_new (&ciph);
if (err)
- goto leave;
+ goto leave;
err = gpgme_op_encrypt (ctx, rset,
always_trust?GPGME_ENCRYPT_ALWAYS_TRUST : (gpgme_encrypt_flags_t)0,
plain, ciph);
Modified: trunk/Src/wptClipSignDlg.cpp
===================================================================
--- trunk/Src/wptClipSignDlg.cpp 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Src/wptClipSignDlg.cpp 2006-02-07 08:58:04 UTC (rev 175)
@@ -111,18 +111,52 @@
set_gpg_passphrase_cb (&pwd, ctx, GPG_CMD_SIGN, dlg, _("Signing"));
err = gpg_clip_sign (ctx, signer, n);
+ if (pwd.cancel)
+ goto leave;
+
if (gpgme_err_code (err) == GPG_ERR_BAD_PASSPHRASE)
agent_del_cache (pwd.keyid);
if (err)
msg_box (dlg, gpgme_strerror (err), _("Signing"), MB_ERR);
else
show_msg (dlg, 1500, _("GnuPG Status: Finished"));
+leave:
gpgme_release (ctx);
free_if_alloc (signer);
release_gpg_passphrase_cb (&pwd);
}
+/* Count only useable secret keys.
+ Ignore expired, revoked and disabled keys.
+ Return value: amount of keys. */
+static DWORD
+count_useable_seckeys (gpg_keycache_t kc)
+{
+ struct keycache_s *c;
+ DWORD n=0;
+
+ for (c = kc->item; c; c=c->next) {
+ if (c->pubpart && key_is_useable (c->pubpart->key))
+ n++;
+ }
+ return n;
+}
+
+
+/* Return -1 if no key is selected, the index otherwise. */
+static int
+get_selected_key (listview_ctrl_t lv)
+{
+ int i;
+ for (i=0; i < listview_count_items (lv, 0); i++) {
+ if (listview_get_item_state (lv, i))
+ return i;
+ }
+ return -1;
+}
+
+
/* Dialog box procedure for clipboard signing. */
BOOL CALLBACK
clip_sign_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
@@ -134,7 +168,7 @@
passphrase_cb_s pwd;
int lv_idx = 0;
int rc = 0, no_signer = 0;
- char * signer = NULL;
+ char *signer = NULL;
switch( msg ) {
case WM_INITDIALOG:
@@ -146,7 +180,7 @@
sec_kc = keycache_get_ctx (KEYCACHE_PRV);
if (!sec_kc)
BUG (dlg);
- if (gpg_keycache_get_size (sec_kc) == 1) {
+ if (count_useable_seckeys (sec_kc) == 1) {
one_key_proc (dlg);
EndDialog (dlg, TRUE);
return FALSE;
@@ -189,7 +223,7 @@
listview_get_item_text (lv, 0, 1, signer, sizeof signer-1);
no_signer = 0;
}
- else if ((lv_idx = listview_get_curr_pos (lv)) == -1) {
+ else if ((lv_idx = get_selected_key (lv)) == -1) {
rc = log_box (_("Signing"), MB_YESNO,
_("No key was chosen.\nUse the GPG default key '%s'?"),
signer);
@@ -217,7 +251,6 @@
if (pwd.cancel && gpgme_err_code(err) == GPG_ERR_BAD_PASSPHRASE) {
/* The user hit the cancel button or bad passphrase */
gpgme_release (ctx);
- EndDialog (dlg, TRUE);
return TRUE;
}
if (err) {
Modified: trunk/Src/wptClipSignEncDlg.cpp
===================================================================
--- trunk/Src/wptClipSignEncDlg.cpp 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Src/wptClipSignEncDlg.cpp 2006-02-07 08:58:04 UTC (rev 175)
@@ -61,6 +61,7 @@
return gpg_error (GPG_ERR_NO_PUBKEY);
gpgme_set_armor (ctx, 1);
+ gpgme_set_textmode (ctx, 1);
err = gpg_data_new_from_clipboard (&plain, 0);
if (err)
Modified: trunk/Src/wptGPG.cpp
===================================================================
--- trunk/Src/wptGPG.cpp 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Src/wptGPG.cpp 2006-02-07 08:58:04 UTC (rev 175)
@@ -1104,12 +1104,11 @@
void
gnupg_display_error (void)
{
- char tmpath[512], * errstr;
+ char tmpath[512], *errstr;
size_t size = 0;
- FILE * fp;
+ FILE *fp;
- GetTempPath (sizeof tmpath - 32, (tmpath));
- strcat (tmpath, "gpg_stderr");
+ get_temp_name (tmpath, sizeof (tmpath), "gpg_stderr");
size = get_file_size (tmpath);
if (file_exist_check (tmpath) || size <= 0)
return;
Modified: trunk/Src/wptGPGME.cpp
===================================================================
--- trunk/Src/wptGPGME.cpp 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Src/wptGPGME.cpp 2006-02-07 08:58:04 UTC (rev 175)
@@ -139,11 +139,11 @@
if (!err)
err = gpg_keycache_init (pub, NULL, 0);
if (!err)
- err = gpg_keycache_init( sec, NULL, 1 );
- if( !err && pubring && *pubring )
- err = gpg_keycache_prepare( pub, pubring, NULL );
- if( !err && secring && * secring )
- err = gpg_keycache_prepare( sec, NULL, secring );
+ err = gpg_keycache_init (sec, NULL, 1);
+ if (!err && pubring && *pubring)
+ err = gpg_keycache_prepare( pub, pubring, NULL);
+ if (!err && secring && * secring)
+ err = gpg_keycache_prepare (sec, NULL, secring);
if (!err)
gpg_keycache_sync (pub, sec);
if (val != 0)
@@ -324,3 +324,20 @@
return gpg_sigstat[sigsum_to_index (sum) % mask];
}
+
+
+/* Check if the secret keyring contains at least one
+ key with ultimate trust.
+ Return value: 0 on success. */
+int
+check_ultimate_trusted_key (void)
+{
+ struct keycache_s *n;
+
+ for (n = sec->item; n; n = n->next) {
+ if (n->pubpart &&
+ n->pubpart->key->owner_trust == GPGME_VALIDITY_ULTIMATE)
+ return 0;
+ }
+ return -1;
+}
Modified: trunk/Src/wptGPGUtil.cpp
===================================================================
--- trunk/Src/wptGPGUtil.cpp 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Src/wptGPGUtil.cpp 2006-02-07 08:58:04 UTC (rev 175)
@@ -29,7 +29,9 @@
#include "gpgme.h"
#include "wptTypes.h"
#include "wptErrors.h"
+#include "wptW32API.h"
+
#define NROFHEXDIGITS 2
/* Convert two hexadecimal digits from STR to the value they
represent. Returns -1 if one of the characters is not a
@@ -221,8 +223,7 @@
sec_attr.lpSecurityDescriptor = NULL;
sec_attr.nLength = sizeof sec_attr;
- GetTempPath (sizeof (tmp)-1 - strlen (name)-1, tmp);
- strcat (tmp, name);
+ get_temp_name (tmp, DIM (tmp)-1, name);
out = CreateFile (tmp, GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_WRITE, &sec_attr,
OPEN_ALWAYS, FILE_FLAG_DELETE_ON_CLOSE, NULL);
@@ -604,6 +605,59 @@
}
+/* Extract one or more keys from the key file @keyfile.
+ The keys to extract are give in @keys and the size of it is @nkeys.
+ @new_keyfile is a file with the extract keys.
+ Return value: 0 on success. */
+gpgme_error_t
+gpg_extract_keys (const char *keyfile, const char **keys, DWORD nkeys,
+ char **new_keyfile)
+{
+ gpgme_error_t err = gpg_error (GPG_ERR_NO_ERROR);
+ const char *fmt;
+ char *p, *cmd;
+ char tmpnam[MAX_PATH], tmpdir[MAX_PATH];
+ int i, n;
+
+ /* copy key file to temp dir. */
+ GetTempPath (MAX_PATH-1, tmpdir);
+ get_temp_name (tmpnam, MAX_PATH-1, NULL);
+ CopyFile (keyfile, tmpnam, FALSE);
+
+ /* create temp file for output. */
+ *new_keyfile = new char[MAX_PATH];
+ if (!*new_keyfile)
+ BUG (NULL);
+ get_temp_name (*new_keyfile, MAX_PATH-1, "sel_keys");
+
+ p = read_gpg_program ();
+ if (!p)
+ return gpg_error (GPG_ERR_INV_ARG);
+
+ /* Use the temp key file as a keyring and export the selected
+ keys from it. */
+ fmt = "%s --yes --output %s --no-options --homedir %s --keyring %s --export ";
+ n = strlen (fmt) + strlen (p)+1 + strlen (tmpdir)+1 + strlen (tmpnam) + 1;
+ n += strlen (*new_keyfile)+1;
+ for (i=0; i < (int)nkeys; i++)
+ n += strlen (keys[i])+1+2;
+ cmd = (char*)calloc (1, n+1);
+ sprintf (cmd, fmt, p, *new_keyfile, tmpdir, tmpnam);
+ for (i=0; i < (int)nkeys; i++) {
+ strcat (cmd, keys[i]);
+ strcat (cmd, " " );
+ }
+
+ if (create_process (cmd, NULL, NULL, NULL))
+ err = gpgme_error (GPG_ERR_INTERNAL);
+
+ DeleteFile (tmpnam);
+ safe_free (cmd);
+ safe_free (p);
+ return err;
+}
+
+
/* Return the validity of the user attribute, informerly known
as photo-ID. If no uat was found, return 0 for unknown. */
gpgme_error_t
@@ -629,8 +683,8 @@
if (create_process (cmd, NULL, out, NULL))
err = gpg_error (GPG_ERR_INTERNAL);
- free (p);
- free (cmd);
+ safe_free (p);
+ safe_free (cmd);
p = map_tmpfile (out, NULL);
if ((uat = strstr (p, "uat:"))) {
Modified: trunk/Src/wptImportList.cpp
===================================================================
--- trunk/Src/wptImportList.cpp 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Src/wptImportList.cpp 2006-02-07 08:58:04 UTC (rev 175)
@@ -98,7 +98,6 @@
BUG (NULL);
gpg_decode_c_string (pend, &c->uid, strlen (pend) + 1);
c->uid[strlen (c->uid) -3] = '\0';
-
}
@@ -407,15 +406,14 @@
int rc = 0, is_tmp=0;
char *pending_line = NULL;
char fname[300], *out;
-
+
if (!file) {
err = gpg_data_new_from_clipboard (&list, 0);
if (err) {
msg_box (NULL, gpgme_strerror( err ), _("Import"), MB_ERR);
return WPTERR_CLIP_OPEN;
}
- GetTempPath (299, fname);
- strcat (fname, "in_gpg_keys");
+ get_temp_name (fname, 299, "in_gpg_keys");
err = gpg_data_release_and_set_file (list, fname);
if (err) {
msg_box (NULL, gpgme_strerror (err), _("Import"), MB_ERR);
@@ -427,17 +425,18 @@
if (check_import_data (file, r_revcerts)) {
msg_box (NULL, _("It is possible that the ASCII-Armor is damaged\n"
- "and thus a CRC error occurs."), _("Import"), MB_ERR);
- if (is_tmp)
- remove (file);
+ "and thus a CRC error occurs."),
+ _("Import"), MB_ERR);
+ if (is_tmp)
+ DeleteFile (file);
return WPTERR_GENERAL;
}
err = gpg_import_key_list (file, &out);
if (err) {
msg_box (NULL, gpgme_strerror (err), _("Import"), MB_ERR);
- if (is_tmp)
- remove (file);
+ if (is_tmp)
+ DeleteFile (file);
return WPTERR_GENERAL;
}
@@ -445,8 +444,8 @@
free (out);
if (err) {
msg_box (NULL, gpgme_strerror (err), _("Import"), MB_ERR);
- if (is_tmp)
- remove (file);
+ if (is_tmp)
+ DeleteFile (file);
return WPTERR_GENERAL;
}
@@ -463,10 +462,9 @@
import_key_release (key);
}
-
gpgme_data_release (list);
- if (is_tmp)
- remove (file);
+ if (is_tmp)
+ DeleteFile (file);
return rc;
}
Modified: trunk/Src/wptKeyCache.cpp
===================================================================
--- trunk/Src/wptKeyCache.cpp 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Src/wptKeyCache.cpp 2006-02-07 08:58:04 UTC (rev 175)
@@ -121,36 +121,22 @@
}
-/* Always use the $users temp folder. */
-static FILE*
-w32_tmpfile (char *tmp, DWORD tmplen)
-{
- char id[16];
-
- if (!GetTempPath (tmplen-17, tmp))
- return NULL;
- if (tmp[strlen (tmp)-1] != '\\')
- strcat (tmp, "\\");
- _snprintf (id, sizeof (id)-1, "%lu", GetTickCount ());
- strcat (tmp, id);
- return fopen (tmp, "w+b");
-}
-
-
static int
parse_attr_data (const char *keyid, attr_list_t *list)
{
gpgme_error_t err;
- FILE *tmp;
- char *status, tmpnam[MAX_PATH+1];
+ FILE *tmp;
BYTE *data;
- DWORD ndata;
+ char *status, tmpnam[MAX_PATH+1];
+ DWORD ndata = 0;
err = gpg_get_photoid_data (keyid, &status, &data, &ndata);
if (err)
return err;
- if (ndata > 0 && (tmp = w32_tmpfile (tmpnam, MAX_PATH)) != NULL) {
+ get_temp_name (tmpnam, MAX_PATH, NULL);
+ tmp = fopen (tmpnam, "w+b");
+ if (ndata > 0 && tmp != NULL) {
fwrite (status, 1, strlen (status), tmp);
fflush (tmp);
rewind (tmp);
Modified: trunk/Src/wptKeyEdit.cpp
===================================================================
--- trunk/Src/wptKeyEdit.cpp 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Src/wptKeyEdit.cpp 2006-02-07 08:58:04 UTC (rev 175)
@@ -401,6 +401,16 @@
gpgme_set_progress_cb (ctx, cb, cb_value);
}
+
+/* Clear the stored passphrase. */
+void
+GpgKeyEdit::clearPassphrase (void)
+{
+ if (pass)
+ pass = NULL;
+}
+
+
/* Set the passphrase to @pass. */
void
GpgKeyEdit::setPassphrase (const char *_pass)
Modified: trunk/Src/wptKeyEditDlgs.cpp
===================================================================
--- trunk/Src/wptKeyEditDlgs.cpp 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Src/wptKeyEditDlgs.cpp 2006-02-07 08:58:04 UTC (rev 175)
@@ -61,6 +61,7 @@
CMD_ENABLE,
CMD_SIGN,
CMD_LSIGN,
+ CMD_CHECK
};
struct cmdlist_s {
@@ -86,6 +87,7 @@
{"ENABLE", 0, CMD_ENABLE},
{"SIGN", 0, CMD_SIGN},
{"LSIGN", 0, CMD_LSIGN},
+ {"CHECK", 0, CMD_CHECK},
{NULL, 0}
};
@@ -530,12 +532,13 @@
msg_box( dlg, _("Please enter an email address."), _("UserID"), MB_ERR );
return FALSE;
}
- if( !strchr( email, '@' ) || strchr (email, ' ')) {
- msg_box( dlg, _("Invalid email address."), _("UserID"), MB_ERR );
+ if (!strchr (email, '@' ) || strchr (email, ' ')) {
+ msg_box (dlg, _("Invalid email address."), _("UserID"), MB_ERR);
return FALSE;
}
- rc = GetDlgItemText( dlg, IDC_ADDUID_COMMENT, comment, sizeof comment -1 );
+ rc = GetDlgItemText (dlg, IDC_ADDUID_COMMENT,
+ comment, sizeof comment -1);
/* XXX: something is wrong with the encoding :-( */
utf8_name = wincp_to_utf8 (name, strlen (name));
@@ -571,25 +574,6 @@
}
-static int
-diff_time (HWND dt, SYSTEMTIME *in_exp)
-{
- SYSTEMTIME exp, now;
- double e=0, n=0;
-
- if (in_exp)
- memcpy (&exp, in_exp, sizeof (SYSTEMTIME));
- else
- DateTime_GetSystemtime (dt, &exp);
- GetSystemTime (&now);
- SystemTimeToVariantTime (&exp, &e);
- SystemTimeToVariantTime (&now, &n);
- if (n > e)
- return 0;
- return (int)(e-n);
-}
-
-
static void
init_keysize_box (HWND dlg, int ctlid)
{
@@ -616,6 +600,20 @@
}
+/* Create a time_t from a system time @st. */
+time_t
+w32_mktime (SYSTEMTIME *st)
+{
+ struct tm tm;
+
+ memset (&tm, 0, sizeof (tm));
+ tm.tm_year = st->wYear-1900;
+ tm.tm_mday = st->wDay+1;
+ tm.tm_mon = st->wMonth-1;
+ return mktime (&tm);
+}
+
+
/* Dialog procedure for adding a new secondary key. */
BOOL CALLBACK
keyedit_addsubkey_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
@@ -624,6 +622,7 @@
static KEYGEN_CB *keygen;
GpgKeyEdit *ke;
gpgme_error_t err;
+ SYSTEMTIME st;
HWND lb;
int index, size, valid;
@@ -691,7 +690,11 @@
_("Add Subkey"), MB_INFO);
size = 1024;
}
- valid = diff_time (GetDlgItem (dlg, IDC_ADDSUBKEY_EXPDATE), NULL);
+
+ DateTime_GetSystemtime (GetDlgItem (dlg, IDC_ADDSUBKEY_EXPDATE), &st);
+ valid = w32_mktime (&st) - time (NULL);
+ valid /= 86400;
+
keygen->bits = size;
switch (index) {
case 2: keygen->algo = GPGME_PK_DSA; break;
@@ -855,7 +858,8 @@
ke = new GpgKeyEdit (k->keyid);
if (!ke)
BUG (NULL);
- ke->setPassphrase (pass);
+ if (k->is_protected)
+ ke->setPassphrase (pass);
err = ke->setPreferredKeyserver (0 /* XXX */, url->url);
if (!err)
msg_box (dlg, _("Preferred keyserver successfully set."), _("Key Edit"), MB_OK);
@@ -946,8 +950,9 @@
char *new_pass = NULL;
int cancel = 0;
- if( !k->key_pair ) {
- msg_box( dlg, _("There is no secret key available!"), _("Key Edit"), MB_ERR );
+ if (!k->key_pair) {
+ msg_box (dlg, _("There is no secret key available!"),
+ _("Key Edit"), MB_ERR);
return FALSE;
}
@@ -1291,6 +1296,7 @@
} /* do_editkey_delkey */
+
/* Set the expiration date for the selected key in list view @lv.
Return value: TRUE on success. */
static int
@@ -1346,7 +1352,7 @@
BUG (NULL);
if (k->is_protected)
ke->setPassphrase (pass);
- err = ke->setKeyExpireDate (j, diff_time (NULL, &udd.st), true);
+ err = ke->setKeyExpireDate (j, w32_mktime (&udd.st), false);
if (err)
msg_box (dlg, gpgme_strerror (err), _("Expire Subkey"), MB_ERR);
else {
@@ -1820,6 +1826,17 @@
}
+static void
+do_editkey_check (winpt_key_t k, HWND dlg)
+{
+ gpgme_key_t key;
+
+ get_pubkey (k->keyid, &key);
+ DialogBoxParam (glob_hinst, (LPCTSTR)IDD_WINPT_KEYSIG_TREE, dlg,
+ sigtree_dlg_proc, (LPARAM)key);
+}
+
+
static int
do_editkey_sign_userid (winpt_key_t k, HWND dlg, listview_ctrl_t lv, int mode)
{
@@ -1851,7 +1868,8 @@
return FALSE;
}
ke = new GpgKeyEdit (k->keyid);
- ke->setPassphrase (pass);
+ if (k->is_protected)
+ ke->setPassphrase (pass);
ke->setLocalUser (get_default_key ());
err = ke->signUserid (uid_index,
mode == CMD_SIGN? GPG_EDITKEY_SIGN : GPG_EDITKEY_LSIGN,
@@ -1986,6 +2004,7 @@
case CMD_PRIMARY: do_editkey_primary( k, dlg, lvuid ); break;
case CMD_ENABLE: do_editkey_enable_disable (k, dlg, lvsub, 1); break;
case CMD_DISABLE: do_editkey_enable_disable (k, dlg, lvsub, 0); break;
+ case CMD_CHECK: do_editkey_check (k, dlg); break;
case CMD_TRUST: keyedit_change_ownertrust (k, dlg); break;
case CMD_SIGN:
case CMD_LSIGN: do_editkey_sign_userid (k, dlg,
Modified: trunk/Src/wptKeyManager.cpp
===================================================================
--- trunk/Src/wptKeyManager.cpp 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Src/wptKeyManager.cpp 2006-02-07 08:58:04 UTC (rev 175)
@@ -532,7 +532,6 @@
{
http_hd_t hd;
FILE *fp;
- char *p;
char tmpfile[500];
int statcode;
int rc = 0;
@@ -542,14 +541,10 @@
return WPTERR_GENERAL;
}
- GetTempPath (sizeof (tmpfile)-128, tmpfile);
- p = make_filename (tmpfile, "winpt_file_http", "tmp");
- if (!p)
- BUG (0);
- fp = fopen (p, "wb");
+ get_temp_name (tmpfile, sizeof (tmpfile), "winpt_file_http.tmp");
+ fp = fopen (tmpfile, "wb");
if (!fp) {
- free_if_alloc (p);
- log_box (_("Key Import HTTP"), MB_ERR, "%s: %s", p,
+ log_box (_("Key Import HTTP"), MB_ERR, "%s: %s", tmpfile,
winpt_strerror (WPTERR_FILE_CREAT));
return WPTERR_FILE_CREAT;
}
@@ -566,9 +561,8 @@
msg_box (dlg, winpt_strerror (rc), _("Key Import HTTP"), MB_ERR);
rc = WPTERR_GENERAL;
}
- km_file_import (dlg, p, NULL, NULL);
- remove (p);
- free_if_alloc (p);
+ km_file_import (dlg, tmpfile, NULL, NULL);
+ DeleteFile (tmpfile);
return rc;
}
@@ -836,13 +830,12 @@
km_send_to_mail_recipient (listview_ctrl_t lv, HWND dlg)
{
gpgme_key_t key;
- gpgme_ctx_t ctx=NULL;
- gpgme_data_t out;
gpgme_error_t rc;
- char tmp[128];
+ GPGME *ctx;
char *fname;
char *name;
int pos;
+ int n;
if (listview_count_items (lv, 1) > 1) {
msg_box (dlg, _("Please only select one key."),
@@ -858,35 +851,24 @@
if (!key)
BUG (NULL);
- GetTempPath (sizeof (tmp)-1, tmp);
- if (tmp[strlen (tmp)-1] == '\\')
- tmp[strlen (tmp)-1] = 0;
- name = utf8_to_wincp2 (key->uids->name);
- fname = make_filename (tmp, name, "asc");
+ name = utf8_to_wincp2 (key->uids->name);
+ n = strlen (name)+1 + MAX_PATH + 5;
+ fname = new char[n+1];
+ get_temp_name (fname, n-5, name);
for (pos=0; pos < (int)strlen (fname); pos++) {
if (fname[pos] == ' ')
fname[pos] = '_';
}
-
- rc = gpgme_new (&ctx);
+ strcat (fname, ".asc");
+ ctx = new GPGME ();
+ ctx->setArmor (true);
+ rc = ctx->exportToFile (key->subkeys->keyid, fname);
if (rc)
- BUG (NULL);
- rc = gpgme_data_new (&out);
- if (rc)
- BUG (NULL);
-
- gpgme_set_armor (ctx, 1);
- rc = gpgme_op_export (ctx, key->subkeys->keyid, 0, out);
- if (rc) {
- gpgme_data_release (out);
msg_box (dlg, gpgme_strerror (rc), _("Key Manager"), MB_ERR);
- }
- else {
- gpg_data_release_and_set_file (out, fname);
+ else
mapi_send_pubkey (key->subkeys->keyid+8, fname);
- }
- gpgme_release (ctx);
+ delete ctx;
safe_free (name);
free_if_alloc (fname);
return rc;
@@ -922,13 +904,7 @@
void
km_refresh_from_keyserver (listview_ctrl_t lv, HWND dlg)
{
- int cnt, id, i;
-
- if (kserver_check_inet_connection ()) {
- msg_box (dlg, _("Could not connect to keyserver, abort procedure."),
- _("Key Manager"), MB_ERR);
- return;
- }
+ int cnt, id, i;
cnt = listview_count_items (lv, 0);
if (listview_count_items (lv, 1) == cnt) {
@@ -936,6 +912,11 @@
_("Key Manager"), MB_YESNO);
if (id == IDNO)
return;
+ if (kserver_check_inet_connection ()) {
+ msg_box (dlg, _("Could not connect to keyserver, abort procedure."),
+ _("Key Manager"), MB_ERR);
+ return;
+ }
}
if (listview_count_items (lv, 1) == 1)
km_refresh_one_key (lv, dlg, listview_get_curr_pos (lv), 0);
Modified: trunk/Src/wptKeyManagerDlg.cpp
===================================================================
--- trunk/Src/wptKeyManagerDlg.cpp 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Src/wptKeyManagerDlg.cpp 2006-02-07 08:58:04 UTC (rev 175)
@@ -1177,6 +1177,11 @@
Header_SetImageList(ListView_GetHeader (kl), glob_imagelist);
kmi->lv = keylist_load (GetDlgItem (dlg, IDC_KEYMISC_KEYLIST), c,
NULL, KEYLIST_LIST, kmi->keylist_sortby);
+ if (check_ultimate_trusted_key ()) {
+ msg_box (dlg, _("No ultimately trusted key found.\n"
+ "Please set at least one secret key to ultimate trust."),
+ _("Key Manager"), MB_WARN);
+ }
/* init subclassing for the listview */
keylist_proc.opaque = kmi;
keylist_proc.dlg = dlg;
Modified: trunk/Src/wptKeyPropsDlg.cpp
===================================================================
--- trunk/Src/wptKeyPropsDlg.cpp 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Src/wptKeyPropsDlg.cpp 2006-02-07 08:58:04 UTC (rev 175)
@@ -83,9 +83,7 @@
char name[64];
_snprintf (name, sizeof (name)-1, "winpt_photo_%08lX.tmp", (DWORD)dlg);
- GetTempPath (sizeof (buf)-128, buf);
- strcat (buf, name);
-
+ get_temp_name (buf, DIM (buf), name);
return buf;
}
Modified: trunk/Src/wptKeyserver.cpp
===================================================================
--- trunk/Src/wptKeyserver.cpp 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Src/wptKeyserver.cpp 2006-02-07 08:58:04 UTC (rev 175)
@@ -1203,11 +1203,11 @@
int
ldap_recvkey (const char *host, const char *keyid, char *key, int maxkeylen)
{
- FILE *inp;
- DWORD n;
+ FILE *fp;
const char *s;
char *ksprg = NULL, *p = NULL, *sep;
- char temp[512], outf[512];
+ char inf[256], outf[256], buf[512];
+ DWORD n;
int start_key = 0, failed = 0;
int rc = 0;
@@ -1227,18 +1227,17 @@
"%s: could not find LDAP keyserver module!", ksprg);
rc = -1;
goto leave;
- }
- GetTempPath (sizeof (temp)-1, temp);
- _snprintf (outf, sizeof (outf)-1, "%s%s.out", temp, keyid);
- strcat (temp, keyid);
- inp = fopen (temp, "w+b");
- if (!inp) {
- log_box ("LDAP Keyserver Plugin", MB_ERR, "%s: %s", temp,
+ }
+ get_temp_name (outf, sizeof (outf)-1, keyid);
+ get_temp_name (inf, sizeof (inf)-1, NULL);
+ fp = fopen (inf, "w+b");
+ if (!fp) {
+ log_box ("LDAP Keyserver Plugin", MB_ERR, "%s: %s", inf,
winpt_strerror (WPTERR_FILE_OPEN));
rc = -1;
goto leave;
}
- fprintf (inp,
+ fprintf (fp,
"VERSION 1\n"
"PROGRAM 1.4.3-cvs\n"
"SCHEME ldap\n"
@@ -1247,28 +1246,27 @@
"\n"
"%s\n",
host? skip_type_prefix (host): "64.94.85.200", keyid);
- fclose (inp);
+ fclose (fp);
- p = new char[strlen (ksprg) + strlen (temp) + strlen (outf) + 32];
+ p = new char[strlen (ksprg) + strlen (inf) + strlen (outf) + 32];
if (!p)
BUG (NULL);
- sprintf (p, "%s -o %s %s", ksprg, outf, temp);
+ sprintf (p, "%s -o %s %s", ksprg, outf, inf);
if (spawn_application (p)) {
rc = -1;
goto leave;
}
- DeleteFile (temp);
- inp = fopen (outf, "rb");
- if (!inp) {
+ fp = fopen (outf, "rb");
+ if (!fp) {
log_box ("LDAP Keyserver Plugin", MB_ERR, "%s: %s", outf,
winpt_strerror (WPTERR_FILE_OPEN));
rc = -1;
goto leave;
}
memset (key, 0, maxkeylen);
- while (!feof (inp)) {
- s = fgets (temp, sizeof (temp)-1, inp);
+ while (!feof (fp)) {
+ s = fgets (buf, sizeof (buf)-1, fp);
if (!s)
break;
if (strstr (s, "KEY") && strstr (s, "FAILED")) {
@@ -1281,16 +1279,17 @@
}
if (!start_key)
continue;
- strcat (key, temp);
- maxkeylen -= strlen (temp);
+ strcat (key, buf);
+ maxkeylen -= strlen (buf);
if (maxkeylen < 0 || (strstr (s, "KEY") && strstr (s, "END")))
break;
}
- fclose (inp);
+ fclose (fp);
leave:
if (failed || !strlen (key))
rc = WPTERR_WINSOCK_RECVKEY;
+ DeleteFile (inf);
DeleteFile (outf);
free_if_alloc (p);
free_if_alloc (ksprg);
Added: trunk/Src/wptSigTreeDlg.cpp
===================================================================
--- trunk/Src/wptSigTreeDlg.cpp 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Src/wptSigTreeDlg.cpp 2006-02-07 08:58:04 UTC (rev 175)
@@ -0,0 +1,95 @@
+/* wptSigTreeDlg.cpp
+ * Copyright (C) 2006 Timo Schulz
+ *
+ * This file is part of WinPT.
+ *
+ * WinPT 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.
+ *
+ * WinPT 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 WinPT; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <windows.h>
+#include <commctrl.h>
+
+#include "resource.h"
+#include "wptGPG.h"
+#include "wptNLS.h"
+
+/* Initialize the signature tree based on the given key @key. */
+static void
+sigtree_load (HWND dlg, gpgme_key_t key)
+{
+ TVITEM tvi;
+ TVINSERTSTRUCT ctx;
+ HTREEITEM uid;
+ gpgme_user_id_t u;
+ gpgme_key_sig_t s;
+ gpgme_key_t signer;
+
+ memset (&tvi, 0, sizeof (tvi));
+ memset (&ctx, 0, sizeof (ctx));
+ for (u=key->uids; u; u = u->next) {
+ tvi.pszText = u->uid;
+ tvi.state = TVIS_BOLD;
+ tvi.mask = TVIF_TEXT |TVIF_STATE;
+ ctx.hParent = TVI_ROOT;
+ ctx.item = tvi;
+ uid = TreeView_InsertItem (dlg, &ctx);
+ for (s = u->signatures; s; s=s->next) {
+ if (get_pubkey (s->keyid+8, &signer))
+ continue;
+ tvi.state = 0;
+ tvi.pszText = signer->uids->uid;
+ tvi.mask = TVIF_TEXT;
+ ctx.hParent = uid;
+ ctx.item = tvi;
+ TreeView_InsertItem (dlg, &ctx);
+ }
+ }
+}
+
+
+/* Dialog box procedure for the tree based signature listing. */
+BOOL CALLBACK
+sigtree_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
+{
+ static gpgme_key_t key;
+ static HWND tree;
+
+ switch (msg) {
+ case WM_INITDIALOG:
+ key = (gpgme_key_t)lparam;
+ if (!key)
+ abort ();
+ tree = GetDlgItem (dlg, IDC_VKEYSIG_TREE);
+ sigtree_load (tree, key);
+ SetWindowText (dlg, _("Key Signature Tree"));
+ SetForegroundWindow (dlg);
+ break;
+
+ case WM_COMMAND:
+ switch (LOWORD (wparam)) {
+
+ case IDOK:
+ EndDialog (dlg, 1);
+ break;
+
+ case IDCANCEL:
+ EndDialog (dlg, 0);
+ break;
+ }
+ break;
+ }
+
+ return FALSE;
+}
Modified: trunk/Src/wptW32API.cpp
===================================================================
--- trunk/Src/wptW32API.cpp 2006-02-02 08:20:50 UTC (rev 174)
+++ trunk/Src/wptW32API.cpp 2006-02-07 08:58:04 UTC (rev 175)
@@ -542,6 +542,27 @@
}
+/* Generate a temporary file name by using the users
+ temp path and optionally a name @name provided by the caller.
+ Return value: 0 on success. */
+int
+get_temp_name (char *buf, DWORD buflen, const char *name)
+{
+ char tmp[32];
+
+ if (!name) {
+ sprintf (tmp, "%08lX", GetTickCount ());
+ name = tmp;
+ }
+ if (!GetTempPath (buflen - strlen (name) -2, buf)) {
+ log_debug ("GetTempPath() failed ec=%d\n", (int)GetLastError ());
+ return -1;
+ }
+ strcat (buf, name);
+ return 0;
+}
+
+
struct reminder_hd_s {
int msecs;
HWND dlg;
More information about the Winpt-commits
mailing list