[Winpt-commits] r164 - in trunk: . Include Po Src

scm-commit at wald.intevation.org scm-commit at wald.intevation.org
Fri Jan 20 10:19:20 CET 2006


Author: twoaday
Date: 2006-01-20 10:19:15 +0100 (Fri, 20 Jan 2006)
New Revision: 164

Modified:
   trunk/Include/wptKeyManager.h
   trunk/NEWS
   trunk/Po/de.po
   trunk/Src/ChangeLog
   trunk/Src/wptClipImportDlg.cpp
   trunk/Src/wptGPGUtil.cpp
   trunk/Src/wptKeyCache.cpp
   trunk/Src/wptKeyManager.cpp
   trunk/Src/wptKeyManagerDlg.cpp
   trunk/Src/wptMainProc.cpp
   trunk/TODO
Log:
2006-01-20  Timo Schulz  <ts at g10code.com>
 
        * wptKeyCache.cpp (w32_tmpfile): New.
        (parse_attr_data): Use it here.
        * wptGPGUtil.cpp (gpg_get_photoid_data): Reset @ndata var.
         
2006-01-19  Timo Schulz  <ts at g10code.com>
 
        * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Do not
        reload the entire cache, just update the key.
        * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Likewise.
        * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Set update flag.
        * wptKeyRevokersDlg.cpp (key_revokers_dlg_proc): Likewise.
        * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Update key
        if need after showing the properties.
        * wptGPGMEData.cpp (gpg_data_putc): Fix off-by-one bug.
        * wptKeyManager.cpp (km_import_file): New param. Changed
        all callers.
        (km_import_clip): Likewise.
        (delete_keys_from_cache): Delete secret part if available.
        * wptClipImportDlg.cpp (print_import_status): If there
        are too many new keys, use reload code.
         



Modified: trunk/Include/wptKeyManager.h
===================================================================
--- trunk/Include/wptKeyManager.h	2006-01-19 18:07:12 UTC (rev 163)
+++ trunk/Include/wptKeyManager.h	2006-01-20 09:19:15 UTC (rev 164)
@@ -21,9 +21,11 @@
 #ifndef WPT_KEYMANAGER_H
 #define WPT_KEYMANAGER_H
 
-#define send_cmd_id( hwnd, id ) \
+#define send_cmd_id(hwnd, id) \
     PostMessage ((hwnd), WM_COMMAND, MAKEWPARAM ((id), 0), 0)
 
+#define KM_PRELOAD_KEYS 6
+
 /* possible key flags. */
 enum km_flag_t {
     KM_FLAG_REVOKED  = 0x01,
@@ -49,6 +51,7 @@
     int		    use_name;
 };
 
+
 /*-- wptClipImportDlg.cpp --*/
 int print_import_status (gpgme_import_result_t res);
 
@@ -61,8 +64,8 @@
 int km_file_export( HWND dlg, listview_ctrl_t lv, const char *fname );
 int km_privkey_export(HWND dlg, listview_ctrl_t lv, const char *fname );
 int km_set_implicit_trust (HWND dlg, listview_ctrl_t lv, int pos);
-int km_clip_import( HWND dlg );
-int km_file_import( HWND dlg, const char *fname );
+int km_clip_import (HWND dlg, int *r_newkeys);
+int km_file_import (HWND dlg, const char *fname, int *r_newkeys);
 int km_http_import (HWND dlg, const char * url);
 int km_delete_keys( listview_ctrl_t lv, HWND dlg );
 int km_send_to_keyserver( listview_ctrl_t lv, HWND dlg, const char * host, unsigned short port);

Modified: trunk/NEWS
===================================================================
--- trunk/NEWS	2006-01-19 18:07:12 UTC (rev 163)
+++ trunk/NEWS	2006-01-20 09:19:15 UTC (rev 164)
@@ -720,4 +720,9 @@
   (all) signatures.
 * Fixed problem when the first key in the Key Manager was 
   deleted.
-  
\ No newline at end of file
+
+(0.11.6)
+* Fixed the problem that all keyserver actions resulted
+  in a crash/unexpected behaviour.
+* Fixed checkbox handling in the GPG preferences.
+* Updated GUI update system for the Key Manager.

Modified: trunk/Po/de.po
===================================================================
--- trunk/Po/de.po	2006-01-19 18:07:12 UTC (rev 163)
+++ trunk/Po/de.po	2006-01-20 09:19:15 UTC (rev 164)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: WinPT 0.11.5\n"
 "Report-Msgid-Bugs-To: winpt at freakmail.de\n"
-"POT-Creation-Date: 2006-01-19 12:29+0100\n"
+"POT-Creation-Date: 2006-01-20 09:39+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"
@@ -58,7 +58,7 @@
 msgstr "Konnte WinPT Verzeichnis nicht erstellen"
 
 #: Src/WinPT.cpp:246 Src/WinPT.cpp:264 Src/WinPT.cpp:275
-#: Src/wptKeyManagerDlg.cpp:946 Src/wptKeyserver.cpp:537
+#: Src/wptKeyManagerDlg.cpp:947 Src/wptKeyserver.cpp:537
 #: Src/wptKeyserverDlg.cpp:66 Src/wptKeyserverDlg.cpp:196
 #: Src/wptKeyserverDlg.cpp:204 Src/wptKeyserverDlg.cpp:220
 #: Src/wptKeyserverDlg.cpp:378 Src/wptKeyserverDlg.cpp:384
@@ -185,7 +185,7 @@
 msgid "About GnuPG"
 msgstr "Über GnuPG"
 
-#: Src/wptAboutDlgs.cpp:97 Src/wptKeyManagerDlg.cpp:1684
+#: Src/wptAboutDlgs.cpp:97 Src/wptKeyManagerDlg.cpp:1697
 #: Src/wptMainProc.cpp:576
 msgid "About WinPT"
 msgstr "Über WinPT"
@@ -236,7 +236,7 @@
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:700
 #: Src/wptAboutDlgs.cpp:116 Src/wptKeyEditDlgs.cpp:1829
-#: Src/wptKeyManagerDlg.cpp:952
+#: Src/wptKeyManagerDlg.cpp:953
 msgid "&Help"
 msgstr "&Hilfe"
 
@@ -353,7 +353,7 @@
 msgid "Make off-card backup of encryption key"
 msgstr "Externes Backup des Verschlüsselungs-Schlüssel"
 
-#: Src/wptCardDlg.cpp:608 Src/wptKeyManagerDlg.cpp:1577
+#: Src/wptCardDlg.cpp:608 Src/wptKeyManagerDlg.cpp:1586
 msgid "Card Key Generation"
 msgstr "Karten-Schlüsselerzeugung"
 
@@ -481,7 +481,7 @@
 #: 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:701 Src/wptKeyManager.cpp:896 Src/wptSymEnc.cpp:90
+#: Src/wptKeyManager.cpp:709 Src/wptKeyManager.cpp:904 Src/wptSymEnc.cpp:90
 msgid "GnuPG Status: Finished"
 msgstr "GnuPG-Status: Abgeschlossen"
 
@@ -632,20 +632,20 @@
 msgid "No recipient found with '%s'"
 msgstr "Keine Empfaenger mit '%s' gefunden"
 
-#: Src/wptClipImportDlg.cpp:68 Src/wptKeyImportStatusDlg.cpp:77
+#: Src/wptClipImportDlg.cpp:70 Src/wptKeyImportStatusDlg.cpp:77
 msgid "Key Import Statistics"
 msgstr "Schlüsselimport-Statistiken"
 
-#: Src/wptClipImportDlg.cpp:96 Src/wptFileManagerDlg.cpp:201
+#: Src/wptClipImportDlg.cpp:98 Src/wptFileManagerDlg.cpp:201
 #: Src/wptFileManagerDlg.cpp:214 Src/wptKeyManager.cpp:468
 msgid "Key Import"
 msgstr "Schlüsselimport"
 
-#: Src/wptClipImportDlg.cpp:97 Src/wptFileManagerDlg.cpp:469
+#: Src/wptClipImportDlg.cpp:99 Src/wptFileManagerDlg.cpp:469
 msgid "&Import"
 msgstr "&Importieren"
 
-#: Src/wptClipImportDlg.cpp:127
+#: Src/wptClipImportDlg.cpp:129
 msgid ""
 "Some of the imported keys are secret keys.\n"
 "\n"
@@ -657,16 +657,16 @@
 "Die Vertrauensstellungen dieser Schlüssel müssen Sie\n"
 "manuell in den Schlüsseleigenschaften setzen."
 
-#: Src/wptClipImportDlg.cpp:130 Src/wptClipImportDlg.cpp:140
-#: Src/wptClipImportDlg.cpp:150 Src/wptFileManager.cpp:1653
+#: Src/wptClipImportDlg.cpp:132 Src/wptClipImportDlg.cpp:142
+#: Src/wptClipImportDlg.cpp:153 Src/wptFileManager.cpp:1653
 #: Src/wptFileManager.cpp:1664 Src/wptImportList.cpp:414
 #: Src/wptImportList.cpp:421 Src/wptImportList.cpp:430
 #: Src/wptImportList.cpp:438 Src/wptImportList.cpp:447
-#: Src/wptKeyManager.cpp:579 Src/wptKeyserverDlg.cpp:229
+#: Src/wptKeyManager.cpp:583 Src/wptKeyserverDlg.cpp:229
 msgid "Import"
 msgstr "Importieren"
 
-#: Src/wptClipImportDlg.cpp:147
+#: Src/wptClipImportDlg.cpp:150
 msgid ""
 "Key without a self signature was dectected!\n"
 "(This key is NOT usable for encryption, etc)\n"
@@ -802,8 +802,8 @@
 #: Src/wptKeyEditDlgs.cpp:1698 Src/wptKeyEditDlgs.cpp:1707
 #: Src/wptKeyEditDlgs.cpp:1809 Src/wptKeyEditDlgs.cpp:1819
 #: Src/wptKeyEditDlgs.cpp:1830 Src/wptKeyEditDlgs.cpp:1859
-#: Src/wptKeyEditDlgs.cpp:1865 Src/wptKeyManagerDlg.cpp:980
-#: Src/wptKeyManagerDlg.cpp:1719
+#: Src/wptKeyEditDlgs.cpp:1865 Src/wptKeyManagerDlg.cpp:981
+#: Src/wptKeyManagerDlg.cpp:1732
 msgid "Key Edit"
 msgstr "Schlüssel bearbeiten"
 
@@ -1271,7 +1271,7 @@
 msgid "Invalid file name. Exit"
 msgstr "Ungültiger Dateiname. Abbruch"
 
-#: Src/wptFileManager.cpp:1661 Src/wptKeyManager.cpp:576
+#: Src/wptFileManager.cpp:1661 Src/wptKeyManager.cpp:580
 msgid ""
 "Key without a self signature was dectected!\n"
 "(This key is NOT usable for encryption, etc)\n"
@@ -1293,8 +1293,8 @@
 msgid "Export"
 msgstr "Exportieren"
 
-#: Src/wptFileManager.cpp:1695 Src/wptKeyManagerDlg.cpp:1642
-#: Src/wptKeyManagerDlg.cpp:1676
+#: Src/wptFileManager.cpp:1695 Src/wptKeyManagerDlg.cpp:1655
+#: Src/wptKeyManagerDlg.cpp:1689
 msgid "Choose Name for Key File"
 msgstr "Den Namen der Schlüsseldatei wählen"
 
@@ -1392,17 +1392,17 @@
 msgid "Signature mode"
 msgstr "Signaturmodus"
 
-#: Src/wptFileManagerDlg.cpp:276 Src/wptKeyManagerDlg.cpp:944
+#: Src/wptFileManagerDlg.cpp:276 Src/wptKeyManagerDlg.cpp:945
 msgid "Options"
 msgstr "Optionen"
 
 #: Src/wptFileManagerDlg.cpp:322 Src/wptKeyEditDlgs.cpp:1241
 #: Src/wptKeyEditDlgs.cpp:1290 Src/wptKeyEditDlgs.cpp:1364
-#: Src/wptKeyManager.cpp:619 Src/wptKeyManager.cpp:720
-#: Src/wptKeyManager.cpp:757 Src/wptKeyManagerDlg.cpp:1410
-#: Src/wptKeyManagerDlg.cpp:1430 Src/wptKeyManagerDlg.cpp:1464
-#: Src/wptKeyManagerDlg.cpp:1483 Src/wptKeyManagerDlg.cpp:1503
-#: Src/wptKeyManagerDlg.cpp:1632 Src/wptKeyManagerDlg.cpp:1651
+#: Src/wptKeyManager.cpp:627 Src/wptKeyManager.cpp:728
+#: Src/wptKeyManager.cpp:765 Src/wptKeyManagerDlg.cpp:1419
+#: Src/wptKeyManagerDlg.cpp:1439 Src/wptKeyManagerDlg.cpp:1473
+#: Src/wptKeyManagerDlg.cpp:1492 Src/wptKeyManagerDlg.cpp:1512
+#: Src/wptKeyManagerDlg.cpp:1645 Src/wptKeyManagerDlg.cpp:1664
 #: Src/wptKeyserverSearchDlg.cpp:132
 msgid "Please select a key."
 msgstr "Bitte Schlüssel wählen."
@@ -1420,17 +1420,17 @@
 msgid "File Manager (use drag & drop to add files)"
 msgstr "Dateimanager (Drag & Drop möglich)"
 
-#: Src/wptFileManagerDlg.cpp:458 Src/wptKeyManagerDlg.cpp:917
+#: Src/wptFileManagerDlg.cpp:458 Src/wptKeyManagerDlg.cpp:918
 #: Src/wptOwnertrustDlg.cpp:98
 msgid "File"
 msgstr "Datei"
 
-#: Src/wptFileManagerDlg.cpp:459 Src/wptKeyManagerDlg.cpp:918
-#: Src/wptKeyManagerDlg.cpp:923 Src/wptKeyManagerDlg.cpp:934
+#: Src/wptFileManagerDlg.cpp:459 Src/wptKeyManagerDlg.cpp:919
+#: Src/wptKeyManagerDlg.cpp:924 Src/wptKeyManagerDlg.cpp:935
 msgid "Edit"
 msgstr "Bearbeiten"
 
-#: Src/wptFileManagerDlg.cpp:460 Src/wptKeyManagerDlg.cpp:919
+#: Src/wptFileManagerDlg.cpp:460 Src/wptKeyManagerDlg.cpp:920
 msgid "View"
 msgstr "Ansicht"
 
@@ -1450,8 +1450,8 @@
 msgid "&Decrypt"
 msgstr "&Entschlüsseln"
 
-#: Src/wptFileManagerDlg.cpp:465 Src/wptKeyManagerDlg.cpp:935
-#: Src/wptKeyManagerDlg.cpp:983
+#: Src/wptFileManagerDlg.cpp:465 Src/wptKeyManagerDlg.cpp:936
+#: Src/wptKeyManagerDlg.cpp:984
 msgid "&Sign"
 msgstr "&Signieren"
 
@@ -1649,7 +1649,7 @@
 #: Src/wptGPGPrefsDlg.cpp:218 Src/wptGPGPrefsDlg.cpp:224
 #: Src/wptGPGPrefsDlg.cpp:229 Src/wptGPGPrefsDlg.cpp:234
 #: Src/wptGPGPrefsDlg.cpp:239 Src/wptGPGPrefsDlg.cpp:253
-#: Src/wptKeyEditDlgs.cpp:1641 Src/wptKeyManagerDlg.cpp:945
+#: Src/wptKeyEditDlgs.cpp:1641 Src/wptKeyManagerDlg.cpp:946
 #: Src/wptMainProc.cpp:430 Src/wptPreferencesDlg.cpp:209
 #: Src/wptPreferencesDlg.cpp:252 Src/wptPreferencesDlg.cpp:263
 #: Src/wptPreferencesDlg.cpp:275 Src/wptPreferencesDlg.cpp:308
@@ -1788,7 +1788,7 @@
 "Aktuelle Daten gehen verloren\n"
 "Sind Sie sicher?"
 
-#: Src/wptGPGPrefsDlg.cpp:141 Src/wptKeyManagerDlg.cpp:1602
+#: Src/wptGPGPrefsDlg.cpp:141 Src/wptKeyManagerDlg.cpp:1611
 #: Src/wptMainProc.cpp:588
 msgid "GnuPG Preferences"
 msgstr "GnuPG-Einstellungen"
@@ -1928,24 +1928,24 @@
 #: Src/wptKeyManager.cpp:417 Src/wptKeyManager.cpp:439
 #: Src/wptKeyManager.cpp:444 Src/wptKeyManager.cpp:447
 #: Src/wptKeyManager.cpp:452 Src/wptKeyManager.cpp:458
-#: Src/wptKeyManager.cpp:463 Src/wptKeyManager.cpp:551
-#: Src/wptKeyManager.cpp:559 Src/wptKeyManager.cpp:619
-#: Src/wptKeyManager.cpp:648 Src/wptKeyManager.cpp:658
-#: Src/wptKeyManager.cpp:669 Src/wptKeyManager.cpp:695
-#: Src/wptKeyManager.cpp:720 Src/wptKeyManager.cpp:727
-#: Src/wptKeyManager.cpp:752 Src/wptKeyManager.cpp:757
-#: Src/wptKeyManager.cpp:785 Src/wptKeyManager.cpp:827
-#: Src/wptKeyManager.cpp:834 Src/wptKeyManager.cpp:894
-#: Src/wptKeyManager.cpp:924 Src/wptKeyManagerDlg.cpp:1091
-#: Src/wptKeyManagerDlg.cpp:1108 Src/wptKeyManagerDlg.cpp:1389
-#: Src/wptKeyManagerDlg.cpp:1411 Src/wptKeyManagerDlg.cpp:1430
-#: Src/wptKeyManagerDlg.cpp:1438 Src/wptKeyManagerDlg.cpp:1448
-#: Src/wptKeyManagerDlg.cpp:1464 Src/wptKeyManagerDlg.cpp:1470
-#: Src/wptKeyManagerDlg.cpp:1483 Src/wptKeyManagerDlg.cpp:1503
-#: Src/wptKeyManagerDlg.cpp:1535 Src/wptKeyManagerDlg.cpp:1573
-#: Src/wptKeyManagerDlg.cpp:1633 Src/wptKeyManagerDlg.cpp:1651
-#: Src/wptKeyManagerDlg.cpp:1656 Src/wptKeyManagerDlg.cpp:1661
-#: Src/wptKeyManagerDlg.cpp:1749 Src/wptKeyManagerDlg.cpp:1928
+#: Src/wptKeyManager.cpp:463 Src/wptKeyManager.cpp:553
+#: Src/wptKeyManager.cpp:561 Src/wptKeyManager.cpp:627
+#: Src/wptKeyManager.cpp:656 Src/wptKeyManager.cpp:666
+#: Src/wptKeyManager.cpp:677 Src/wptKeyManager.cpp:703
+#: Src/wptKeyManager.cpp:728 Src/wptKeyManager.cpp:735
+#: Src/wptKeyManager.cpp:760 Src/wptKeyManager.cpp:765
+#: Src/wptKeyManager.cpp:793 Src/wptKeyManager.cpp:835
+#: Src/wptKeyManager.cpp:842 Src/wptKeyManager.cpp:902
+#: Src/wptKeyManager.cpp:932 Src/wptKeyManagerDlg.cpp:1101
+#: Src/wptKeyManagerDlg.cpp:1118 Src/wptKeyManagerDlg.cpp:1398
+#: Src/wptKeyManagerDlg.cpp:1420 Src/wptKeyManagerDlg.cpp:1439
+#: Src/wptKeyManagerDlg.cpp:1447 Src/wptKeyManagerDlg.cpp:1457
+#: Src/wptKeyManagerDlg.cpp:1473 Src/wptKeyManagerDlg.cpp:1479
+#: Src/wptKeyManagerDlg.cpp:1492 Src/wptKeyManagerDlg.cpp:1512
+#: Src/wptKeyManagerDlg.cpp:1544 Src/wptKeyManagerDlg.cpp:1582
+#: Src/wptKeyManagerDlg.cpp:1646 Src/wptKeyManagerDlg.cpp:1664
+#: Src/wptKeyManagerDlg.cpp:1669 Src/wptKeyManagerDlg.cpp:1674
+#: Src/wptKeyManagerDlg.cpp:1766 Src/wptKeyManagerDlg.cpp:1945
 #: 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
@@ -1981,20 +1981,20 @@
 msgstr "Ungültige Benutzerkennung"
 
 #: Src/wptImportList.cpp:352 Src/wptKeylist.cpp:539 Src/wptKeylist.cpp:547
-#: Src/wptKeyManagerDlg.cpp:863 Src/wptKeyManagerDlg.cpp:931
+#: Src/wptKeyManagerDlg.cpp:864 Src/wptKeyManagerDlg.cpp:932
 #: 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:541 Src/wptKeylist.cpp:550
-#: Src/wptKeyManagerDlg.cpp:866 Src/wptKeyserverSearchDlg.cpp:51
+#: Src/wptKeyManagerDlg.cpp:867 Src/wptKeyserverSearchDlg.cpp:51
 msgid "Size"
 msgstr "Größe"
 
 #: Src/wptImportList.cpp:354 Src/wptKeyEditDlgs.cpp:965 Src/wptKeylist.cpp:540
-#: Src/wptKeylist.cpp:548 Src/wptKeyManagerDlg.cpp:864
-#: Src/wptKeyManagerDlg.cpp:954 Src/wptKeyRevokersDlg.cpp:58
+#: Src/wptKeylist.cpp:548 Src/wptKeyManagerDlg.cpp:865
+#: Src/wptKeyManagerDlg.cpp:955 Src/wptKeyRevokersDlg.cpp:58
 #: Src/wptKeyserverSearchDlg.cpp:52 Src/wptSigList.cpp:55
 #: Src/wptVerifyList.cpp:109
 msgid "Key ID"
@@ -2002,13 +2002,13 @@
 
 #: Src/wptImportList.cpp:355 Src/wptKeyEditDlgs.cpp:966
 #: Src/wptKeyEditDlgs.cpp:1073 Src/wptKeylist.cpp:554
-#: Src/wptKeyManagerDlg.cpp:870 Src/wptKeyManagerDlg.cpp:957
+#: Src/wptKeyManagerDlg.cpp:871 Src/wptKeyManagerDlg.cpp:958
 #: Src/wptKeyserverSearchDlg.cpp:53 Src/wptSigList.cpp:54
 msgid "Creation"
 msgstr "Erstellung"
 
 #: Src/wptImportList.cpp:356 Src/wptKeylist.cpp:549
-#: Src/wptKeyManagerDlg.cpp:865 Src/wptKeyManagerDlg.cpp:956
+#: Src/wptKeyManagerDlg.cpp:866 Src/wptKeyManagerDlg.cpp:957
 msgid "Type"
 msgstr "Typ"
 
@@ -2022,7 +2022,7 @@
 "und deshalb ein CRC Fehler auftrat."
 
 # c:\oss\winpt-gpgme\src\wptKeyCache.cpp:479
-#: Src/wptKeyCache.cpp:640
+#: Src/wptKeyCache.cpp:656
 msgid "Load GPG Keyrings..."
 msgstr "Lade GPG Keyrings"
 
@@ -2247,7 +2247,7 @@
 #: Src/wptKeyEditDlgs.cpp:855 Src/wptKeyEditDlgs.cpp:868
 #: Src/wptKeyEditDlgs.cpp:909 Src/wptKeyEditDlgs.cpp:1286
 #: Src/wptKeyEditDlgs.cpp:1359 Src/wptKeyEditDlgs.cpp:1419
-#: Src/wptKeyManagerDlg.cpp:1437
+#: Src/wptKeyManagerDlg.cpp:1446
 msgid "There is no secret key available!"
 msgstr "Kein geheimer Schlüssel vorhanden!"
 
@@ -2308,7 +2308,7 @@
 msgstr "Kein(e) Unterschlüssel gefunden."
 
 #: Src/wptKeyEditDlgs.cpp:1070 Src/wptKeylist.cpp:543 Src/wptKeylist.cpp:552
-#: Src/wptKeyManagerDlg.cpp:868
+#: Src/wptKeyManagerDlg.cpp:869
 msgid "Validity"
 msgstr "Gültigkeit"
 
@@ -2570,8 +2570,8 @@
 msgstr "Bitte wählen Sie einen Eintrag."
 
 #: Src/wptKeyEditOwnertrustDlg.cpp:88 Src/wptKeyEditOwnertrustDlg.cpp:95
-#: Src/wptKeyEditOwnertrustDlg.cpp:104 Src/wptKeyManagerDlg.cpp:925
-#: Src/wptKeyManagerDlg.cpp:1700 Src/wptKeyPropsDlg.cpp:291
+#: Src/wptKeyEditOwnertrustDlg.cpp:104 Src/wptKeyManagerDlg.cpp:926
+#: Src/wptKeyManagerDlg.cpp:1713 Src/wptKeyPropsDlg.cpp:291
 #: Src/wptOwnertrustDlg.cpp:97 Src/wptOwnertrustDlg.cpp:121
 #: Src/wptOwnertrustDlg.cpp:133
 msgid "Ownertrust"
@@ -2594,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:1564 Src/wptPassphraseDlg.cpp:94
+#: Src/wptKeyManagerDlg.cpp:1573 Src/wptPassphraseDlg.cpp:94
 msgid "Key Generation"
 msgstr "Schlüsselerzeugung"
 
@@ -2748,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:1587
+#: Src/wptKeyManagerDlg.cpp:1596
 msgid "Key Generation Wizard"
 msgstr "Schlüsselerzeugungs-Assistent"
 
@@ -2837,12 +2837,12 @@
 msgid "Disabled"
 msgstr "Inaktiv"
 
-#: Src/wptKeylist.cpp:542 Src/wptKeylist.cpp:551 Src/wptKeyManagerDlg.cpp:867
-#: Src/wptKeyManagerDlg.cpp:955
+#: Src/wptKeylist.cpp:542 Src/wptKeylist.cpp:551 Src/wptKeyManagerDlg.cpp:868
+#: Src/wptKeyManagerDlg.cpp:956
 msgid "Cipher"
 msgstr "Cipher"
 
-#: Src/wptKeylist.cpp:553 Src/wptKeyManagerDlg.cpp:869
+#: Src/wptKeylist.cpp:553 Src/wptKeyManagerDlg.cpp:870
 #: Src/wptVerifyList.cpp:100 Src/wptVerifyList.cpp:108
 msgid "Trust"
 msgstr "Vertrauen"
@@ -2934,34 +2934,34 @@
 msgid "Cannot import dash escaped OpenPGP keys."
 msgstr "Kann keine beschädigten OpenPGP-Schlüssel importieren."
 
-#: Src/wptKeyManager.cpp:487 Src/wptKeyManager.cpp:498
-#: Src/wptKeyManager.cpp:512
+#: Src/wptKeyManager.cpp:489 Src/wptKeyManager.cpp:500
+#: Src/wptKeyManager.cpp:514
 msgid "Key Import HTTP"
 msgstr "Schlüssel Import HTTP"
 
 # c:\oss\winpt-gpgme\src\wptKeyManager.cpp:448
-#: Src/wptKeyManager.cpp:487
+#: Src/wptKeyManager.cpp:489
 #, c-format
 msgid "Invalid HTTP URL: %s"
 msgstr "Ungültige HTTP URL: %s"
 
-#: Src/wptKeyManager.cpp:539
+#: Src/wptKeyManager.cpp:541
 msgid "File Import"
 msgstr "Dateiimport"
 
-#: Src/wptKeyManager.cpp:550
+#: Src/wptKeyManager.cpp:552
 msgid "Could not read key-data from file."
 msgstr "Konnte Schlüsseldaten nicht aus Datei lesen."
 
-#: Src/wptKeyManager.cpp:624
+#: Src/wptKeyManager.cpp:632
 msgid "Do you really want to confirm each key?"
 msgstr "Wollen Sie wirklich jeden Schlüssel bestätigen?"
 
-#: Src/wptKeyManager.cpp:625
+#: Src/wptKeyManager.cpp:633
 msgid "Delete Confirmation"
 msgstr "Löschen Bestätigen"
 
-#: Src/wptKeyManager.cpp:649
+#: Src/wptKeyManager.cpp:657
 #, c-format
 msgid ""
 "Do you really want to delete this key?\n"
@@ -2973,7 +2973,7 @@
 "%s"
 
 # c:\oss\winpt-gpgme\src\wptKeyManager.cpp:605
-#: Src/wptKeyManager.cpp:659
+#: Src/wptKeyManager.cpp:667
 #, c-format
 msgid ""
 "Do you really want to delete this KEY PAIR?\n"
@@ -2990,7 +2990,7 @@
 "\n"
 "%s"
 
-#: Src/wptKeyManager.cpp:666
+#: Src/wptKeyManager.cpp:674
 msgid ""
 "The actual secret key is stored on a smartcard.\n"
 "Only the public key and the secret key \n"
@@ -3000,331 +3000,331 @@
 "Nur der öffentliche Schlüssel und der Zeiger auf den geheimen\n"
 "Schlüssel werden gelöscht.\n"
 
-#: Src/wptKeyManager.cpp:728
+#: Src/wptKeyManager.cpp:736
 #, 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:751
+#: Src/wptKeyManager.cpp:759
 msgid "Please only select one key."
 msgstr "Bitte nur einen Schlüssel auswählen."
 
-#: Src/wptKeyManager.cpp:826
+#: Src/wptKeyManager.cpp:834
 msgid "Could not connect to keyserver, abort procedure."
 msgstr ""
 "Verbindung zum Keyserver fehlgeschlagen; Die Prozedur wird abgebrochen."
 
-#: Src/wptKeyManager.cpp:833
+#: Src/wptKeyManager.cpp:841
 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:908
+#: Src/wptKeyManager.cpp:916
 msgid "Search"
 msgstr "Suchen"
 
-#: Src/wptKeyManager.cpp:908
+#: Src/wptKeyManager.cpp:916
 msgid "Search for:"
 msgstr "Suche nach:"
 
 # c:\oss\winpt-gpgme\src\wptKeyManager.cpp:896
-#: Src/wptKeyManager.cpp:919
+#: Src/wptKeyManager.cpp:927
 #, c-format
 msgid "String pattern \"%s\" not found."
 msgstr "Zeichenkette \"%s\" nicht gefunden."
 
-#: Src/wptKeyManagerDlg.cpp:436 Src/wptKeyManagerDlg.cpp:975
+#: Src/wptKeyManagerDlg.cpp:437 Src/wptKeyManagerDlg.cpp:976
 msgid "Paste Key from Clipboard"
 msgstr "Schlüssel aus Ablage einfügen"
 
-#: Src/wptKeyManagerDlg.cpp:464
+#: Src/wptKeyManagerDlg.cpp:465
 #, c-format
 msgid "Default Key: %s"
 msgstr "Standardschlüssel: %s"
 
-#: Src/wptKeyManagerDlg.cpp:466
+#: Src/wptKeyManagerDlg.cpp:467
 #, c-format
 msgid "Default Key: 0x%s"
 msgstr "Standardschlüssel: 0x%s"
 
-#: Src/wptKeyManagerDlg.cpp:486
+#: Src/wptKeyManagerDlg.cpp:487
 #, c-format
 msgid "%d secret keys"
 msgstr "%d geheime Schlüssel"
 
 # c:\oss\winpt-gpgme\src\wptKeyManager.cpp:849
-#: Src/wptKeyManagerDlg.cpp:487
+#: Src/wptKeyManagerDlg.cpp:488
 #, c-format
 msgid "%d keys"
 msgstr "%d Schlüssel"
 
-#: Src/wptKeyManagerDlg.cpp:920
+#: Src/wptKeyManagerDlg.cpp:921
 msgid "Key"
 msgstr "Schlüssel"
 
-#: Src/wptKeyManagerDlg.cpp:921 Src/wptKeyManagerDlg.cpp:1121
+#: Src/wptKeyManagerDlg.cpp:922 Src/wptKeyManagerDlg.cpp:1132
 msgid "Groups"
 msgstr "Gruppen"
 
 # c:\oss\winpt-gpgme\src\wptFileManagerDlg.cpp:478
-#: Src/wptKeyManagerDlg.cpp:924
+#: Src/wptKeyManagerDlg.cpp:925
 msgid "Send Mail..."
 msgstr "E-Mail versenden..."
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:685
-#: Src/wptKeyManagerDlg.cpp:926
+#: Src/wptKeyManagerDlg.cpp:927
 msgid "&Copy\tCtrl+C"
 msgstr "&Kopieren\tCtrl+C"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:686
-#: Src/wptKeyManagerDlg.cpp:927
+#: Src/wptKeyManagerDlg.cpp:928
 msgid "&Paste\tCtrl+V"
 msgstr "&Einfügen\tCtrl+V"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:687
-#: Src/wptKeyManagerDlg.cpp:928
+#: Src/wptKeyManagerDlg.cpp:929
 msgid "Search...\tCtrl+F"
 msgstr "Suchen...\tCtrl+F"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:688
-#: Src/wptKeyManagerDlg.cpp:929
+#: Src/wptKeyManagerDlg.cpp:930
 msgid "Select All\tCtrl+A"
 msgstr "Alles markieren\tCtrl+A"
 
-#: Src/wptKeyManagerDlg.cpp:930
+#: Src/wptKeyManagerDlg.cpp:931
 msgid "&Quit"
 msgstr "&Beenden"
 
-#: Src/wptKeyManagerDlg.cpp:932
+#: Src/wptKeyManagerDlg.cpp:933
 msgid "&Expert"
 msgstr "&Experte"
 
-#: Src/wptKeyManagerDlg.cpp:933
+#: Src/wptKeyManagerDlg.cpp:934
 msgid "&Normal"
 msgstr "&Normal"
 
-#: Src/wptKeyManagerDlg.cpp:936 Src/wptKeyManagerDlg.cpp:937
-#: Src/wptKeyManagerDlg.cpp:981
+#: Src/wptKeyManagerDlg.cpp:937 Src/wptKeyManagerDlg.cpp:938
+#: Src/wptKeyManagerDlg.cpp:982
 msgid "&Delete"
 msgstr "&Löschen"
 
-#: Src/wptKeyManagerDlg.cpp:938 Src/wptKeyManagerDlg.cpp:982
+#: Src/wptKeyManagerDlg.cpp:939 Src/wptKeyManagerDlg.cpp:983
 msgid "&Revoke Cert"
 msgstr "Widerruf Zertifikat"
 
-#: Src/wptKeyManagerDlg.cpp:939 Src/wptKeyManagerDlg.cpp:978
+#: Src/wptKeyManagerDlg.cpp:940 Src/wptKeyManagerDlg.cpp:979
 msgid "&List Signatures"
 msgstr "Signaturen anzeigen"
 
-#: Src/wptKeyManagerDlg.cpp:940 Src/wptKeyManagerDlg.cpp:1478
+#: Src/wptKeyManagerDlg.cpp:941 Src/wptKeyManagerDlg.cpp:1487
 #: Src/wptKeyTrustPathDlg.cpp:130
 msgid "List Trust Path"
 msgstr "Zeige Vertrauenspfad"
 
-#: Src/wptKeyManagerDlg.cpp:941
+#: Src/wptKeyManagerDlg.cpp:942
 msgid "&Export..."
 msgstr "&Exportieren..."
 
-#: Src/wptKeyManagerDlg.cpp:942
+#: Src/wptKeyManagerDlg.cpp:943
 msgid "&Import..."
 msgstr "&Importieren..."
 
-#: Src/wptKeyManagerDlg.cpp:943 Src/wptKeyManagerDlg.cpp:979
+#: Src/wptKeyManagerDlg.cpp:944 Src/wptKeyManagerDlg.cpp:980
 #: Src/wptKeysigDlg.cpp:392
 msgid "&Properties"
 msgstr "&Eigenschaften"
 
-#: Src/wptKeyManagerDlg.cpp:947
+#: Src/wptKeyManagerDlg.cpp:948
 msgid "E&xport Secret Key"
 msgstr "E&xportiere geheimen Schlüssel"
 
-#: Src/wptKeyManagerDlg.cpp:948
+#: Src/wptKeyManagerDlg.cpp:949
 msgid "Re&load Key Cache"
 msgstr "Erneuere Sch&lüsselcache"
 
-#: Src/wptKeyManagerDlg.cpp:949
+#: Src/wptKeyManagerDlg.cpp:950
 msgid "R&everify Signatures"
 msgstr "Signaturen erneut prüfen"
 
-#: Src/wptKeyManagerDlg.cpp:950
+#: Src/wptKeyManagerDlg.cpp:951
 msgid "Refresh &Keys (Keyserver)"
 msgstr "Vom Schlüsselserver aktualisieren"
 
-#: Src/wptKeyManagerDlg.cpp:951 Src/wptTextInputDlg.cpp:49
+#: Src/wptKeyManagerDlg.cpp:952 Src/wptTextInputDlg.cpp:49
 msgid "Info"
 msgstr "Über"
 
-#: Src/wptKeyManagerDlg.cpp:970
+#: Src/wptKeyManagerDlg.cpp:971
 msgid "Copy User ID to Clipboard"
 msgstr "Kopiere Benutzerkennung in Ablage"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:886
-#: Src/wptKeyManagerDlg.cpp:971
+#: Src/wptKeyManagerDlg.cpp:972
 msgid "Copy Key ID to Clipboard"
 msgstr "Kopiere Schlüssel ID in Ablage"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:887
-#: Src/wptKeyManagerDlg.cpp:972
+#: Src/wptKeyManagerDlg.cpp:973
 msgid "Copy Fingerprint to Clipboard"
 msgstr "Kopiere Fingerprint in Ablage"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:888
-#: Src/wptKeyManagerDlg.cpp:973
+#: Src/wptKeyManagerDlg.cpp:974
 msgid "Copy Key Info to Clipboard"
 msgstr "Kopiere Schlüssel Info in Ablage"
 
-#: Src/wptKeyManagerDlg.cpp:974
+#: Src/wptKeyManagerDlg.cpp:975
 msgid "Copy Key to Clipboard"
 msgstr "Kopiere Schlüssel in Ablage"
 
-#: Src/wptKeyManagerDlg.cpp:976
+#: Src/wptKeyManagerDlg.cpp:977
 msgid "Refresh from Keyserver"
 msgstr "Vom Schlüsselserver aktualisieren"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:884
-#: Src/wptKeyManagerDlg.cpp:977
+#: Src/wptKeyManagerDlg.cpp:978
 msgid "Set Implicit &Trust"
 msgstr "Setze impliziertes Vertrauen"
 
-#: Src/wptKeyManagerDlg.cpp:984
+#: Src/wptKeyManagerDlg.cpp:985
 msgid "&Enable"
 msgstr "&Aktivieren"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:892
-#: Src/wptKeyManagerDlg.cpp:985
+#: Src/wptKeyManagerDlg.cpp:986
 msgid "&Disable"
 msgstr "&Deaktivieren"
 
-#: Src/wptKeyManagerDlg.cpp:986
+#: Src/wptKeyManagerDlg.cpp:987
 msgid "Re&fresh from Keyserver"
 msgstr "Vom Schlüsselserver aktualisieren"
 
-#: Src/wptKeyManagerDlg.cpp:987
+#: Src/wptKeyManagerDlg.cpp:988
 msgid "Set preferred Keyserver URL"
 msgstr "Setze bevorzugte Keyserver URL"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:900
-#: Src/wptKeyManagerDlg.cpp:988
+#: Src/wptKeyManagerDlg.cpp:989
 msgid "Send Key to Mail Recipient"
 msgstr "Sende Schlüssel an Mailempfänger"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:904
-#: Src/wptKeyManagerDlg.cpp:989
+#: Src/wptKeyManagerDlg.cpp:990
 msgid "Set as Default Key"
 msgstr "Setze als Default Key"
 
-#: Src/wptKeyManagerDlg.cpp:991
+#: Src/wptKeyManagerDlg.cpp:992
 msgid "Key..."
 msgstr "Schlüssel..."
 
-#: Src/wptKeyManagerDlg.cpp:992
+#: Src/wptKeyManagerDlg.cpp:993
 msgid "User ID..."
 msgstr "Benutzerkennung..."
 
-#: Src/wptKeyManagerDlg.cpp:993
+#: Src/wptKeyManagerDlg.cpp:994
 msgid "Photo ID..."
 msgstr "Photo ID..."
 
-#: Src/wptKeyManagerDlg.cpp:994
+#: Src/wptKeyManagerDlg.cpp:995
 msgid "Revoker..."
 msgstr "Revoker..."
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:706
-#: Src/wptKeyManagerDlg.cpp:997
+#: Src/wptKeyManagerDlg.cpp:998
 msgid "Key Attributes"
 msgstr "Schlüsselattribute"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:707
-#: Src/wptKeyManagerDlg.cpp:998
+#: Src/wptKeyManagerDlg.cpp:999
 msgid "Add"
 msgstr "Hinzufügen"
 
-#: Src/wptKeyManagerDlg.cpp:999
+#: Src/wptKeyManagerDlg.cpp:1000
 msgid "Send to Keyserver"
 msgstr "Sende an Keyserver"
 
-#: Src/wptKeyManagerDlg.cpp:1107
+#: Src/wptKeyManagerDlg.cpp:1117
 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:1223
+#: Src/wptKeyManagerDlg.cpp:1234
 msgid "Generate new key pair"
 msgstr "Neues Schlüsselpaar erzeugen"
 
-#: Src/wptKeyManagerDlg.cpp:1227
+#: Src/wptKeyManagerDlg.cpp:1238
 msgid "Search for a specific key"
 msgstr "Suche nach einem bestimmten Schlüssel"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:842
-#: Src/wptKeyManagerDlg.cpp:1231
+#: Src/wptKeyManagerDlg.cpp:1242
 msgid "Delete key from keyring"
 msgstr "Schlüssel aus Keyring löschen"
 
-#: Src/wptKeyManagerDlg.cpp:1235
+#: Src/wptKeyManagerDlg.cpp:1246
 msgid "Show key properties"
 msgstr "Schlüsseleigenschaften anzeigen"
 
-#: Src/wptKeyManagerDlg.cpp:1239
+#: Src/wptKeyManagerDlg.cpp:1250
 msgid "Sign key"
 msgstr "Signiere Schlüssel"
 
-#: Src/wptKeyManagerDlg.cpp:1243
+#: Src/wptKeyManagerDlg.cpp:1254
 msgid "Copy key to clipboard"
 msgstr "Kopiere Schlüssel in Ablage"
 
-#: Src/wptKeyManagerDlg.cpp:1247
+#: Src/wptKeyManagerDlg.cpp:1258
 msgid "Paste key from clipboard"
 msgstr "Schlüssel aus Ablage einfügen"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:854
-#: Src/wptKeyManagerDlg.cpp:1251
+#: Src/wptKeyManagerDlg.cpp:1262
 msgid "Import key to keyring"
 msgstr "In Schlüsselbund importieren"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:858
-#: Src/wptKeyManagerDlg.cpp:1255
+#: Src/wptKeyManagerDlg.cpp:1266
 msgid "Export key to a file"
 msgstr "Schlüssel in Datei exportieren"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:499
-#: Src/wptKeyManagerDlg.cpp:1374
+#: Src/wptKeyManagerDlg.cpp:1385
 msgid "New"
 msgstr "Neu"
 
-#: Src/wptKeyManagerDlg.cpp:1388
+#: Src/wptKeyManagerDlg.cpp:1397
 msgid "Could not access public keyring"
 msgstr "Konnte nicht auf öffentlichen Schlüsselbund zugreifen"
 
-#: Src/wptKeyManagerDlg.cpp:1423 Src/wptKeysignDlg.cpp:230
+#: Src/wptKeyManagerDlg.cpp:1432 Src/wptKeysignDlg.cpp:230
 #: Src/wptKeysignDlg.cpp:249 Src/wptKeysignDlg.cpp:326
 #: Src/wptKeysignDlg.cpp:343 Src/wptKeysignDlg.cpp:348
 msgid "Key Signing"
 msgstr "Schlüsselsignierung"
 
-#: Src/wptKeyManagerDlg.cpp:1447
+#: Src/wptKeyManagerDlg.cpp:1456
 msgid "Key already revoked!"
 msgstr "Schlüssel ist bereits widerrufen!"
 
-#: Src/wptKeyManagerDlg.cpp:1459 Src/wptKeyRevokeDlg.cpp:72
+#: Src/wptKeyManagerDlg.cpp:1468 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:1469
+#: Src/wptKeyManagerDlg.cpp:1478
 msgid "It does not make any sense with a key pair!"
 msgstr "Diese Aktion macht keinen Sinn mit einem Schlüsselpaar!"
 
-#: Src/wptKeyManagerDlg.cpp:1496
+#: Src/wptKeyManagerDlg.cpp:1505
 msgid "Key Signature List"
 msgstr "Schlüssel-Signatur-Liste"
 
-#: Src/wptKeyManagerDlg.cpp:1517 Src/wptKeyPropsDlg.cpp:287
+#: Src/wptKeyManagerDlg.cpp:1526 Src/wptKeyPropsDlg.cpp:287
 msgid "Key Properties"
 msgstr "Schlüsseleigenschaften"
 
-#: Src/wptKeyManagerDlg.cpp:1532
+#: Src/wptKeyManagerDlg.cpp:1541
 msgid ""
 "This is only useful when the keyring has been modified (sign a key...).\n"
 "Do you really want to reload the keycache?"
@@ -3333,31 +3333,31 @@
 "Signierung etc.)\n"
 "Möchten Sie den Zwischenspeicher reinitialisieren?"
 
-#: Src/wptKeyManagerDlg.cpp:1572
+#: Src/wptKeyManagerDlg.cpp:1581
 msgid "Smart Card support is not available."
 msgstr "SmartCard-Unterstützung ist nicht verfügbar."
 
-#: Src/wptKeyManagerDlg.cpp:1595 Src/wptKeyserverDlg.cpp:599
+#: Src/wptKeyManagerDlg.cpp:1604 Src/wptKeyserverDlg.cpp:599
 msgid "Keyserver Access"
 msgstr "Schlüsselserver-Zugriff"
 
-#: Src/wptKeyManagerDlg.cpp:1608
+#: Src/wptKeyManagerDlg.cpp:1617
 msgid "GnuPG Options"
 msgstr "GnuPG Optionen"
 
-#: Src/wptKeyManagerDlg.cpp:1613
+#: Src/wptKeyManagerDlg.cpp:1622
 msgid "Choose Name of the Key File"
 msgstr "Den Namen der Schlüsseldatei wählen"
 
-#: Src/wptKeyManagerDlg.cpp:1655
+#: Src/wptKeyManagerDlg.cpp:1668
 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:1660
+#: Src/wptKeyManagerDlg.cpp:1673
 msgid "You can only export one secret key."
 msgstr "Sie können nur einen geheimen Schlüssel exportieren."
 
-#: Src/wptKeyManagerDlg.cpp:1665
+#: Src/wptKeyManagerDlg.cpp:1678
 msgid ""
 "This operation will export your *SECRET* key!\n"
 "\n"
@@ -3375,11 +3375,11 @@
 "\n"
 "Wirklich den Schlüssel exportieren?"
 
-#: Src/wptKeyManagerDlg.cpp:1670
+#: Src/wptKeyManagerDlg.cpp:1683
 msgid "WARNING"
 msgstr "WARNUNG"
 
-#: Src/wptKeyManagerDlg.cpp:1748
+#: Src/wptKeyManagerDlg.cpp:1765
 msgid "No key was selected, select all by default."
 msgstr "Kein Schlüssel ausgewählt, es wurden alle ausgewählt."
 

Modified: trunk/Src/ChangeLog
===================================================================
--- trunk/Src/ChangeLog	2006-01-19 18:07:12 UTC (rev 163)
+++ trunk/Src/ChangeLog	2006-01-20 09:19:15 UTC (rev 164)
@@ -1,3 +1,9 @@
+2006-01-20  Timo Schulz  <ts at g10code.com>
+
+	* wptKeyCache.cpp (w32_tmpfile): New.
+	(parse_attr_data): Use it here.
+	* wptGPGUtil.cpp (gpg_get_photoid_data): Reset @ndata var.
+	
 2006-01-19  Timo Schulz  <ts at g10code.com>
 
 	* wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Do not
@@ -8,6 +14,12 @@
 	* wptKeyManagerDlg.cpp (keymanager_dlg_proc): Update key
 	if need after showing the properties.
 	* wptGPGMEData.cpp (gpg_data_putc): Fix off-by-one bug.
+	* wptKeyManager.cpp (km_import_file): New param. Changed
+	all callers.
+	(km_import_clip): Likewise.
+	(delete_keys_from_cache): Delete secret part if available.
+	* wptClipImportDlg.cpp (print_import_status): If there
+	are too many new keys, use reload code.
 	
 2006-01-18  Timo Schulz  <ts at g10code.com>
 

Modified: trunk/Src/wptClipImportDlg.cpp
===================================================================
--- trunk/Src/wptClipImportDlg.cpp	2006-01-19 18:07:12 UTC (rev 163)
+++ trunk/Src/wptClipImportDlg.cpp	2006-01-20 09:19:15 UTC (rev 164)
@@ -37,6 +37,7 @@
 #include "wptW32API.h"
 #include "wptVersion.h"
 #include "wptImport.h"
+#include "wptKeyManager.h"
 
 
 /* Import the PGP key data from the clipboard.
@@ -62,11 +63,12 @@
 {
     gpgme_import_status_t st;
     const char *keyid;
+    int new_keys = res->considered - res->unchanged;
 
     dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_IMPORT_STAT, glob_hwnd,
 		      import_status_dlg_proc, (LPARAM)res,
 		      _("Key Import Statistics"), IDS_WINPT_IMPORT_STAT);
-    if (res->unchanged != res->considered) {
+    if (new_keys > 0 && new_keys < KM_PRELOAD_KEYS) {
 	for (st=res->imports; st; st=st->next) {
 	    if (st->status == 0) /* nothing changed */
 		continue;
@@ -142,7 +144,8 @@
                 return FALSE;
             }
 	    res = gpgme_op_import_result (ctx);
-	    upd = print_import_status (res);
+	    print_import_status (res);
+	    upd = res->considered - res->unchanged;
 	    if (res->no_user_id > 0) {            
                 msg_box (dlg, _("Key without a self signature was dectected!\n"
 				"(This key is NOT usable for encryption, etc)\n"

Modified: trunk/Src/wptGPGUtil.cpp
===================================================================
--- trunk/Src/wptGPGUtil.cpp	2006-01-19 18:07:12 UTC (rev 163)
+++ trunk/Src/wptGPGUtil.cpp	2006-01-20 09:19:15 UTC (rev 164)
@@ -572,6 +572,8 @@
     char *p, *cmd;
     DWORD n;
 
+    if (ndata)
+	*ndata = 0;
     p = read_gpg_program ();
     if (!p)
 	return gpg_error (GPG_ERR_INV_ARG);

Modified: trunk/Src/wptKeyCache.cpp
===================================================================
--- trunk/Src/wptKeyCache.cpp	2006-01-19 18:07:12 UTC (rev 163)
+++ trunk/Src/wptKeyCache.cpp	2006-01-20 09:19:15 UTC (rev 164)
@@ -121,12 +121,28 @@
 }
 
 
+/* 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;
+    char *status, tmpnam[MAX_PATH+1];
     BYTE *data;
     DWORD ndata;
 
@@ -134,14 +150,14 @@
     if (err)
 	return err;
 
-    if (ndata > 0) {
-	tmp = tmpfile ();
+    if (ndata > 0 && (tmp = w32_tmpfile (tmpnam, MAX_PATH)) != NULL) {
 	fwrite (status, 1, strlen (status), tmp);
 	fflush (tmp);
 	rewind (tmp);
 
 	ndata = parse_attr_list (tmp, data, ndata, list);
 	fclose (tmp);
+	DeleteFile (tmpnam);
     }
     else
 	*list = NULL;

Modified: trunk/Src/wptKeyManager.cpp
===================================================================
--- trunk/Src/wptKeyManager.cpp	2006-01-19 18:07:12 UTC (rev 163)
+++ trunk/Src/wptKeyManager.cpp	2006-01-20 09:19:15 UTC (rev 164)
@@ -427,12 +427,12 @@
 
 /* Import keys from the clipboard. */
 int
-km_clip_import (HWND dlg)
+km_clip_import (HWND dlg, int *r_newkeys)
 {
     gpgme_error_t err;
     int pgptype;
     int id;
-    int has_data = 0;
+    int new_keys = 0, has_data = 0;
     
     if (!gpg_clip_istext_avail (&has_data) && !has_data) {
         msg_box (dlg, winpt_strerror (WPTERR_CLIP_ISEMPTY), 
@@ -463,10 +463,12 @@
 		     _("Key Manager"), MB_INFO);
     }
 
-    has_data = dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_IMPORT, dlg,
+    new_keys = dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_IMPORT, dlg,
 				 clip_import_dlg_proc, 0,
 				 _("Key Import"), IDS_WINPT_IMPORT);
-    if (!has_data)
+    if (r_newkeys)
+	*r_newkeys = new_keys;
+    if (!new_keys)
 	return WPTERR_NODATA;
     return 0;
 }
@@ -512,7 +514,7 @@
 	msg_box (dlg, winpt_strerror (rc), _("Key Import HTTP"), MB_ERR);
 	rc = WPTERR_GENERAL;
     }
-    km_file_import (dlg, p);
+    km_file_import (dlg, p, NULL);
     remove (p);
     free_if_alloc (p);
     return rc;
@@ -522,7 +524,7 @@
 /* Import a key from the given file @fname.
    On success an import statistics dialog is shown. */
 int
-km_file_import (HWND dlg, const char *fname)
+km_file_import (HWND dlg, const char *fname, int *r_newkeys)
 {
     gpgme_data_t keydata = NULL;
     gpgme_ctx_t ctx;
@@ -563,6 +565,8 @@
     res = gpgme_op_import_result (ctx);
     if (res->unchanged == res->considered)
 	no_data = 1;
+    if (r_newkeys)
+	*r_newkeys = res->considered - res->unchanged;
     if (res->new_revocations == 0 && fm_stat.import.revcert == 1)
 	res->new_revocations = 1;
     if (res->secret_imported == 0 && fm_stat.import.has_seckey == 1)
@@ -594,12 +598,16 @@
 delete_keys_from_cache (gpgme_key_t *rset, size_t n)
 {
     gpg_keycache_t pub = keycache_get_ctx (1);
+    gpg_keycache_t sec = keycache_get_ctx (0);
+    gpgme_key_t sk;
     int i=0;
 
-    while (n-- > 0)
-	gpg_keycache_delete_key (pub, rset[i++]->subkeys->keyid);
-
-    /* XXX: we need to check if there is a secret part available. */
+    while (n-- > 0) {
+	if (!get_seckey (rset[i]->subkeys->keyid, &sk))
+	    gpg_keycache_delete_key (sec, sk->subkeys->keyid);
+	gpg_keycache_delete_key (pub, rset[i]->subkeys->keyid);	
+	i++;
+    }
 }
 
 

Modified: trunk/Src/wptKeyManagerDlg.cpp
===================================================================
--- trunk/Src/wptKeyManagerDlg.cpp	2006-01-19 18:07:12 UTC (rev 163)
+++ trunk/Src/wptKeyManagerDlg.cpp	2006-01-20 09:19:15 UTC (rev 164)
@@ -71,6 +71,7 @@
     int ypos_sep;
     int ypercent_sep;
 
+    HWND dlg;
     HWND hwnd_sep;
     HWND toolbar;
     HWND statbar;
@@ -1054,6 +1055,15 @@
 }
 
 
+static void
+reload_keylist (struct km_info_s *kmi)
+{
+    keycache_reload (kmi->dlg);
+    keylist_reload (kmi->lv, keycache_get_ctx (1), 
+		    KEYLIST_LIST, KEY_SORT_USERID);
+}
+
+
 /* Dialog box procedure for the Key Manager. */
 BOOL CALLBACK
 keymanager_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
@@ -1112,6 +1122,7 @@
 	kmi->statbar = setup_status_bar (dlg, kmi->lv);
         SetWindowLong (dlg, GWL_USERDATA, (LONG)kmi);
         kmi->toolbar = load_toolbar (dlg, kmi);
+	kmi->dlg = dlg;
 
 	do_center_window (dlg, kmi);
         do_resize_window (dlg, kmi);
@@ -1375,11 +1386,9 @@
 	}
 	/* XXX: before we can use it, we need to find a way to
 	        update the gpg access timestamp after each operation.
-	if (keyring_check_last_access ()) {
-	    keycache_reload (dlg);
-	    keylist_reload (kmi->lv, keycache_get_ctx (1), 
-			    KEYLIST_LIST, KEY_SORT_USERID);
-	}*/
+	if (keyring_check_last_access ())
+	    reload_keylist (kmi);
+	*/
 	return FALSE;
 
     case WM_COMMAND:
@@ -1614,8 +1623,12 @@
 				  NULL, NULL);
 	    if (!t)
 		break;
-	    if (!km_file_import (dlg, t))
-		refresh_keylist (kmi);
+	    if (!km_file_import (dlg, t, &i)) {
+		if (i < KM_PRELOAD_KEYS)
+		    refresh_keylist (kmi);
+		else /* avoid to spawn too much processes. */
+		    reload_keylist (kmi);
+	    }
             return TRUE;
 
 	case ID_KEYMISC_IMPORT_HTTP:
@@ -1730,8 +1743,12 @@
 	    break;
 
         case ID_KEYMISC_PASTE:
-            if (!km_clip_import (dlg))
-		refresh_keylist (kmi);
+            if (!km_clip_import (dlg, &i)) {
+		if (i < KM_PRELOAD_KEYS)
+		    refresh_keylist (kmi);
+		else
+		    reload_keylist (kmi);
+	    }
             break;
             
 	case ID_KEYCTX_SETPREFKS:

Modified: trunk/Src/wptMainProc.cpp
===================================================================
--- trunk/Src/wptMainProc.cpp	2006-01-19 18:07:12 UTC (rev 163)
+++ trunk/Src/wptMainProc.cpp	2006-01-20 09:19:15 UTC (rev 164)
@@ -172,7 +172,7 @@
             }
         }
 	else if ((type & PGP_PUBKEY) && !(type & PGP_CLEARSIG))
-	    km_clip_import (GetDesktopWindow ());
+	    km_clip_import (GetDesktopWindow (), NULL);
         else {
             dialog_box_param( glob_hinst, (LPCSTR)IDD_WINPT_VERIFY, hwnd,
                               clip_verify_dlg_proc, 0, 
@@ -265,7 +265,7 @@
                               _("Verify"), IDS_WINPT_VERIFY );
         }
         else if ((type & PGP_PUBKEY) || (type & PGP_SECKEY))
-	    km_clip_import (GetDesktopWindow ());
+	    km_clip_import (GetDesktopWindow (), NULL);
         else
             msg_box (hwnd, _("Unknown OpenPGP type."), _("Clipboard"), MB_ERR);
     }

Modified: trunk/TODO
===================================================================
--- trunk/TODO	2006-01-19 18:07:12 UTC (rev 163)
+++ trunk/TODO	2006-01-20 09:19:15 UTC (rev 164)
@@ -1,6 +1,7 @@
 Feel free if you think there is missing something to mail me.
 
 -0.11.x-
+    * Only create temp files in the $users temp folder.
     * On modern P4 CPUs the thread scheduling mechanism seems to
       cause trouble and the result is that any GPG operation will
       be take much longer as expected.
@@ -8,7 +9,6 @@
     * Handle the case that while WinPT tries to change GPG data,
       but before GPG is executed, an external event changed the
       keyring. So do not use BUG but issue an error.
-    * make sure that keys are also deleted from the secret key cache.
     * winpt --keymanager aborts when the keyring is empty on the
       first start.
     * implement property sheets at some places to improve usability.



More information about the Winpt-commits mailing list